@ioca/react 1.4.6 → 1.4.62

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.
@@ -16,7 +16,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
16
16
  var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
17
17
 
18
18
  const Datagrid = (props) => {
19
- const { data = [], columns = [], border, striped, header = true, resizable, cellPadding = ".5em", cellEllipsis, empty = jsxRuntime.jsx(index.default, {}), loading: loading$1, height = "unset", style, className, renderLoading = () => jsxRuntime.jsx(loading.default, { size: '1.5em', className: 'color-3' }), onCellClick, onRowClick, onHeaderClick, onSort, onScroll, onResize, } = props;
19
+ const { data = [], columns = [], border, striped, header = true, resizable, cellPadding = ".5em", cellEllipsis, empty = jsxRuntime.jsx(index.default, {}), loading: loading$1, height = "unset", style, className, renderLoading = () => (jsxRuntime.jsx(loading.default, { size: '1.5em', className: 'color-3', absolute: true })), onCellClick, onRowClick, onCellDoubleClick, onHeaderClick, onSort, onScroll, onResize, } = props;
20
20
  const container = react.useRef(null);
21
21
  const state = ahooks.useReactive({
22
22
  rows: data,
@@ -114,7 +114,7 @@ const Datagrid = (props) => {
114
114
  "i-datagrid-striped": striped,
115
115
  }), children: [jsxRuntime.jsxs("div", { ref: container, className: classNames__default("i-datagrid", {
116
116
  "i-datagrid-loading": loading$1,
117
- }), onWheel: onScroll, children: [header && (jsxRuntime.jsx(row.Header, { columns: columns, resizable: resizable, sortType: state.sortType, sortBy: state.sortBy, cellEllipsis: cellEllipsis, onWidthChange: handleWidthChange, onHeaderClick: handleHeaderClick })), rows.map((row$1, i) => (jsxRuntime.jsx(row.default, { row: i + (header ? 1 : 0), data: row$1, cellEllipsis: cellEllipsis, columns: columns, onCellClick: onCellClick, onRowClick: onRowClick }, i))), rows.length < 1 && empty] }), loading$1 && renderLoading()] }));
117
+ }), onWheel: onScroll, children: [header && (jsxRuntime.jsx(row.Header, { columns: columns, resizable: resizable, sortType: state.sortType, sortBy: state.sortBy, cellEllipsis: cellEllipsis, onWidthChange: handleWidthChange, onHeaderClick: handleHeaderClick })), rows.map((row$1, i) => (jsxRuntime.jsx(row.default, { row: i + (header ? 1 : 0), data: row$1, cellEllipsis: cellEllipsis, columns: columns, onCellClick: onCellClick, onRowClick: onRowClick, onCellDoubleClick: onCellDoubleClick }, i))), rows.length < 1 && empty] }), loading$1 && renderLoading()] }));
118
118
  };
119
119
 
120
120
  exports.default = Datagrid;
@@ -1 +1 @@
1
- {"version":3,"file":"datagrid.js","sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\r\nimport { getNextSorter } from \"../../js/utils\";\r\nimport Loading from \"../loading\";\r\nimport Empty from \"../utils/empty\";\r\nimport \"./index.css\";\r\nimport Row, { Header } from \"./row\";\r\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\r\n\r\nconst Datagrid = (props: IDatagrid) => {\r\n\tconst {\r\n\t\tdata = [],\r\n\t\tcolumns = [],\r\n\t\tborder,\r\n\t\tstriped,\r\n\t\theader = true,\r\n\t\tresizable,\r\n\t\tcellPadding = \".5em\",\r\n\t\tcellEllipsis,\r\n\t\tempty = <Empty />,\r\n\t\tloading,\r\n\t\theight = \"unset\",\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\trenderLoading = () => <Loading size='1.5em' className='color-3' />,\r\n\t\tonCellClick,\r\n\t\tonRowClick,\r\n\t\tonHeaderClick,\r\n\t\tonSort,\r\n\t\tonScroll,\r\n\t\tonResize,\r\n\t} = props;\r\n\r\n\tconst container = useRef<HTMLDivElement>(null);\r\n\tconst state = useReactive<TDatagridState>({\r\n\t\trows: data,\r\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\r\n\t\tsortBy: \"\",\r\n\t\tsortType: \"\",\r\n\t});\r\n\r\n\tconst styles = useMemo(() => {\r\n\t\tconst { widths } = state;\r\n\r\n\t\tconst o = {\r\n\t\t\t...style,\r\n\t\t\t\"--grid-template-columns\": widths\r\n\t\t\t\t.map((w) => {\r\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\r\n\t\t\t\t})\r\n\t\t\t\t.join(\" \"),\r\n\t\t};\r\n\r\n\t\tif (!resizable) return o;\r\n\r\n\t\tconst fws = columns.map((col, i) => {\r\n\t\t\tconst { fixed } = col;\r\n\t\t\tif (!fixed) return 0;\r\n\t\t\treturn widths[i] as number;\r\n\t\t});\r\n\r\n\t\tcolumns.map((col, i) => {\r\n\t\t\tconst { fixed } = col;\r\n\t\t\tif (!fixed) return;\r\n\t\t\tif (i === 0) {\r\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\r\n\t\t\t} else if (i === fws.length - 1) {\r\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\r\n\t\t\t} else {\r\n\t\t\t\tconst isLeft = fixed === \"left\";\r\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\r\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\r\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\r\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn o;\r\n\t}, [state.widths, resizable]);\r\n\r\n\tconst handleWidthChange = (i: number, w: number) => {\r\n\t\tif (!resizable) return;\r\n\r\n\t\tconst [...ws] = state.widths;\r\n\t\tws[i] = w;\r\n\t\tstate.widths = ws;\r\n\t\tonResize?.(columns[i], w);\r\n\t};\r\n\r\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\r\n\t\tif (column?.sorter) {\r\n\t\t\tconst [sortBy, sortType] = getNextSorter(\r\n\t\t\t\tstate.sortBy,\r\n\t\t\t\tstate.sortType,\r\n\t\t\t\tcolumn.id\r\n\t\t\t);\r\n\r\n\t\t\tObject.assign(state, {\r\n\t\t\t\tsortBy,\r\n\t\t\t\tsortType,\r\n\t\t\t});\r\n\r\n\t\t\tonSort?.(sortBy, sortType);\r\n\t\t}\r\n\r\n\t\tonHeaderClick?.(column, e);\r\n\t};\r\n\r\n\tconst rows = useMemo(() => {\r\n\t\tconst { sortBy, sortType } = state;\r\n\r\n\t\tif (sortBy && !onSort) {\r\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\r\n\t\t\tconst sortFn =\r\n\t\t\t\ttypeof sorter === \"function\"\r\n\t\t\t\t\t? sorter\r\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\r\n\t\t\tconst sorted = [...data].sort(sortFn);\r\n\r\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}, [data, columns, state.sortBy, state.sortType]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!container.current) return;\r\n\t\tconst { current: div } = container;\r\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\r\n\t\tif (!tds?.length) return;\r\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\r\n\t}, [columns, resizable]);\r\n\r\n\tuseEffect(() => {\r\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\r\n\t}, [loading]);\r\n\r\n\tconst mergedStyle = {\r\n\t\t\"--cell-padding\": cellPadding,\r\n\t\t...styles,\r\n\t} as CSSProperties;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\r\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\r\n\t\t\t\t\"i-datagrid-bordered\": border,\r\n\t\t\t\t\"i-datagrid-striped\": striped,\r\n\t\t\t})}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tref={container}\r\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\r\n\t\t\t\t\t\"i-datagrid-loading\": loading,\r\n\t\t\t\t})}\r\n\t\t\t\tonWheel={onScroll}\r\n\t\t\t>\r\n\t\t\t\t{header && (\r\n\t\t\t\t\t<Header\r\n\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\tresizable={resizable}\r\n\t\t\t\t\t\tsortType={state.sortType}\r\n\t\t\t\t\t\tsortBy={state.sortBy}\r\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\r\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\r\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{rows.map((row, i) => (\r\n\t\t\t\t\t<Row\r\n\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\r\n\t\t\t\t\t\tdata={row}\r\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\r\n\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\tonCellClick={onCellClick}\r\n\t\t\t\t\t\tonRowClick={onRowClick}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\r\n\t\t\t\t{rows.length < 1 && empty}\r\n\t\t\t</div>\r\n\r\n\t\t\t{loading && renderLoading()}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Datagrid;\r\n"],"names":["_jsx","Empty","loading","Loading","useRef","useReactive","useMemo","getNextSorter","useEffect","_jsxs","classNames","Header","row","Row"],"mappings":"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"}
1
+ {"version":3,"file":"datagrid.js","sources":["../../../../packages/components/datagrid/datagrid.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { CSSProperties, MouseEvent, useEffect, useMemo, useRef } from \"react\";\r\nimport { getNextSorter } from \"../../js/utils\";\r\nimport Loading from \"../loading\";\r\nimport Empty from \"../utils/empty\";\r\nimport \"./index.css\";\r\nimport Row, { Header } from \"./row\";\r\nimport type { IColumn, IData, IDatagrid, TDatagridState } from \"./type\";\r\n\r\nconst Datagrid = (props: IDatagrid) => {\r\n\tconst {\r\n\t\tdata = [],\r\n\t\tcolumns = [],\r\n\t\tborder,\r\n\t\tstriped,\r\n\t\theader = true,\r\n\t\tresizable,\r\n\t\tcellPadding = \".5em\",\r\n\t\tcellEllipsis,\r\n\t\tempty = <Empty />,\r\n\t\tloading,\r\n\t\theight = \"unset\",\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\trenderLoading = () => (\r\n\t\t\t<Loading size='1.5em' className='color-3' absolute />\r\n\t\t),\r\n\t\tonCellClick,\r\n\t\tonRowClick,\r\n\t\tonCellDoubleClick,\r\n\t\tonHeaderClick,\r\n\t\tonSort,\r\n\t\tonScroll,\r\n\t\tonResize,\r\n\t} = props;\r\n\r\n\tconst container = useRef<HTMLDivElement>(null);\r\n\tconst state = useReactive<TDatagridState>({\r\n\t\trows: data,\r\n\t\twidths: columns.map((col) => col.width ?? \"min-content\"),\r\n\t\tsortBy: \"\",\r\n\t\tsortType: \"\",\r\n\t});\r\n\r\n\tconst styles = useMemo(() => {\r\n\t\tconst { widths } = state;\r\n\r\n\t\tconst o = {\r\n\t\t\t...style,\r\n\t\t\t\"--grid-template-columns\": widths\r\n\t\t\t\t.map((w) => {\r\n\t\t\t\t\treturn typeof w === \"number\" ? `${w}px` : w;\r\n\t\t\t\t})\r\n\t\t\t\t.join(\" \"),\r\n\t\t};\r\n\r\n\t\tif (!resizable) return o;\r\n\r\n\t\tconst fws = columns.map((col, i) => {\r\n\t\t\tconst { fixed } = col;\r\n\t\t\tif (!fixed) return 0;\r\n\t\t\treturn widths[i] as number;\r\n\t\t});\r\n\r\n\t\tcolumns.map((col, i) => {\r\n\t\t\tconst { fixed } = col;\r\n\t\t\tif (!fixed) return;\r\n\t\t\tif (i === 0) {\r\n\t\t\t\to[`--datagrid-cell-inset-0`] = 0;\r\n\t\t\t} else if (i === fws.length - 1) {\r\n\t\t\t\to[`--datagrid-cell-inset-${fws.length - 1}`] = \"auto 0\";\r\n\t\t\t} else {\r\n\t\t\t\tconst isLeft = fixed === \"left\";\r\n\t\t\t\tconst before = isLeft ? fws.slice(0, i) : fws.slice(i + 1);\r\n\t\t\t\tconst sum = before.reduce((pre, cur) => pre + cur) + \"px\";\r\n\t\t\t\tconst result = isLeft ? `${sum} auto` : `auto ${sum}`;\r\n\t\t\t\to[`--datagrid-cell-inset-${i}`] = result;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn o;\r\n\t}, [state.widths, resizable]);\r\n\r\n\tconst handleWidthChange = (i: number, w: number) => {\r\n\t\tif (!resizable) return;\r\n\r\n\t\tconst [...ws] = state.widths;\r\n\t\tws[i] = w;\r\n\t\tstate.widths = ws;\r\n\t\tonResize?.(columns[i], w);\r\n\t};\r\n\r\n\tconst handleHeaderClick = (column?: IColumn, e?: MouseEvent) => {\r\n\t\tif (column?.sorter) {\r\n\t\t\tconst [sortBy, sortType] = getNextSorter(\r\n\t\t\t\tstate.sortBy,\r\n\t\t\t\tstate.sortType,\r\n\t\t\t\tcolumn.id\r\n\t\t\t);\r\n\r\n\t\t\tObject.assign(state, {\r\n\t\t\t\tsortBy,\r\n\t\t\t\tsortType,\r\n\t\t\t});\r\n\r\n\t\t\tonSort?.(sortBy, sortType);\r\n\t\t}\r\n\r\n\t\tonHeaderClick?.(column, e);\r\n\t};\r\n\r\n\tconst rows = useMemo(() => {\r\n\t\tconst { sortBy, sortType } = state;\r\n\r\n\t\tif (sortBy && !onSort) {\r\n\t\t\tconst sorter = columns.find((col) => col.id === sortBy)?.sorter;\r\n\t\t\tconst sortFn =\r\n\t\t\t\ttypeof sorter === \"function\"\r\n\t\t\t\t\t? sorter\r\n\t\t\t\t\t: (a: IData, b: IData) => b[sortBy] - a[sortBy];\r\n\t\t\tconst sorted = [...data].sort(sortFn);\r\n\r\n\t\t\treturn sortType === \"desc\" ? sorted : sorted.reverse();\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}, [data, columns, state.sortBy, state.sortType]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!container.current) return;\r\n\t\tconst { current: div } = container;\r\n\t\tconst tds = div.querySelector(\".i-datagrid-row\")?.children;\r\n\t\tif (!tds?.length) return;\r\n\t\tstate.widths = Array.from(tds).map((node: any) => node.offsetWidth);\r\n\t}, [columns, resizable]);\r\n\r\n\tuseEffect(() => {\r\n\t\tloading && container.current?.scrollTo({ top: 0, left: 0 });\r\n\t}, [loading]);\r\n\r\n\tconst mergedStyle = {\r\n\t\t\"--cell-padding\": cellPadding,\r\n\t\t...styles,\r\n\t} as CSSProperties;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tstyle={{ maxHeight: height, ...mergedStyle }}\r\n\t\t\tclassName={classNames(\"i-datagrid-container\", className, {\r\n\t\t\t\t\"i-datagrid-bordered\": border,\r\n\t\t\t\t\"i-datagrid-striped\": striped,\r\n\t\t\t})}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tref={container}\r\n\t\t\t\tclassName={classNames(\"i-datagrid\", {\r\n\t\t\t\t\t\"i-datagrid-loading\": loading,\r\n\t\t\t\t})}\r\n\t\t\t\tonWheel={onScroll}\r\n\t\t\t>\r\n\t\t\t\t{header && (\r\n\t\t\t\t\t<Header\r\n\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\tresizable={resizable}\r\n\t\t\t\t\t\tsortType={state.sortType}\r\n\t\t\t\t\t\tsortBy={state.sortBy}\r\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\r\n\t\t\t\t\t\tonWidthChange={handleWidthChange}\r\n\t\t\t\t\t\tonHeaderClick={handleHeaderClick}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{rows.map((row, i) => (\r\n\t\t\t\t\t<Row\r\n\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\trow={i + (header ? 1 : 0)}\r\n\t\t\t\t\t\tdata={row}\r\n\t\t\t\t\t\tcellEllipsis={cellEllipsis}\r\n\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\tonCellClick={onCellClick}\r\n\t\t\t\t\t\tonRowClick={onRowClick}\r\n\t\t\t\t\t\tonCellDoubleClick={onCellDoubleClick}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\r\n\t\t\t\t{rows.length < 1 && empty}\r\n\t\t\t</div>\r\n\r\n\t\t\t{loading && renderLoading()}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Datagrid;\r\n"],"names":["_jsx","Empty","loading","Loading","useRef","useReactive","useMemo","getNextSorter","useEffect","_jsxs","classNames","Header","row","Row"],"mappings":"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"}
@@ -36,13 +36,13 @@ const Popconfirm = (props) => {
36
36
  const handleOk = async (e) => {
37
37
  state.loading = true;
38
38
  ok.onClick?.(e);
39
- onOk?.()
40
- ?.then(() => {
39
+ try {
40
+ await onOk?.();
41
41
  state.visible = false;
42
- })
43
- .finally(() => {
42
+ }
43
+ finally {
44
44
  state.loading = false;
45
- });
45
+ }
46
46
  };
47
47
  const handleCancel = async (e) => {
48
48
  cancel.onClick?.(e);
@@ -1 +1 @@
1
- {"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport { MouseEvent } from \"react\";\r\nimport Button from \"../button\";\r\nimport { IButton } from \"../button/type\";\r\nimport Flex from \"../flex\";\r\nimport Icon from \"../icon\";\r\nimport Popup from \"../popup\";\r\nimport \"./index.css\";\r\nimport { IPopconfirm } from \"./type\";\r\n\r\nconst defaultOk = {\r\n\tchildren: \"确定\",\r\n};\r\n\r\nconst defaultCancel = {\r\n\tchildren: \"取消\",\r\n\tsecondary: true,\r\n};\r\n\r\nconst Popconfirm = (props: IPopconfirm) => {\r\n\tconst {\r\n\t\ttrigger = \"click\",\r\n\t\tvisible,\r\n\t\ticon = <Icon icon={<InfoOutlined />} className='error' size='1.2em' />,\r\n\t\tcontent,\r\n\t\tokButtonProps,\r\n\t\tcancelButtonProps,\r\n\t\tchildren,\r\n\t\talign = \"end\",\r\n\t\tposition = \"top\",\r\n\t\toffset = 12,\r\n\t\textra,\r\n\t\tonOk,\r\n\t\tonClose,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tloading: false,\r\n\t\tvisible,\r\n\t});\r\n\r\n\tconst ok: IButton = okButtonProps\r\n\t\t? Object.assign({}, defaultOk, okButtonProps)\r\n\t\t: defaultOk;\r\n\tconst cancel: IButton = cancelButtonProps\r\n\t\t? Object.assign({}, defaultCancel, cancelButtonProps)\r\n\t\t: defaultCancel;\r\n\r\n\tconst handleVisibleChange = (v: boolean) => {\r\n\t\tstate.visible = v;\r\n\t\trestProps.onVisibleChange?.(v);\r\n\t};\r\n\r\n\tconst handleOk = async (e: MouseEvent<HTMLElement>) => {\r\n\t\tstate.loading = true;\r\n\t\tok.onClick?.(e);\r\n\r\n\t\tonOk?.()\r\n\t\t\t?.then(() => {\r\n\t\t\t\tstate.visible = false;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tstate.loading = false;\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst handleCancel = async (e: MouseEvent<HTMLElement>) => {\r\n\t\tcancel.onClick?.(e);\r\n\t\tawait onClose?.();\r\n\t\tstate.visible = false;\r\n\t};\r\n\r\n\tconst popconfirmContent = (\r\n\t\t<div className='i-popconfirm'>\r\n\t\t\t<Flex gap='.5em'>\r\n\t\t\t\t{icon}\r\n\t\t\t\t<div className='i-popconfirm-content'>{content}</div>\r\n\t\t\t</Flex>\r\n\r\n\t\t\t<Flex gap={12} justify='flex-end' className='i-popconfirm-footer'>\r\n\t\t\t\t{cancelButtonProps !== null && (\r\n\t\t\t\t\t<Button {...cancel} onClick={handleCancel} />\r\n\t\t\t\t)}\r\n\t\t\t\t{extra}\r\n\t\t\t\t{okButtonProps !== null && (\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tloading={state.loading}\r\n\t\t\t\t\t\t{...ok}\r\n\t\t\t\t\t\tonClick={handleOk}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Flex>\r\n\t\t</div>\r\n\t);\r\n\r\n\treturn (\r\n\t\t<Popup\r\n\t\t\tcontent={popconfirmContent}\r\n\t\t\t{...restProps}\r\n\t\t\ttrigger={trigger}\r\n\t\t\tvisible={state.visible}\r\n\t\t\talign={align}\r\n\t\t\toffset={offset}\r\n\t\t\tposition={position}\r\n\t\t\tonVisibleChange={handleVisibleChange}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Popup>\r\n\t);\r\n};\r\n\r\nexport default Popconfirm;\r\n"],"names":["icon","_jsx","Icon","InfoOutlined","useReactive","_jsxs","Flex","Button","Popup"],"mappings":";;;;;;;;;;;;AAWA,MAAM,SAAS,GAAG;AACjB,IAAA,QAAQ,EAAE,IAAI;CACd;AAED,MAAM,aAAa,GAAG;AACrB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,SAAS,EAAE,IAAI;CACf;AAED,MAAM,UAAU,GAAG,CAAC,KAAkB,KAAI;IACzC,MAAM,EACL,OAAO,GAAG,OAAO,EACjB,OAAO,QACPA,MAAI,GAAGC,cAAC,CAAAC,YAAI,EAAC,EAAA,IAAI,EAAED,cAAA,CAACE,qBAAY,EAAA,EAAA,CAAG,EAAE,SAAS,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAG,CAAA,EACtE,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,EAAE,EACX,KAAK,EACL,IAAI,EACJ,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGC,kBAAW,CAAC;AACzB,QAAA,OAAO,EAAE,KAAK;QACd,OAAO;AACP,KAAA,CAAC;IAEF,MAAM,EAAE,GAAY;UACjB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa;UAC1C,SAAS;IACZ,MAAM,MAAM,GAAY;UACrB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB;UAClD,aAAa;AAEhB,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAU,KAAI;AAC1C,QAAA,KAAK,CAAC,OAAO,GAAG,CAAC;AACjB,QAAA,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC;AAC/B,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,OAAO,CAA0B,KAAI;AACrD,QAAA,KAAK,CAAC,OAAO,GAAG,IAAI;AACpB,QAAA,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;AAEf,QAAA,IAAI;cACD,IAAI,CAAC,MAAK;AACX,YAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACtB,SAAC;aACA,OAAO,CAAC,MAAK;AACb,YAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACtB,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,MAAM,YAAY,GAAG,OAAO,CAA0B,KAAI;AACzD,QAAA,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACnB,MAAM,OAAO,IAAI;AACjB,QAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACtB,KAAC;AAED,IAAA,MAAM,iBAAiB,IACtBC,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CAC5BA,eAAC,CAAAC,YAAI,IAAC,GAAG,EAAC,MAAM,EACd,QAAA,EAAA,CAAAN,MAAI,EACLC,cAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,sBAAsB,YAAE,OAAO,EAAA,CAAO,IAC/C,EAEPI,eAAA,CAACC,YAAI,EAAC,EAAA,GAAG,EAAE,EAAE,EAAE,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAC/D,iBAAiB,KAAK,IAAI,KAC1BL,eAACM,cAAM,EAAA,EAAA,GAAK,MAAM,EAAE,OAAO,EAAE,YAAY,GAAI,CAC7C,EACA,KAAK,EACL,aAAa,KAAK,IAAI,KACtBN,cAAA,CAACM,cAAM,EACN,EAAA,OAAO,EAAE,KAAK,CAAC,OAAO,EAClB,GAAA,EAAE,EACN,OAAO,EAAE,QAAQ,EAAA,CAChB,CACF,CACK,EAAA,CAAA,CAAA,EAAA,CACF,CACN;AAED,IAAA,QACCN,cAAC,CAAAO,aAAK,EACL,EAAA,OAAO,EAAE,iBAAiB,EAAA,GACtB,SAAS,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,mBAAmB,YAEnC,QAAQ,EAAA,CACF;AAEV;;;;"}
1
+ {"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport { MouseEvent } from \"react\";\r\nimport Button from \"../button\";\r\nimport { IButton } from \"../button/type\";\r\nimport Flex from \"../flex\";\r\nimport Icon from \"../icon\";\r\nimport Popup from \"../popup\";\r\nimport \"./index.css\";\r\nimport { IPopconfirm } from \"./type\";\r\n\r\nconst defaultOk = {\r\n\tchildren: \"确定\",\r\n};\r\n\r\nconst defaultCancel = {\r\n\tchildren: \"取消\",\r\n\tsecondary: true,\r\n};\r\n\r\nconst Popconfirm = (props: IPopconfirm) => {\r\n\tconst {\r\n\t\ttrigger = \"click\",\r\n\t\tvisible,\r\n\t\ticon = <Icon icon={<InfoOutlined />} className='error' size='1.2em' />,\r\n\t\tcontent,\r\n\t\tokButtonProps,\r\n\t\tcancelButtonProps,\r\n\t\tchildren,\r\n\t\talign = \"end\",\r\n\t\tposition = \"top\",\r\n\t\toffset = 12,\r\n\t\textra,\r\n\t\tonOk,\r\n\t\tonClose,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tloading: false,\r\n\t\tvisible,\r\n\t});\r\n\r\n\tconst ok: IButton = okButtonProps\r\n\t\t? Object.assign({}, defaultOk, okButtonProps)\r\n\t\t: defaultOk;\r\n\tconst cancel: IButton = cancelButtonProps\r\n\t\t? Object.assign({}, defaultCancel, cancelButtonProps)\r\n\t\t: defaultCancel;\r\n\r\n\tconst handleVisibleChange = (v: boolean) => {\r\n\t\tstate.visible = v;\r\n\t\trestProps.onVisibleChange?.(v);\r\n\t};\r\n\r\n\tconst handleOk = async (e: MouseEvent<HTMLElement>) => {\r\n\t\tstate.loading = true;\r\n\t\tok.onClick?.(e);\r\n\t\ttry {\r\n\t\t\tawait onOk?.();\r\n\t\t\tstate.visible = false;\r\n\t\t} finally {\r\n\t\t\tstate.loading = false;\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleCancel = async (e: MouseEvent<HTMLElement>) => {\r\n\t\tcancel.onClick?.(e);\r\n\t\tawait onClose?.();\r\n\t\tstate.visible = false;\r\n\t};\r\n\r\n\tconst popconfirmContent = (\r\n\t\t<div className='i-popconfirm'>\r\n\t\t\t<Flex gap='.5em'>\r\n\t\t\t\t{icon}\r\n\t\t\t\t<div className='i-popconfirm-content'>{content}</div>\r\n\t\t\t</Flex>\r\n\r\n\t\t\t<Flex gap={12} justify='flex-end' className='i-popconfirm-footer'>\r\n\t\t\t\t{cancelButtonProps !== null && (\r\n\t\t\t\t\t<Button {...cancel} onClick={handleCancel} />\r\n\t\t\t\t)}\r\n\t\t\t\t{extra}\r\n\t\t\t\t{okButtonProps !== null && (\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tloading={state.loading}\r\n\t\t\t\t\t\t{...ok}\r\n\t\t\t\t\t\tonClick={handleOk}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Flex>\r\n\t\t</div>\r\n\t);\r\n\r\n\treturn (\r\n\t\t<Popup\r\n\t\t\tcontent={popconfirmContent}\r\n\t\t\t{...restProps}\r\n\t\t\ttrigger={trigger}\r\n\t\t\tvisible={state.visible}\r\n\t\t\talign={align}\r\n\t\t\toffset={offset}\r\n\t\t\tposition={position}\r\n\t\t\tonVisibleChange={handleVisibleChange}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Popup>\r\n\t);\r\n};\r\n\r\nexport default Popconfirm;\r\n"],"names":["icon","_jsx","Icon","InfoOutlined","useReactive","_jsxs","Flex","Button","Popup"],"mappings":"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"}
@@ -45,7 +45,10 @@ const Content = (props) => {
45
45
  };
46
46
  }, [arrowProps]);
47
47
  const content = (jsxRuntime.jsxs("div", { ref: ref, className: classNames__default("i-popup", className), ...restProps, children: [arrow && (jsxRuntime.jsx("svg", { xmlns: 'http://www.w3.org/2000/svg', className: 'i-popup-arrow', style: arrowCSS, children: jsxRuntime.jsx("path", { d: 'M0.5 0L1.5 0C1.5 4, 3 5.5, 5 7.5S8,10 8,12S7 14.5, 5 16.5S1.5,20 1.5,24L0.5 24L0.5 0z' }) })), children] }));
48
- return reactDom.createPortal(content, getContainer(trigger));
48
+ const container = getContainer(trigger);
49
+ if (!container)
50
+ return null;
51
+ return reactDom.createPortal(content, container);
49
52
  };
50
53
 
51
54
  exports.default = Content;
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sources":["../../../../packages/components/popup/content.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { useMemo } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { IPopupContent } from \"./type\";\r\n\r\nconst Content = (props: IPopupContent) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tgetContainer = (trigger) => {\r\n\t\t\tif (typeof document === \"undefined\") return null;\r\n\t\t\treturn trigger?.offsetParent ?? document.body;\r\n\t\t},\r\n\t\ttrigger,\r\n\t\tarrow,\r\n\t\tarrowProps = {},\r\n\t\tclassName,\r\n\t\tchildren,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst arrowCSS = useMemo(() => {\r\n\t\tlet { left, top, pos } = arrowProps;\r\n\t\tlet transform = \"\";\r\n\r\n\t\tswitch (pos) {\r\n\t\t\tcase \"left\":\r\n\t\t\t\tleft += 2;\r\n\t\t\t\ttransform = `translate(-100%, -50%) rotate(180deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right\":\r\n\t\t\t\tleft -= 2;\r\n\t\t\t\ttransform = `translate(0, -50%)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top\":\r\n\t\t\t\ttop -= 2;\r\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(-90deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom\":\r\n\t\t\t\ttop += 2;\r\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(90deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tleft,\r\n\t\t\ttop,\r\n\t\t\ttransform,\r\n\t\t};\r\n\t}, [arrowProps]);\r\n\r\n\tconst content = (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName={classNames(\"i-popup\", className)}\r\n\t\t\t{...restProps}\r\n\t\t>\r\n\t\t\t{arrow && (\r\n\t\t\t\t<svg\r\n\t\t\t\t\txmlns='http://www.w3.org/2000/svg'\r\n\t\t\t\t\tclassName='i-popup-arrow'\r\n\t\t\t\t\tstyle={arrowCSS}\r\n\t\t\t\t>\r\n\t\t\t\t\t<path d='M0.5 0L1.5 0C1.5 4, 3 5.5, 5 7.5S8,10 8,12S7 14.5, 5 16.5S1.5,20 1.5,24L0.5 24L0.5 0z' />\r\n\t\t\t\t</svg>\r\n\t\t\t)}\r\n\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n\r\n\treturn createPortal(content, getContainer(trigger));\r\n};\r\n\r\nexport default Content;\r\n"],"names":["useMemo","_jsxs","classNames","_jsx","createPortal"],"mappings":";;;;;;;;;;;;;AAKA,MAAM,OAAO,GAAG,CAAC,KAAoB,KAAI;IACxC,MAAM,EACL,GAAG,EACH,YAAY,GAAG,CAAC,OAAO,KAAI;QAC1B,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,IAAI;AAChD,QAAA,OAAO,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC,IAAI;AAC9C,KAAC,EACD,OAAO,EACP,KAAK,EACL,UAAU,GAAG,EAAE,EACf,SAAS,EACT,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,QAAQ,GAAGA,aAAO,CAAC,MAAK;QAC7B,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU;QACnC,IAAI,SAAS,GAAG,EAAE;QAElB,QAAQ,GAAG;AACV,YAAA,KAAK,MAAM;gBACV,IAAI,IAAI,CAAC;gBACT,SAAS,GAAG,uCAAuC;gBACnD;AACD,YAAA,KAAK,OAAO;gBACX,IAAI,IAAI,CAAC;gBACT,SAAS,GAAG,oBAAoB;gBAChC;AACD,YAAA,KAAK,KAAK;gBACT,GAAG,IAAI,CAAC;gBACR,SAAS,GAAG,sCAAsC;gBAClD;AACD,YAAA,KAAK,QAAQ;gBACZ,GAAG,IAAI,CAAC;gBACR,SAAS,GAAG,qCAAqC;gBACjD;;QAKF,OAAO;YACN,IAAI;YACJ,GAAG;YACH,SAAS;SACT;AACF,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhB,MAAM,OAAO,IACZC,eAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE,SAAS,CAAC,KACvC,SAAS,EAAA,QAAA,EAAA,CAEZ,KAAK,KACLC,cAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,QAAQ,EAAA,QAAA,EAEfA,yBAAM,CAAC,EAAC,uFAAuF,EAAG,CAAA,EAAA,CAC7F,CACN,EAEA,QAAQ,CACJ,EAAA,CAAA,CACN;IAED,OAAOC,qBAAY,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AACpD;;;;"}
1
+ {"version":3,"file":"content.js","sources":["../../../../packages/components/popup/content.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { useMemo } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { IPopupContent } from \"./type\";\r\n\r\nconst Content = (props: IPopupContent) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tgetContainer = (trigger) => {\r\n\t\t\tif (typeof document === \"undefined\") return null;\r\n\t\t\treturn trigger?.offsetParent ?? document.body;\r\n\t\t},\r\n\t\ttrigger,\r\n\t\tarrow,\r\n\t\tarrowProps = {},\r\n\t\tclassName,\r\n\t\tchildren,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst arrowCSS = useMemo(() => {\r\n\t\tlet { left, top, pos } = arrowProps;\r\n\t\tlet transform = \"\";\r\n\r\n\t\tswitch (pos) {\r\n\t\t\tcase \"left\":\r\n\t\t\t\tleft += 2;\r\n\t\t\t\ttransform = `translate(-100%, -50%) rotate(180deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right\":\r\n\t\t\t\tleft -= 2;\r\n\t\t\t\ttransform = `translate(0, -50%)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top\":\r\n\t\t\t\ttop -= 2;\r\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(-90deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom\":\r\n\t\t\t\ttop += 2;\r\n\t\t\t\ttransform = `translate(-50%, -50%) rotate(90deg)`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tleft,\r\n\t\t\ttop,\r\n\t\t\ttransform,\r\n\t\t};\r\n\t}, [arrowProps]);\r\n\r\n\tconst content = (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName={classNames(\"i-popup\", className)}\r\n\t\t\t{...restProps}\r\n\t\t>\r\n\t\t\t{arrow && (\r\n\t\t\t\t<svg\r\n\t\t\t\t\txmlns='http://www.w3.org/2000/svg'\r\n\t\t\t\t\tclassName='i-popup-arrow'\r\n\t\t\t\t\tstyle={arrowCSS}\r\n\t\t\t\t>\r\n\t\t\t\t\t<path d='M0.5 0L1.5 0C1.5 4, 3 5.5, 5 7.5S8,10 8,12S7 14.5, 5 16.5S1.5,20 1.5,24L0.5 24L0.5 0z' />\r\n\t\t\t\t</svg>\r\n\t\t\t)}\r\n\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n\r\n\tconst container = getContainer(trigger);\r\n\tif (!container) return null;\r\n\treturn createPortal(content, container);\r\n};\r\n\r\nexport default Content;\r\n"],"names":["useMemo","_jsxs","classNames","_jsx","createPortal"],"mappings":";;;;;;;;;;;;;AAKA,MAAM,OAAO,GAAG,CAAC,KAAoB,KAAI;IACxC,MAAM,EACL,GAAG,EACH,YAAY,GAAG,CAAC,OAAO,KAAI;QAC1B,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,IAAI;AAChD,QAAA,OAAO,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAC,IAAI;AAC9C,KAAC,EACD,OAAO,EACP,KAAK,EACL,UAAU,GAAG,EAAE,EACf,SAAS,EACT,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,QAAQ,GAAGA,aAAO,CAAC,MAAK;QAC7B,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,UAAU;QACnC,IAAI,SAAS,GAAG,EAAE;QAElB,QAAQ,GAAG;AACV,YAAA,KAAK,MAAM;gBACV,IAAI,IAAI,CAAC;gBACT,SAAS,GAAG,uCAAuC;gBACnD;AACD,YAAA,KAAK,OAAO;gBACX,IAAI,IAAI,CAAC;gBACT,SAAS,GAAG,oBAAoB;gBAChC;AACD,YAAA,KAAK,KAAK;gBACT,GAAG,IAAI,CAAC;gBACR,SAAS,GAAG,sCAAsC;gBAClD;AACD,YAAA,KAAK,QAAQ;gBACZ,GAAG,IAAI,CAAC;gBACR,SAAS,GAAG,qCAAqC;gBACjD;;QAKF,OAAO;YACN,IAAI;YACJ,GAAG;YACH,SAAS;SACT;AACF,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhB,MAAM,OAAO,IACZC,eAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE,SAAS,CAAC,KACvC,SAAS,EAAA,QAAA,EAAA,CAEZ,KAAK,KACLC,cAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,QAAQ,EAAA,QAAA,EAEfA,yBAAM,CAAC,EAAC,uFAAuF,EAAG,CAAA,EAAA,CAC7F,CACN,EAEA,QAAQ,CACJ,EAAA,CAAA,CACN;AAED,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACvC,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAC3B,IAAA,OAAOC,qBAAY,CAAC,OAAO,EAAE,SAAS,CAAC;AACxC;;;;"}
@@ -50,9 +50,9 @@ function Popup(props) {
50
50
  statusRef.current = "showing";
51
51
  state.show = true;
52
52
  timerRef.current = setTimeout(() => {
53
- if (statusRef.current !== "showing")
54
- return;
55
53
  requestAnimationFrame(() => {
54
+ if (statusRef.current !== "showing")
55
+ return;
56
56
  const [left, top, { arrowX, arrowY, arrowPos }] = utils.getPosition(triggerRef.current, contentRef.current, {
57
57
  position,
58
58
  gap,
@@ -202,6 +202,9 @@ function Popup(props) {
202
202
  react.useLayoutEffect(() => {
203
203
  handleToggle(visible);
204
204
  }, [visible]);
205
+ react.useEffect(() => {
206
+ clearTimer();
207
+ }, []);
205
208
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [react.Children.map(children, (child) => {
206
209
  if (!react.isValidElement(child))
207
210
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"popup.js","sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { useCreation, useReactive } from \"ahooks\";\r\nimport {\r\n\tCSSProperties,\r\n\tChildren,\r\n\tMouseEvent,\r\n\tcloneElement,\r\n\tisValidElement,\r\n\tuseContext,\r\n\tuseEffect,\r\n\tuseLayoutEffect,\r\n\tuseMemo,\r\n\tuseRef,\r\n} from \"react\";\r\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\r\nimport { getPointPosition, getPosition } from \"../../js/utils\";\r\nimport ModalContext from \"../modal/context\";\r\nimport Content from \"./content\";\r\nimport \"./index.css\";\r\nimport { IPopup } from \"./type\";\r\n\r\nexport default function Popup(props: IPopup) {\r\n\tconst {\r\n\t\tvisible = false,\r\n\t\tcontent,\r\n\t\ttrigger = \"hover\",\r\n\t\tgap = 12,\r\n\t\toffset = 8,\r\n\t\tfixed,\r\n\t\tposition = \"top\",\r\n\t\tshowDelay = 16,\r\n\t\thideDelay = 12,\r\n\t\ttouchable,\r\n\t\tarrow = true,\r\n\t\talign,\r\n\t\tfitSize,\r\n\t\twatchResize,\r\n\t\tclickOutside = true,\r\n\t\tdisabled,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tgetContainer,\r\n\t\tchildren,\r\n\t\tonVisibleChange,\r\n\t} = props;\r\n\r\n\tconst triggerRef = useRef<HTMLElement>(null);\r\n\tconst contentRef = useRef<HTMLDivElement>(null);\r\n\tconst timerRef = useRef<any>(null);\r\n\tconst statusRef = useRef<string>(\"\");\r\n\tconst isInModal = useContext(ModalContext);\r\n\tconst refWindow = isInModal || fixed;\r\n\tconst state = useReactive<{\r\n\t\tshow: boolean;\r\n\t\tstyle: CSSProperties;\r\n\t\tarrowProps: Record<string, any>;\r\n\t}>({\r\n\t\tshow: false,\r\n\t\tstyle: { position: refWindow ? \"fixed\" : \"absolute\" },\r\n\t\tarrowProps: {},\r\n\t});\r\n\r\n\tuseMouseUp((e) => {\r\n\t\tif (!triggerRef.current || !contentRef.current || !clickOutside) return;\r\n\r\n\t\tconst tar = e.target as HTMLElement;\r\n\t\tconst isContain =\r\n\t\t\ttriggerRef.current.contains(tar) ||\r\n\t\t\tcontentRef.current.contains(tar);\r\n\r\n\t\tif (!state.show || isContain) return;\r\n\r\n\t\thandleToggle(false);\r\n\t});\r\n\r\n\tconst clearTimer = () => {\r\n\t\tif (!timerRef.current) return;\r\n\t\tclearTimeout(timerRef.current);\r\n\t\ttimerRef.current = null;\r\n\t\tstatusRef.current = \"\";\r\n\t};\r\n\r\n\tconst handleShow = () => {\r\n\t\tif (disabled) return;\r\n\t\tif (\r\n\t\t\tstate.show &&\r\n\t\t\t(trigger !== \"hover\" || (trigger === \"hover\" && !touchable))\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstatusRef.current = \"showing\";\r\n\t\tstate.show = true;\r\n\r\n\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\tif (statusRef.current !== \"showing\") return;\r\n\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\r\n\t\t\t\t\ttriggerRef.current,\r\n\t\t\t\t\tcontentRef.current,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\tgap,\r\n\t\t\t\t\t\toffset,\r\n\t\t\t\t\t\talign,\r\n\t\t\t\t\t\trefWindow,\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\tstate.style = {\r\n\t\t\t\t\t...state.style,\r\n\t\t\t\t\topacity: 1,\r\n\t\t\t\t\ttransform: \"none\",\r\n\t\t\t\t\tleft,\r\n\t\t\t\t\ttop,\r\n\t\t\t\t};\r\n\t\t\t\tstate.arrowProps = {\r\n\t\t\t\t\tleft: arrowX,\r\n\t\t\t\t\ttop: arrowY,\r\n\t\t\t\t\tpos: arrowPos,\r\n\t\t\t\t};\r\n\t\t\t\tonVisibleChange?.(true);\r\n\t\t\t\tclearTimer();\r\n\t\t\t\tstatusRef.current = \"\";\r\n\t\t\t});\r\n\t\t}, showDelay);\r\n\t};\r\n\r\n\tconst handleHide = () => {\r\n\t\tif (!state.show) return;\r\n\r\n\t\tstatusRef.current = \"hiding\";\r\n\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\tif (statusRef.current !== \"hiding\") {\r\n\t\t\t\tclearTimer();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstate.style = {\r\n\t\t\t\t...state.style,\r\n\t\t\t\topacity: 0,\r\n\t\t\t\ttransform: \"translate(0, 2px)\",\r\n\t\t\t};\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tstate.show = false;\r\n\t\t\t\tclearTimer();\r\n\t\t\t\tonVisibleChange?.(false);\r\n\t\t\t\tstatusRef.current = \"\";\r\n\t\t\t}, 160);\r\n\t\t}, hideDelay);\r\n\t};\r\n\r\n\tconst handleToggle = (action?: boolean) => {\r\n\t\tif (action !== undefined) {\r\n\t\t\taction ? handleShow() : handleHide();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstate.show ? handleHide() : handleShow();\r\n\t};\r\n\tconst eventMaps = useCreation(\r\n\t\t() => ({\r\n\t\t\tclick: {\r\n\t\t\t\tonClick: () => handleToggle(true),\r\n\t\t\t},\r\n\t\t\thover: {\r\n\t\t\t\tonMouseEnter: () => handleToggle(true),\r\n\t\t\t\tonMouseLeave: () => handleToggle(false),\r\n\t\t\t},\r\n\t\t\tfocus: {\r\n\t\t\t\tonFocus: () => handleToggle(true),\r\n\t\t\t\tonBlur: () => handleToggle(false),\r\n\t\t\t},\r\n\t\t\tcontextmenu: {\r\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tif (state.show) {\r\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tstate.style = {\r\n\t\t\t\t\t\t\t...state.style,\r\n\t\t\t\t\t\t\tleft,\r\n\t\t\t\t\t\t\ttop,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.show = true;\r\n\r\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tstate.style = {\r\n\t\t\t\t\t\t\t...state.style,\r\n\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\ttransform: \"none\",\r\n\t\t\t\t\t\t\tleft,\r\n\t\t\t\t\t\t\ttop,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tclearTimer();\r\n\t\t\t\t\t\tonVisibleChange?.(true);\r\n\t\t\t\t\t}, showDelay);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tnone: {},\r\n\t\t}),\r\n\t\t[]\r\n\t);\r\n\r\n\tconst contentTouch = useMemo(() => {\r\n\t\tif (!touchable) return {};\r\n\t\tconst events: { [key: string]: () => void } = {};\r\n\r\n\t\tif (trigger === \"hover\") {\r\n\t\t\tevents[\"onMouseEnter\"] = () => {\r\n\t\t\t\tclearTimer();\r\n\t\t\t};\r\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\r\n\t\t}\r\n\r\n\t\treturn events;\r\n\t}, [touchable, trigger]);\r\n\r\n\tconst computePosition = () => {\r\n\t\tif (!state.show) return;\r\n\r\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\r\n\t\t\ttriggerRef.current,\r\n\t\t\tcontentRef.current,\r\n\t\t\t{\r\n\t\t\t\tposition,\r\n\t\t\t\tgap,\r\n\t\t\t\toffset,\r\n\t\t\t\talign,\r\n\t\t\t\trefWindow,\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tObject.assign(state, {\r\n\t\t\tstyle: { ...state.style, left, top },\r\n\t\t\tarrowProps: { left: arrowX, top: arrowY, pos: arrowPos },\r\n\t\t});\r\n\t};\r\n\r\n\tconst { observe, unobserve, disconnect } = useResizeObserver();\r\n\tuseEffect(() => {\r\n\t\tif (trigger === \"contextmenu\" || !observe) return;\r\n\r\n\t\ttriggerRef.current && observe(triggerRef.current, computePosition);\r\n\r\n\t\tif (!watchResize || !contentRef.current) return;\r\n\r\n\t\tobserve(contentRef.current, computePosition);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (!watchResize || !contentRef.current) return;\r\n\r\n\t\t\tunobserve(contentRef.current);\r\n\t\t\ttriggerRef.current && unobserve(triggerRef.current);\r\n\t\t\tdisconnect();\r\n\t\t};\r\n\t}, [watchResize, contentRef.current, triggerRef.current]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!fitSize || !state.show) return;\r\n\r\n\t\tconst vertical = [\"top\", \"bottom\"].includes(position);\r\n\t\tconst size =\r\n\t\t\ttriggerRef.current?.[vertical ? \"offsetWidth\" : \"offsetHeight\"];\r\n\t\tstate.style = { ...state.style, [vertical ? \"width\" : \"height\"]: size };\r\n\t}, [state.show, fitSize]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\thandleToggle(visible);\r\n\t}, [visible]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{Children.map(children, (child) => {\r\n\t\t\t\tif (!isValidElement(child)) return;\r\n\r\n\t\t\t\tconst { className, ...restProps } = child.props as any;\r\n\t\t\t\tObject.keys(eventMaps[trigger]).map((evt) => {\r\n\t\t\t\t\tif (!restProps[evt]) return;\r\n\t\t\t\t\tconst fn = eventMaps[trigger][evt];\r\n\r\n\t\t\t\t\teventMaps[trigger][evt] = (e) => {\r\n\t\t\t\t\t\tfn();\r\n\t\t\t\t\t\trestProps[evt](e);\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn cloneElement(child, {\r\n\t\t\t\t\tref: triggerRef,\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t\t...restProps,\r\n\t\t\t\t\t...eventMaps[trigger],\r\n\t\t\t\t});\r\n\t\t\t})}\r\n\r\n\t\t\t{state.show && (\r\n\t\t\t\t<Content\r\n\t\t\t\t\tref={contentRef}\r\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\r\n\t\t\t\t\tstyle={{ ...style, ...state.style }}\r\n\t\t\t\t\tarrowProps={state.arrowProps}\r\n\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t{...contentTouch}\r\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\r\n\t\t\t\t\tgetContainer={getContainer}\r\n\t\t\t\t>\r\n\t\t\t\t\t{content}\r\n\t\t\t\t</Content>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n"],"names":["content","useRef","useContext","ModalContext","useReactive","useMouseUp","getPosition","useCreation","getPointPosition","useMemo","useResizeObserver","useEffect","useLayoutEffect","_jsxs","_Fragment","Children","isValidElement","cloneElement","_jsx","Content"],"mappings":"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"}
1
+ {"version":3,"file":"popup.js","sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { useCreation, useReactive } from \"ahooks\";\r\nimport {\r\n\tCSSProperties,\r\n\tChildren,\r\n\tMouseEvent,\r\n\tcloneElement,\r\n\tisValidElement,\r\n\tuseContext,\r\n\tuseEffect,\r\n\tuseLayoutEffect,\r\n\tuseMemo,\r\n\tuseRef,\r\n} from \"react\";\r\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\r\nimport { getPointPosition, getPosition } from \"../../js/utils\";\r\nimport ModalContext from \"../modal/context\";\r\nimport Content from \"./content\";\r\nimport \"./index.css\";\r\nimport { IPopup } from \"./type\";\r\n\r\nexport default function Popup(props: IPopup) {\r\n\tconst {\r\n\t\tvisible = false,\r\n\t\tcontent,\r\n\t\ttrigger = \"hover\",\r\n\t\tgap = 12,\r\n\t\toffset = 8,\r\n\t\tfixed,\r\n\t\tposition = \"top\",\r\n\t\tshowDelay = 16,\r\n\t\thideDelay = 12,\r\n\t\ttouchable,\r\n\t\tarrow = true,\r\n\t\talign,\r\n\t\tfitSize,\r\n\t\twatchResize,\r\n\t\tclickOutside = true,\r\n\t\tdisabled,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tgetContainer,\r\n\t\tchildren,\r\n\t\tonVisibleChange,\r\n\t} = props;\r\n\r\n\tconst triggerRef = useRef<HTMLElement>(null);\r\n\tconst contentRef = useRef<HTMLDivElement>(null);\r\n\tconst timerRef = useRef<any>(null);\r\n\tconst statusRef = useRef<string>(\"\");\r\n\tconst isInModal = useContext(ModalContext);\r\n\tconst refWindow = isInModal || fixed;\r\n\tconst state = useReactive<{\r\n\t\tshow: boolean;\r\n\t\tstyle: CSSProperties;\r\n\t\tarrowProps: Record<string, any>;\r\n\t}>({\r\n\t\tshow: false,\r\n\t\tstyle: { position: refWindow ? \"fixed\" : \"absolute\" },\r\n\t\tarrowProps: {},\r\n\t});\r\n\r\n\tuseMouseUp((e) => {\r\n\t\tif (!triggerRef.current || !contentRef.current || !clickOutside) return;\r\n\r\n\t\tconst tar = e.target as HTMLElement;\r\n\t\tconst isContain =\r\n\t\t\ttriggerRef.current.contains(tar) ||\r\n\t\t\tcontentRef.current.contains(tar);\r\n\r\n\t\tif (!state.show || isContain) return;\r\n\r\n\t\thandleToggle(false);\r\n\t});\r\n\r\n\tconst clearTimer = () => {\r\n\t\tif (!timerRef.current) return;\r\n\t\tclearTimeout(timerRef.current);\r\n\t\ttimerRef.current = null;\r\n\t\tstatusRef.current = \"\";\r\n\t};\r\n\r\n\tconst handleShow = () => {\r\n\t\tif (disabled) return;\r\n\t\tif (\r\n\t\t\tstate.show &&\r\n\t\t\t(trigger !== \"hover\" || (trigger === \"hover\" && !touchable))\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstatusRef.current = \"showing\";\r\n\t\tstate.show = true;\r\n\r\n\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tif (statusRef.current !== \"showing\") return;\r\n\r\n\t\t\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\r\n\t\t\t\t\ttriggerRef.current,\r\n\t\t\t\t\tcontentRef.current,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\tgap,\r\n\t\t\t\t\t\toffset,\r\n\t\t\t\t\t\talign,\r\n\t\t\t\t\t\trefWindow,\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\tstate.style = {\r\n\t\t\t\t\t...state.style,\r\n\t\t\t\t\topacity: 1,\r\n\t\t\t\t\ttransform: \"none\",\r\n\t\t\t\t\tleft,\r\n\t\t\t\t\ttop,\r\n\t\t\t\t};\r\n\t\t\t\tstate.arrowProps = {\r\n\t\t\t\t\tleft: arrowX,\r\n\t\t\t\t\ttop: arrowY,\r\n\t\t\t\t\tpos: arrowPos,\r\n\t\t\t\t};\r\n\t\t\t\tonVisibleChange?.(true);\r\n\t\t\t\tclearTimer();\r\n\t\t\t\tstatusRef.current = \"\";\r\n\t\t\t});\r\n\t\t}, showDelay);\r\n\t};\r\n\r\n\tconst handleHide = () => {\r\n\t\tif (!state.show) return;\r\n\r\n\t\tstatusRef.current = \"hiding\";\r\n\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\tif (statusRef.current !== \"hiding\") {\r\n\t\t\t\tclearTimer();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tstate.style = {\r\n\t\t\t\t...state.style,\r\n\t\t\t\topacity: 0,\r\n\t\t\t\ttransform: \"translate(0, 2px)\",\r\n\t\t\t};\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tstate.show = false;\r\n\t\t\t\tclearTimer();\r\n\t\t\t\tonVisibleChange?.(false);\r\n\t\t\t\tstatusRef.current = \"\";\r\n\t\t\t}, 160);\r\n\t\t}, hideDelay);\r\n\t};\r\n\r\n\tconst handleToggle = (action?: boolean) => {\r\n\t\tif (action !== undefined) {\r\n\t\t\taction ? handleShow() : handleHide();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tstate.show ? handleHide() : handleShow();\r\n\t};\r\n\tconst eventMaps = useCreation(\r\n\t\t() => ({\r\n\t\t\tclick: {\r\n\t\t\t\tonClick: () => handleToggle(true),\r\n\t\t\t},\r\n\t\t\thover: {\r\n\t\t\t\tonMouseEnter: () => handleToggle(true),\r\n\t\t\t\tonMouseLeave: () => handleToggle(false),\r\n\t\t\t},\r\n\t\t\tfocus: {\r\n\t\t\t\tonFocus: () => handleToggle(true),\r\n\t\t\t\tonBlur: () => handleToggle(false),\r\n\t\t\t},\r\n\t\t\tcontextmenu: {\r\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tif (state.show) {\r\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tstate.style = {\r\n\t\t\t\t\t\t\t...state.style,\r\n\t\t\t\t\t\t\tleft,\r\n\t\t\t\t\t\t\ttop,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tstate.show = true;\r\n\r\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\r\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tstate.style = {\r\n\t\t\t\t\t\t\t...state.style,\r\n\t\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\t\ttransform: \"none\",\r\n\t\t\t\t\t\t\tleft,\r\n\t\t\t\t\t\t\ttop,\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tclearTimer();\r\n\t\t\t\t\t\tonVisibleChange?.(true);\r\n\t\t\t\t\t}, showDelay);\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tnone: {},\r\n\t\t}),\r\n\t\t[]\r\n\t);\r\n\r\n\tconst contentTouch = useMemo(() => {\r\n\t\tif (!touchable) return {};\r\n\t\tconst events: { [key: string]: () => void } = {};\r\n\r\n\t\tif (trigger === \"hover\") {\r\n\t\t\tevents[\"onMouseEnter\"] = () => {\r\n\t\t\t\tclearTimer();\r\n\t\t\t};\r\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\r\n\t\t}\r\n\r\n\t\treturn events;\r\n\t}, [touchable, trigger]);\r\n\r\n\tconst computePosition = () => {\r\n\t\tif (!state.show) return;\r\n\r\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\r\n\t\t\ttriggerRef.current,\r\n\t\t\tcontentRef.current,\r\n\t\t\t{\r\n\t\t\t\tposition,\r\n\t\t\t\tgap,\r\n\t\t\t\toffset,\r\n\t\t\t\talign,\r\n\t\t\t\trefWindow,\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tObject.assign(state, {\r\n\t\t\tstyle: { ...state.style, left, top },\r\n\t\t\tarrowProps: { left: arrowX, top: arrowY, pos: arrowPos },\r\n\t\t});\r\n\t};\r\n\r\n\tconst { observe, unobserve, disconnect } = useResizeObserver();\r\n\tuseEffect(() => {\r\n\t\tif (trigger === \"contextmenu\" || !observe) return;\r\n\r\n\t\ttriggerRef.current && observe(triggerRef.current, computePosition);\r\n\r\n\t\tif (!watchResize || !contentRef.current) return;\r\n\r\n\t\tobserve(contentRef.current, computePosition);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (!watchResize || !contentRef.current) return;\r\n\r\n\t\t\tunobserve(contentRef.current);\r\n\t\t\ttriggerRef.current && unobserve(triggerRef.current);\r\n\t\t\tdisconnect();\r\n\t\t};\r\n\t}, [watchResize, contentRef.current, triggerRef.current]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\tif (!fitSize || !state.show) return;\r\n\r\n\t\tconst vertical = [\"top\", \"bottom\"].includes(position);\r\n\t\tconst size =\r\n\t\t\ttriggerRef.current?.[vertical ? \"offsetWidth\" : \"offsetHeight\"];\r\n\t\tstate.style = { ...state.style, [vertical ? \"width\" : \"height\"]: size };\r\n\t}, [state.show, fitSize]);\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\thandleToggle(visible);\r\n\t}, [visible]);\r\n\r\n\tuseEffect(() => {\r\n\t\tclearTimer();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{Children.map(children, (child) => {\r\n\t\t\t\tif (!isValidElement(child)) return;\r\n\r\n\t\t\t\tconst { className, ...restProps } = child.props as any;\r\n\t\t\t\tObject.keys(eventMaps[trigger]).map((evt) => {\r\n\t\t\t\t\tif (!restProps[evt]) return;\r\n\t\t\t\t\tconst fn = eventMaps[trigger][evt];\r\n\r\n\t\t\t\t\teventMaps[trigger][evt] = (e) => {\r\n\t\t\t\t\t\tfn();\r\n\t\t\t\t\t\trestProps[evt](e);\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn cloneElement(child, {\r\n\t\t\t\t\tref: triggerRef,\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t\t...restProps,\r\n\t\t\t\t\t...eventMaps[trigger],\r\n\t\t\t\t});\r\n\t\t\t})}\r\n\r\n\t\t\t{state.show && (\r\n\t\t\t\t<Content\r\n\t\t\t\t\tref={contentRef}\r\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\r\n\t\t\t\t\tstyle={{ ...style, ...state.style }}\r\n\t\t\t\t\tarrowProps={state.arrowProps}\r\n\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t{...contentTouch}\r\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\r\n\t\t\t\t\tgetContainer={getContainer}\r\n\t\t\t\t>\r\n\t\t\t\t\t{content}\r\n\t\t\t\t</Content>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n}\r\n"],"names":["content","useRef","useContext","ModalContext","useReactive","useMouseUp","getPosition","useCreation","getPointPosition","useMemo","useResizeObserver","useEffect","useLayoutEffect","_jsxs","_Fragment","Children","isValidElement","cloneElement","_jsx","Content"],"mappings":"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"}