@join-x5/react-data-grid 1.3.1-alpha-0 → 1.4.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.
Files changed (49) hide show
  1. package/dist/DataGrid.es.js +81 -59
  2. package/dist/DataGrid.es.js.map +1 -1
  3. package/dist/Table/index.es.js +34 -34
  4. package/dist/Table/index.es.js.map +1 -1
  5. package/dist/TableBody/DataGridTableBody.d.ts +12 -0
  6. package/dist/TableBody/DataGridTableBody.es.js +41 -0
  7. package/dist/TableBody/DataGridTableBody.es.js.map +1 -0
  8. package/dist/TableBody/DataGridTableBodyVirtual.d.ts +2 -0
  9. package/dist/TableBody/DataGridTableBodyVirtual.es.js +18 -0
  10. package/dist/TableBody/DataGridTableBodyVirtual.es.js.map +1 -0
  11. package/dist/TableBody/hook.d.ts +839 -0
  12. package/dist/TableBody/hook.es.js +49 -0
  13. package/dist/TableBody/hook.es.js.map +1 -0
  14. package/dist/TableBody/index.d.ts +3 -11
  15. package/dist/TableBody/types.d.ts +2 -0
  16. package/dist/TableCell/hook.es.js +8 -9
  17. package/dist/TableCell/hook.es.js.map +1 -1
  18. package/dist/TableCell/index.es.js +120 -133
  19. package/dist/TableCell/index.es.js.map +1 -1
  20. package/dist/TableHead/index.d.ts +4 -2
  21. package/dist/TableHead/index.es.js +16 -13
  22. package/dist/TableHead/index.es.js.map +1 -1
  23. package/dist/TableHeadCell/index.es.js +71 -74
  24. package/dist/TableHeadCell/index.es.js.map +1 -1
  25. package/dist/TableInputCell/date.es.js +29 -32
  26. package/dist/TableInputCell/date.es.js.map +1 -1
  27. package/dist/TableInputCell/dropdown.es.js +29 -32
  28. package/dist/TableInputCell/dropdown.es.js.map +1 -1
  29. package/dist/TableInputCell/hook.d.ts +30 -30
  30. package/dist/TableInputCell/hook.es.js +30 -33
  31. package/dist/TableInputCell/hook.es.js.map +1 -1
  32. package/dist/TableInputCell/text.es.js +39 -41
  33. package/dist/TableInputCell/text.es.js.map +1 -1
  34. package/dist/TableInputCell/textarea.es.js +38 -40
  35. package/dist/TableInputCell/textarea.es.js.map +1 -1
  36. package/dist/TableRow/index.d.ts +2 -3
  37. package/dist/TableRow/index.es.js +16 -17
  38. package/dist/TableRow/index.es.js.map +1 -1
  39. package/dist/hook.es.js +14 -17
  40. package/dist/hook.es.js.map +1 -1
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.es.js +61 -60
  44. package/dist/index.es.js.map +1 -1
  45. package/dist/types.d.ts +36 -2
  46. package/package.json +13 -12
  47. package/dist/TableBody/index.es.js +0 -26
  48. package/dist/TableBody/index.es.js.map +0 -1
  49. package/dist/TableRow/types.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"text.es.js","sources":["../../src/TableInputCell/text.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst Input = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;\n\ntype TTextInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextInputCell: TTextInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLInputElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLInputElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || isEnterCode) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLInputElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{props.children}</ChildContent>\n <Input ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<TextInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, children, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as TextInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {children}\n </TextInputCell>\n );\n});\n\nexport type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextInputCell = <T, V>(args: GetDataGridTextInputCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","setValue","blur","props","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","cell","getValue","children","rest"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC8C;AAACA;AAAoB;AAC5E;AAAM;AAACC;AAAWC;AAAKC;AAKrBC;AAAuB;;AAIvB;AAEA;AAEkBC;;AAKlBC;AAIaD;AAKK;AACfL;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAGzB;AACIC;AACDC;AACDC;AAGvBC;AACEV;AAAyB;AAMrB;AAA0D;AACpB;AAI9C;AAUE;AAAM;AAACW;AAAMC;AAAUR;AAAUS;AAAaC;AAK9ClB;AAQF;AAQU;AAACe;AACP;AAEA;AAKF;;;;;;"}
1
+ {"version":3,"file":"text.es.js","sources":["../../src/TableInputCell/text.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst Input = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;\n\ntype TTextInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextInputCell: TTextInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLInputElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLInputElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || isEnterCode) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLInputElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{props.children}</ChildContent>\n <Input ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<TextInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, children, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as TextInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {children}\n </TextInputCell>\n );\n});\n\nexport type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextInputCell = <T, V>(args: GetDataGridTextInputCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","setValue","blur","props","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","cell","getValue","children","rest"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC8C;AAACA;AAAoB;AAC5E;AAAM;AAACC;AAAWC;AAAKC;AAKrBC;AAAuB;AAIvB;AAEA;AAEkBC;AAKlBC;AAIaD;AAKK;AACfL;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAGzB;AACIC;AACDC;AACDC;AAGvBC;AACEV;AAAyB;AAMrB;AAA0D;AACpB;AAI9C;AAUE;AAAM;AAACW;AAAMC;AAAUR;AAAUS;AAAaC;AAK9ClB;AAQF;AAQU;AAACe;AACP;AAEA;AAKF;;;;;;"}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import { jsx as V, jsxs as s } from "@emotion/react/jsx-runtime";
3
- import m from "@emotion/styled/base";
4
- import { useState as F, useEffect as h } from "react";
5
- import J, { forwardRef as i } from "@join-x5/react-theme";
6
- import { TableCell as A, TableCellContent as Y } from "../TableCell/index.es.js";
7
- import { useTableCellTextInput as U, useDataGridInputCell as a } from "./hook.es.js";
8
- function N() {
2
+ import { jsx as d, jsxs as x } from "@emotion/react/jsx-runtime";
3
+ import R from "@emotion/styled/base";
4
+ import { useState as e, useEffect as s } from "react";
5
+ import F, { forwardRef as C } from "@join-x5/react-theme";
6
+ import { TableCell as h, TableCellContent as J } from "../TableCell/index.es.js";
7
+ import { useTableCellTextInput as A, useDataGridInputCell as Y } from "./hook.es.js";
8
+ function U() {
9
9
  return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
10
10
  }
11
- const y = /* @__PURE__ */ m("div", process.env.NODE_ENV === "production" ? {
11
+ const a = /* @__PURE__ */ R("div", process.env.NODE_ENV === "production" ? {
12
12
  target: "e1dalyc21"
13
13
  } : {
14
14
  target: "e1dalyc21",
@@ -19,65 +19,63 @@ const y = /* @__PURE__ */ m("div", process.env.NODE_ENV === "production" ? {
19
19
  } : {
20
20
  name: "1akleb8",
21
21
  styles: "min-height:100%;&[data-hidden]{visibility:hidden;pointer-events:none;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dGFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCK0IiLCJmaWxlIjoiL2hvbWUvc2FkeWtvdnNkL2pvaW4teDUvcGFja2FnZXMvZGF0YS1ncmlkL3NyYy9UYWJsZUlucHV0Q2VsbC90ZXh0YXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYmFzZVRoZW1lLCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuXG5pbXBvcnQge1RhYmxlQ2VsbCwgVGFibGVDZWxsQ29udGVudH0gZnJvbSAnLi4vVGFibGVDZWxsJztcblxuaW1wb3J0IHt1c2VEYXRhR3JpZElucHV0Q2VsbCwgdXNlVGFibGVDZWxsVGV4dElucHV0fSBmcm9tICcuL2hvb2snO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIElucHV0SFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtDZWxsIGFzIFJlYWN0VGFibGVDZWxsfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtdGFibGUnO1xuaW1wb3J0IHR5cGUge0ZSQywgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtEYXRhR3JpZFRhYmxlQ2VsbFByb3BzLCBUYWJsZUNlbGxQcm9wc30gZnJvbSAnLi4vVGFibGVDZWxsJztcbmltcG9ydCB0eXBlIHtDb2x1bW5EZWZUZW1wbGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENoaWxkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICZbZGF0YS1oaWRkZW5dIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFRleHRBcmVhID0gc3R5bGVkLnRleHRhcmVhYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHJlc2l6ZTogbm9uZTtcblxuICAke2Jhc2VUaGVtZS5zY3JvbGx9XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dEFyZWFJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBzdHJpbmcsIGU6IEZvY3VzRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHZvaWQ7XG59ICYgT21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAndmFsdWUnIHwgJ29uQ2hhbmdlJz47XG5cbnR5cGUgVFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPFxuICBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAge1xuICAgIGlucHV0UHJvcHM6IFRleHRBcmVhSW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhSW5wdXRDZWxsOiBUVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKCh7aW5wdXRQcm9wcywgLi4ucHJvcHN9LCBiYXNlUmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsUHJvcHMsIHJlZiwgaW5wdXRSZWZ9ID0gdXNlVGFibGVDZWxsVGV4dElucHV0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KHByb3BzLCBiYXNlUmVmKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGlucHV0UHJvcHMudmFsdWUgPz8gJycpO1xuXG4gIGNvbnN0IG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IGUgPT4ge1xuICAgIGNvbnN0IGlzRW50ZXJDb2RlID0gZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJztcblxuICAgIGlmIChlLmNvZGUgPT09ICdFc2NhcGUnIHx8IChpc0VudGVyQ29kZSAmJiBlLmN0cmxLZXkpKSB7XG4gICAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcbiAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcblxuICAgIGlucHV0UHJvcHMub25DaGFuZ2UodmFsdWUsIGUpO1xuICAgIGlucHV0UHJvcHMub25CbHVyPy4oZSk7XG4gICAgcmVmLmN1cnJlbnQ/LmJsdXIoKTtcbiAgfTtcblxuICBjb25zdCBpc0NoaWxkSGlkZGVuID0gcHJvcHMuaXNBY3RpdmUgPyB0cnVlIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgIC4uLmlucHV0UHJvcHMsXG5cbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleURvd24sXG4gICAgb25CbHVyLFxuXG4gICAgc2l6ZTogMCxcbiAgICAnZGF0YS1oaWRkZW4nOiBwcm9wcy5pc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IHByb3BzLmlzQWN0aXZlID8gdmFsdWUgOiBwcm9wcy5jaGlsZHJlbjtcblxuICBjb25zdCBjb250ZW50UHJvcHMgPSB7XG4gICAgaXNNdWx0aWxpbmU6IGNlbGxQcm9wcy5pc011bHRpbGluZSxcbiAgICB3aGl0ZVNwYWNlOiBjZWxsUHJvcHMud2hpdGVTcGFjZSxcbiAgICB3b3JkQnJlYWs6IGNlbGxQcm9wcy53b3JkQnJlYWssXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZShpbnB1dFByb3BzLnZhbHVlKTtcbiAgfSwgW2lucHV0UHJvcHMudmFsdWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZUNlbGwgey4uLmNlbGxQcm9wc30+XG4gICAgICA8VGFibGVDZWxsQ29udGVudCB7Li4uY29udGVudFByb3BzfT5cbiAgICAgICAgPENoaWxkQ29udGVudCBkYXRhLWhpZGRlbj17aXNDaGlsZEhpZGRlbn0+e2NvbnRlbnR9PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxUZXh0QXJlYSByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQgPSBEZWZhdWx0QW55LCBWID0gRGVmYXVsdEFueT4gPSB7XG4gIGdldFZhbHVlOiAoY2VsbDogUmVhY3RUYWJsZUNlbGw8VCwgVj4pID0+IHN0cmluZztcbiAgb25DaGFuZ2U6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPiwgbmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PFRleHRBcmVhSW5wdXRQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+ICZcbiAgRGF0YUdyaWRUYWJsZUNlbGxQcm9wczxULCBWPiAmXG4gIFByb3BzV2l0aENoaWxkcmVuO1xuXG50eXBlIFREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbDogVERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2VsbFByb3BzID0gdXNlRGF0YUdyaWRJbnB1dENlbGwoY2VsbCk7XG5cbiAgY29uc3QgY29udGVudCA9IChjZWxsLmdldFZhbHVlKCkgPz8gbnVsbCkgYXMgUmVhY3ROb2RlO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRBcmVhSW5wdXRQcm9wcztcbiAgaW5wdXRQcm9wcy52YWx1ZSA9IGdldFZhbHVlKGNlbGwpO1xuICBpbnB1dFByb3BzLm9uQ2hhbmdlID0gKG5ld1ZhbHVlLCBlKSA9PiBvbkNoYW5nZShjZWxsLCBuZXdWYWx1ZSwgZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dEFyZWFJbnB1dENlbGwgcmVmPXtyZWZ9IHsuLi5jZWxsUHJvcHN9IGlucHV0UHJvcHM9e2lucHV0UHJvcHN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UZXh0QXJlYUlucHV0Q2VsbD5cbiAgKTtcbn0pO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQsIFY+LFxuICAnY2VsbCcgfCAnY2hpbGRyZW4nXG4+O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbCA9IDxULCBWPihcbiAgYXJnczogR2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbEFyZ3M8VCwgVj5cbik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwga2V5PXtjZWxsLmlkfSBjZWxsPXtjZWxsfSB7Li4uYXJnc30+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9EYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsPlxuICAgICk7XG4gIH07XG59O1xuIl19 */",
22
- toString: N
23
- }), o = /* @__PURE__ */ m("textarea", process.env.NODE_ENV === "production" ? {
22
+ toString: U
23
+ }), N = /* @__PURE__ */ R("textarea", process.env.NODE_ENV === "production" ? {
24
24
  target: "e1dalyc20"
25
25
  } : {
26
26
  target: "e1dalyc20",
27
27
  label: "TextArea"
28
- })("position:absolute;top:0;left:0;width:100%;height:100%;min-width:10px;padding:0;background-color:transparent;border:none;outline:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;resize:none;", J.scroll, " &[data-hidden]{visibility:hidden;pointer-events:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dGFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDZ0MiLCJmaWxlIjoiL2hvbWUvc2FkeWtvdnNkL2pvaW4teDUvcGFja2FnZXMvZGF0YS1ncmlkL3NyYy9UYWJsZUlucHV0Q2VsbC90ZXh0YXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYmFzZVRoZW1lLCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuXG5pbXBvcnQge1RhYmxlQ2VsbCwgVGFibGVDZWxsQ29udGVudH0gZnJvbSAnLi4vVGFibGVDZWxsJztcblxuaW1wb3J0IHt1c2VEYXRhR3JpZElucHV0Q2VsbCwgdXNlVGFibGVDZWxsVGV4dElucHV0fSBmcm9tICcuL2hvb2snO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIElucHV0SFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtDZWxsIGFzIFJlYWN0VGFibGVDZWxsfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtdGFibGUnO1xuaW1wb3J0IHR5cGUge0ZSQywgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtEYXRhR3JpZFRhYmxlQ2VsbFByb3BzLCBUYWJsZUNlbGxQcm9wc30gZnJvbSAnLi4vVGFibGVDZWxsJztcbmltcG9ydCB0eXBlIHtDb2x1bW5EZWZUZW1wbGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENoaWxkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICZbZGF0YS1oaWRkZW5dIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFRleHRBcmVhID0gc3R5bGVkLnRleHRhcmVhYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHJlc2l6ZTogbm9uZTtcblxuICAke2Jhc2VUaGVtZS5zY3JvbGx9XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dEFyZWFJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBzdHJpbmcsIGU6IEZvY3VzRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHZvaWQ7XG59ICYgT21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAndmFsdWUnIHwgJ29uQ2hhbmdlJz47XG5cbnR5cGUgVFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPFxuICBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAge1xuICAgIGlucHV0UHJvcHM6IFRleHRBcmVhSW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhSW5wdXRDZWxsOiBUVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKCh7aW5wdXRQcm9wcywgLi4ucHJvcHN9LCBiYXNlUmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsUHJvcHMsIHJlZiwgaW5wdXRSZWZ9ID0gdXNlVGFibGVDZWxsVGV4dElucHV0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KHByb3BzLCBiYXNlUmVmKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGlucHV0UHJvcHMudmFsdWUgPz8gJycpO1xuXG4gIGNvbnN0IG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IGUgPT4ge1xuICAgIGNvbnN0IGlzRW50ZXJDb2RlID0gZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJztcblxuICAgIGlmIChlLmNvZGUgPT09ICdFc2NhcGUnIHx8IChpc0VudGVyQ29kZSAmJiBlLmN0cmxLZXkpKSB7XG4gICAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcbiAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcblxuICAgIGlucHV0UHJvcHMub25DaGFuZ2UodmFsdWUsIGUpO1xuICAgIGlucHV0UHJvcHMub25CbHVyPy4oZSk7XG4gICAgcmVmLmN1cnJlbnQ/LmJsdXIoKTtcbiAgfTtcblxuICBjb25zdCBpc0NoaWxkSGlkZGVuID0gcHJvcHMuaXNBY3RpdmUgPyB0cnVlIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgIC4uLmlucHV0UHJvcHMsXG5cbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleURvd24sXG4gICAgb25CbHVyLFxuXG4gICAgc2l6ZTogMCxcbiAgICAnZGF0YS1oaWRkZW4nOiBwcm9wcy5pc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IHByb3BzLmlzQWN0aXZlID8gdmFsdWUgOiBwcm9wcy5jaGlsZHJlbjtcblxuICBjb25zdCBjb250ZW50UHJvcHMgPSB7XG4gICAgaXNNdWx0aWxpbmU6IGNlbGxQcm9wcy5pc011bHRpbGluZSxcbiAgICB3aGl0ZVNwYWNlOiBjZWxsUHJvcHMud2hpdGVTcGFjZSxcbiAgICB3b3JkQnJlYWs6IGNlbGxQcm9wcy53b3JkQnJlYWssXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZShpbnB1dFByb3BzLnZhbHVlKTtcbiAgfSwgW2lucHV0UHJvcHMudmFsdWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZUNlbGwgey4uLmNlbGxQcm9wc30+XG4gICAgICA8VGFibGVDZWxsQ29udGVudCB7Li4uY29udGVudFByb3BzfT5cbiAgICAgICAgPENoaWxkQ29udGVudCBkYXRhLWhpZGRlbj17aXNDaGlsZEhpZGRlbn0+e2NvbnRlbnR9PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxUZXh0QXJlYSByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQgPSBEZWZhdWx0QW55LCBWID0gRGVmYXVsdEFueT4gPSB7XG4gIGdldFZhbHVlOiAoY2VsbDogUmVhY3RUYWJsZUNlbGw8VCwgVj4pID0+IHN0cmluZztcbiAgb25DaGFuZ2U6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPiwgbmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PFRleHRBcmVhSW5wdXRQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+ICZcbiAgRGF0YUdyaWRUYWJsZUNlbGxQcm9wczxULCBWPiAmXG4gIFByb3BzV2l0aENoaWxkcmVuO1xuXG50eXBlIFREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbDogVERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2VsbFByb3BzID0gdXNlRGF0YUdyaWRJbnB1dENlbGwoY2VsbCk7XG5cbiAgY29uc3QgY29udGVudCA9IChjZWxsLmdldFZhbHVlKCkgPz8gbnVsbCkgYXMgUmVhY3ROb2RlO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRBcmVhSW5wdXRQcm9wcztcbiAgaW5wdXRQcm9wcy52YWx1ZSA9IGdldFZhbHVlKGNlbGwpO1xuICBpbnB1dFByb3BzLm9uQ2hhbmdlID0gKG5ld1ZhbHVlLCBlKSA9PiBvbkNoYW5nZShjZWxsLCBuZXdWYWx1ZSwgZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dEFyZWFJbnB1dENlbGwgcmVmPXtyZWZ9IHsuLi5jZWxsUHJvcHN9IGlucHV0UHJvcHM9e2lucHV0UHJvcHN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UZXh0QXJlYUlucHV0Q2VsbD5cbiAgKTtcbn0pO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQsIFY+LFxuICAnY2VsbCcgfCAnY2hpbGRyZW4nXG4+O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbCA9IDxULCBWPihcbiAgYXJnczogR2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbEFyZ3M8VCwgVj5cbik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwga2V5PXtjZWxsLmlkfSBjZWxsPXtjZWxsfSB7Li4uYXJnc30+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9EYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsPlxuICAgICk7XG4gIH07XG59O1xuIl19 */")), v = i(({
28
+ })("position:absolute;top:0;left:0;width:100%;height:100%;min-width:10px;padding:0;background-color:transparent;border:none;outline:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;resize:none;", F.scroll, " &[data-hidden]{visibility:hidden;pointer-events:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVJbnB1dENlbGwvdGV4dGFyZWEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDZ0MiLCJmaWxlIjoiL2hvbWUvc2FkeWtvdnNkL2pvaW4teDUvcGFja2FnZXMvZGF0YS1ncmlkL3NyYy9UYWJsZUlucHV0Q2VsbC90ZXh0YXJlYS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYmFzZVRoZW1lLCB7Zm9yd2FyZFJlZn0gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuXG5pbXBvcnQge1RhYmxlQ2VsbCwgVGFibGVDZWxsQ29udGVudH0gZnJvbSAnLi4vVGFibGVDZWxsJztcblxuaW1wb3J0IHt1c2VEYXRhR3JpZElucHV0Q2VsbCwgdXNlVGFibGVDZWxsVGV4dElucHV0fSBmcm9tICcuL2hvb2snO1xuXG5pbXBvcnQgdHlwZSB7XG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgRm9jdXNFdmVudCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIElucHV0SFRNTEF0dHJpYnV0ZXMsXG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtDZWxsIGFzIFJlYWN0VGFibGVDZWxsfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtdGFibGUnO1xuaW1wb3J0IHR5cGUge0ZSQywgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtEYXRhR3JpZFRhYmxlQ2VsbFByb3BzLCBUYWJsZUNlbGxQcm9wc30gZnJvbSAnLi4vVGFibGVDZWxsJztcbmltcG9ydCB0eXBlIHtDb2x1bW5EZWZUZW1wbGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENoaWxkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICZbZGF0YS1oaWRkZW5dIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFRleHRBcmVhID0gc3R5bGVkLnRleHRhcmVhYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHJlc2l6ZTogbm9uZTtcblxuICAke2Jhc2VUaGVtZS5zY3JvbGx9XG5cbiAgJltkYXRhLWhpZGRlbl0ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgRGVmYXVsdEFueSA9IGFueTtcblxuZXhwb3J0IHR5cGUgVGV4dEFyZWFJbnB1dFByb3BzID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBzdHJpbmcsIGU6IEZvY3VzRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pID0+IHZvaWQ7XG59ICYgT21pdDxJbnB1dEhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+LCAndmFsdWUnIHwgJ29uQ2hhbmdlJz47XG5cbnR5cGUgVFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPFxuICBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAge1xuICAgIGlucHV0UHJvcHM6IFRleHRBcmVhSW5wdXRQcm9wcztcbiAgfSAmIE9taXQ8VGFibGVDZWxsUHJvcHMsICd2YWx1ZScgfCAnb25DaGFuZ2UnPlxuPjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhSW5wdXRDZWxsOiBUVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKCh7aW5wdXRQcm9wcywgLi4ucHJvcHN9LCBiYXNlUmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsUHJvcHMsIHJlZiwgaW5wdXRSZWZ9ID0gdXNlVGFibGVDZWxsVGV4dElucHV0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KHByb3BzLCBiYXNlUmVmKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGlucHV0UHJvcHMudmFsdWUgPz8gJycpO1xuXG4gIGNvbnN0IG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IGUgPT4ge1xuICAgIGNvbnN0IGlzRW50ZXJDb2RlID0gZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJztcblxuICAgIGlmIChlLmNvZGUgPT09ICdFc2NhcGUnIHx8IChpc0VudGVyQ29kZSAmJiBlLmN0cmxLZXkpKSB7XG4gICAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcbiAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSBlID0+IHtcbiAgICBwcm9wcy5zZXRJc0FjdGl2ZT8uKGZhbHNlKTtcblxuICAgIGlucHV0UHJvcHMub25DaGFuZ2UodmFsdWUsIGUpO1xuICAgIGlucHV0UHJvcHMub25CbHVyPy4oZSk7XG4gICAgcmVmLmN1cnJlbnQ/LmJsdXIoKTtcbiAgfTtcblxuICBjb25zdCBpc0NoaWxkSGlkZGVuID0gcHJvcHMuaXNBY3RpdmUgPyB0cnVlIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHJlc3VsdFByb3BzID0ge1xuICAgIC4uLmlucHV0UHJvcHMsXG5cbiAgICB2YWx1ZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleURvd24sXG4gICAgb25CbHVyLFxuXG4gICAgc2l6ZTogMCxcbiAgICAnZGF0YS1oaWRkZW4nOiBwcm9wcy5pc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IHRydWUsXG4gIH07XG5cbiAgY29uc3QgY29udGVudCA9IHByb3BzLmlzQWN0aXZlID8gdmFsdWUgOiBwcm9wcy5jaGlsZHJlbjtcblxuICBjb25zdCBjb250ZW50UHJvcHMgPSB7XG4gICAgaXNNdWx0aWxpbmU6IGNlbGxQcm9wcy5pc011bHRpbGluZSxcbiAgICB3aGl0ZVNwYWNlOiBjZWxsUHJvcHMud2hpdGVTcGFjZSxcbiAgICB3b3JkQnJlYWs6IGNlbGxQcm9wcy53b3JkQnJlYWssXG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZShpbnB1dFByb3BzLnZhbHVlKTtcbiAgfSwgW2lucHV0UHJvcHMudmFsdWVdKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZUNlbGwgey4uLmNlbGxQcm9wc30+XG4gICAgICA8VGFibGVDZWxsQ29udGVudCB7Li4uY29udGVudFByb3BzfT5cbiAgICAgICAgPENoaWxkQ29udGVudCBkYXRhLWhpZGRlbj17aXNDaGlsZEhpZGRlbn0+e2NvbnRlbnR9PC9DaGlsZENvbnRlbnQ+XG4gICAgICAgIDxUZXh0QXJlYSByZWY9e2lucHV0UmVmfSB7Li4ucmVzdWx0UHJvcHN9IC8+XG4gICAgICA8L1RhYmxlQ2VsbENvbnRlbnQ+XG4gICAgPC9UYWJsZUNlbGw+XG4gICk7XG59KTtcblxuZXhwb3J0IHR5cGUgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQgPSBEZWZhdWx0QW55LCBWID0gRGVmYXVsdEFueT4gPSB7XG4gIGdldFZhbHVlOiAoY2VsbDogUmVhY3RUYWJsZUNlbGw8VCwgVj4pID0+IHN0cmluZztcbiAgb25DaGFuZ2U6IChjZWxsOiBSZWFjdFRhYmxlQ2VsbDxULCBWPiwgbmV3VmFsdWU6IHN0cmluZywgZTogRm9jdXNFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50PikgPT4gdm9pZDtcbn0gJiBPbWl0PFRleHRBcmVhSW5wdXRQcm9wcywgJ3ZhbHVlJyB8ICdvbkNoYW5nZSc+ICZcbiAgRGF0YUdyaWRUYWJsZUNlbGxQcm9wczxULCBWPiAmXG4gIFByb3BzV2l0aENoaWxkcmVuO1xuXG50eXBlIFREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsID0gRlJDPEhUTUxUYWJsZUNlbGxFbGVtZW50LCBEYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbDogVERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtjZWxsLCBnZXRWYWx1ZSwgb25DaGFuZ2UsIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2VsbFByb3BzID0gdXNlRGF0YUdyaWRJbnB1dENlbGwoY2VsbCk7XG5cbiAgY29uc3QgY29udGVudCA9IChjZWxsLmdldFZhbHVlKCkgPz8gbnVsbCkgYXMgUmVhY3ROb2RlO1xuXG4gIGNvbnN0IGlucHV0UHJvcHMgPSByZXN0IGFzIFRleHRBcmVhSW5wdXRQcm9wcztcbiAgaW5wdXRQcm9wcy52YWx1ZSA9IGdldFZhbHVlKGNlbGwpO1xuICBpbnB1dFByb3BzLm9uQ2hhbmdlID0gKG5ld1ZhbHVlLCBlKSA9PiBvbkNoYW5nZShjZWxsLCBuZXdWYWx1ZSwgZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dEFyZWFJbnB1dENlbGwgcmVmPXtyZWZ9IHsuLi5jZWxsUHJvcHN9IGlucHV0UHJvcHM9e2lucHV0UHJvcHN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UZXh0QXJlYUlucHV0Q2VsbD5cbiAgKTtcbn0pO1xuXG5leHBvcnQgdHlwZSBHZXREYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsQXJnczxUID0gRGVmYXVsdEFueSwgViA9IERlZmF1bHRBbnk+ID0gT21pdDxcbiAgRGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbFByb3BzPFQsIFY+LFxuICAnY2VsbCcgfCAnY2hpbGRyZW4nXG4+O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbCA9IDxULCBWPihcbiAgYXJnczogR2V0RGF0YUdyaWRUZXh0QXJlYUlucHV0Q2VsbEFyZ3M8VCwgVj5cbik6IENvbHVtbkRlZlRlbXBsYXRlPFQsIFY+ID0+IHtcbiAgcmV0dXJuICh7Y2VsbH0pID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gKGNlbGwuZ2V0VmFsdWUoKSA/PyBudWxsKSBhcyBSZWFjdE5vZGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFHcmlkVGV4dEFyZWFJbnB1dENlbGwga2V5PXtjZWxsLmlkfSBjZWxsPXtjZWxsfSB7Li4uYXJnc30+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9EYXRhR3JpZFRleHRBcmVhSW5wdXRDZWxsPlxuICAgICk7XG4gIH07XG59O1xuIl19 */")), o = C(({
29
29
  inputProps: c,
30
30
  ...b
31
31
  }, G) => {
32
32
  const {
33
33
  cellProps: Z,
34
- ref: X,
35
- inputRef: R
36
- } = U(b, G), [I, W] = F(c.value ?? ""), g = (l) => {
37
- W(l.target.value);
34
+ ref: W,
35
+ inputRef: u
36
+ } = A(b, G), [I, V] = e(c.value ?? ""), g = (l) => {
37
+ V(l.target.value);
38
+ }, X = (l) => {
39
+ const H = l.code === "Enter" || l.code === "NumpadEnter";
40
+ (l.code === "Escape" || H && l.ctrlKey) && (b.setIsActive?.(!1), l.currentTarget.blur());
38
41
  }, n = (l) => {
39
- var d;
40
- const u = l.code === "Enter" || l.code === "NumpadEnter";
41
- (l.code === "Escape" || u && l.ctrlKey) && ((d = b.setIsActive) == null || d.call(b, !1), l.currentTarget.blur());
42
- }, C = (l) => {
43
- var u, d, B;
44
- (u = b.setIsActive) == null || u.call(b, !1), c.onChange(I, l), (d = c.onBlur) == null || d.call(c, l), (B = X.current) == null || B.blur();
45
- }, H = b.isActive ? !0 : void 0, t = {
42
+ b.setIsActive?.(!1), c.onChange(I, l), c.onBlur?.(l), W.current?.blur();
43
+ }, B = b.isActive ? !0 : void 0, m = {
46
44
  ...c,
47
45
  value: I,
48
46
  onChange: g,
49
- onKeyDown: n,
50
- onBlur: C,
47
+ onKeyDown: X,
48
+ onBlur: n,
51
49
  size: 0,
52
50
  "data-hidden": b.isActive ? void 0 : !0
53
- }, x = b.isActive ? I : b.children, e = {
51
+ }, i = b.isActive ? I : b.children, t = {
54
52
  isMultiline: Z.isMultiline,
55
53
  whiteSpace: Z.whiteSpace,
56
54
  wordBreak: Z.wordBreak
57
55
  };
58
- return h(() => {
59
- W(c.value);
60
- }, [c.value]), /* @__PURE__ */ V(A, { ...Z, children: /* @__PURE__ */ s(Y, { ...e, children: [
61
- /* @__PURE__ */ V(y, { "data-hidden": H, children: x }),
62
- /* @__PURE__ */ V(o, { ref: R, ...t })
56
+ return s(() => {
57
+ V(c.value);
58
+ }, [c.value]), /* @__PURE__ */ d(h, { ...Z, children: /* @__PURE__ */ x(J, { ...t, children: [
59
+ /* @__PURE__ */ d(a, { "data-hidden": B, children: i }),
60
+ /* @__PURE__ */ d(N, { ref: u, ...m })
63
61
  ] }) });
64
- }), D = i((c, b) => {
62
+ }), y = C((c, b) => {
65
63
  const {
66
64
  cell: G,
67
65
  getValue: Z,
68
- onChange: X,
69
- ...R
70
- } = c, I = a(G), W = G.getValue() ?? null, g = R;
71
- return g.value = Z(G), g.onChange = (n, C) => X(G, n, C), /* @__PURE__ */ V(v, { ref: b, ...I, inputProps: g, children: W });
72
- }), p = (c) => ({
66
+ onChange: W,
67
+ ...u
68
+ } = c, I = Y(G), V = G.getValue() ?? null, g = u;
69
+ return g.value = Z(G), g.onChange = (X, n) => W(G, X, n), /* @__PURE__ */ d(o, { ref: b, ...I, inputProps: g, children: V });
70
+ }), E = (c) => ({
73
71
  cell: b
74
72
  }) => {
75
73
  const G = b.getValue() ?? null;
76
- return /* @__PURE__ */ V(D, { cell: b, ...c, children: G }, b.id);
74
+ return /* @__PURE__ */ d(y, { cell: b, ...c, children: G }, b.id);
77
75
  };
78
76
  export {
79
- D as DataGridTextAreaInputCell,
80
- v as TextAreaInputCell,
81
- p as getDataGridTextAreaInputCell
77
+ y as DataGridTextAreaInputCell,
78
+ o as TextAreaInputCell,
79
+ E as getDataGridTextAreaInputCell
82
80
  };
83
81
  //# sourceMappingURL=textarea.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.es.js","sources":["../../src/TableInputCell/textarea.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n min-height: 100%;\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst TextArea = styled.textarea`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n resize: none;\n\n ${baseTheme.scroll}\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextAreaInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;\n\ntype TTextAreaInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextAreaInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextAreaInputCell: TTextAreaInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLTextAreaElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTextAreaElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || (isEnterCode && e.ctrlKey)) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLTextAreaElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const content = props.isActive ? value : props.children;\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{content}</ChildContent>\n <TextArea ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<TextAreaInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\ntype TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;\n\nexport const DataGridTextAreaInputCell: TDataGridTextAreaInputCell = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const content = (cell.getValue() ?? null) as ReactNode;\n\n const inputProps = rest as TextAreaInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextAreaInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {content}\n </TextAreaInputCell>\n );\n});\n\nexport type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextAreaInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextAreaInputCell = <T, V>(\n args: GetDataGridTextAreaInputCellArgs<T, V>\n): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextAreaInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextAreaInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","setValue","blur","props","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","cell","getValue","rest"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQJ;AAAA;AAAA;AAAA;AAAA;AAwCmD;AAACA;AAAoB;AACpF;AAAM;AAACC;AAAWC;AAAKC;AAKrBC;AAAuB;;AAIvB;AAEA;AAEkBC;;AAKlBC;AAIaD;AAKK;AACfL;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAKzB;AACIC;AACDC;AACDC;AAGvBC;AACEV;AAAyB;AAMrB;AAAmD;AACV;AAIjD;AAYE;AAAM;AAACW;AAAMC;AAAUR;AAAaS;AAOpCjB;AAQF;AAUU;AAACe;AACP;AAEA;AAKF;;;;;;"}
1
+ {"version":3,"file":"textarea.es.js","sources":["../../src/TableInputCell/textarea.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n min-height: 100%;\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst TextArea = styled.textarea`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n resize: none;\n\n ${baseTheme.scroll}\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextAreaInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;\n\ntype TTextAreaInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextAreaInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextAreaInputCell: TTextAreaInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLTextAreaElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTextAreaElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || (isEnterCode && e.ctrlKey)) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLTextAreaElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const content = props.isActive ? value : props.children;\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{content}</ChildContent>\n <TextArea ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<TextAreaInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\ntype TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;\n\nexport const DataGridTextAreaInputCell: TDataGridTextAreaInputCell = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const content = (cell.getValue() ?? null) as ReactNode;\n\n const inputProps = rest as TextAreaInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextAreaInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {content}\n </TextAreaInputCell>\n );\n});\n\nexport type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextAreaInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextAreaInputCell = <T, V>(\n args: GetDataGridTextAreaInputCellArgs<T, V>\n): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextAreaInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextAreaInputCell>\n );\n };\n};\n"],"names":["inputProps","cellProps","ref","inputRef","setValue","blur","props","value","onChange","onKeyDown","onBlur","isMultiline","whiteSpace","wordBreak","useEffect","cell","getValue","rest"],"mappings":";;;;;;;AAAa;AAAA;AAAA;AAwBb;AAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQJ;AAAA;AAAA;AAAA;AAAA;AAwCmD;AAACA;AAAoB;AACpF;AAAM;AAACC;AAAWC;AAAKC;AAKrBC;AAAuB;AAIvB;AAEA;AAEkBC;AAKlBC;AAIaD;AAKK;AACfL;AAEHO;AACAC;AACAC;AACAC;AAEM;AACsC;AAKzB;AACIC;AACDC;AACDC;AAGvBC;AACEV;AAAyB;AAMrB;AAAmD;AACV;AAIjD;AAYE;AAAM;AAACW;AAAMC;AAAUR;AAAaS;AAOpCjB;AAQF;AAUU;AAACe;AACP;AAEA;AAKF;;;;;;"}
@@ -1,5 +1,4 @@
1
- import { FRC } from '@join-x5/react-theme';
1
+ import { HTMLAttributes } from 'react';
2
2
  import { GetDataGridTableRow } from '../types';
3
- import { TableRowProps } from './types';
4
- export declare const TableRow: FRC<HTMLTableRowElement, TableRowProps>;
3
+ export type TableRowProps = HTMLAttributes<HTMLTableRowElement>;
5
4
  export declare const getDataGridTableRow: GetDataGridTableRow;
@@ -1,25 +1,24 @@
1
1
  "use client";
2
- import { jsx as t } from "@emotion/react/jsx-runtime";
3
- import G from "@emotion/styled/base";
4
- import { forwardRef as d } from "@join-x5/react-theme";
5
- import { getDataGridTableCell as i } from "../TableCell/index.es.js";
6
- const I = /* @__PURE__ */ G("tr", process.env.NODE_ENV === "production" ? {
2
+ import { jsx as l } from "@emotion/react/jsx-runtime";
3
+ import I from "@emotion/styled/base";
4
+ import { forwardRef as m } from "@join-x5/react-theme";
5
+ import { getDataGridTableCell as Z } from "../TableCell/index.es.js";
6
+ const g = /* @__PURE__ */ I("tr", process.env.NODE_ENV === "production" ? {
7
7
  target: "ewtrhmz0"
8
8
  } : {
9
9
  target: "ewtrhmz0",
10
- label: "Container"
11
- })(":hover [data-cell]{:not([data-focused], [data-active], [data-disabled]) [data-edit-icon]{visibility:visible;}:not([data-focused], [data-active]):not(:focus){", (c) => ({
12
- "--background-color": c.theme.colors.grey[10],
13
- "--border-color": c.theme.colors.grey[20]
14
- }), ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVSb3cvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWEyQiIsImZpbGUiOiIvaG9tZS9zYWR5a292c2Qvam9pbi14NS9wYWNrYWdlcy9kYXRhLWdyaWQvc3JjL1RhYmxlUm93L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQge2ZvcndhcmRSZWZ9IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcblxuaW1wb3J0IHtnZXREYXRhR3JpZFRhYmxlQ2VsbH0gZnJvbSAnVGFibGVDZWxsJztcblxuaW1wb3J0IHR5cGUge0ZSQ30gZnJvbSAnQGpvaW4teDUvcmVhY3QtdGhlbWUnO1xuaW1wb3J0IHR5cGUge1Jvd30gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXRhYmxlJztcbmltcG9ydCB0eXBlIHtHZXREYXRhR3JpZFRhYmxlUm93fSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VGFibGVSb3dQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC50cmBcbiAgOmhvdmVyIFtkYXRhLWNlbGxdIHtcbiAgICA6bm90KFtkYXRhLWZvY3VzZWRdLCBbZGF0YS1hY3RpdmVdLCBbZGF0YS1kaXNhYmxlZF0pIFtkYXRhLWVkaXQtaWNvbl0ge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICA6bm90KFtkYXRhLWZvY3VzZWRdLCBbZGF0YS1hY3RpdmVdKTpub3QoOmZvY3VzKSB7XG4gICAgICAke3Byb3BzID0+ICh7XG4gICAgICAgICctLWJhY2tncm91bmQtY29sb3InOiBwcm9wcy50aGVtZS5jb2xvcnMuZ3JleVsxMF0sXG4gICAgICAgICctLWJvcmRlci1jb2xvcic6IHByb3BzLnRoZW1lLmNvbG9ycy5ncmV5WzIwXSxcbiAgICAgIH0pfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFRhYmxlUm93OiBGUkM8SFRNTFRhYmxlUm93RWxlbWVudCwgVGFibGVSb3dQcm9wcz4gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiA8Q29udGFpbmVyIHJlZj17cmVmfSB7Li4ucHJvcHN9IC8+O1xufSk7XG5cbnR5cGUgRGF0YUdyaWRUYWJsZVJvd1Byb3BzID0ge3JvdzogUm93PHVua25vd24+fSAmIFRhYmxlUm93UHJvcHM7XG5cbmNvbnN0IERhdGFHcmlkVGFibGVSb3c6IFJlYWN0LkZDPERhdGFHcmlkVGFibGVSb3dQcm9wcz4gPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtyb3csIC4uLnJlc3R9ID0gcHJvcHM7XG5cbiAgY29uc3QgY29udGVudCA9IHJvdy5nZXRWaXNpYmxlQ2VsbHMoKS5tYXAoZ2V0RGF0YUdyaWRUYWJsZUNlbGwpO1xuXG4gIHJldHVybiA8VGFibGVSb3cgey4uLnJlc3R9Pntjb250ZW50fTwvVGFibGVSb3c+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGFHcmlkVGFibGVSb3c6IEdldERhdGFHcmlkVGFibGVSb3cgPSByb3cgPT4ge1xuICByZXR1cm4gPERhdGFHcmlkVGFibGVSb3cga2V5PXtyb3cuaWR9IHJvdz17cm93fSAvPjtcbn07XG4iXX0= */")), e = d((c, b) => /* @__PURE__ */ t(I, { ref: b, ...c })), a = (c) => {
10
+ label: "TableRow"
11
+ })(":hover [data-cell]{:not([data-focused], [data-active], [data-disabled]) [data-edit-icon]{visibility:visible;}:not([data-focused], [data-active]):not(:focus){", (b) => ({
12
+ "--background-color": b.theme.colors.grey[10],
13
+ "--border-color": b.theme.colors.grey[20]
14
+ }), ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3NhZHlrb3ZzZC9qb2luLXg1L3BhY2thZ2VzL2RhdGEtZ3JpZC9zcmMvVGFibGVSb3cvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWMwQiIsImZpbGUiOiIvaG9tZS9zYWR5a292c2Qvam9pbi14NS9wYWNrYWdlcy9kYXRhLWdyaWQvc3JjL1RhYmxlUm93L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHtmb3J3YXJkUmVmfSBmcm9tICdAam9pbi14NS9yZWFjdC10aGVtZSc7XG5cbmltcG9ydCB7Z2V0RGF0YUdyaWRUYWJsZUNlbGx9IGZyb20gJ1RhYmxlQ2VsbCc7XG5cbmltcG9ydCB0eXBlIHtIVE1MQXR0cmlidXRlc30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge1Jvd30gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXRhYmxlJztcbmltcG9ydCB0eXBlIHtGUkN9IGZyb20gJ0Bqb2luLXg1L3JlYWN0LXRoZW1lJztcbmltcG9ydCB0eXBlIHtHZXREYXRhR3JpZFRhYmxlUm93fSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFRhYmxlUm93UHJvcHMgPSBIVE1MQXR0cmlidXRlczxIVE1MVGFibGVSb3dFbGVtZW50PjtcblxuY29uc3QgVGFibGVSb3cgPSBzdHlsZWQudHJgXG4gIDpob3ZlciBbZGF0YS1jZWxsXSB7XG4gICAgOm5vdChbZGF0YS1mb2N1c2VkXSwgW2RhdGEtYWN0aXZlXSwgW2RhdGEtZGlzYWJsZWRdKSBbZGF0YS1lZGl0LWljb25dIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgOm5vdChbZGF0YS1mb2N1c2VkXSwgW2RhdGEtYWN0aXZlXSk6bm90KDpmb2N1cykge1xuICAgICAgJHtwcm9wcyA9PiAoe1xuICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogcHJvcHMudGhlbWUuY29sb3JzLmdyZXlbMTBdLFxuICAgICAgICAnLS1ib3JkZXItY29sb3InOiBwcm9wcy50aGVtZS5jb2xvcnMuZ3JleVsyMF0sXG4gICAgICB9KX1cbiAgICB9XG4gIH1cbmA7XG5cbnR5cGUgRGF0YUdyaWRUYWJsZVJvd1Byb3BzID0ge3JvdzogUm93PHVua25vd24+fSAmIFRhYmxlUm93UHJvcHM7XG5cbmNvbnN0IERhdGFHcmlkVGFibGVSb3c6IEZSQzxIVE1MVGFibGVSb3dFbGVtZW50LCBEYXRhR3JpZFRhYmxlUm93UHJvcHM+ID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7cm93LCAuLi5yZXN0fSA9IHByb3BzO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSByb3cuZ2V0VmlzaWJsZUNlbGxzKCkubWFwKGdldERhdGFHcmlkVGFibGVDZWxsKTtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZVJvdyByZWY9e3JlZn0gey4uLnJlc3R9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9UYWJsZVJvdz5cbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YUdyaWRUYWJsZVJvdzogR2V0RGF0YUdyaWRUYWJsZVJvdyA9IChyb3csIHByb3BzKSA9PiAoXG4gIDxEYXRhR3JpZFRhYmxlUm93IGtleT17cm93LmlkfSByb3c9e3Jvd30gey4uLnByb3BzfSAvPlxuKTtcbiJdfQ== */")), e = m((b, c) => {
15
15
  const {
16
- row: b,
17
- ...l
18
- } = c, m = b.getVisibleCells().map(i);
19
- return /* @__PURE__ */ t(e, { ...l, children: m });
20
- }, V = (c) => /* @__PURE__ */ t(a, { row: c }, c.id);
16
+ row: t,
17
+ ...d
18
+ } = b, G = t.getVisibleCells().map(Z);
19
+ return /* @__PURE__ */ l(g, { ref: c, ...d, children: G });
20
+ }), W = (b, c) => /* @__PURE__ */ l(e, { row: b, ...c }, b.id);
21
21
  export {
22
- e as TableRow,
23
- V as getDataGridTableRow
22
+ W as getDataGridTableRow
24
23
  };
25
24
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../src/TableRow/index.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {Row} from '@tanstack/react-table';\nimport type {GetDataGridTableRow} from '../types';\nimport type {TableRowProps} from './types';\n\nconst Container = styled.tr`\n :hover [data-cell] {\n :not([data-focused], [data-active], [data-disabled]) [data-edit-icon] {\n visibility: visible;\n }\n\n :not([data-focused], [data-active]):not(:focus) {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n }\n`;\n\nexport const TableRow: FRC<HTMLTableRowElement, TableRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: React.FC<DataGridTableRowProps> = props => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return <TableRow {...rest}>{content}</TableRow>;\n};\n\nexport const getDataGridTableRow: GetDataGridTableRow = row => {\n return <DataGridTableRow key={row.id} row={row} />;\n};\n"],"names":["row","rest"],"mappings":";;;;;AAaA;AAAe;AAAA;AAAA;AAAA;AAAA;AAOG;AACsC;AAElD;AAYJ;AAAM;AAACA;AAAQC;AAIf;AACF;;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../../src/TableRow/index.tsx"],"sourcesContent":["'use client';\n\nimport styled from '@emotion/styled';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {HTMLAttributes} from 'react';\nimport type {Row} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {GetDataGridTableRow} from '../types';\n\nexport type TableRowProps = HTMLAttributes<HTMLTableRowElement>;\n\nconst TableRow = styled.tr`\n :hover [data-cell] {\n :not([data-focused], [data-active], [data-disabled]) [data-edit-icon] {\n visibility: visible;\n }\n\n :not([data-focused], [data-active]):not(:focus) {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n }\n`;\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: FRC<HTMLTableRowElement, DataGridTableRowProps> = forwardRef((props, ref) => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return (\n <TableRow ref={ref} {...rest}>\n {content}\n </TableRow>\n );\n});\n\nexport const getDataGridTableRow: GetDataGridTableRow = (row, props) => (\n <DataGridTableRow key={row.id} row={row} {...props} />\n);\n"],"names":["row","rest"],"mappings":";;;;;AAcA;AAAc;AAAA;AAAA;AAAA;AAAA;AAOI;AACsC;AAElD;AAQJ;AAAM;AAACA;AAAQC;AAIf;AAKF;;;;"}
package/dist/hook.es.js CHANGED
@@ -1,23 +1,20 @@
1
1
  "use client";
2
- import { useState as u, useMemo as N } from "react";
3
- import { useUpdateEffect as V } from "@join-x5/react-theme";
4
- import { ColumnArea as h } from "@join-x5/react-data-grid-settings";
5
- const y = (r) => !r || !r.length ? {} : r.reduce((n, i) => (n[i.id] = i.isVisible, n), {}), O = (r) => !r || !r.length ? [] : r.sort((n, i) => n.sort - i.sort).map((n) => String(n.id)), s = (r) => !r || !r.length ? {} : r.reduce((n, i) => {
6
- var t, o;
7
- return i.area === h.FixedLeft ? (n.left ?? (n.left = []), (t = n.left) == null || t.push(String(i.id))) : i.area === h.FixedRight && (n.right ?? (n.right = []), (o = n.right) == null || o.push(String(i.id))), n;
8
- }, {}), w = (r, n) => {
9
- const [i, t] = u(y(r)), [o, S] = u(O(r)), [f, C] = u(s(r)), l = n == null ? void 0 : n.state, J = N(() => ({
2
+ import { useState as o, useMemo as p } from "react";
3
+ import { useUpdateEffect as C } from "@join-x5/react-theme";
4
+ import { ColumnArea as c } from "@join-x5/react-data-grid-settings";
5
+ const d = (r) => !r || !r.length ? {} : r.reduce((n, i) => (n[i.id] = i.isVisible, n), {}), g = (r) => !r || !r.length ? [] : r.sort((n, i) => n.sort - i.sort).map((n) => String(n.id)), h = (r) => !r || !r.length ? {} : r.reduce((n, i) => (i.area === c.FixedLeft ? (n.left ??= [], n.left?.push(String(i.id))) : i.area === c.FixedRight && (n.right ??= [], n.right?.push(String(i.id))), n), {}), V = (r, n) => {
6
+ const [i, y] = o(d(r)), [t, O] = o(g(r)), [u, a] = o(h(r)), f = n?.state, S = p(() => ({
10
7
  columnVisibility: i,
11
- columnOrder: o,
12
- columnPinning: f,
13
- ...l
14
- }), [l, i, o, f]);
15
- return V(() => {
16
- const m = y(r), d = O(r), g = s(r);
17
- t((e) => JSON.stringify(e) === JSON.stringify(m) ? e : m), S((e) => JSON.stringify(e) === JSON.stringify(d) ? e : d), C((e) => JSON.stringify(e) === JSON.stringify(g) ? e : g);
18
- }, [r]), J;
8
+ columnOrder: t,
9
+ columnPinning: u,
10
+ ...f
11
+ }), [f, i, t, u]);
12
+ return C(() => {
13
+ const l = d(r), s = g(r), m = h(r);
14
+ y((e) => JSON.stringify(e) === JSON.stringify(l) ? e : l), O((e) => JSON.stringify(e) === JSON.stringify(s) ? e : s), a((e) => JSON.stringify(e) === JSON.stringify(m) ? e : m);
15
+ }, [r]), S;
19
16
  };
20
17
  export {
21
- w as useDataGridColumnSettings
18
+ V as useDataGridColumnSettings
22
19
  };
23
20
  //# sourceMappingURL=hook.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.es.js","sources":["../src/hook.ts"],"sourcesContent":["'use client';\n\nimport {useMemo, useState} from 'react';\n\nimport {useUpdateEffect} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ColumnOrderState, ColumnPinningState, TableState, VisibilityState} from '@tanstack/react-table';\nimport type {ColumnItem} from '@join-x5/react-data-grid-settings';\nimport type {DataGridProps} from 'types';\n\nconst convertVisibility = (settings?: ColumnItem[]): VisibilityState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n acc[item.id] = item.isVisible;\n return acc;\n }, {} as VisibilityState);\n};\n\nconst convertOrder = (settings?: ColumnItem[]): ColumnOrderState => {\n if (!settings || !settings.length) {\n return [];\n }\n\n return settings.sort((a, b) => a.sort - b.sort).map(item => String(item.id));\n};\n\nconst convertPinning = (settings?: ColumnItem[]): ColumnPinningState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n if (item.area === ColumnArea.FixedLeft) {\n acc.left ??= [];\n acc.left?.push(String(item.id));\n } else if (item.area === ColumnArea.FixedRight) {\n acc.right ??= [];\n acc.right?.push(String(item.id));\n }\n\n return acc;\n }, {} as ColumnPinningState);\n};\n\nexport const useDataGridColumnSettings = (\n settings?: DataGridProps['columnSettings'],\n tableProps?: DataGridProps['tableProps']\n) => {\n const [columnVisibility, onColumnVisibilityChange] = useState<VisibilityState>(convertVisibility(settings));\n const [columnOrder, onColumnOrderChange] = useState<ColumnOrderState>(convertOrder(settings));\n const [columnPinning, onColumnPinningChange] = useState<ColumnPinningState>(convertPinning(settings));\n\n const externalState = tableProps?.state;\n\n const state = useMemo((): Partial<TableState> => {\n return {columnVisibility, columnOrder, columnPinning, ...externalState};\n }, [externalState, columnVisibility, columnOrder, columnPinning]);\n\n useUpdateEffect(() => {\n const newVisibility = convertVisibility(settings);\n const newOrder = convertOrder(settings);\n const newPinning = convertPinning(settings);\n\n onColumnVisibilityChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newVisibility) ? oldState : newVisibility\n );\n\n onColumnOrderChange(oldState => (JSON.stringify(oldState) === JSON.stringify(newOrder) ? oldState : newOrder));\n\n onColumnPinningChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newPinning) ? oldState : newPinning\n );\n }, [settings]);\n\n return state;\n};\n"],"names":["columnVisibility","columnOrder","columnPinning","externalState","useUpdateEffect","onColumnVisibilityChange"],"mappings":";;;;AAWA;;AAyBI;AASF;AAOA;AAOS;AAACA;AAAkBC;AAAaC;AAAkBC;AAG3DC;AACE;AAIAC;AAQA;AAIJ;;;;"}
1
+ {"version":3,"file":"hook.es.js","sources":["../src/hook.ts"],"sourcesContent":["'use client';\n\nimport {useMemo, useState} from 'react';\n\nimport {useUpdateEffect} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ColumnOrderState, ColumnPinningState, TableState, VisibilityState} from '@tanstack/react-table';\nimport type {ColumnItem} from '@join-x5/react-data-grid-settings';\nimport type {DataGridProps} from 'types';\n\nconst convertVisibility = (settings?: ColumnItem[]): VisibilityState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n acc[item.id] = item.isVisible;\n return acc;\n }, {} as VisibilityState);\n};\n\nconst convertOrder = (settings?: ColumnItem[]): ColumnOrderState => {\n if (!settings || !settings.length) {\n return [];\n }\n\n return settings.sort((a, b) => a.sort - b.sort).map(item => String(item.id));\n};\n\nconst convertPinning = (settings?: ColumnItem[]): ColumnPinningState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n if (item.area === ColumnArea.FixedLeft) {\n acc.left ??= [];\n acc.left?.push(String(item.id));\n } else if (item.area === ColumnArea.FixedRight) {\n acc.right ??= [];\n acc.right?.push(String(item.id));\n }\n\n return acc;\n }, {} as ColumnPinningState);\n};\n\nexport const useDataGridColumnSettings = (\n settings?: DataGridProps['columnSettings'],\n tableProps?: DataGridProps['tableProps']\n) => {\n const [columnVisibility, onColumnVisibilityChange] = useState<VisibilityState>(convertVisibility(settings));\n const [columnOrder, onColumnOrderChange] = useState<ColumnOrderState>(convertOrder(settings));\n const [columnPinning, onColumnPinningChange] = useState<ColumnPinningState>(convertPinning(settings));\n\n const externalState = tableProps?.state;\n\n const state = useMemo((): Partial<TableState> => {\n return {columnVisibility, columnOrder, columnPinning, ...externalState};\n }, [externalState, columnVisibility, columnOrder, columnPinning]);\n\n useUpdateEffect(() => {\n const newVisibility = convertVisibility(settings);\n const newOrder = convertOrder(settings);\n const newPinning = convertPinning(settings);\n\n onColumnVisibilityChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newVisibility) ? oldState : newVisibility\n );\n\n onColumnOrderChange(oldState => (JSON.stringify(oldState) === JSON.stringify(newOrder) ? oldState : newOrder));\n\n onColumnPinningChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newPinning) ? oldState : newPinning\n );\n }, [settings]);\n\n return state;\n};\n"],"names":["columnVisibility","columnOrder","columnPinning","externalState","useUpdateEffect","onColumnVisibilityChange"],"mappings":";;;;AAWA;AAyCE;AAOS;AAACA;AAAkBC;AAAaC;AAAkBC;AAG3DC;AACE;AAIAC;AAQA;AAIJ;;;;"}