@next-bricks/advanced 0.51.1 → 0.51.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +19 -19
- package/dist/chunks/8382.d552299f.js.map +1 -1
- package/dist/chunks/eo-cascader.86a685ca.js.map +1 -1
- package/dist/chunks/eo-next-table.25f4bf4d.js.map +1 -1
- package/dist/chunks/eo-table.5dd09651.js.map +1 -1
- package/dist/chunks/eo-tree.22180778.js.map +1 -1
- package/dist/examples.json +3 -3
- package/dist/{index.d63b126d.js → index.3d8026b9.js} +2 -2
- package/dist/{index.d63b126d.js.map → index.3d8026b9.js.map} +1 -1
- package/dist/manifest.json +619 -619
- package/dist/types.json +734 -682
- package/dist-types/cascader/index.d.ts +10 -0
- package/dist-types/next-table/index.d.ts +43 -0
- package/dist-types/table/index.d.ts +34 -0
- package/dist-types/tree/index.d.ts +12 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/8382.d552299f.js","mappings":"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","sources":["webpack:///./src/table/table.shadow.css","webpack:///./src/next-table/chart-v2.shadow.css","webpack:///../../node_modules/react-resizable/css/styles.css","webpack:///./src/table/utils.tsx","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/i18n.ts","webpack:///./src/table/index.tsx","webpack:///../../src/FormItemElement.tsx","webpack:///./src/cascader/index.tsx","webpack:///./src/next-table/i18n.ts","webpack:///./src/next-table/utils.ts","webpack:///./src/next-table/Row.tsx","webpack:///./src/next-table/CacheUseBrickItem.tsx","webpack:///./src/next-table/Table.tsx","webpack:///./src/next-table/host-context.css?3429","webpack:///./src/next-table/index.tsx","webpack:///./src/workbench-layout/index.tsx","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.module.css?5d2f","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.tsx","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.module.css?66f3","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.tsx","webpack:///./src/workbench-layout-v2/utils.ts","webpack:///./src/workbench-layout-v2/styles.module.css?4307","webpack:///./src/workbench-layout-v2/styles.css?4d90","webpack:///./src/workbench-layout-v2/i18n.ts","webpack:///./src/workbench-layout-v2/index.tsx","webpack:///./src/data-providers/snapshot.ts","webpack:///./src/data-providers/capture-snapshot.ts","webpack:///./src/tree/index.tsx","webpack:///./src/tree-select/index.tsx","webpack:///./src/text-tooltip/index.tsx","webpack:///./src/pdf-viewer/index.tsx","webpack:///./src/text-tooltip/styles.shadow.css","webpack:///../../node_modules/react-grid-layout/css/styles.css","webpack:///./src/tree-select/styles.shadow.css","webpack:///./src/tree/styles.shadow.css","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.module.css","webpack:///./src/next-table/host-context.css","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.module.css","webpack:///./src/cascader/styles.shadow.css","webpack:///./src/next-table/styles.shadow.css","webpack:///./src/workbench-layout-v2/styles.css","webpack:///./src/workbench-layout-v2/styles.module.css","webpack:///./src/workbench-layout/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.brickTableOddRow{background-color:var(--color-fill-bg-base-4)}.ant-table-small .ant-table-body{margin:0}.ant-table-small .ant-table-thead{background:var(--antd-table-header-bg)}.ant-table-small .ant-table-row{line-height:26px}.ant-table-tbody > tr.invalidRow > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.invalidRow:hover > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.disabledRow > td{background-color:var(--theme-gray-border-color)}.ant-table-tbody > .ant-table-row-selected td{background:var(--antd-table-cell-fixed-body-bg)!important}td.alignTop{vertical-align:top}td.alignBottom{vertical-align:bottom}.expandIconCellHidden .ant-table-row-expand-icon-cell,\n.expandIconCellHidden .ant-table-expand-icon-col{width:1px;min-width:auto}.expandIconCellHidden .ant-table-row-expand-icon-cell > *,\n.expandIconCellHidden .ant-table-expand-icon-col > *{display:none}.expandIconSpan{cursor:pointer;margin-right:9px;color:var(--antd-table-row-expand-icon-color);font-size:11px}.expandIconSpan .anticon{background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.tableThTransparent thead.ant-table-thead > tr > th{background:var(--antd-table-header-bg)}.zebraPatternTable .ant-table-tbody tr td{border-bottom:0}.ellipsis{max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.totalText{color:var(--antd-pagination-total-text)}.total{font-weight:normal;color:var(--antd-pagination-total-strong-text)}.ant-table-wrapper .ant-table-thead > tr > th{padding:11px 16px;font-size:12px;line-height:20px;border-bottom:0;font-weight:500;color:var(--antd-table-header-color)}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:24px 0}.xSmallSizeTable .ant-table{line-height:1}.xSmallSizeTable .ant-table .ant-table-selection-col{width:32px}.xSmallSizeTable .ant-table-thead tr th,\n.xSmallSizeTable .ant-table-tbody tr td{padding:0px 2px}.xSmallSizeTable .ant-table-thead tr th:first-child,\n.xSmallSizeTable .ant-table-tbody tr td:first-child{padding:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[class^=\"chartWrap--\"]{position:relative;display:flex;flex-direction:column}[class^=\"chartWrap--\"] img::selection{background:transparent}[class^=\"chartWrap--\"] [class^=\"chartEle--\"]{display:flex;justify-content:center;align-items:center;flex:1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,\n.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,\n.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import {\n lt,\n lte,\n gt,\n gte,\n get,\n isEqual,\n forEach,\n includes,\n isUndefined,\n} from \"lodash\";\nimport { type CellStatusProps } from \"./index.js\";\nexport const compareFunMap: Record<string, any> = {\n $eq: isEqual,\n $lt: lt,\n $lte: lte,\n $gt: gt,\n $gte: gte,\n $ne: (value: any, fieldValue: any): boolean => !isEqual(value, fieldValue),\n $isEqual: isEqual,\n $notEqual: (value: any, fieldValue: any): boolean =>\n !isEqual(value, fieldValue),\n $in: includes,\n $nin: (value: any, fieldValue: any): boolean => !includes(value, fieldValue),\n $exists: (value: any, fieldValue: any): boolean =>\n value ? !isUndefined(fieldValue) : isUndefined(fieldValue),\n};\n\nexport function getCellStyle(\n cellStatus: CellStatusProps,\n item: Record<string, any>,\n value?: any\n): Record<string, string> {\n const { dataIndex, mapping: list } = cellStatus;\n const finalValue = dataIndex !== undefined ? get(item, dataIndex) : value;\n const ret = list.find((item) => item.value === finalValue);\n\n if (!ret) return {};\n\n return {\n borderLeft: `4px solid ${ret.leftBorderColor}`,\n };\n}\nexport const getKeysOfData = (\n data: Record<string, any>[],\n rowKey: string,\n childrenColumnName: string,\n keys: string[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n const key = get(item, rowKey);\n keys.push(key);\n if (children?.length) {\n getKeysOfData(children, rowKey, childrenColumnName, keys);\n }\n });\n }\n};\nexport const getRowsOfData = (\n data: Record<string, any>[],\n childrenColumnName: string,\n rows: Record<string, any>[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n rows.push(item);\n if (children?.length) {\n getRowsOfData(children, childrenColumnName, rows);\n }\n });\n }\n};\n\nexport function stripEmptyExpandableChildrenByName(\n name: string,\n data: Record<string, any>[] = []\n): Record<string, any>[] {\n if (data?.length) {\n data.forEach((value) => {\n if (value[name]?.length) {\n return stripEmptyExpandableChildrenByName(name, value[name]);\n }\n\n delete value[name];\n return value;\n });\n }\n return data;\n}\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { Table, type TableProps, ConfigProvider } from \"antd\";\nimport { getCellStyle } from \"./utils.js\";\nimport { pickBy, isNil, toPath, isEqual } from \"lodash\";\nimport classNames from \"classnames\";\nimport { DndProvider, useDrag, useDrop } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport update from \"immutability-helper\";\nimport { CustomColumn } from \"./index.js\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\n\nimport { i18n } from \"@next-core/i18n\";\n\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst type = \"DraggableBodyRow\";\n\nconst downMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"down\",\n theme: \"outlined\",\n};\n\nconst rightMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"right\",\n theme: \"outlined\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface BrickTableProps {\n shadowRoot: ShadowRoot | null;\n dataSource: Record<string, any>[];\n columns: CustomColumn[];\n configProps?: TableProps<any>;\n error?: any;\n onDelete?: (index: number) => void;\n onChange: any;\n onSelectChange?: (selected: string[]) => void;\n showCard?: boolean;\n // 展开行相关属性\n expandedRowBrick?: {\n useBrick?: UseSingleBrickConf;\n };\n expandIcon?: {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n };\n expandIconAsCell?: boolean;\n expandIconColumnIndex?: number;\n expandRowByClick?: boolean;\n defaultExpandAllRows?: boolean;\n onExpand?: (expanded: boolean, record: Record<string, any>) => void;\n onExpandedRowsChange?: (expandedRows: React.Key[]) => void;\n expandedRowKeys?: React.Key[];\n rowKey?: string;\n childrenColumnName?: string;\n tableDraggable?: boolean;\n onDrag?: (data: Record<string, any>[]) => void;\n zebraPattern?: boolean;\n scroll?: TableProps<unknown>[\"scroll\"];\n optimizedColumns?: Array<string | number>;\n ellipsisInfo?: boolean;\n thTransparent?: boolean;\n showHeader?: boolean;\n xSmallSizeTable?: boolean;\n}\n\nconst DraggableBodyRow = ({\n index,\n moveRow,\n className,\n style,\n ...restProps\n}: any) => {\n const ref = React.useRef(null);\n const [{ isOver, dropClassName }, drop] = useDrop({\n accept: type,\n collect: (monitor: any) => {\n const { index: dragIndex } = monitor.getItem() || {};\n if (dragIndex === index) {\n return {};\n }\n return {\n isOver: monitor.isOver(),\n dropClassName:\n dragIndex < index ? `dropOverDownward` : `dropOverUpward`,\n };\n },\n drop: (item: any) => {\n moveRow(item.index, index);\n },\n });\n const [, drag] = useDrag({\n type,\n item: { type, index },\n collect: (monitor: any) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n drop(drag(ref));\n return (\n <tr\n ref={ref}\n className={classNames(className, {\n [dropClassName as string]: isOver,\n })}\n style={{ cursor: \"move\", ...style }}\n {...restProps}\n />\n );\n};\n\nconst getCustomHeader = (\n useBrick: UseSingleBrickConf,\n data?: { title: unknown }\n): (() => React.ReactElement) => {\n return function CustomHeader() {\n return <ReactUseMultipleBricks useBrick={useBrick} data={data} />;\n };\n};\n\ntype ItemBrickDataMap = Map<unknown, BrickData>;\ntype BrickData = {\n cellData: unknown;\n rowData: Record<string, unknown>;\n columnIndex: number;\n};\n\nconst getCustomComp = (\n useBrick: UseSingleBrickConf,\n itemBrickDataMap?: ItemBrickDataMap\n) => {\n return function CustomComp(\n value: any,\n item: Record<string, any>,\n index: number\n ) {\n if (useBrick) {\n let brickData: BrickData | undefined = itemBrickDataMap?.get(item);\n\n if (!brickData) {\n brickData = {\n cellData: value,\n rowData: item,\n columnIndex: index,\n };\n itemBrickDataMap?.set(item, brickData);\n }\n\n return <ReactUseMultipleBricks useBrick={useBrick} data={brickData} />;\n }\n };\n};\n\nexport function BrickTable(props: BrickTableProps): React.ReactElement {\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n if (props.error) {\n throw props.error;\n }\n\n const {\n configProps = {\n pagination: true,\n sortBy: false,\n },\n columns,\n rowKey = \"key\",\n expandIconAsCell,\n expandIconColumnIndex,\n childrenColumnName,\n scroll,\n onDelete, // 用于 brick form 中,will be deprecated\n ellipsisInfo,\n showHeader,\n } = props;\n\n const initData = useMemo(() => {\n return props.dataSource?.map((item, index) =>\n isNil(item[rowKey]) ? { ...item, [rowKey]: index } : item\n );\n }, [props.dataSource, rowKey]);\n\n const [data, setData] = useState(initData);\n const rowKeyExpandIconMapRef = useRef<Map<unknown, React.ReactNode>>(\n new Map()\n );\n const columnTitleBrickDataMapRef = useRef<\n Map<CustomColumn, { title: unknown }>\n >(new Map());\n const useBrickItemBrickDataMapRef = useRef<\n Map<UseSingleBrickConf, ItemBrickDataMap>\n >(new Map());\n const itemExpandedRowBrickDataMapRef = useRef<Map<unknown, unknown>>(\n new Map()\n );\n\n useEffect(() => {\n itemExpandedRowBrickDataMapRef.current.clear();\n setData(initData);\n }, [initData]);\n\n const expandIconColumnIndexOffset = (configProps as TableProps<any>)\n ?.rowSelection\n ? -1\n : 0;\n const customColumns = useMemo(() => {\n if (columns) {\n columnTitleBrickDataMapRef.current.clear();\n useBrickItemBrickDataMapRef.current.clear();\n const customColumns = columns.map((column, index) => {\n const {\n useBrick,\n valueSuffix,\n cellStatus,\n cellStyle = {},\n headerBrick,\n colSpanKey,\n rowSpanKey,\n filterDropdownBrick,\n ...columnConf\n } = column;\n if (headerBrick?.useBrick) {\n const useBrick = headerBrick?.useBrick;\n let data = columnTitleBrickDataMapRef.current.get(column);\n\n if (!data) {\n data = {\n title: columnConf.title,\n };\n columnTitleBrickDataMapRef.current.set(column, data);\n }\n\n columnConf.title = getCustomHeader(\n useBrick as UseSingleBrickConf,\n data\n );\n }\n\n if (filterDropdownBrick?.useBrick) {\n columnConf.filterDropdown = (\n <ReactUseMultipleBricks useBrick={filterDropdownBrick.useBrick} />\n );\n }\n\n if (useBrick) {\n let itemBrickDataMap: ItemBrickDataMap | undefined;\n\n if (useBrick) {\n itemBrickDataMap =\n useBrickItemBrickDataMapRef.current.get(useBrick);\n\n if (!itemBrickDataMap) {\n itemBrickDataMap = new Map();\n useBrickItemBrickDataMapRef.current.set(\n useBrick,\n itemBrickDataMap\n );\n }\n }\n\n columnConf.render = getCustomComp(useBrick, itemBrickDataMap);\n // [only update when record changed](https://ant.design/components/table-cn/#%E4%B8%BA%E4%BB%80%E4%B9%88-%E6%9B%B4%E6%96%B0-state-%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%85%A8%E8%A1%A8%E6%B8%B2%E6%9F%93%EF%BC%9F)\n columnConf.shouldCellUpdate = (record: any, prevRecord: any) => {\n return !isEqual(record, prevRecord);\n };\n } else if (valueSuffix) {\n columnConf.render = (value: string) => value + valueSuffix;\n }\n if (\n !expandIconAsCell &&\n index === Number(expandIconColumnIndex) + expandIconColumnIndexOffset\n ) {\n const innerRender = columnConf.render;\n columnConf.render = function ExpandIcon(\n value: any,\n record: any,\n index: any\n ) {\n return (\n <>\n {!record[childrenColumnName as string] &&\n rowKeyExpandIconMapRef.current.get(\n rowKey ? record[rowKey] : record\n )}\n {innerRender ? innerRender(value, record, index) : value}\n </>\n );\n };\n }\n if (cellStatus || colSpanKey || rowSpanKey || cellStyle) {\n const innerRender = columnConf.render;\n columnConf.render = (value: any, item: any, index: number) => {\n return {\n children: innerRender ? innerRender(value, item, index) : value,\n props: {\n colSpan: item[colSpanKey as string],\n rowSpan: item[rowSpanKey as string],\n style: {\n ...(cellStatus ? getCellStyle(cellStatus, item, value) : {}),\n ...cellStyle,\n },\n },\n };\n };\n }\n\n if (typeof columnConf.dataIndex === \"string\") {\n columnConf.dataIndex = toPath(columnConf.dataIndex);\n }\n if (columnConf.verticalAlign === \"top\") {\n columnConf.className\n ? (columnConf.className += \" alignTop\")\n : (columnConf.className = \"alignTop\");\n }\n if (columnConf.verticalAlign === \"bottom\") {\n columnConf.className\n ? (columnConf.className += \" alignBottom\")\n : (columnConf.className = \"alignBottom\");\n }\n if (ellipsisInfo) {\n columnConf.className\n ? (columnConf.className += \" ellipsisInfoCell\")\n : (columnConf.className = \"ellipsisInfoCell\");\n }\n return columnConf;\n });\n\n return customColumns;\n }\n }, [\n columns,\n childrenColumnName,\n expandIconAsCell,\n expandIconColumnIndex,\n expandIconColumnIndexOffset,\n rowKey,\n onDelete,\n ellipsisInfo,\n ]);\n\n const expandedRowRender = (record: Record<string, any>, index: number) => {\n let data = itemExpandedRowBrickDataMapRef.current.get(record);\n\n if (!data) {\n data = {\n rowData: record,\n rowIndex: index,\n };\n itemExpandedRowBrickDataMapRef.current.set(record, data);\n }\n\n return (\n <ReactUseMultipleBricks\n useBrick={props.expandedRowBrick?.useBrick as UseSingleBrickConf}\n data={data}\n />\n );\n };\n\n const components = {\n body: {\n row: DraggableBodyRow,\n },\n };\n\n const moveRow = (dragIndex: number, hoverIndex: number) => {\n const dragRow = data[dragIndex];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const newData = update(data, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragRow],\n ],\n });\n setData(newData);\n props.onDrag && props.onDrag(newData);\n };\n\n const onExpand = (expanded: boolean, record: Record<string, any>) => {\n props.onExpand && props.onExpand(expanded, record);\n };\n\n const onExpandedRowsChange = (expandedRows: React.Key[]) => {\n props.onExpandedRowsChange && props.onExpandedRowsChange(expandedRows);\n };\n\n const getCustomExpandIcon = (iconProps: any) => {\n const { record, expandable, expanded, onExpand } = iconProps;\n let icon = props.expandIcon?.collapsedIcon || downMenuIcon;\n let iconNode: React.ReactNode;\n if (expandable) {\n if (!expanded) {\n icon = props.expandIcon?.expandedIcon || rightMenuIcon;\n }\n iconNode = (\n <span\n className=\"expandIconSpan\"\n data-testid=\"expand-icon\"\n onClick={(e) => {\n onExpand(record, e);\n }}\n >\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n );\n } else {\n iconNode = (\n <span className=\"expandIconSpan\" data-testid=\"expand-icon\">\n <span style={{ visibility: \"hidden\" }}>\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n </span>\n );\n }\n\n if (iconNode) {\n if (!expandIconAsCell) {\n rowKeyExpandIconMapRef.current.set(\n rowKey ? record[rowKey] : record,\n iconNode\n );\n }\n return iconNode;\n } else {\n return <></>;\n }\n };\n\n const pickExpandProps = pickBy(\n {\n expandIconColumnIndex,\n expandIconAsCell,\n expandRowByClick: props.expandRowByClick,\n expandedRowKeys: props.expandedRowKeys,\n defaultExpandAllRows: props.defaultExpandAllRows,\n },\n (item) => !isNil(item)\n );\n\n let table = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <Table\n className={classNames(\"brickTable\", {\n expandIconCellHidden: !expandIconAsCell,\n customDropTable: props.tableDraggable,\n tableThTransparent: props.thTransparent,\n zebraPatternTable: data?.length >= 2 && props.zebraPattern,\n xSmallSizeTable: props.xSmallSizeTable,\n })}\n dataSource={data}\n {...(props.tableDraggable\n ? {\n components,\n onRow: (record, index) => ({\n index,\n moveRow: moveRow,\n }),\n }\n : {})}\n columns={customColumns}\n onChange={props.onChange}\n {...(props.expandedRowBrick\n ? {\n expandedRowRender,\n }\n : {})}\n {...pickExpandProps}\n onExpand={onExpand}\n showSorterTooltip={false}\n onExpandedRowsChange={onExpandedRowsChange}\n rowKey={rowKey}\n childrenColumnName={childrenColumnName}\n rowClassName={(record, index) => {\n if (record.invalidRow) {\n return \"invalidRow\";\n }\n if (record.disabledRow) {\n return \"disabledRow\";\n }\n return props.zebraPattern && index % 2 ? \"brickTableOddRow\" : \"\";\n }}\n expandIcon={getCustomExpandIcon}\n scroll={scroll}\n showHeader={showHeader}\n {...configProps}\n />\n );\n\n if (props.tableDraggable) {\n table = (\n <DndProvider backend={HTML5Backend} context={window}>\n {table}\n </DndProvider>\n );\n }\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider locale={locale}>\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n {table}\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/advanced/eo-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string };\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./table.shadow.css\";\nimport { ColumnProps, TablePaginationConfig, TableProps } from \"antd/es/table\";\nimport { BrickEventsMap, UseSingleBrickConf } from \"@next-core/types\";\nimport {\n get,\n map,\n set,\n isEmpty,\n merge,\n isNil,\n forEach,\n cloneDeep,\n isArray,\n uniq,\n pullAll,\n every,\n find,\n pull,\n filter,\n flatten,\n keyBy,\n} from \"lodash\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { BrickTable } from \"./BrickTable.js\";\nimport {\n TableRowSelection,\n SorterResult,\n RowSelectionType,\n} from \"antd/lib/table/interface.js\";\nimport {\n compareFunMap,\n getKeysOfData,\n getRowsOfData,\n stripEmptyExpandableChildrenByName,\n} from \"./utils.js\";\nimport type { SortOrder } from \"antd/lib/table/interface.js\";\nimport type { DataIndex } from \"rc-table/lib/interface.js\";\nimport type { SizeType } from \"antd/lib/config-provider/SizeContext.js\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface RowDisabledProps {\n field: string;\n value: any;\n operator:\n | \"$eq\"\n | \"$ne\"\n | \"$lt\"\n | \"$lte\"\n | \"$gt\"\n | \"$gte\"\n | \"$isEqual\"\n | \"$notEqual\"\n | \"$in\"\n | \"$nin\"\n | \"$exists\";\n}\n\nexport interface CellStatusProps {\n dataIndex?: string;\n mapping: Array<{\n leftBorderColor: string;\n value: any;\n }>;\n}\n\nexport interface CustomColumnComponent {\n /** 构件名称 */\n brick: string | any;\n /** 字段值、列表项和 index 对应所用构件的属性的 key */\n fields?: {\n value?: string;\n item?: string;\n index?: string;\n };\n /** 构件属性 */\n properties?: Record<string, any>;\n /** 事件 */\n events?: BrickEventsMap;\n}\n\nexport interface CustomColumn extends ColumnProps<Record<string, any>> {\n /**\n * 支持为某列自定义展示构件\n */\n useBrick?: UseSingleBrickConf;\n /**\n * 字段的值展示时的后缀\n */\n valueSuffix?: string;\n /**\n * 支持为某列的表头自定义展示构件,可通过 DATA.title 获取标题文本\n */\n headerBrick?: {\n useBrick: UseSingleBrickConf;\n };\n /**\n * 在渲染自定义构件的场景下额外设置单元格的状态样式, `dataIndex` 表示取哪一列的字段值作为判断数据,不填的话默认取当前列的字段,`mapping` 表示判断的条件,条件被成功匹配时用当前的样式。目前仅支持单元格 `leftBorderColor` 属性的设置\n */\n cellStatus?: CellStatusProps;\n /**\n * 设置列的每个单元格样式\n */\n cellStyle?: React.CSSProperties;\n /**\n * 单元格内元素的垂直对齐方式\n */\n verticalAlign?: \"top\" | \"bottom\";\n /**\n * 每条记录的控制列合并的值的 key\n */\n colSpanKey?: string;\n /**\n * 每条记录的控制行合并的值的 key\n */\n rowSpanKey?: string;\n /**\n * 自定义筛选菜单\n */\n filterDropdownBrick?: {\n useBrick: UseSingleBrickConf;\n };\n}\n\n/**\n * 简易表格构件。\n *\n * ⚠️ 通常情况下,应使用 `eo-next-table` 替代。\n *\n * @author sailor\n * @category table\n *\n * @insider\n */\n@defineElement(\"eo-table\", {\n styleTexts: [styleText],\n alias: [\"advanced.general-table\"],\n})\nclass TableComponent extends ReactNextElement {\n /**\n * 页码变化,pagePath 可在 fields.page 中设置,默认为 page\n */\n @event({ type: \"page.update\" }) accessor #pageUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 每页条数变化 ,pagePath 可在 fields.page 中设置,pageSizePath 可在 fields.pageSize 中设置,默认为 pageSize\n */\n @event({ type: \"filter.update\" }) accessor #filterUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行数据\n */\n @event({ type: \"select.update\" }) accessor #selectUpdate!: EventEmitter<\n Record<string, any>[]\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行key集合\n */\n @event({ type: \"select.row.keys.update\" })\n accessor #selectRowKeysUpdate!: EventEmitter<string[]>;\n\n /**\n * 排序变化,detail 中的 sort 为对应排序列的 key/dataIndex,order 为升序/降序\n */\n @event({ type: \"sort.update\", cancelable: true })\n accessor #sortUpdate!: EventEmitter<{\n sort: string;\n order: string | number;\n }>;\n\n /**\n * 点击展开图标时触发的事件,事件详情中`expanded`为是否展开,`record`被点击的行信息\n */\n @event({ type: \"row.expand\" }) accessor #rowExpand!: EventEmitter<{\n expanded: boolean;\n record: Record<string, any>;\n }>;\n\n /**\n * 展开的行变化时触发的事件,事件详情为当前展开的所有行的`rowKey`集合\n */\n @event({ type: \"expand.rows.change\" })\n accessor #expandRowsChange!: EventEmitter<{\n expandedRows: React.Key[];\n }>;\n\n /**\n * 表格行拖拽结束发生的事件,事件详情为拖拽后重新排序的所有行数据\n */\n @event({ type: \"row.drag\" }) accessor #rowDrag!: EventEmitter<{\n data: Record<string, any>[];\n }>;\n\n /**\n * 扩展自 ant-design 的 Column 相关配置项,具体查阅:[Column](https://ant.design/components/table-cn/#Column)\n */\n set columns(value: CustomColumn[]) {\n this._columns = value;\n this._render();\n }\n get columns(): CustomColumn[] {\n return this._columns as CustomColumn[];\n }\n\n /**\n * 数据源,通过 useResolves 从后台接口获取或者直接在 storyboard 中配置\n */\n set dataSource(value: Record<string, any>[]) {\n this._isInSelect = false;\n this._originalDataSource = value;\n this._dataSource = cloneDeep(\n this._fields.dataSource ? get(value, this._fields.dataSource) : value\n );\n // 前端搜索需要保留一个干净的数据\n this._pureSource = cloneDeep(this._dataSource);\n if (this.stripEmptyExpandableChildren) {\n const columnName =\n this.configProps?.expandable?.childrenColumnName || \"children\";\n stripEmptyExpandableChildrenByName(columnName, this._dataSource);\n }\n this.#total = get(value, this._fields.total as string);\n this.page = get(value, \"page\") ?? this.page ?? 1;\n this.pageSize =\n get(value, \"page_size\") ?? get(value, \"pageSize\") ?? this.pageSize ?? 10;\n this._render();\n }\n\n /**\n * 是否显示外层卡片\n */\n @property({\n type: Boolean,\n })\n accessor showCard = true;\n\n /**\n * 表格行是否可选择,具体查阅:[rowSelection](https://ant.design/components/table-cn/#rowSelection)\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: false | TableRowSelection<any> | undefined;\n\n /**\n * 指定每一行的 key,不指定则默认为索引 index。强烈建议设置该属性,否则在某些情况下可能行为不如预期。\n */\n @property()\n accessor rowKey: string | undefined;\n\n /**\n * 隐藏相应列(输入对应的 dataIndex 或者 key 即可)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: Array<string | number> | undefined;\n\n /**\n * 是否显示已选择信息和清除按钮。仅在设置了`rowSelection`时有效。默认不显示\n * @group rowSelection\n */\n @property({\n type: Boolean,\n })\n accessor showSelectInfo = false;\n\n // 表头过滤的 filters\n /**\n * 表头过滤的过滤项,key 为 column 的 dataIndex,value 为过滤值集合。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor filters: Record<string, string[]> | undefined;\n\n /**\n * ant-design 的 Table 相关配置项,具体查阅:[Table](https://ant.design/components/table-cn/#Table),其中分页配置和行选择配值在构件中设置了常用的默认配置,也可自行覆盖,具体描述见下表\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor configProps: any;\n\n /**\n * 被排序列的 dataIndex。通常来自于 url 参数,可以设置成 ${QUERY.sort}。\n * @group paginationAndFilter\n */\n @property()\n accessor sort: string | undefined | null;\n\n /**\n * 升序/降序,可以设置成 ${QUERY.order}。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor order: string | number | undefined | null;\n\n /**\n * 配置每一行是否禁用,其中 `field` 表示数据源中的字段路径, `value` 表示与其字段比较的值, `operator` 表示两者比较的方法,结果为 `true` 时会禁用当前行, 需要注意的是该配置需要在 `rowSelection: true` 的前提下使用,并且设置 `rowKey` 属性赋予每行唯一的 key,防止顺序变化时造成的错误勾选(如上 demo 所示)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor rowDisabledConfig: RowDisabledProps | RowDisabledProps[] | undefined;\n\n // start -- 行展开相关属性\n /**\n * 自定义行展开的构件 [UseBrickConf](/next-docs/docs/api-reference/brick-types.usesinglebrickconf)\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowBrick:\n | {\n useBrick?: UseSingleBrickConf;\n }\n | undefined;\n\n /**\n * 自定义展开图标。\n * @default {collapsedIcon:{lib:'antd',icon:'down',theme:'outlined'},expandedIcon:{lib:'antd',icon:'right',theme:'outlined'}}\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIcon:\n | {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n }\n | undefined;\n\n /**\n * 展开的图标是否为一个单元格,默认显示在第一列;设置为 false 的时候,可以通过`expandIconColumnIndex`属性设置展开的图标在哪一列\n * @default true\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIconAsCell = true;\n\n /**\n * 展开的图标显示在哪一列,如果没有 rowSelection,默认显示在第一列,否则显示在选择框后面。当`expandIconAsCell`为 false 时,该属性生效。\n * @group expand\n */\n @property({\n type: Number,\n })\n accessor expandIconColumnIndex: number | undefined;\n\n /**\n * 通过点击行来展开子行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor expandRowByClick: boolean | undefined;\n\n /**\n * 优化渲染的列(输入对应的 dataIndex),针对配置了 useBrick 的列。当前 antd 在更新 state 的时候,会全量渲染单元格,如果确定某一列在后续操作中不需要重新渲染,例如仅作为展示的单元格,可通过该属性设置以优化性能。注意,在树形表格中,当某一列内包含展开/收起按钮,则不应该设置该列。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: Array<string | number> | undefined;\n\n /**\n * 树形数据展示时是否需要去除空数组\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor stripEmptyExpandableChildren = false;\n\n /**\n * 初始时,是否展开所有行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultExpandAllRows: boolean | undefined;\n\n /**\n * 是否显示省略信息\n * @group basic\n */\n @property({ type: Boolean })\n accessor ellipsisInfo: boolean | undefined;\n\n /**\n * 展开的行的 rowKey\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: string[] | undefined;\n\n // end -- 行展开相关属性\n\n /**\n * 表格树形数据展示的时候,行选择父节点的时候是否同步勾选/取消勾选所有子节点,并且被同步勾选的子节点不能单独取消。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor selectAllChildren: boolean | undefined;\n\n /**\n * 是否默认选择所有行。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultSelectAll: boolean | undefined;\n\n private _disabledChildrenKeys: React.Key[] = [];\n\n /**\n * 指定树形结构的列名\n * @default children\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor childrenColumnName = \"children\";\n\n /**\n * 是否支持排序。默认开启,当对应列的sorter设置成true时则可排序。sortable为false时则排序都不生效。\n * @default true\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor sortable = true;\n\n /**\n * 设置相关字段取自哪里,具体描述见下表\n * @group advanced\n */\n set fields(value: any) {\n this._fields = { ...this._fields, ...value };\n this._render();\n }\n\n /**\n * 是否前端进行搜索,配合`presentational-bricks.brick-input`使用\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 前端搜索参数\n * @group paginationAndFilter\n */\n @property()\n accessor frontSearchQuery = \"\";\n\n /**\n * 是否精确搜索\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor exactSearch: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法如[\"name\",\"value.a\"],不配置的时候默认为对所有 columns 的 dataIndex[]进行前端搜索\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor frontSearchFilterKeys: string[] | undefined;\n\n /**\n * 页码。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 page;前台搜索的时候,一般配置成 \"${query.page=1|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n /**\n * 页码条数。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 pageSize/page_size;前台搜索的时候,一般配置成 \"${query.pageSize=10|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * @kind {\n * x?: string | number | true;\n * y?: number | string;\n * } & {\n * scrollToFirstRowOnChange?: boolean;\n * }\n * 表格是否可滚动,也可以指定滚动区域的宽、高,配置项。详见 [scroll](https://ant.design/components/table-cn/#scroll)\n * @required false\n * @default { x: true }\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor scrollConfigs: TableProps<unknown>[\"scroll\"] = { x: true };\n\n /**\n * 把过滤条件更新到 url 时的字段名\n * @default \"q\"\n * @group paginationAndFilter\n */\n @property()\n accessor qField = \"q\";\n\n /**\n * 表格行是否可拖拽,注意,树形数据的表格不支持该功能\n * @group basic\n */\n @property({\n type: Boolean,\n })\n accessor tableDraggable: boolean | undefined;\n\n /**\n * 是否展示斑马纹\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor zebraPattern: boolean | undefined;\n\n /**\n * 翻页时是否记住之前选中的项。注意,选中项的rowKey将保存在url中,如果不设置rowKey,该设置不生效。如果选择太多可能会造成url过长,请谨慎使用\n * @group other\n */\n @property({ type: Boolean })\n accessor storeCheckedByUrl: boolean | undefined;\n\n /**\n * 额外的行,通常为跨页勾选时,不在当前页的行\n * @group other\n */\n @property({ attribute: false })\n accessor extraRows: Record<string, unknown>[] = [];\n\n /**\n * 当所有子节点选中时,自动选中父节点\n * @group expand\n */\n @property({ type: Boolean })\n accessor autoSelectParentWhenAllChildrenSelected: boolean | undefined;\n\n /**\n * 表格表头是否透明\n * @group ui\n */\n @property({ type: Boolean })\n accessor thTransparent: boolean | undefined;\n\n /**\n * 是否显示表头\n * @default true\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor showHeader = true;\n\n /**\n * 是否显示分页\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor pagination: false | TablePaginationConfig | undefined;\n\n /**\n * 表格大小(antd原生size)\n * @group ui\n */\n @property()\n accessor size: SizeType | \"x-small\";\n\n /**\n * 选框类型(单选/多选)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor type: RowSelectionType | undefined;\n\n /**\n * 是否更新 url 参数。设置为否之后,如果是后台进行分页/排序等功能,则需要结合事件进行编排。如果是前台进行分页/排序,则不需要。\n * @default true\n * @group other\n */\n @property({ type: Boolean })\n accessor shouldUpdateUrlParams = true;\n\n /**\n * 更新 url 参数时是否触发页面重新渲染。仅在`shouldUpdateUrlParams`为true时有效。\n * @default true\n * @group other\n */\n @property({\n type: Boolean,\n })\n accessor shouldRenderWhenUrlParamsUpdate = true;\n\n // 对外获取内部 _dataSource 的值\n // istanbul ignore next\n get processedDataSource() {\n return this._dataSource;\n }\n\n // 对外获取内部 _finalConfigProps 的值\n // istanbul ignore next\n get processConfigProps() {\n return this._finalConfigProps;\n }\n\n // 对外获取内部 _columns 的值\n // istanbul ignore next\n get processedColumns() {\n return this.getModifyColumns();\n }\n\n private _originalDataSource: Record<string, any>[] = [];\n private _dataSource: Record<string, any>[] = [];\n private _pureSource: Record<string, any>[] | undefined;\n private _columns: CustomColumn[] | undefined;\n private _finalConfigProps: any = {}; //处理过的配置,主要处理分页和rowSelect\n private _error: any;\n\n #total?: number | undefined;\n\n private _selectUpdateEventName = \"\";\n private _selectUpdateEventDetailKeys: string[] = [];\n private _selectUpdateEventDetailField = \"\";\n private _selectUpdateEventDetailExtra: any = {};\n\n private _fields: {\n dataSource: string; // 指定 dataSource 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 list\n total: string; // 指定 total 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 total\n page: string; // 指定请求后台 page 参数 path\n pageSize: string; // 指定请求后台 pageSize 参数 path\n rowKey?: string; // 指定每一行的 key,不指定则默认为 index\n ascend?: string | number; // 指定 ascend 排序对应字段,例如有些后台对应为 1 ,有些对应为 \"asc\"。这里默认为 \"ascend\"。\n descend?: string | number; // 指定 descend 排序对应字段,例如有些后台对应为 0 ,有些对应为 \"desc\"。这里默认为 \"descend\"。\n order?: number;\n } = {\n page: \"page\",\n pageSize: \"pageSize\",\n dataSource: \"list\",\n total: \"total\",\n ascend: \"ascend\",\n descend: \"descend\",\n };\n\n /**\n * 指定选中项的 key 数组\n * @default []\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: React.Key[] = [];\n\n private _selected = false;\n private _selectedRow: Record<string, unknown> | undefined;\n private _selectedRows: Record<string, any>[] = [];\n private _allChildren: Record<string, any>[] = [];\n private _isInSelect = false;\n /**\n * 搜索过滤\n */\n @method()\n filterSourceData(event: CustomEvent): void {\n const q = this.exactSearch\n ? event.detail.q.trim()\n : event.detail.q.trim().toLowerCase();\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n urlSearchParams.set(\"page\", \"1\");\n if (q) {\n urlSearchParams.set(this.qField, q);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n } else {\n urlSearchParams.delete(this.qField);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n }\n this.page = 1;\n }\n this.frontSearchQuery = q;\n }\n\n handleFrontendDataChange(\n data: Record<string, any>[] = [],\n columns: CustomColumn[] = []\n ): Record<string, any>[] {\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n this.frontSearchQuery = urlSearchParams.get(this.qField) as string;\n }\n let tempDataSource: Record<string, any>[] = [];\n tempDataSource = this.handleFrontendFilterSource(\n data,\n this.frontSearchQuery || \"\",\n columns\n );\n const order = isNil(this.order)\n ? null\n : this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\";\n tempDataSource = this.handleFrontendSorter(tempDataSource, {\n columnKey: this.sort as string,\n order,\n });\n tempDataSource = this.handleFrontendFilters(tempDataSource);\n this.#total = tempDataSource.length;\n return tempDataSource;\n }\n\n // 前端过滤\n handleFrontendFilterSource(\n data: Record<string, any>[],\n q: string,\n columns: CustomColumn[],\n filterKeys?: DataIndex[]\n ): Record<string, any>[] {\n if (!q) {\n return data;\n }\n\n const dataSource: Record<string, any>[] = [];\n\n if (!filterKeys) {\n filterKeys = (this.frontSearchFilterKeys ||\n columns.map((column) => column.dataIndex)) as DataIndex[];\n }\n\n data.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n const filteredChildren = this.handleFrontendFilterSource(\n children,\n q,\n columns,\n filterKeys\n );\n\n if (filteredChildren.length > 0) {\n dataSource.push({\n ...item,\n [this.childrenColumnName]: filteredChildren,\n });\n return;\n }\n }\n\n const valid = filterKeys?.some((key) => {\n const value = get(item, key);\n if (isNil(value)) {\n return false;\n }\n if (this.exactSearch) {\n return value === q;\n }\n return JSON.stringify(value).toLowerCase().includes(q);\n });\n\n if (valid) {\n dataSource.push(item);\n }\n });\n return dataSource;\n }\n\n private _getRowKey = (): string =>\n this.rowKey ?? this._fields.rowKey ?? this.configProps?.rowKey ?? \"key\";\n\n private _findParentByChildKeyValue = (\n value: string,\n rowKey: string,\n list: Record<string, unknown>[],\n parent?: Record<string, unknown>\n ): Record<string, unknown> | undefined => {\n let matchedParent: Record<string, unknown> | undefined;\n\n list.some((item) => {\n if (item[rowKey] === value) {\n matchedParent = parent;\n } else {\n const children = item[this.childrenColumnName] as Record<\n string,\n unknown\n >[];\n\n if (children) {\n matchedParent = this._findParentByChildKeyValue(\n value,\n rowKey,\n children,\n item\n );\n }\n }\n\n return matchedParent ? true : false;\n });\n\n return matchedParent;\n };\n\n // istanbul ignore next\n private _handleRowSelectChange = (\n selectedRowKeys: string[],\n selectedRows: any[]\n ): void => {\n const rowKey = this._getRowKey();\n const rowKeyRowMap = keyBy(selectedRows, rowKey);\n if (this._selected) {\n const _selectedRowKeys = [...selectedRowKeys];\n this._allChildren.forEach((child) => {\n const rowKeyValue = child[rowKey];\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = child;\n });\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n const selectedRowKeySet = new Set(selectedRowKeys);\n const parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n\n if (\n parent &&\n (parent[this.childrenColumnName] as Record<string, unknown>[]).every(\n (item) => selectedRowKeySet.has(item[rowKey] as string)\n )\n ) {\n const rowKeyValue = parent[rowKey] as string;\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = parent;\n }\n }\n this.selectedRowKeys = uniq(_selectedRowKeys);\n } else {\n let parent: Record<string, unknown> | undefined;\n\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n }\n this.selectedRowKeys = pullAll(\n selectedRowKeys,\n map(\n this._allChildren.concat(\n parent as unknown as Record<string, unknown>[]\n ),\n rowKey\n )\n );\n }\n this._selectedRow = undefined;\n const extraRowKeyRowMap = keyBy(this.extraRows, rowKey);\n this._selectedRows = this.selectedRowKeys.map(\n (key) =>\n rowKeyRowMap[key as string | number] ||\n extraRowKeyRowMap[key as string | number]\n );\n\n let detail = null;\n const data = isEmpty(this._selectUpdateEventDetailField)\n ? this._selectedRows\n : map(this._selectedRows, (row) =>\n get(row, this._selectUpdateEventDetailField)\n );\n detail =\n isEmpty(this._selectUpdateEventDetailKeys) || isEmpty(data)\n ? data\n : set({}, this._selectUpdateEventDetailKeys, data);\n if (!isEmpty(detail)) {\n detail = merge(detail, this._selectUpdateEventDetailExtra);\n }\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit(detail);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail })\n );\n }\n this.#selectRowKeysUpdate.emit(selectedRowKeys);\n };\n\n // istanbul ignore next\n private _getSelectedRowsWithChildren = (\n row: Record<string, any>\n ): Record<string, any>[] => {\n const result: Record<string, any>[] = [];\n if (\n !isEmpty(row[this.childrenColumnName]) &&\n isArray(row[this.childrenColumnName])\n ) {\n forEach(row[this.childrenColumnName], (item) => {\n result.push(item);\n result.push(...this._getSelectedRowsWithChildren(item));\n });\n }\n return result;\n };\n\n // istanbul ignore next\n private _handleOnSelect = (\n row: Record<string, any>,\n checked: boolean\n ): void => {\n this._selected = checked;\n this._selectedRow = row;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n const allChildren = this.selectAllChildren\n ? this._getSelectedRowsWithChildren(row)\n : [];\n\n this._allChildren = allChildren;\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (checked) {\n this._disabledChildrenKeys = uniq([\n ...this._disabledChildrenKeys,\n ...map(allChildren, rowKey),\n ]);\n } else {\n this._disabledChildrenKeys = pullAll(this._disabledChildrenKeys, [\n ...map(allChildren, rowKey),\n ]);\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked([row[rowKey]], checked);\n }\n };\n\n // istanbul ignore next\n private _handleSelectAll = (\n selected: boolean,\n selectedRows: Record<string, any>[],\n changeRows: Record<string, any>[]\n ): void => {\n this._selected = selected;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n if (this.selectAllChildren) {\n const allParentKeys = map(this._dataSource, rowKey);\n const changedParentRows = changeRows.filter((v) =>\n allParentKeys.includes(v[rowKey])\n );\n const toChangedChildrenKeys = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr[rowKey])\n )\n );\n const allChildren = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr)\n )\n );\n this._allChildren = allChildren;\n\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (selected) {\n this._disabledChildrenKeys = uniq(\n this._disabledChildrenKeys.concat(toChangedChildrenKeys)\n );\n } else {\n // disabled children in changeRows should be removed\n this._disabledChildrenKeys = this._disabledChildrenKeys.filter(\n (v) => !toChangedChildrenKeys.includes(v)\n );\n }\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked(map(changeRows, rowKey), selected);\n }\n };\n\n private _getCheckedFromUrl = () => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const checked = urlSearchParams.get(\"checked\");\n return isEmpty(checked) ? [] : (checked as string).split(\",\");\n };\n\n private _updateUrlChecked = (options: any[], checked: boolean) => {\n const history = getHistory();\n let checkedOptions: string[] = this._getCheckedFromUrl();\n if (checked) {\n checkedOptions = [...checkedOptions, ...options];\n } else {\n pull(checkedOptions, ...options);\n }\n if (this.shouldUpdateUrlParams) {\n history.pushQuery(\n { checked: checkedOptions.join(\",\") },\n { notify: false }\n );\n }\n };\n private _handleOnChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n // 分页\n if (!isEmpty(pagination)) {\n if (pagination.pageSize !== this.pageSize) {\n pagination.current = 1;\n urlSearchParams.set(\"page\", \"1\");\n urlSearchParams.set(\n \"pageSize\",\n (pagination?.pageSize as number).toString()\n );\n this.#filterUpdate.emit({\n [this._fields.pageSize]: pagination.pageSize as number,\n [this._fields.page]: 1,\n });\n this.page = 1;\n this.pageSize = pagination.pageSize;\n } else if (pagination.current !== this.page) {\n const newPage = pagination.current || 1;\n urlSearchParams.set(\"page\", newPage.toString());\n this.#pageUpdate.emit({\n [this._fields.page]: newPage, // 可配置的 path\n });\n this.page = newPage;\n }\n }\n this.filters = filters;\n // 过滤\n if (!isEmpty(filters)) {\n forEach(filters, (value: any, key) => {\n isNil(value) || value.length === 0\n ? urlSearchParams.delete(key)\n : urlSearchParams.set(key, value);\n });\n }\n // 排序: 切换分页和页码的时候不应该触发sort.update事件 排序触发/取消的时候,order的类型 'descend' | 'ascend' | null,没触发是false\n if (\n sorter.order &&\n isNil(sorter.order) &&\n (sorter.columnKey !== this.sort ||\n this._fields[sorter.order] !== this.order)\n ) {\n if (sorter.columnKey && sorter.order) {\n urlSearchParams.set(\"sort\", sorter.columnKey as string);\n urlSearchParams.set(\n \"order\",\n (this._fields[sorter.order] as number).toString()\n );\n this.sort = sorter.columnKey as string;\n this.order = this._fields[sorter.order];\n } else {\n urlSearchParams.delete(\"sort\");\n urlSearchParams.delete(\"order\");\n this.sort = null;\n this.order = null;\n }\n this.#sortUpdate.emit({\n sort: this.sort as string,\n order: this.order as unknown as string,\n });\n }\n if (this.frontSearch) {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, { notify: false });\n }\n this.frontendSearch(pagination, filters, sorter);\n } else {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, {\n notify: !!this.shouldRenderWhenUrlParamsUpdate,\n });\n }\n }\n };\n\n // istanbul ignore next\n private renderSelectInfo = () => {\n // eslint-disable-next-line react/display-name\n return (\n <span style={{ marginLeft: 20 }}>\n <span>已选择{this.selectedRowKeys.length}项</span>\n <a\n role=\"button\"\n style={{ marginLeft: \"10px\" }}\n onClick={() => {\n this.selectedRowKeys = [];\n this._selectedRows = [];\n this._disabledChildrenKeys = [];\n this._allChildren = [];\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit([]);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail: [] })\n );\n }\n }}\n >\n 清空\n </a>\n </span>\n );\n };\n\n // 对前端搜索数据进行排序\n private handleFrontendSorter(\n dataSource: Record<string, any>[],\n sorter: Partial<SorterResult<Record<string, any>>>\n ): Record<string, any>[] {\n const tempDataSource: Record<string, any>[] = dataSource || [];\n const { columnKey, order } = sorter;\n\n if (!columnKey || !order) {\n return dataSource;\n }\n\n let direction: 1 | -1 = 1;\n\n if (order === \"descend\") {\n direction = -1;\n } else if (order === \"ascend\") {\n direction = 1;\n }\n\n if (direction !== undefined) {\n tempDataSource.sort((a, b) => {\n const aValue = get(a, columnKey as string | number);\n const bValue = get(b, columnKey as string | number);\n\n if (isNil(aValue)) {\n if (!isNil(bValue)) {\n return 1;\n }\n } else {\n if (isNil(bValue)) {\n return -1;\n }\n }\n\n if (aValue == bValue) {\n return 0;\n }\n\n if (aValue > bValue) {\n return direction;\n }\n\n return -direction;\n });\n tempDataSource.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n this.handleFrontendSorter(children, sorter);\n }\n });\n }\n\n return tempDataSource;\n }\n\n // 对前端搜索数据进行表头筛选项过滤\n private handleFrontendFilters(\n dataSource: Record<string, any>[]\n ): Record<string, any>[] {\n let tempDataSource: Record<string, any>[] = dataSource || [];\n const filtersArray = map(this.filters, (item, k) => ({\n key: k,\n value: item,\n })).filter((item) => !isNil(item.value) && item.value.length !== 0);\n tempDataSource = tempDataSource.filter((item) => {\n return every(filtersArray, (filter) => {\n return filter.value?.includes(get(item, filter.key)) ?? true;\n });\n });\n return tempDataSource;\n }\n\n // istanbul ignore next\n private frontendSearch(\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void {\n this.sort = isNil(sorter.order) ? null : (sorter.columnKey as string);\n this.order = isNil(sorter.order) ? null : this._fields[sorter.order];\n }\n\n // 点击展开图标时触发的事件\n // istanbul ignore next\n private _handleOnExpand = (\n expanded: boolean,\n record: Record<string, any>\n ): void => {\n if (this.expandedRowKeys) {\n const rowKey = this._getRowKey();\n const pullKeys: string[] = [get(record, rowKey)];\n const recordChildren = get(record, this.childrenColumnName);\n if (!isEmpty(recordChildren)) {\n const keysToPull = map(\n filter(recordChildren, (c) =>\n isEmpty(get(c, this.childrenColumnName))\n ),\n rowKey\n );\n pullKeys.push(...keysToPull);\n }\n this.expandedRowKeys = expanded\n ? [...this.expandedRowKeys, ...pullKeys]\n : pull(this.expandedRowKeys, ...pullKeys);\n this._render();\n }\n this.#rowExpand.emit({\n expanded,\n record,\n });\n };\n\n // 展开的行变化时触发的事件\n // istanbul ignore next\n private _handleOnExpandedRowsChange = (expandedRows: React.Key[]): void => {\n this.#expandRowsChange.emit({\n expandedRows,\n });\n };\n\n // 拖拽排序后触发的事件\n // istanbul ignore next\n private _handleOnDrag = (data: Record<string, any>[]): void => {\n this.#rowDrag.emit({\n data,\n });\n };\n\n /**\n * 展开所有行\n */\n @method()\n expandAll() {\n const allKeys: string[] = [];\n const rowKey = this._getRowKey();\n if (this._dataSource)\n getKeysOfData(this._dataSource, rowKey, this.childrenColumnName, allKeys);\n this.expandedRowKeys = allKeys;\n }\n\n getModifyColumns(): CustomColumn[] {\n let columns = this._columns;\n if (this._columns && this.hiddenColumns) {\n columns = this._columns.filter((column) => {\n return !this.hiddenColumns?.includes(\n (column.dataIndex as string) ?? column.key\n );\n });\n }\n if (this.sortable === false) {\n columns = map(columns, (column) => {\n column.sorter = false;\n return column;\n });\n }\n return columns as CustomColumn[];\n }\n\n render() {\n // 前端搜索的参数处理\n if (this.frontSearch) {\n this._dataSource = this.handleFrontendDataChange(\n this._pureSource,\n this._columns\n );\n }\n this._initConfigProps();\n return (\n // https://github.com/ant-design/ant-design/issues/38911\n <BrickTable\n shadowRoot={this.shadowRoot}\n dataSource={this._dataSource || []}\n columns={this.getModifyColumns()}\n configProps={this._finalConfigProps}\n error={this._error}\n onChange={this._handleOnChange}\n showCard={this.showCard}\n showHeader={this.showHeader}\n expandedRowBrick={this.expandedRowBrick}\n expandIconAsCell={this.expandIconAsCell}\n expandIconColumnIndex={this.expandIconColumnIndex}\n expandRowByClick={this.expandRowByClick}\n defaultExpandAllRows={this.defaultExpandAllRows}\n onExpand={this._handleOnExpand}\n onExpandedRowsChange={this._handleOnExpandedRowsChange}\n expandedRowKeys={this.expandedRowKeys}\n rowKey={this._getRowKey()}\n childrenColumnName={this.childrenColumnName}\n tableDraggable={this.tableDraggable || this.draggable}\n onDrag={this._handleOnDrag}\n zebraPattern={this.zebraPattern}\n expandIcon={this.expandIcon}\n scroll={this.scrollConfigs}\n optimizedColumns={this.optimizedColumns}\n ellipsisInfo={this.ellipsisInfo}\n thTransparent={this.thTransparent}\n xSmallSizeTable={this.size == \"x-small\"}\n />\n );\n }\n\n // istanbul ignore next\n private _getAllRows = (): Record<string, any>[] => {\n const allRows: Record<string, any>[] = [];\n getRowsOfData(this._dataSource, this.childrenColumnName, allRows);\n return allRows;\n };\n\n // istanbul ignore next\n private _handleDefaultSelectAll = () => {\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n this._selectedRows = this._getAllRows();\n this.selectedRowKeys = map(this._selectedRows, rowKey);\n return this.selectedRowKeys;\n };\n\n private _initConfigProps = () => {\n // 默认分页配置\n const defaultPagination: TablePaginationConfig = {\n current: this.page,\n pageSize: this.pageSize,\n total: this.#total,\n showSizeChanger: true,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n // eslint-disable-next-line react/display-name\n showTotal: (totals) => (\n <>\n <span className=\"totalText\">\n 共 <strong className=\"total\">{totals}</strong> 条\n </span>\n {(this.configProps?.rowSelection || this.rowSelection) &&\n this.showSelectInfo &&\n this.selectedRowKeys.length !== 0 &&\n this.renderSelectInfo()}\n </>\n ),\n };\n\n const rowKey = this._getRowKey();\n let rowDisabledConfig: RowDisabledProps[];\n\n if (this.rowDisabledConfig) {\n rowDisabledConfig = Array.isArray(this.rowDisabledConfig)\n ? this.rowDisabledConfig\n : [this.rowDisabledConfig];\n }\n\n // 当 rowSelection 为 true 或者有相关配置的时候的默认行选择配置\n const defaultRowSelection: TableRowSelection<any> = {\n ...(rowKey\n ? ({\n selectedRowKeys: this._isInSelect\n ? this.selectedRowKeys\n : this.storeCheckedByUrl\n ? this._getCheckedFromUrl()\n : this.defaultSelectAll\n ? this._handleDefaultSelectAll()\n : this.selectedRowKeys,\n onSelect: this._handleOnSelect,\n onSelectAll: this._handleSelectAll,\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n } as any)\n : {\n // 当用户没有设置rowKey时的兼容处理\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n }),\n getCheckboxProps: (record: any) => {\n if (\n !isEmpty(this._disabledChildrenKeys) &&\n this._disabledChildrenKeys.includes(get(record, rowKey))\n ) {\n return {\n disabled: true,\n };\n }\n if (!rowDisabledConfig) return {};\n\n return {\n disabled: rowDisabledConfig.some((config) => {\n const { field, value, operator } = config;\n const fun = compareFunMap[operator];\n\n return fun?.(value, get(record, field));\n }),\n };\n },\n };\n if (this.configProps) {\n this._finalConfigProps = cloneDeep(this.configProps);\n if (this.configProps.pagination !== false) {\n this._finalConfigProps.pagination = {\n ...defaultPagination,\n ...this.pagination,\n ...this.configProps.pagination,\n };\n if (\n (this.configProps.pagination === undefined ||\n this.configProps.pagination === null) &&\n this.pagination === false\n ) {\n this._finalConfigProps.pagination = false;\n }\n }\n if (!this.configProps.size) {\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n } else {\n this._finalConfigProps = {};\n this._finalConfigProps.pagination =\n this.pagination !== false ? defaultPagination : false;\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n const rowSelec = this.configProps?.rowSelection ?? this.rowSelection;\n if (rowSelec) {\n if (rowSelec === true) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n };\n } else {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n ...rowSelec,\n ...(defaultRowSelection.selectedRowKeys\n ? { selectedRowKeys: defaultRowSelection.selectedRowKeys }\n : {}),\n };\n }\n } else if (this.type) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type,\n };\n } else {\n this._finalConfigProps.rowSelection = false;\n }\n\n // 初始化列排序\n if (this._columns) {\n this._columns = this._columns.map((item) => {\n if (isNil(item.key)) {\n item.key = item.dataIndex as string;\n }\n if (item.sorter) {\n item.sortOrder = (this.sort === item.key &&\n !isNil(this.order) &&\n (this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\")) as SortOrder;\n }\n // 初始化表头过滤值\n if (item.filters) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const filteredValue =\n urlSearchParams.get(item.key as string) ??\n get(this.filters, item.key as string | number)?.join(\",\");\n if (!isNil(filteredValue) && !isEmpty(filteredValue)) {\n item.filtered = true;\n item.filteredValue = filteredValue\n .split(\",\")\n .map(\n (v: any) =>\n find(item.filters, (f) => String(f.value) === v)?.value ?? v\n );\n } else {\n item.filtered = false;\n item.filteredValue = [];\n }\n }\n return item;\n });\n }\n };\n\n _test_only_getOriginalDataSource(): Record<string, any>[] {\n return this._originalDataSource;\n }\n\n updateData(event: CustomEvent): void {\n this._dataSource = event.detail;\n this._error = null;\n this._render();\n }\n\n updateError(event: CustomEvent): void {\n this._error = event.detail;\n this._render();\n }\n\n set selectUpdateEventName(value: string) {\n this._selectUpdateEventName = value;\n }\n\n set selectUpdateEventDetailKeys(value: string[]) {\n this._selectUpdateEventDetailKeys = value;\n }\n\n set selectUpdateEventDetailField(value: string) {\n this._selectUpdateEventDetailField = value;\n }\n\n set selectUpdateEventDetailExtra(value: any) {\n this._selectUpdateEventDetailExtra = value;\n }\n}\n\nexport { TableComponent };\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","import React, { CSSProperties, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { Cascader, ConfigProvider, theme } from \"antd\";\nimport {\n CascaderProps as AntdCascaderProps,\n DefaultOptionType,\n} from \"antd/lib/cascader\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CascaderProps\n extends Pick<\n AntdCascaderProps,\n \"options\" | \"fieldNames\" | \"value\" | \"expandTrigger\" | \"size\"\n > {\n shadowRoot: ShadowRoot | null;\n multiple?: boolean;\n placeholder?: string;\n disabled?: boolean;\n allowClear?: boolean;\n showSearch?: boolean;\n limit?: number;\n suffixIcon?: GeneralIconProps;\n popupPlacement?: AntdCascaderProps[\"placement\"];\n cascaderStyle?: CSSProperties;\n maxTagCount?: number | \"responsive\";\n onChange?: (\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ) => void;\n}\n\n/**\n * 级联选择器\n * @author nlicroshan\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-cascader\", {\n alias: [\"advanced.general-cascader\"],\n styleTexts: [styleText],\n})\nclass CascaderBrick extends FormItemElementBase implements CascaderProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor options: AntdCascaderProps[\"options\"];\n\n @property({\n attribute: false,\n })\n accessor fieldNames: AntdCascaderProps[\"fieldNames\"] = {\n label: \"label\",\n value: \"value\",\n children: \"children\",\n };\n\n @property({\n attribute: false,\n })\n accessor value: AntdCascaderProps[\"value\"];\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined = true;\n\n @property({\n type: Boolean,\n })\n accessor showSearch: boolean | undefined = true;\n\n @property({\n attribute: false,\n })\n accessor suffixIcon: GeneralIconProps | undefined;\n\n @property()\n accessor expandTrigger: AntdCascaderProps[\"expandTrigger\"] = \"click\";\n\n @property()\n accessor popupPlacement: AntdCascaderProps[\"placement\"] = \"bottomLeft\";\n\n @property()\n accessor size: AntdCascaderProps[\"size\"];\n\n @property({\n type: Number,\n })\n accessor limit: number | undefined = 50;\n\n @property({\n attribute: false,\n })\n accessor maxTagCount: number | \"responsive\" | undefined;\n\n @property({\n attribute: false,\n })\n accessor cascaderStyle: CSSProperties | undefined;\n\n /**\n * @detail { value: AntdCascaderProps[\"value\"], selectedOptions: DefaultOptionType[] | DefaultOptionType[][] }\n * @description 级联选择项输入变化时触发,value 为选择的值,selectedOptions 为选择的值所对应的 options\n */\n @event({ type: \"cascader.change\" })\n accessor #changeEvent!: EventEmitter<{\n value: AntdCascaderProps[\"value\"];\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][];\n }>;\n\n handleOnChange = (\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ): void => {\n this.value = value;\n Promise.resolve().then(() => {\n this.#changeEvent.emit({ value, selectedOptions });\n });\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n notRender={this.notRender}\n trigger=\"handleOnChange\"\n >\n <CascaderElement\n shadowRoot={this.shadowRoot}\n options={this.options}\n fieldNames={this.fieldNames}\n value={this.value}\n multiple={this.multiple}\n placeholder={this.placeholder}\n disabled={this.disabled}\n allowClear={this.allowClear}\n showSearch={this.showSearch}\n expandTrigger={this.expandTrigger}\n suffixIcon={this.suffixIcon}\n size={this.size}\n limit={this.limit}\n popupPlacement={this.popupPlacement}\n maxTagCount={this.maxTagCount}\n cascaderStyle={this.cascaderStyle}\n onChange={this.handleOnChange}\n />\n </WrappedFormItem>\n );\n }\n}\n\nfunction CascaderElement(props: CascaderProps): React.ReactElement {\n const {\n shadowRoot,\n options,\n fieldNames,\n value,\n placeholder,\n disabled,\n multiple,\n allowClear,\n showSearch,\n expandTrigger,\n size,\n limit,\n popupPlacement,\n cascaderStyle,\n suffixIcon,\n maxTagCount,\n onChange,\n } = props;\n\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n const filter = (inputValue: string, path: DefaultOptionType[]): boolean => {\n const label = fieldNames?.label || \"label\";\n const filterValues = inputValue\n .split(\" \")\n .filter((item) => item)\n .map((item) => item.toLocaleLowerCase());\n for (let j = 0; j < filterValues.length; j++) {\n if (\n !path.some((option) =>\n (option[label] as string).toLowerCase().includes(filterValues[j])\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n /* istanbul ignore next */\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={cache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <Cascader\n getPopupContainer={(trigger) => trigger.parentElement}\n allowClear={allowClear}\n disabled={disabled}\n multiple={multiple as true | undefined}\n expandTrigger={expandTrigger}\n fieldNames={fieldNames}\n placeholder={placeholder}\n size={size}\n showSearch={showSearch && { limit, filter }}\n placement={popupPlacement}\n style={cascaderStyle}\n suffixIcon={suffixIcon && <WrappedIcon {...suffixIcon} />}\n maxTagCount={maxTagCount}\n value={value as any}\n options={options}\n onChange={\n ((\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ) => onChange?.(value, selectedOptions)) as any\n }\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","export enum K {\n TOTAL = \"TOTAL\",\n SELECT_INFO = \"SELECT_INFO\",\n CLEAR = \"CLEAR\",\n}\n\nconst en: Locale = {\n TOTAL: \"Total <el>{{ total }}</el> items\",\n SELECT_INFO: \"{{ count }} item selected\",\n SELECT_INFO_plural: \"{{ count }} items selected\",\n CLEAR: \"Clear\",\n};\n\nconst zh: Locale = {\n TOTAL: \"共 <el>{{ total }}</el> 条\",\n SELECT_INFO: \"已选择 {{ count }} 项\",\n CLEAR: \"清空\",\n};\n\nexport const NS = \"bricks/advanced/eo-next-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { get, isNil, reduce } from \"lodash\";\nimport type { SortOrder } from \"antd/es/table/interface.js\";\nimport { Column, RecordType } from \"./interface.js\";\n\nexport const DEFAULT_PAGE_SIZE = 20;\nexport const DEFAULT_PAGE = 1;\n\nexport const defaultPaginationConfig = {\n showSizeChanger: true,\n showTotal: true,\n};\n\nexport const defaultRowSelectionConfig = {\n preserveSelectedRowKeys: true,\n showSelectInfo: true,\n};\n\nexport function getSearchKeywords(value: unknown): string[] {\n const result = [];\n if (isNil(value)) {\n // do nothing\n } else if (Array.isArray(value)) {\n value.map((v) => result.push(getSearchKeywords(v)));\n } else if (Object.prototype.toString.call(value) === \"[object Object]\") {\n for (const k in value as Record<string, any>) {\n result.push(\n String(k),\n getSearchKeywords((value as Record<string, any>)[k])\n );\n }\n } else {\n // string, number, bigint, boolean...\n result.push(String(value));\n }\n\n return result.flat(Infinity).filter(Boolean) as string[];\n}\n\nexport function getValueByDataIndex(\n record: RecordType,\n dataIndex: Column[\"dataIndex\"]\n) {\n // 嵌套在 dataIndex 中用数组表示,所以 \"a.b\" 这种要识别成 key: \"a.b\"。\n return Array.isArray(dataIndex)\n ? get(record, dataIndex)\n : record[dataIndex as string];\n}\n\nexport function searchList({\n list,\n columns,\n q,\n searchFields,\n childrenColumnName,\n}: {\n list?: RecordType[];\n columns?: Column[];\n q?: string;\n searchFields?: (string | string[])[];\n childrenColumnName: string;\n}) {\n if (!q) return list;\n\n return reduce(\n list,\n (pre, row) => {\n let keywords: string[] = [];\n\n if (searchFields) {\n keywords = searchFields.flatMap((field) =>\n getSearchKeywords(get(row, field))\n );\n } else if (columns) {\n keywords = columns.flatMap((column) => {\n const value = getValueByDataIndex(row, column.dataIndex);\n return getSearchKeywords(value);\n });\n }\n\n const selfMatched = keywords.some((v) => v.toLowerCase().includes(q));\n\n if (selfMatched) {\n return pre.concat(row);\n }\n\n const filteredChildren = searchList({\n list: row[childrenColumnName],\n columns,\n q,\n searchFields,\n childrenColumnName,\n });\n const childrenMatched = !!filteredChildren?.length;\n\n if (childrenMatched) {\n const newRow = {\n ...row,\n [childrenColumnName]: filteredChildren,\n } as RecordType;\n return pre.concat(newRow);\n }\n return pre;\n },\n [] as RecordType[]\n );\n}\n\nexport function isPlainObject(value: unknown): value is Record<string, any> {\n return (\n Object.prototype.toString.call(value) === \"[object Object]\" &&\n value !== null &&\n !Array.isArray(value)\n );\n}\n\nexport function getAllKeys({\n list,\n rowKey,\n childrenColumnName,\n}: {\n list?: RecordType[];\n rowKey: string;\n childrenColumnName: string;\n}) {\n const keys: (string | number)[] = [];\n\n list?.forEach((row) => {\n keys.push(row[rowKey]);\n const childrenKeys = getAllKeys({\n list: row[childrenColumnName],\n rowKey,\n childrenColumnName,\n });\n keys.push(...childrenKeys);\n });\n\n return [...new Set(keys)] as (string | number)[];\n}\n\nexport function naturalComparator(\n a: unknown,\n b: unknown,\n sortOrder?: SortOrder\n) {\n const aIsNil = a == null;\n const bIsNil = b == null;\n\n if (aIsNil || bIsNil) {\n // Always put null/undefined at the end\n const result = sortOrder === \"descend\" ? -1 : 1;\n return aIsNil && bIsNil ? 0 : aIsNil ? result : -result;\n }\n\n return a == b ? 0 : a > b ? 1 : -1;\n}\n\nconst THEME_COLORS = [\n \"green\",\n \"red\",\n \"blue\",\n \"orange\",\n \"cyan\",\n \"purple\",\n \"geekblue\",\n \"gray\",\n];\n\nexport function getCellStatusStyle(\n record: RecordType,\n col: Column\n): React.CSSProperties | null {\n if (!col.cellStatus) {\n return null;\n }\n const dataIndex = col.cellStatus.dataIndex ?? col.dataIndex;\n const value = getValueByDataIndex(record, dataIndex);\n\n const match = col.cellStatus.mapping?.find((m) => m.value === value);\n if (!match) {\n return null;\n }\n\n const color = THEME_COLORS.includes(match.leftBorderColor)\n ? `var(--theme-${match.leftBorderColor}-color)`\n : match.leftBorderColor;\n\n return { boxShadow: `inset 4px 0 ${color}` };\n}\n","import React, { Ref, forwardRef } from \"react\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { useSortable } from \"@dnd-kit/sortable\";\n\ntype RowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\nexport const Row = forwardRef(function LegacyRow(\n props: RowProps,\n ref: Ref<HTMLTableRowElement>\n): React.ReactElement {\n return <tr {...props} ref={ref} />;\n});\n\ninterface DraggableRowProps extends RowProps {\n \"data-row-key\": string;\n}\n\nexport function DraggableRow(props: DraggableRowProps): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: props[\"data-row-key\"],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform),\n transition,\n cursor: \"move\",\n touchAction: \"none\",\n ...(isDragging ? { position: \"relative\", zIndex: 999 } : {}),\n };\n\n return (\n <Row\n {...props}\n ref={setNodeRef}\n style={style}\n {...attributes}\n {...listeners}\n />\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nexport function CacheUseBrickItem(props: {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data: any;\n}): React.ReactNode {\n const [cacheData, setCacheData] = useState<any>(props.data);\n\n useEffect(() => {\n setCacheData(props.data);\n }, Object.values(props.data));\n\n return <ReactUseMultipleBricks useBrick={props.useBrick} data={cacheData} />;\n}\n","import React, {\n Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport type { RecordType, Sort, NextTableProps } from \"./interface.js\";\nimport { Table, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { RowSelectMethod, type SortOrder } from \"antd/es/table/interface.js\";\nimport { DownOutlined, RightOutlined } from \"@ant-design/icons\";\nimport type { RenderExpandIconProps } from \"rc-table/lib/interface.js\";\nimport { i18n } from \"@next-core/i18n\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { Trans } from \"react-i18next\";\nimport classNames from \"classnames\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport {\n DEFAULT_PAGE,\n DEFAULT_PAGE_SIZE,\n defaultPaginationConfig,\n defaultRowSelectionConfig,\n getAllKeys,\n getCellStatusStyle,\n getValueByDataIndex,\n isPlainObject,\n naturalComparator,\n searchList,\n} from \"./utils.js\";\nimport { isNil, keyBy } from \"lodash\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport {\n type DragEndEvent,\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n closestCenter,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n arrayMove,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport {\n restrictToFirstScrollableAncestor,\n restrictToVerticalAxis,\n} from \"@dnd-kit/modifiers\";\nimport { DraggableRow, Row } from \"./Row.js\";\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport { CacheUseBrickItem } from \"./CacheUseBrickItem.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nexport interface NextTableComponentProps extends NextTableProps {\n shadowRoot: ShadowRoot | null;\n rowKey: string;\n childrenColumnName: string;\n onPageChange?: (detail: { page: number; pageSize: number }) => void;\n onPageSizeChange?: (detail: { page: number; pageSize: number }) => void;\n onSort?: (detail?: Sort | Sort[]) => void;\n onRowClick?: (detail: RecordType) => void;\n onRowSelect?: (detail: {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }) => void;\n onRowExpand?: (detail: { expanded: boolean; record: RecordType }) => void;\n onExpandedRowsChange?: (detail: (string | number)[]) => void;\n onRowDrag?: (detail: {\n list: RecordType[];\n active: RecordType;\n over: RecordType;\n }) => void;\n}\n\nexport interface NextTableComponentRef {\n search: (params: { q: string }) => void;\n}\n\nexport const NextTableComponent = forwardRef(function LegacyNextTableComponent(\n props: NextTableComponentProps,\n ref: Ref<NextTableComponentRef>\n) {\n const {\n shadowRoot,\n rowKey,\n columns,\n cell,\n dataSource,\n frontSearch,\n pagination,\n loading,\n multiSort,\n rowSelection,\n hiddenColumns,\n expandable,\n childrenColumnName,\n rowDraggable,\n rowClickable,\n searchFields,\n size,\n showHeader,\n bordered,\n scrollConfig,\n optimizedColumns,\n themeVariant,\n onPageChange,\n onPageSizeChange,\n onSort,\n onRowClick,\n onRowSelect,\n onRowExpand,\n onExpandedRowsChange,\n onRowDrag,\n } = props;\n\n const { t } = useTranslation(NS);\n const styleCache = useMemo(() => {\n return createCache();\n }, []);\n const currentTheme = useCurrentTheme();\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 1,\n },\n })\n );\n\n const [list, setList] = useState<RecordType[] | undefined>(dataSource?.list);\n const keyList = useMemo(\n () => list?.map((v) => v[rowKey]) ?? [],\n [list, rowKey]\n );\n\n const [{ page, pageSize }, setPageAndPageSize] = useState<{\n page: number;\n pageSize: number;\n }>({\n page: dataSource?.page ?? DEFAULT_PAGE,\n pageSize: dataSource?.pageSize ?? DEFAULT_PAGE_SIZE,\n });\n const [selectedRowKeys, setSelectedRowKeys] = useState<\n (string | number)[] | undefined\n >(props.selectedRowKeys);\n const [expandedRowKeys, setExpandedRowKeys] = useState<(string | number)[]>(\n props.expandedRowKeys ?? []\n );\n const [sort, setSort] = useState<Sort | Sort[] | undefined>(props.sort);\n\n const isTreeData = useMemo(\n () => dataSource?.list?.some((v) => v[childrenColumnName]?.length),\n [dataSource?.list, childrenColumnName]\n );\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys);\n }, [props.selectedRowKeys]);\n\n useEffect(() => {\n setExpandedRowKeys(props.expandedRowKeys ?? []);\n }, [props.expandedRowKeys]);\n\n useEffect(() => {\n if (isPlainObject(expandable) && expandable.defaultExpandAllRows) {\n setExpandedRowKeys(\n getAllKeys({\n list: dataSource?.list,\n rowKey,\n childrenColumnName,\n })\n );\n }\n }, []);\n\n useEffect(() => {\n setList(dataSource?.list);\n setPageAndPageSize({\n page: dataSource?.page ?? DEFAULT_PAGE,\n pageSize: dataSource?.pageSize ?? DEFAULT_PAGE_SIZE,\n });\n }, [dataSource]);\n\n useEffect(() => {\n setSort(props.sort);\n }, [props.sort]);\n\n const processedColumns = useMemo(() => {\n const hiddenColumnsSet = new Set(hiddenColumns);\n const optimizedColumnsSet = new Set(optimizedColumns);\n const sortMap = keyBy(([] as Sort[]).concat(sort || []), \"columnKey\");\n\n return columns\n ?.filter((col) => !hiddenColumnsSet.has(col.key!))\n .map((col) => {\n const curSort = sortMap[col.key!];\n const comparator = (\n recordA: RecordType,\n recordB: RecordType,\n sortOrder?: SortOrder\n ) => {\n return naturalComparator(\n getValueByDataIndex(recordA, col.dataIndex),\n getValueByDataIndex(recordB, col.dataIndex),\n sortOrder\n );\n };\n\n return {\n ...col,\n ...(col.sortable\n ? {\n sorter: multiSort\n ? {\n compare: frontSearch ? comparator : undefined,\n multiple: col.sortPriority,\n }\n : frontSearch\n ? comparator\n : true,\n sortOrder: curSort ? curSort.order : null,\n }\n : {}),\n ...(optimizedColumnsSet.has(col.key!)\n ? {\n shouldCellUpdate(record: RecordType, preRecord: RecordType) {\n return record !== preRecord;\n },\n }\n : {}),\n render(value: any, record: RecordType, index: number) {\n const data = {\n cellData: value,\n rowData: record,\n /**\n * @deprecated wrong naming, it's actually `rowIndex`\n */\n columnIndex: index,\n rowIndex: index,\n columnKey: col.key,\n };\n return cell?.useBrick ? (\n <CacheUseBrickItem useBrick={cell.useBrick} data={data} />\n ) : col.useBrick ? (\n <CacheUseBrickItem useBrick={col.useBrick} data={data} />\n ) : (\n <>{value}</>\n );\n },\n title() {\n const data = {\n title: col.title,\n columnKey: col.key,\n };\n return cell?.header?.useBrick ? (\n <CacheUseBrickItem useBrick={cell.header.useBrick} data={data} />\n ) : col.headerBrick?.useBrick ? (\n <CacheUseBrickItem\n useBrick={col.headerBrick.useBrick}\n data={data}\n />\n ) : (\n <>{col.title as string}</>\n );\n },\n onCell(record: RecordType) {\n return {\n colSpan: col.cellColSpanKey\n ? record[col.cellColSpanKey]\n : undefined,\n rowSpan: col.cellRowSpanKey\n ? record[col.cellRowSpanKey]\n : undefined,\n style: {\n ...col.cellStyle,\n ...getCellStatusStyle(record, col),\n verticalAlign: col.verticalAlign,\n },\n };\n },\n onHeaderCell() {\n return {\n style: col.headerStyle,\n };\n },\n };\n });\n }, [\n cell,\n columns,\n hiddenColumns,\n multiSort,\n sort,\n frontSearch,\n optimizedColumns,\n ]);\n\n const rowSelectionConfig = useMemo(() => {\n if (rowSelection === false || isNil(rowSelection)) {\n return undefined;\n }\n return {\n ...defaultRowSelectionConfig,\n ...(rowSelection === true ? {} : rowSelection),\n };\n }, [rowSelection]);\n\n const paginationConfig = useMemo(() => {\n if (pagination === false) {\n return false;\n }\n return { ...defaultPaginationConfig, ...pagination };\n }, [pagination]);\n\n const expandConfig = useMemo(() => {\n if (isTreeData || (!isTreeData && childrenColumnName !== \"children\")) {\n // still need to set childrenColumnName to antd\n return isPlainObject(expandable) ? expandable : {};\n }\n if (expandable === false || isNil(expandable)) {\n return undefined;\n }\n return isPlainObject(expandable) ? expandable : {};\n }, [expandable, isTreeData, childrenColumnName]);\n\n useImperativeHandle(ref, () => ({\n search: ({ q }) => {\n const result = searchList({\n q: q?.trim().toLowerCase() || \"\",\n list: dataSource?.list,\n columns,\n searchFields,\n childrenColumnName,\n });\n setList(result);\n setPageAndPageSize((pre) => {\n if (pre.page !== 1) {\n const newData = {\n page: 1,\n pageSize: pre.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageChange?.(newData);\n return newData;\n }\n return pre;\n });\n },\n }));\n\n // istanbul ignore next\n const onDragEnd = useCallback(\n ({ active, over }: DragEndEvent) => {\n if (over && active.id !== over?.id) {\n setList((prev = []) => {\n const activeIndex = prev.findIndex((v) => v[rowKey] === active.id);\n const overIndex = prev.findIndex((v) => v[rowKey] === over?.id);\n const newList = arrayMove(prev, activeIndex, overIndex);\n onRowDrag?.({\n list: newList,\n active: prev[activeIndex],\n over: prev[overIndex],\n });\n return newList;\n });\n }\n },\n [rowKey, onRowDrag]\n );\n\n return (\n <ConfigProvider\n locale={locale}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n components: {\n Table: {\n headerBorderRadius:\n \"var(--eo-next-table-header-border-radius)\" as unknown as number,\n headerSplitColor: \"none\",\n ...(themeVariant === \"elevo\"\n ? {\n headerBg: \"none\",\n headerSortActiveBg: \"none\",\n headerSortHoverBg: \"none\",\n bodySortBg: \"none\",\n rowHoverBg: \"rgba(189, 191, 212, 0.1)\",\n borderColor: \"#f0f0f0\",\n }\n : {\n headerBg: \"var(--antd-table-header-bg)\",\n headerSortActiveBg: \"var(--antd-table-header-sort-active-bg)\",\n headerSortHoverBg: \"var(--antd-table-header-sort-active-bg)\",\n bodySortBg:\n \"var(--antd-table-header-overwrite-sort-td-active-bg)\",\n }),\n // cellPaddingBlock: 11,\n cellPaddingInline: 16,\n // cellPaddingBlockMD: 8,\n cellPaddingInlineMD: 16,\n // cellPaddingBlockSM: 4,\n cellPaddingInlineSM: 16,\n ...(bordered\n ? { borderColor: \"var(--theme-gray-border-color)\" }\n : null),\n },\n },\n }}\n getPopupContainer={() => shadowRoot as unknown as HTMLElement}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={styleCache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[\n restrictToVerticalAxis,\n restrictToFirstScrollableAncestor,\n ]}\n onDragEnd={onDragEnd}\n >\n <SortableContext\n items={keyList}\n strategy={verticalListSortingStrategy}\n >\n <Table\n components={{\n body: {\n row: rowDraggable && !isTreeData ? DraggableRow : Row,\n },\n }}\n loading={loading}\n rowKey={rowKey}\n columns={processedColumns}\n dataSource={list}\n size={size}\n showHeader={showHeader}\n bordered={bordered}\n scroll={scrollConfig === false ? undefined : scrollConfig}\n pagination={\n paginationConfig === false\n ? false\n : {\n ...paginationConfig,\n total: dataSource?.total,\n current: page,\n pageSize: pageSize,\n showSizeChanger: {\n showSearch: false,\n variant: \"borderless\",\n },\n showTotal: (total: number) => {\n return (\n <div className=\"pagination-wrapper\">\n {paginationConfig.showTotal ? (\n <span className=\"pagination-total-text\">\n <Trans\n i18nKey={t(K.TOTAL)}\n values={{ total }}\n components={{\n el: (\n <strong className=\"pagination-total-number\" />\n ),\n }}\n />\n </span>\n ) : null}\n {rowSelectionConfig?.showSelectInfo &&\n selectedRowKeys?.length ? (\n <span className=\"select-info\">\n <span>\n {t(K.SELECT_INFO, {\n count: selectedRowKeys.length,\n })}\n </span>\n <WrappedLink\n onClick={() => {\n setSelectedRowKeys([]);\n onRowSelect?.({\n keys: [],\n rows: [],\n info: { type: \"none\" },\n });\n }}\n >\n {t(K.CLEAR)}\n </WrappedLink>\n </span>\n ) : null}\n </div>\n );\n },\n }\n }\n rowSelection={\n rowSelectionConfig === undefined\n ? undefined\n : {\n ...rowSelectionConfig,\n selectedRowKeys: selectedRowKeys,\n getCheckboxProps(record: RecordType) {\n const data = {\n rowData: record,\n };\n return {\n disabled:\n rowSelectionConfig.rowDisabled !== undefined\n ? checkIfByTransform(\n { if: rowSelectionConfig.rowDisabled },\n data\n )\n : false,\n };\n },\n onChange(\n keys,\n rows: RecordType[],\n info: { type: RowSelectMethod }\n ) {\n setSelectedRowKeys(keys as (string | number)[]);\n onRowSelect?.({\n keys: keys as (string | number)[],\n rows,\n info,\n });\n },\n }\n }\n expandable={\n expandConfig === undefined\n ? undefined\n : {\n ...expandConfig,\n childrenColumnName,\n expandedRowKeys,\n rowExpandable(record) {\n const data = {\n rowData: record,\n };\n return expandConfig.rowExpandable !== undefined\n ? checkIfByTransform(\n { if: expandConfig.rowExpandable },\n data\n )\n : true;\n },\n expandedRowRender: expandConfig.expandedRowBrick?.useBrick\n ? (record, index, indent /* , expanded */) => {\n const data = {\n rowData: record,\n index,\n indent,\n // Do not pass `expanded`, it changes every time the row is toggled,\n // thus the brick will be re-rendered every time as well.\n // expanded,\n };\n return (\n <CacheUseBrickItem\n useBrick={\n expandConfig.expandedRowBrick!.useBrick\n }\n data={data}\n />\n );\n }\n : undefined,\n expandIcon: expandConfig.expandIconBrick?.useBrick\n ? ({ expanded, expandable, record, onExpand }) => {\n const data = {\n rowData: record,\n expanded,\n expandable,\n };\n return (\n <span\n onClick={(e) =>\n expandable && onExpand(record, e)\n }\n >\n <CacheUseBrickItem\n useBrick={\n expandConfig.expandIconBrick!.useBrick\n }\n data={data}\n />\n </span>\n );\n }\n : DefaultExpandIcon,\n onExpand: (expanded, record) => {\n onRowExpand?.({ expanded, record });\n },\n onExpandedRowsChange: (expandedRows) => {\n const newRows = [...expandedRows] as (\n | string\n | number\n )[];\n setExpandedRowKeys(newRows);\n onExpandedRowsChange?.(newRows);\n },\n }\n }\n onRow={\n rowClickable\n ? (record) => ({\n onClick: () => {\n onRowClick?.(record);\n },\n })\n : undefined\n }\n onChange={(pagination, _filters, sorter, extra) => {\n switch (extra.action) {\n case \"paginate\": {\n setPageAndPageSize((pre) => {\n if (pre.pageSize !== pagination.pageSize) {\n const newData = {\n page: 1,\n pageSize: pagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageSizeChange?.(newData);\n onPageChange?.(newData);\n return newData;\n } else if (pre.page !== pagination.current) {\n const newData = {\n page: pagination.current ?? DEFAULT_PAGE,\n pageSize: pagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageChange?.(newData);\n return newData;\n }\n return pre;\n });\n break;\n }\n case \"sort\": {\n const newSort = Array.isArray(sorter)\n ? sorter\n .filter((v) => v.order)\n .map((v) => ({\n columnKey: v.columnKey as string | number,\n order: v.order,\n }))\n : sorter.order\n ? {\n columnKey: sorter.columnKey as string | number,\n order: sorter.order,\n }\n : undefined;\n setSort(newSort);\n onSort?.(newSort);\n }\n }\n }}\n className={classNames(\"next-table\", {\n \"row-clickable\": rowClickable,\n })}\n />\n </SortableContext>\n </DndContext>\n </StyleProvider>\n </ConfigProvider>\n );\n});\n\nfunction DefaultExpandIcon({\n expanded,\n expandable,\n onExpand,\n record,\n}: RenderExpandIconProps<RecordType>) {\n const IconComponent = expanded ? DownOutlined : RightOutlined;\n return (\n <IconComponent\n className={classNames(\"expand-icon\", { invisible: !expandable })}\n onClick={(e) => expandable && onExpand(record, e)}\n />\n );\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { createRef } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { NextTableComponent, NextTableComponentRef } from \"./Table.js\";\nimport type {\n CellConfig,\n Column,\n DataSource,\n ExpandableType,\n NextTableProps,\n PaginationType,\n RecordType,\n RowSelectionType,\n Sort,\n TableScroll,\n} from \"./interface.js\";\nimport { RowSelectMethod } from \"antd/es/table/interface.js\";\nimport type { TableProps } from \"antd/es/table\";\nimport \"./host-context.css\";\nimport chartStyleText from \"./chart-v2.shadow.css\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\n/**\n * 大型表格\n * @author nlicro\n * @category table\n */\nexport\n@defineElement(\"eo-next-table\", {\n styleTexts: [styleText],\n})\nclass EoNextTable extends ReactNextElement implements NextTableProps {\n #tableRef = createRef<NextTableComponentRef>();\n\n /**\n * 指定表格行的 key\n */\n @property()\n accessor rowKey: string = \"key\";\n\n /**\n * 列定义\n */\n @property({\n attribute: false,\n })\n accessor columns: Column[] | undefined;\n\n /**\n * 单元格\n */\n @property({\n attribute: false,\n })\n accessor cell: CellConfig | undefined;\n\n /**\n * 数据源\n */\n @property({\n attribute: false,\n })\n accessor dataSource: DataSource | undefined;\n\n /**\n * 是否前端搜索\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 分页配置\n */\n @property({\n attribute: false,\n })\n accessor pagination: PaginationType;\n\n /**\n * 显示加载中状态\n */\n @property({\n type: Boolean,\n })\n accessor loading: boolean | undefined;\n\n /**\n * 是否支持多列排序,前端搜索时需设置 column.sortPriority 优先级\n */\n @property({\n type: Boolean,\n })\n accessor multiSort: boolean | undefined;\n\n /**\n * 排序信息\n */\n @property({\n attribute: false,\n })\n accessor sort: Sort | Sort[] | undefined;\n\n /**\n * 表格行可选择配置\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: RowSelectionType;\n\n /**\n * 选中项的 key\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: (string | number)[] | undefined;\n\n /**\n * 隐藏的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: (string | number)[] | undefined;\n\n /**\n * 表格行展开配置\n */\n @property({\n attribute: false,\n })\n accessor expandable: ExpandableType;\n\n /**\n * 展开项的 key\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: (string | number)[] | undefined;\n\n /**\n * 树形结构的列名\n */\n @property()\n accessor childrenColumnName: string = \"children\";\n\n /**\n * 表格行拖拽配置\n */\n @property({\n type: Boolean,\n })\n accessor rowDraggable: boolean | undefined;\n\n /**\n * 表格行可点击(激活鼠标手势)\n */\n @property({\n type: Boolean,\n })\n accessor rowClickable: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法。不配置的时候默认为对所有 column.dataIndex 进行前端搜索\n */\n @property({\n attribute: false,\n })\n accessor searchFields: (string | string[])[] | undefined;\n\n /**\n * 表格大小\n */\n @property()\n accessor size: TableProps<RecordType>[\"size\"] = \"large\";\n\n /**\n * 是否显示表头\n */\n @property({\n type: Boolean,\n })\n accessor showHeader: boolean = true;\n\n /**\n * 是否显示边框\n */\n @property({ type: Boolean })\n accessor bordered: boolean | undefined;\n\n /**\n * 滚动配置\n */\n @property({\n attribute: false,\n })\n accessor scrollConfig: TableScroll = { x: true };\n\n /**\n * 优化渲染的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: (string | number)[] | undefined;\n\n /**\n * 注入 chart-v2 所需的样式(因其使用 light DOM 实现),仅 EasyOps 内部使用。\n *\n * @internal\n */\n @property({ type: Boolean })\n accessor injectChartV2Styles: boolean | undefined;\n\n /** 主题变体 */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n /**\n * 前端搜索\n */\n @method()\n search(params: { q: string }) {\n this.#tableRef.current?.search(params);\n }\n\n /**\n * page 或 pageSize 改变的回调\n * @detail 改变后的页码及每页条数\n */\n @event({ type: \"page.change\" })\n accessor #pageChangeEvent!: EventEmitter<{ page: number; pageSize: number }>;\n #handlePageChange = (detail: { page: number; pageSize: number }): void => {\n this.#pageChangeEvent.emit(detail);\n };\n\n /**\n * pageSize 变化的回调\n * @detail 改变后的页码及每页条数\n * @deprecated 统一用 `page.change` 事件\n */\n @event({ type: \"page.size.change\" })\n accessor #pageSizeChangeEvent!: EventEmitter<{\n page: number;\n pageSize: number;\n }>;\n #handlePageSizeChange = (detail: {\n page: number;\n pageSize: number;\n }): void => {\n this.#pageSizeChangeEvent.emit(detail);\n };\n\n /**\n * 排序变化的回调\n * @detail 当前排序的信息\n */\n @event({ type: \"sort.change\" })\n accessor #sortChangeEvent!: EventEmitter<Sort | Sort[] | undefined>;\n #handleSort = (detail: Sort | Sort[] | undefined): void => {\n this.#sortChangeEvent.emit(detail);\n };\n\n /**\n * 行点击时的回调\n * @detail 被点击的行数据\n */\n @event({ type: \"row.click\" })\n accessor #rowClickEvent!: EventEmitter<RecordType>;\n\n #handleRowClick = (detail: RecordType): void => {\n this.#rowClickEvent.emit(detail);\n };\n\n /**\n * 行选中项发生变化时的回调\n * @detail 改变后的 rowKey 及行数据\n */\n @event({ type: \"row.select\" })\n accessor #rowSelectEvent!: EventEmitter<{\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }>;\n\n /**\n * 行选中项发生变化时的回调(v2 版本)\n *\n * @detail 改变后的行数据\n */\n @event({ type: \"row.select.v2\" })\n accessor #rowSelectV2Event!: EventEmitter<RecordType[]>;\n\n #handleRowSelect = (detail: {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }): void => {\n this.#rowSelectEvent.emit(detail);\n this.#rowSelectV2Event.emit(detail.rows);\n };\n\n /**\n * 点击展开图标时触发\n * @detail 当前行的展开情况及数据\n */\n @event({ type: \"row.expand\" })\n accessor #rowExpandEvent!: EventEmitter<{\n expanded: boolean;\n record: RecordType;\n }>;\n #handleRowExpand = (detail: {\n expanded: boolean;\n record: RecordType;\n }): void => {\n this.#rowExpandEvent.emit(detail);\n };\n\n /**\n * 展开的行变化时触发\n * @detail 所有展开行的 key\n */\n @event({ type: \"expanded.rows.change\" })\n accessor #expandedRowsChangeEvent!: EventEmitter<(string | number)[]>;\n #handleExpandedRowsChange = (detail: (string | number)[]): void => {\n this.#expandedRowsChangeEvent.emit(detail);\n };\n\n /**\n * 表格行拖拽结束发生的事件\n * @detail 重新排序的行数据、拖拽的行数据、放下位置的行数据\n */\n @event({ type: \"row.drag\" })\n accessor #rowDragEvent!: EventEmitter<{\n list: RecordType[];\n active: RecordType;\n over: RecordType;\n }>;\n // istanbul ignore next\n #handleRowDrag = (detail: {\n list: RecordType[];\n active: RecordType;\n over: RecordType;\n }): void => {\n this.#rowDragEvent.emit(detail);\n };\n\n render() {\n return (\n <>\n {this.injectChartV2Styles && <style>{chartStyleText}</style>}\n <NextTableComponent\n ref={this.#tableRef}\n shadowRoot={this.shadowRoot}\n rowKey={this.rowKey}\n columns={this.columns}\n cell={this.cell}\n dataSource={this.dataSource}\n frontSearch={this.frontSearch}\n pagination={this.pagination}\n loading={this.loading}\n multiSort={this.multiSort}\n sort={this.sort}\n rowSelection={this.rowSelection}\n selectedRowKeys={this.selectedRowKeys}\n hiddenColumns={this.hiddenColumns}\n expandable={this.expandable}\n expandedRowKeys={this.expandedRowKeys}\n childrenColumnName={this.childrenColumnName}\n rowDraggable={this.rowDraggable}\n rowClickable={this.rowClickable}\n searchFields={this.searchFields}\n size={this.size}\n showHeader={this.showHeader}\n bordered={this.bordered}\n scrollConfig={this.scrollConfig}\n themeVariant={this.themeVariant}\n optimizedColumns={this.optimizedColumns}\n onPageChange={this.#handlePageChange}\n onPageSizeChange={this.#handlePageSizeChange}\n onSort={this.#handleSort}\n onRowClick={this.#handleRowClick}\n onRowSelect={this.#handleRowSelect}\n onRowExpand={this.#handleRowExpand}\n onExpandedRowsChange={this.#handleExpandedRowsChange}\n onRowDrag={this.#handleRowDrag}\n />\n </>\n );\n }\n}\n\nexport { NextTableProps };\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport \"@next-core/theme\";\nimport {\n ItemCallback,\n Layout,\n Responsive,\n WidthProvider,\n} from \"react-grid-layout\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport {\n DropdownButton,\n DropdownButtonEvents,\n DropdownButtonEventsMap,\n DropdownButtonProps,\n} from \"@next-bricks/basic/dropdown-button\";\nimport type {\n Checkbox,\n CheckboxOptionType,\n CheckboxProps,\n} from \"@next-bricks/form/checkbox\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport { SimpleAction } from \"@next-bricks/basic/actions\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\ntype Item = {\n position: Layout;\n key: string;\n title: string;\n style?: React.CSSProperties;\n useBrick: UseSingleBrickConf;\n};\n\ninterface CheckboxEvents {\n change: CustomEvent<CheckboxOptionType[]>;\n}\n\ninterface CheckboxEventsMap {\n onChange: \"change\";\n}\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedDropdownButton = wrapBrick<\n DropdownButton,\n DropdownButtonProps,\n DropdownButtonEvents,\n DropdownButtonEventsMap\n>(\"eo-dropdown-button\", {\n onActionClick: \"action.click\",\n});\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedCheckbox = wrapBrick<\n Checkbox,\n CheckboxProps,\n CheckboxEvents,\n CheckboxEventsMap\n>(\"eo-checkbox\", {\n onChange: \"change\",\n});\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport interface EoWorkbenchLayoutProps {\n cardTitle?: string;\n layouts?: Layout[];\n componentList?: Item[];\n isEdit?: boolean;\n}\n\nexport interface EoWorkbenchLayoutComponentRef {\n setLayouts(layouts: Layout[]): void;\n}\n\nexport interface EoWorkbenchLayoutComponentProps\n extends EoWorkbenchLayoutProps {\n onChange?: (layout: Layout[]) => void;\n onSave?: (layout: Layout[]) => void;\n onCancel?: () => void;\n onActionClick?: (action: SimpleAction, layouts: Layout[]) => void;\n}\n\nconst getRealKey = (key: string): string =>\n key?.includes(\":\") ? key.split(\":\")[0] : key;\nconst { isAdmin } = auth.getAuth();\n\nexport const EoWorkbenchLayoutComponent = forwardRef<\n EoWorkbenchLayoutComponentRef,\n EoWorkbenchLayoutComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n componentList = [],\n isEdit,\n onChange,\n onSave,\n onCancel,\n onActionClick,\n },\n ref\n) {\n const ResponsiveReactGridLayout = useMemo(\n () => WidthProvider(Responsive),\n []\n );\n const gridLayoutRef = useRef<HTMLDivElement>(null);\n const layoutWrapperRef = useRef<HTMLDivElement>(null);\n const layoutCacheRef = useRef<Layout[]>(layoutsProps ?? []);\n\n const [layouts, _setLayouts] = useState<Layout[]>(layoutCacheRef.current);\n const [cols, setCols] = useState<number>(3);\n const [layoutWrapperStyle, setLayoutWrapperStyle] =\n useState<React.CSSProperties>();\n\n const setLayouts = useCallback((layouts: Layout[]) => {\n layoutCacheRef.current = layouts;\n _setLayouts(layouts);\n }, []);\n\n useImperativeHandle(ref, () => ({\n setLayouts,\n }));\n\n const handleChange = useCallback(\n (layouts: Layout[]) => {\n setLayouts(layouts);\n onChange?.(layouts);\n },\n [onChange, setLayouts]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const handleDragCallback: ItemCallback = (layout, oldItem, newItem) => {\n const placeholderDOM = gridLayoutRef.current?.querySelector(\n \".react-grid-placeholder\"\n );\n if (placeholderDOM) {\n if (newItem.w > 1 && newItem.x > 0) {\n !placeholderDOM.classList.contains(\"forbidden\") &&\n placeholderDOM.classList.add(\"forbidden\");\n } else {\n placeholderDOM.classList.contains(\"forbidden\") &&\n placeholderDOM.classList.remove(\"forbidden\");\n }\n }\n };\n\n const handleLayoutChange = useCallback(\n (currentLayout: Layout[]) => {\n if (!isEdit) {\n return;\n }\n\n let isAllowAction = true;\n\n for (let t = 0; t < currentLayout.length; t++) {\n const { x, w, y, h, i, minH } = currentLayout[t];\n if (w > 1 && x > 0) {\n isAllowAction = false;\n break;\n }\n if (w === 1 && x < 2) {\n const matchItem = currentLayout.find(\n (item) => item.i !== i && item.w === 1 && item.y === y && x < 2\n );\n if (matchItem) {\n currentLayout[t].minH = currentLayout[t].minH ?? h;\n currentLayout[t].h = Math.max(matchItem.h, h);\n }\n } else {\n currentLayout[t].h = minH ?? h;\n currentLayout[t].minH = undefined;\n }\n }\n\n handleChange(\n !isAllowAction\n ? // revert to previous layouts\n layoutCacheRef.current.map((item) => {\n const { w, i } = item;\n // should update key to refresh layout\n const key = `${getRealKey(i)}:${Math.random()}`;\n let x = item.x;\n\n if (w > 1 && x > 0) {\n x = 0;\n }\n\n return {\n ...item,\n x,\n i: key,\n };\n })\n : currentLayout\n );\n },\n [handleChange, isEdit]\n );\n\n const handleBreakpointChange = (_newBreakpoint: string, newCols: number) => {\n setCols(newCols);\n };\n\n const handleCheckBoxChange = useCallback(\n (event: CustomEvent<CheckboxOptionType[]>): void => {\n const checkedKeys = event.detail.map((item) => item.value);\n const layoutsKeys = layouts.map((item) => getRealKey(item.i));\n const addItems = event.detail\n .filter((item) => !layoutsKeys.includes(item.key))\n .map((item) => ({\n ...item.position,\n x: item.w > 1 ? 0 : (layouts.length * 2) % cols,\n y: Infinity,\n }));\n\n handleChange(\n layouts\n .filter((layout) => checkedKeys.includes(getRealKey(layout.i)))\n .concat(addItems)\n );\n },\n [layouts, handleChange, cols]\n );\n\n const handleClearLayout = () => {\n handleChange([]);\n };\n\n const handleSave = useCallback(() => {\n onSave?.(\n layouts.map((item) => ({\n ...item,\n i: getRealKey(item.i),\n }))\n );\n }, [layouts, onSave]);\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleActionClick = (action: SimpleAction) => {\n const { event } = action;\n\n switch (event) {\n case \"clear\":\n showDialog({\n type: \"confirm\",\n title: \"清空确认\",\n content: \"将清空所有卡片,从零开始编辑,该操作无法撤回。\",\n }).then(handleClearLayout);\n break;\n default:\n onActionClick?.(\n action,\n (layouts ?? []).map((item) => ({\n ...item,\n i: getRealKey(item.i),\n }))\n );\n }\n };\n\n const handleDeleteItem = useCallback(\n (e: React.MouseEvent, deletedItem: Item) => {\n e.stopPropagation();\n handleChange(\n layouts.filter((item) => getRealKey(item.i) !== deletedItem.key) ?? []\n );\n },\n [handleChange, layouts]\n );\n\n const handleEditMaskClick = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n\n const renderChild = useMemo(\n () =>\n layouts\n .map((layout) => {\n const component = componentList.find(\n (item) => item.key === getRealKey(layout.i)\n );\n if (!component) {\n return null;\n }\n return (\n <div\n key={layout.i}\n data-grid={{\n ...(component.position ?? {}),\n ...layout,\n }}\n style={component.style}\n className=\"drag-box\"\n >\n {isEdit && (\n <div className=\"edit-mask\" onMouseDown={handleEditMaskClick} />\n )}\n <ReactUseBrick useBrick={component.useBrick} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n className=\"delete-icon\"\n onClick={(e) => handleDeleteItem(e, component)}\n />\n )}\n </div>\n );\n })\n .filter(Boolean),\n [componentList, handleDeleteItem, layouts, isEdit]\n );\n\n const computedOptions = useMemo(\n () =>\n componentList.map((item) => ({\n ...item,\n label: item.title,\n value: item.key,\n })),\n [componentList]\n );\n\n const computedSelectedComponentKeys = useMemo(\n () => layouts.map((layout) => getRealKey(layout.i)),\n [layouts]\n );\n\n const handleWatchLayoutSizeChange = useCallback(() => {\n if (layoutWrapperRef && isEdit) {\n const { top } =\n layoutWrapperRef.current?.getClientRects()?.[0] ?? ({} as DOMRect);\n top !== undefined &&\n setLayoutWrapperStyle({\n height: document.body.clientHeight - top,\n overflow: \"scroll\",\n });\n }\n }, [isEdit]);\n\n useEffect(() => {\n if (isEdit) {\n handleWatchLayoutSizeChange();\n setLayouts(layoutsProps || []); // 编辑的情况下需要动态改变一些布局\n window.addEventListener(\"resize\", handleWatchLayoutSizeChange);\n\n return () => {\n window.removeEventListener(\"resize\", handleWatchLayoutSizeChange);\n };\n }\n }, [isEdit, handleWatchLayoutSizeChange, layoutsProps, setLayouts]);\n\n return (\n <div className=\"grid-layout-wrapper\" ref={gridLayoutRef}>\n {isEdit && (\n <div className=\"component-wrapper\">\n <div className=\"component-title\">{cardTitle}</div>\n <div className=\"component-list\">\n <WrappedCheckbox\n options={computedOptions}\n value={computedSelectedComponentKeys}\n onChange={handleCheckBoxChange as any}\n />\n <slot name=\"toolbar\"></slot>\n </div>\n </div>\n )}\n <div\n className=\"layout-wrapper\"\n ref={layoutWrapperRef}\n style={layoutWrapperStyle}\n >\n {isEdit && (\n <div className=\"actions-wrapper\">\n <WrappedButton type=\"primary\" onClick={handleSave}>\n 保存\n </WrappedButton>\n <WrappedButton onClick={handleCancel}>取消</WrappedButton>\n <WrappedDropdownButton\n btnText=\"更多\"\n icon={{\n lib: \"antd\",\n icon: \"down\",\n }}\n actions={[\n ...(isAdmin\n ? [{ text: \"另存为模板\", event: \"saveAsTemplate\" }]\n : []),\n { text: \"从模版加载\", event: \"loadFromTemplate\" },\n { text: \"清空所有\", danger: true, event: \"clear\" },\n ]}\n onActionClick={(e) => {\n handleActionClick(e.detail);\n }}\n data-testid=\"edit-layout-actions\"\n />\n </div>\n )}\n <ResponsiveReactGridLayout\n className=\"layout\"\n draggableCancel=\".delete-icon,.edit-actions,.ignore-item\"\n breakpoints={{ lg: 1300, md: 1024, sm: 768 }}\n rowHeight={1}\n cols={{ lg: 3, md: 3, sm: isEdit ? 3 : 1 }}\n isResizable={false}\n isDraggable={isEdit}\n onDrag={handleDragCallback}\n onLayoutChange={handleLayoutChange}\n onBreakpointChange={handleBreakpointChange}\n >\n {renderChild}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n );\n});\n\n/**\n * 工作台布局\n * @deprecated Please use eo-workbench-layout-v2 which support global styles instead\n */\nexport\n@defineElement(\"eo-workbench-layout\", {\n styleTexts: [styleText],\n})\nclass EoWorkbenchLayout extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutComponentRef>();\n\n @property()\n accessor cardTitle: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor isEdit: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor layouts: Layout[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor componentList: Item[] | undefined;\n\n @event({\n type: \"change\",\n })\n accessor #changeEvent!: EventEmitter<Layout[]>;\n\n #handleChange = (layouts: Layout[]) => {\n this.#changeEvent.emit(layouts);\n };\n\n @event({\n type: \"save\",\n })\n accessor #saveEvent!: EventEmitter<Layout[]>;\n\n #handleSave = (layouts: Layout[]) => {\n this.#saveEvent.emit(layouts);\n };\n\n @event({\n type: \"cancel\",\n })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #handleCancel = () => {\n this.#cancelEvent.emit();\n };\n\n /**\n * 操作点击事件\n * @detail {\n action: SimpleAction;\n layouts: Layout[];\n }\n */\n @event({\n type: \"action.click\",\n })\n accessor #actionClickEvent!: EventEmitter<{\n action: SimpleAction;\n layouts: Layout[];\n }>;\n\n #handleActionClick = (action: SimpleAction, layouts: Layout[]): void => {\n this.#actionClickEvent.emit({ action, layouts });\n action.event &&\n this.dispatchEvent(new CustomEvent(action.event, { detail: layouts }));\n };\n\n @method()\n setLayouts(layouts: Layout[]) {\n this.#componentRef.current?.setLayouts(layouts);\n }\n\n render() {\n return (\n <EoWorkbenchLayoutComponent\n cardTitle={this.cardTitle}\n layouts={this.layouts}\n componentList={this.componentList}\n isEdit={this.isEdit}\n onChange={this.#handleChange}\n onSave={this.#handleSave}\n onCancel={this.#handleCancel}\n onActionClick={this.#handleActionClick}\n ref={this.#componentRef}\n />\n );\n }\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DroppableComponentLayoutItem.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DroppableComponentLayoutItem.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { memo, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nimport { WorkbenchComponent, ExtraLayout } from \"../interfaces\";\n\nimport styles from \"./DroppableComponentLayoutItem.module.css\";\nimport { cloneDeep, isEqual, omit } from \"lodash\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface DroppableComponentLayoutItemProps {\n component: WorkbenchComponent;\n layout: ExtraLayout;\n isEdit?: boolean;\n onDelete?(i: string): void;\n}\n\nconst position = [\"x\", \"y\", \"w\", \"h\"];\n\nexport function DroppableComponentLayoutItemElement(\n props: DroppableComponentLayoutItemProps\n): React.ReactElement {\n const { component, isEdit, onDelete, layout } = props;\n\n const handleEditMaskClick = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n\n const handleDeleteClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onDelete?.(layout.i);\n };\n /**\n * cloneDeep 操作是为了让 useBrick事件抛出的值是计算后的值\n */\n const useBrick = useMemo(\n () => cloneDeep(component.useBrick),\n [component.useBrick]\n );\n const [cardConfigs, setCardConfigs] = useState(() =>\n omit(\n {\n ...layout,\n cardWidth: layout.cardWidth || component.position.w,\n cardTitle: component.title,\n },\n position\n )\n );\n\n // todo 用于处理 layout 重新渲染导致页面卡顿\n /* istanbul ignore next */\n useEffect(() => {\n const newCardConfigs = omit(\n {\n ...layout,\n cardWidth: layout.cardWidth || component.position.w,\n },\n position\n );\n\n if (!isEqual(newCardConfigs, cardConfigs)) {\n setCardConfigs(newCardConfigs);\n }\n }, [layout, cardConfigs, component.position.w]);\n\n const cardBorderWidth = useMemo(() => {\n return cardConfigs?.cardBorderWidth !== 1\n ? (cardConfigs?.cardBorderWidth as any) - 1\n : 0;\n }, [cardConfigs]);\n\n const editMaskTop = useMemo(() => {\n return 45 + cardBorderWidth;\n }, [cardBorderWidth]);\n const noPadding = useMemo(() => {\n return layout.noPadding;\n }, [layout]);\n\n const deleteIconPosition = useMemo(() => {\n const top = 15;\n return {\n top: !noPadding ? top : 0,\n right: top,\n };\n }, [noPadding]);\n\n return (\n <div className={styles.itemWrapper}>\n {isEdit && (\n <div\n className={styles.editMask}\n style={{\n top: editMaskTop,\n }}\n onMouseDown={handleEditMaskClick}\n data-testid=\"droppable-component-layout-item-edit-mask\"\n />\n )}\n <ReactUseBrick useBrick={useBrick} data={cardConfigs} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n style={deleteIconPosition}\n className={styles.deleteIcon}\n onClick={handleDeleteClick}\n data-testid=\"droppable-component-layout-item-delete\"\n />\n )}\n </div>\n );\n}\n\nexport const DroppableComponentLayoutItem = memo(\n DroppableComponentLayoutItemElement\n);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DraggableComponentMenuItem.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DraggableComponentMenuItem.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { WorkbenchComponent } from \"../interfaces\";\nimport styles from \"./DraggableComponentMenuItem.module.css\";\nexport interface DraggableComponentMenuItemProps {\n component: WorkbenchComponent;\n onClick?(): void;\n onDragStart?(): void;\n onDragEnd?(): void;\n}\n\nexport function DraggableComponentMenuItem(\n props: DraggableComponentMenuItemProps\n): React.ReactElement {\n const { component, onClick, onDragStart, onDragEnd } = props;\n const { key, title, thumbnail } = component;\n\n return (\n <div\n className={styles.componentItemWrapper}\n data-testid=\"draggable-component-menu-item\"\n >\n <div className={styles.componentItemTitle}>{title}</div>\n <div\n className={styles.componentItemContent}\n draggable\n onDragStart={(e) => {\n e.dataTransfer.setData(\"text/plain\", key);\n onDragStart?.();\n }}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-testid=\"draggable-component-menu-item-thumbnail\"\n >\n <img\n className={styles.componentItemThumbnail}\n src={thumbnail}\n alt={title}\n />\n </div>\n </div>\n );\n}\n","import { CardStyleConfig } from \"../interfaces\";\n\nexport const defaultCardConfig: CardStyleConfig = {\n cardWidth: 2,\n showMoreIcon: false,\n cardBorderStyle: \"solid\",\n cardTitleFontSize: 16,\n cardBorderWidth: 1,\n cardBorderRadius: 6,\n cardTitleColor: \"#262626\",\n cardBorderColor: \"#e8e8e8\",\n cardBgType: \"none\",\n};\n\nexport const getLayoutDefaultCardConfig = (\n cardType: string,\n customDefaultCardConfigMap?: Record<string, CardStyleConfig>\n): CardStyleConfig => {\n const moreLinkByCardTypeMap: Record<string, CardStyleConfig> = {\n \"notice-card\": {\n moreIconLink: \"/announcement-management\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n \"cmdb-object-collect-card\": {\n moreIconLink: \"/cmdb-model-management\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n \"itsm-todos\": {\n moreIconLink: \"/itsc-workbench/workbench?activeKey=run\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n abnormalResourceInspectionResults: {\n moreIconLink: \"/automatic-inspection/suites\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n abnormalSystemInspectionResults: {\n moreIconLink: \"/automatic-inspection/system/list\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n ...(customDefaultCardConfigMap ?? {}),\n };\n return {\n ...defaultCardConfig,\n ...(moreLinkByCardTypeMap?.[cardType] ?? {}),\n };\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","export enum K {\n CLEAR_CONFIRM = \"CLEAR_CONFIRM\",\n CARD_LIST = \"CARD_LIST\",\n CLEAR_CONFIRM_MESSAGE = \"CLEAR_CONFIRM_MESSAGE\",\n SAVE = \"SAVE\",\n CANCEL = \"CANCEL\",\n SETTING = \"SETTING\",\n MORE = \"MORE\",\n SAVE_AS_TEMPLATE = \"SAVE_AS_TEMPLATE\",\n LOAD_FROM_TEMPLATE = \"LOAD_FROM_TEMPLATE\",\n CLEAR_ALL = \"CLEAR_ALL\"\n}\n\nconst en: Locale = {\n CLEAR_CONFIRM: \"Clear Confirm\",\n CARD_LIST: \"Card List\",\n CLEAR_CONFIRM_MESSAGE: \"All cards will be cleared and editing will start from scratch. This operation cannot be undone.\",\n SAVE: \"Save\",\n CANCEL: \"Cancel\",\n SETTING: \"Setting\",\n MORE: \"More\",\n SAVE_AS_TEMPLATE: \"Save As Template\",\n LOAD_FROM_TEMPLATE: \"Load From Template\",\n CLEAR_ALL: \"Clear All\"\n};\n\nconst zh: Locale = {\n CLEAR_CONFIRM: \"清空确认\",\n CARD_LIST: \"卡片列表\",\n CLEAR_CONFIRM_MESSAGE: \"将清空所有卡片,从零开始编辑,该操作无法撤回。\",\n SAVE: \"保存\",\n CANCEL: \"取消\",\n SETTING: \"设置\",\n MORE: \"更多\",\n SAVE_AS_TEMPLATE: \"另存为模板\",\n LOAD_FROM_TEMPLATE: \"从模板加载\",\n CLEAR_ALL: \"清空所有\"\n};\n\nexport const NS = \"bricks/advanced/eo-workbench-layout-v2\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { Layout, Responsive, WidthProvider } from \"react-grid-layout\";\nimport \"@next-core/theme\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport {\n DropdownButton,\n DropdownButtonEvents,\n DropdownButtonEventsMap,\n DropdownButtonProps,\n} from \"@next-bricks/basic/dropdown-button\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport { SimpleAction } from \"@next-bricks/basic/actions\";\nimport { keyBy, pick } from \"lodash\";\nimport { SizeMe } from \"react-sizeme\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport {\n WorkbenchComponent,\n ExtraLayout,\n CardStyleConfig,\n} from \"../interfaces\";\nimport { DroppableComponentLayoutItem } from \"./DroppableComponentLayoutItem\";\nimport { DraggableComponentMenuItem } from \"./DraggableComponentMenuItem\";\nimport { getLayoutDefaultCardConfig } from \"./utils\";\n\nimport styles from \"./styles.module.css\";\nimport layoutItemStyles from \"./DroppableComponentLayoutItem.module.css\";\nimport \"./styles.css\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedDropdownButton = wrapBrick<\n DropdownButton,\n DropdownButtonProps,\n DropdownButtonEvents,\n DropdownButtonEventsMap\n>(\"eo-dropdown-button\", { onActionClick: \"action.click\" });\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nconst ROW_HEIGHT = 1;\nconst MARGIN_WIDTH = 16;\nconst MARGIN_HEIGHT = 16;\nconst URl_PREFIX = `${window.location.origin}${getBasePath()}api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/sys-setting/object/`;\nexport interface EoWorkbenchLayoutV2Props {\n cardTitle?: string;\n layouts?: ExtraLayout[];\n toolbarBricks?: { useBrick: UseSingleBrickConf[] };\n componentList?: WorkbenchComponent[];\n isEdit?: boolean;\n showSettingButton?: boolean;\n customDefaultCardConfigMap?: Record<string, CardStyleConfig>;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentRef {\n setLayouts(layouts: ExtraLayout[]): void;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentProps\n extends EoWorkbenchLayoutV2Props {\n gap?: number;\n onChange?: (layout: ExtraLayout[]) => void;\n onSave?: (layout: ExtraLayout[]) => void;\n onCancel?: () => void;\n onActionClick?: (action: SimpleAction, layouts: ExtraLayout[]) => void;\n onSetting?: () => void;\n}\n\nconst getRealKey = (key: string): string =>\n key?.includes(\":\") ? key.split(\":\")[0] : key;\nconst { isAdmin } = auth.getAuth();\n\nexport const EoWorkbenchLayoutComponent = forwardRef<\n EoWorkbenchLayoutV2ComponentRef,\n EoWorkbenchLayoutV2ComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n customDefaultCardConfigMap,\n toolbarBricks,\n componentList = [],\n isEdit,\n showSettingButton,\n onChange,\n onSave,\n onCancel,\n onActionClick,\n onSetting,\n gap,\n },\n ref\n) {\n const ResponsiveReactGridLayout = useMemo(\n () => WidthProvider(Responsive),\n []\n );\n const { t } = useTranslation(NS);\n const gridLayoutRef = useRef<HTMLDivElement>(null);\n const layoutWrapperRef = useRef<HTMLDivElement>(null);\n const layoutCacheRef = useRef<ExtraLayout[]>(layoutsProps ?? []);\n const [layouts, _setLayouts] = useState<ExtraLayout[]>(\n layoutCacheRef.current\n );\n const keyComponentMap = useMemo(\n () => keyBy(componentList, \"key\"),\n [componentList]\n );\n const [cols, setCols] = useState<number>(3);\n const [layoutWrapperStyle, setLayoutWrapperStyle] =\n useState<React.CSSProperties>();\n const draggingComponentRef = useRef<WorkbenchComponent>();\n\n const setLayouts = useCallback((layouts: ExtraLayout[]) => {\n layoutCacheRef.current = layouts;\n _setLayouts(layouts);\n }, []);\n\n useImperativeHandle(ref, () => ({ setLayouts }));\n\n const handleChange = useCallback(\n (layouts: ExtraLayout[]) => {\n setLayouts(layouts);\n onChange?.(layouts);\n },\n [onChange, setLayouts]\n );\n\n // const handleDragCallback: ItemCallback = (layout, oldItem, newItem) => {\n // const placeholderDOM = gridLayoutRef.current?.querySelector(\n // \".react-grid-placeholder\"\n // );\n // if (placeholderDOM) {\n // if (newItem.w > 1 && newItem.x > 0) {\n // !placeholderDOM.classList.contains(\"forbidden\") &&\n // placeholderDOM.classList.add(\"forbidden\");\n // } else {\n // placeholderDOM.classList.contains(\"forbidden\") &&\n // placeholderDOM.classList.remove(\"forbidden\");\n // }\n // }\n // };\n\n /* istanbul ignore next */\n const handleLayoutChange = useCallback(\n (currentLayout: ExtraLayout[]) => {\n if (!isEdit) {\n return;\n }\n\n // 占位拖拽不触发 setLayouts\n if (currentLayout.some((v) => v.isDraggable)) {\n return;\n }\n\n const currentLayoutsMap = keyBy(layouts, \"i\");\n for (let t = 0; t < currentLayout.length; t++) {\n const { x, w, y, h, i, minH } = currentLayout[t];\n if (w === 1 && x < 2) {\n const matchItem = currentLayout.find(\n (item) => item.i !== i && item.w === 1 && item.y === y && x < 2\n );\n if (matchItem) {\n currentLayout[t].minH = currentLayout[t].minH ?? h;\n }\n } else {\n currentLayout[t].h = minH ?? h;\n currentLayout[t].minH = undefined;\n }\n }\n\n handleChange(\n currentLayout.map((v) => {\n const layoutItem = currentLayoutsMap?.[v.i];\n return { ...layoutItem, ...v, type: getRealKey(v.i) };\n })\n );\n },\n [handleChange, isEdit, layouts]\n );\n\n const handleBreakpointChange = (_newBreakpoint: string, newCols: number) => {\n setCols(newCols);\n };\n\n const handleClearLayout = () => {\n handleChange([]);\n };\n\n const handleSave = useCallback(() => {\n onSave?.(layouts);\n }, [layouts, onSave]);\n\n const handleSetting = () => {\n onSetting?.();\n };\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleActionClick = (action: SimpleAction) => {\n const { event } = action;\n\n switch (event) {\n case \"clear\":\n showDialog({\n type: \"confirm\",\n title: t(K.CLEAR_CONFIRM) as string,\n content: t(K.CLEAR_CONFIRM_MESSAGE),\n }).then(handleClearLayout);\n break;\n default:\n onActionClick?.(action, layouts ?? []);\n }\n };\n\n const addComponent = (\n component: WorkbenchComponent,\n currentLayouts?: Layout[]\n ): void => {\n const defaultCardConfig = getLayoutDefaultCardConfig(\n component.key,\n customDefaultCardConfigMap\n );\n const currentLayoutsMap = keyBy(currentLayouts, \"i\");\n const newLayouts = layouts.map((layout) => {\n return {\n ...layout,\n ...pick(currentLayoutsMap?.[layout.i], [\"x\", \"y\"]),\n };\n });\n let newLayout = {\n ...defaultCardConfig,\n ...component.position,\n i: `${component.key}:${Math.random()}`,\n cardWidth: component.position.w,\n type: component.key,\n x: component.position.w > 1 ? 0 : (layouts.length * 2) % cols,\n y: Infinity,\n };\n if (currentLayouts) {\n const dropItem = currentLayouts.find((v) => v.i === \"__dropping-elem__\");\n newLayout = {\n ...newLayout,\n ...pick(dropItem, \"x\", \"y\"),\n };\n handleChange([newLayout, ...newLayouts]);\n return;\n }\n handleChange(layouts.concat(newLayout));\n };\n\n const handleDeleteItem = useCallback(\n (i: string) => {\n handleChange(layouts.filter((item) => item.i !== i) ?? []);\n },\n [handleChange, layouts]\n );\n\n /* istanbul ignore next */\n const handleResize = useCallback(\n (i: string, contentHeight: number) => {\n const oldLayout = layouts.find((layout: ExtraLayout) => layout.i === i);\n const initNewH =\n ((oldLayout?.cardBorderStyle === \"solid\"\n ? oldLayout?.cardBorderWidth || 0\n : 0) *\n 2 +\n contentHeight +\n (gap ?? MARGIN_HEIGHT)) /\n ((gap ?? MARGIN_HEIGHT) + ROW_HEIGHT);\n const newH = isEdit ? Math.ceil(initNewH) : initNewH;\n\n if (!oldLayout) return;\n\n const currentH = isEdit ? Math.ceil(oldLayout.h) : oldLayout.h;\n if (currentH !== newH) {\n const newLayouts = layouts.map((item) =>\n item.i === i ? { ...item, h: newH } : item\n );\n handleChange(newLayouts);\n }\n },\n [layouts, handleChange, gap, isEdit]\n );\n\n const renderChild = useMemo(() => {\n return layouts\n .map((layout) => {\n const component = keyComponentMap[getRealKey(layout.type as string)];\n if (!component) {\n return null;\n }\n const background =\n layout?.cardBgType === \"picture\"\n ? `url(\"${URl_PREFIX}${layout?.cardBackground}\") no-repeat center / cover`\n : layout?.cardBgType === \"realNone\"\n ? \"none\"\n : layout?.cardBgType === \"color\"\n ? layout?.cardBackground\n : \"#fff\";\n const border =\n layout?.cardBorderStyle === \"solid\"\n ? `${layout?.cardBorderWidth}px ${layout?.cardBorderStyle} ${layout?.cardBorderColor}`\n : (layout?.cardBorderStyle ?? \"1px solid #e8e8e8\");\n const borderRadius = `${layout?.cardBorderRadius ?? 6}px`;\n\n return (\n <div\n className=\"drag-box\"\n data-grid={{\n ...(component.position ?? {}),\n ...layout,\n w: layout.cardWidth || layout.w,\n }}\n key={layout.i}\n style={{\n ...(component.style || {}),\n background,\n border,\n borderRadius,\n backdropFilter: \"blur(10px)\",\n }}\n >\n <SizeMe monitorHeight>\n {({ size }) => {\n if (size.height) {\n handleResize(layout.i, size.height);\n }\n return (\n <DroppableComponentLayoutItem\n component={component}\n isEdit={isEdit}\n layout={layout}\n onDelete={handleDeleteItem}\n />\n );\n }}\n </SizeMe>\n </div>\n );\n })\n .filter(Boolean);\n }, [layouts, keyComponentMap, isEdit, handleDeleteItem, handleResize]);\n\n const handleWatchLayoutSizeChange = useCallback(() => {\n if (layoutWrapperRef && isEdit) {\n const { top } =\n layoutWrapperRef.current?.getClientRects()?.[0] ?? ({} as DOMRect);\n top !== undefined &&\n setLayoutWrapperStyle({\n height: document.body.clientHeight - top,\n });\n }\n }, [isEdit]);\n\n useEffect(() => {\n if (isEdit) {\n handleWatchLayoutSizeChange();\n setLayouts(layoutsProps || []); // 编辑的情况下需要动态改变一些布局\n window.addEventListener(\"resize\", handleWatchLayoutSizeChange);\n\n return () => {\n window.removeEventListener(\"resize\", handleWatchLayoutSizeChange);\n };\n }\n }, [isEdit, handleWatchLayoutSizeChange, layoutsProps, setLayouts]);\n\n return (\n <div className={styles.gridLayoutWrapper} ref={gridLayoutRef}>\n {isEdit && (\n <div className={styles.componentWrapper} style={layoutWrapperStyle}>\n <div className={styles.componentTitle}>{cardTitle}</div>\n <div className={styles.componentList}>\n {componentList?.map((component, index) => (\n <DraggableComponentMenuItem\n component={component}\n onClick={() => {\n addComponent(component);\n }}\n onDragStart={() => {\n draggingComponentRef.current = component;\n }}\n onDragEnd={() => {\n draggingComponentRef.current = undefined;\n }}\n key={component.key || index}\n />\n ))}\n {toolbarBricks?.useBrick && (\n <ReactUseMultipleBricks useBrick={toolbarBricks.useBrick} />\n )}\n </div>\n </div>\n )}\n <div\n className={styles.layoutWrapper}\n ref={layoutWrapperRef}\n style={layoutWrapperStyle}\n >\n {isEdit && (\n <div className={styles.actionsWrapper}>\n <WrappedButton type=\"primary\" onClick={handleSave}>\n {t(K.SAVE)}\n </WrappedButton>\n <WrappedButton onClick={handleCancel}>{t(K.CANCEL)}</WrappedButton>\n {showSettingButton && (\n <WrappedButton\n data-testid=\"setting-button\"\n onClick={handleSetting}\n >\n {t(K.SETTING)}\n </WrappedButton>\n )}\n <WrappedDropdownButton\n btnText={t(K.MORE) as string}\n icon={{ lib: \"antd\", icon: \"down\" }}\n actions={[\n ...(isAdmin\n ? [{ text: t(K.SAVE_AS_TEMPLATE), event: \"saveAsTemplate\" }]\n : []),\n { text: t(K.LOAD_FROM_TEMPLATE), event: \"loadFromTemplate\" },\n { text: t(K.CLEAR_ALL), danger: true, event: \"clear\" },\n ]}\n onActionClick={(e) => {\n handleActionClick(e.detail);\n }}\n data-testid=\"edit-layout-actions\"\n />\n </div>\n )}\n <ResponsiveReactGridLayout\n className={classNames(styles.layout, {\n [`${styles.layoutEdit}`]: isEdit,\n })}\n draggableCancel={`.${layoutItemStyles.deleteIcon},.edit-actions,.ignore-item`}\n breakpoints={{ lg: 1300, md: 1024, sm: 768 }}\n rowHeight={ROW_HEIGHT}\n cols={{ lg: 3, md: 3, sm: isEdit ? 3 : 1 }}\n isResizable={false}\n isDraggable={isEdit}\n isDroppable={isEdit}\n compactType=\"vertical\"\n margin={[gap ?? MARGIN_WIDTH, gap ?? MARGIN_HEIGHT]}\n // onDrag={handleDragCallback}\n useCSSTransforms={false}\n onDropDragOver={() => {\n if (draggingComponentRef.current) {\n return pick(draggingComponentRef.current.position, [\"w\", \"h\"]);\n }\n }}\n onDrop={(layout) => {\n if (draggingComponentRef.current) {\n addComponent(draggingComponentRef.current, layout);\n }\n }}\n onLayoutChange={handleLayoutChange}\n onBreakpointChange={handleBreakpointChange}\n >\n {renderChild}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n );\n});\n\n/**\n * 工作台布局V2, 未使用shadow dom\n */\nexport\n@defineElement(\"eo-workbench-layout-v2\", { shadowOptions: false })\nclass EoWorkbenchLayoutV2 extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutV2ComponentRef>();\n\n @property()\n accessor cardTitle: string | undefined;\n\n @property({ type: Boolean })\n accessor isEdit: boolean | undefined;\n\n @property({ attribute: false })\n accessor layouts: ExtraLayout[] | undefined;\n\n @property({ attribute: false })\n accessor toolbarBricks: { useBrick: UseSingleBrickConf[] } | undefined;\n\n @property({ attribute: false })\n accessor componentList: WorkbenchComponent[] | undefined;\n\n /**\n * 自定义卡片默认配置, 用于覆盖默认卡片配置\n */\n @property({ attribute: false })\n accessor customDefaultCardConfigMap:\n | Record<string, CardStyleConfig>\n | undefined;\n\n /**\n * description: 用于设置页面样式和布局的按钮\n */\n @property({ type: Boolean })\n accessor showSettingButton: boolean | undefined;\n\n /**\n * description: 卡片间隔\n */\n @property({ type: Number })\n accessor gap: number | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<ExtraLayout[]>;\n\n #handleChange = (layouts: ExtraLayout[]) => {\n this.#changeEvent.emit(layouts);\n };\n\n @event({ type: \"save\" })\n accessor #saveEvent!: EventEmitter<ExtraLayout[]>;\n\n #handleSave = (layouts: ExtraLayout[]) => {\n this.#saveEvent.emit(layouts);\n };\n\n @event({ type: \"cancel\" })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #handleCancel = () => {\n this.#cancelEvent.emit();\n };\n\n @event({ type: \"setting\" })\n accessor #settingEvent!: EventEmitter<void>;\n #handleSetting = () => {\n this.#settingEvent.emit();\n };\n\n /**\n * 操作点击事件\n * @detail {\n action: SimpleAction;\n layouts: Layout[];\n }\n */\n @event({ type: \"action.click\" })\n accessor #actionClickEvent!: EventEmitter<{\n action: SimpleAction;\n layouts: Layout[];\n }>;\n\n #handleActionClick = (action: SimpleAction, layouts: Layout[]): void => {\n this.#actionClickEvent.emit({ action, layouts });\n action.event &&\n this.dispatchEvent(new CustomEvent(action.event, { detail: layouts }));\n };\n\n @method()\n setLayouts(layouts: Layout[]) {\n this.#componentRef.current?.setLayouts(layouts);\n }\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <EoWorkbenchLayoutComponent\n cardTitle={this.cardTitle}\n layouts={this.layouts}\n gap={this.gap}\n toolbarBricks={this.toolbarBricks}\n componentList={this.componentList}\n showSettingButton={this.showSettingButton}\n isEdit={this.isEdit}\n customDefaultCardConfigMap={this.customDefaultCardConfigMap}\n onChange={this.#handleChange}\n onSave={this.#handleSave}\n onCancel={this.#handleCancel}\n onActionClick={this.#handleActionClick}\n onSetting={this.#handleSetting}\n ref={this.#componentRef}\n />\n );\n }\n}\n","// istanbul ignore file: nothing logical except calling html2canvas.\nimport { http } from \"@next-core/http\";\nimport html2canvas from \"html2canvas\";\nimport { getBasePath } from \"@next-core/runtime\";\n\nexport type UploadStatus = \"uploading\" | \"done\" | \"error\";\n\nexport function capture(\n selector?: string,\n backgroundColor?: string\n): Promise<HTMLCanvasElement> {\n const target: HTMLElement | null = selector\n ? document.querySelector(`${selector}`)\n : document.body;\n if (!target) {\n throw new Error(`target not found: ${selector}`);\n }\n return new Promise(function (resolve, reject) {\n html2canvas(target, {\n backgroundColor: backgroundColor || null,\n useCORS: true,\n allowTaint: true,\n scale: window.devicePixelRatio < 3 ? window.devicePixelRatio : 2,\n })\n .then(function (canvas: HTMLCanvasElement) {\n resolve(canvas);\n })\n .catch(reject);\n });\n}\n\nexport function downloadImage(\n canvas: HTMLCanvasElement,\n name = \"image\"\n): Promise<string> {\n return new Promise((resolve, reject) => {\n try {\n const url = canvas.toDataURL(\"image/png\");\n const image = new Image();\n image.onload = function () {\n const canvas = document.createElement(\"canvas\");\n canvas.width = image.width;\n canvas.height = image.height;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(image, 0, 0, image.width, image.height);\n\n const url = canvas.toDataURL(\"image/png\");\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = name;\n const event = new MouseEvent(\"click\");\n a.dispatchEvent(event);\n };\n image.src = url;\n resolve(\"succeed\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n reject(\"failed\");\n }\n });\n}\n\nexport function getCanvasBlob(canvas: HTMLCanvasElement): Promise<Blob> {\n return new Promise(function (resolve, reject) {\n canvas.toBlob(function (blob: Blob | null) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n });\n });\n}\n\nexport function uploadFile(\n file: File,\n bucketName: string\n): Promise<{ data: { objectName: string } }> {\n const formData = new FormData();\n formData.append(\"file\", file, file.name);\n\n const url = `${getBasePath()}api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${bucketName}/object`;\n\n return http.request(url, {\n method: \"PUT\",\n body: formData,\n });\n}\nexport function buildImageUrl(bucketName: string, objectName: string) {\n return `${getBasePath()}api/gateway/logic.object_store_service/api/v1/objectStore/bucket/${bucketName}/object/${objectName}`;\n}\n","// istanbul ignore file: nothing logical except calling html2canvas.\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport {\n capture,\n downloadImage,\n getCanvasBlob,\n uploadFile,\n buildImageUrl,\n} from \"./snapshot.js\";\nexport type SnapshotOptions = {\n /** 文件名称 */\n name: string;\n /** 文件类型 */\n fileType: \"image\" | \"pdf\";\n /** 选择器 */\n selector?: string;\n /** 对象存储桶名字, fileType只能为 `image` */\n bucketName?: string;\n /** 画布背景颜色, 默认透明 */\n backgroundColor?: string;\n};\n/**\n * 截图,保存或上传\n *\n * @param options 选项\n */\nexport async function captureSnapshot(\n options: SnapshotOptions\n): Promise<void | string> {\n const { name, fileType, bucketName, selector, backgroundColor } = options;\n switch (fileType) {\n case \"image\":\n {\n const canvas = await capture(selector, backgroundColor);\n if (bucketName) {\n const blob = await getCanvasBlob(canvas);\n const files = new File([blob], `${name}.png`, { type: blob.type });\n const result = await uploadFile(files, bucketName);\n return buildImageUrl(bucketName, result.data.objectName);\n } else {\n await downloadImage(canvas, name);\n }\n }\n break;\n case \"pdf\": {\n const { jsPDF } = await import(\"jspdf\");\n const canvas = await capture(selector, backgroundColor);\n const imageData = canvas.toDataURL(\"image/jpeg\", 1.0);\n const orientation =\n canvas.width > canvas.height ? \"landscape\" : \"portrait\";\n const pdf = new jsPDF(orientation, \"pt\", [canvas.width, canvas.height]);\n pdf.addImage(imageData, \"JPEG\", 0, 0, canvas.width, canvas.height);\n await pdf.save(`${name}.pdf`, { returnPromise: true });\n break;\n }\n default:\n break;\n }\n}\n\ncustomElements.define(\n \"advanced.capture-snapshot\",\n createProviderClass(captureSnapshot)\n);\n","import React, { useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { Tree, ConfigProvider, theme } from \"antd\";\nimport type { TreeProps } from \"antd\";\nimport type { BasicDataNode } from \"antd/es/tree\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { DownOutlined } from \"@ant-design/icons\";\nimport {\n useCurrentTheme,\n ReactUseMultipleBricks,\n} from \"@next-core/react-runtime\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface EoTreeProps {\n dataSource?: TreeNode[];\n checkable?: boolean;\n selectable?: boolean;\n defaultExpandAll?: boolean;\n showLine?: boolean;\n expandedKeys?: TreeNodeKey[];\n checkedKeys?: TreeNodeKey[];\n nodeDraggable?: boolean | { icon?: false };\n switcherIcon?: \"auto\" | \"chevron\" | false;\n allowDrop?: (info: AllowDropInfo) => boolean;\n titleSuffixBrick?: { useBrick: UseBrickConf };\n}\n\nexport interface TreeNode extends BasicDataNode {\n title: string;\n key: TreeNodeKey;\n children?: TreeNode[];\n}\n\nexport type TreeNodeKey = string | number;\n\nexport interface CheckDetail {\n checkedKeys: TreeNodeKey[];\n halfCheckedKeys: TreeNodeKey[];\n}\n\nexport interface AllowDropInfo {\n dragNode: TreeNode;\n dropNode: TreeNode;\n /**\n * The drop position is relative to the drop node, inside 0, top -1, bottom 1\n */\n dropPosition: number;\n}\n\nexport interface DropDetail {\n dragNode: TreeNode;\n dropNode: TreeNode;\n /**\n * The drop position is relative to the drop node, inside 0, top -1, bottom 1\n */\n dropPosition: number;\n}\n\nexport type RawDropInfo = Parameters<\n Exclude<TreeProps<TreeNode>[\"onDrop\"], undefined>\n>[0];\n\n/**\n * 树形构件\n * @author steve\n */\nexport\n@defineElement(\"eo-tree\", {\n styleTexts: [styleText],\n})\nclass EoTree extends ReactNextElement implements EoTreeProps {\n @property({ attribute: false })\n accessor dataSource: TreeNode[] | undefined;\n\n @property({ type: Boolean })\n accessor checkable: boolean | undefined;\n\n /**\n * @default true\n */\n @property({ type: Boolean })\n accessor selectable: boolean | undefined;\n\n @property({ type: Boolean })\n accessor defaultExpandAll: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showLine: boolean | undefined;\n\n @property({ attribute: false })\n accessor expandedKeys: TreeNodeKey[] | undefined;\n\n @property({ attribute: false })\n accessor checkedKeys: TreeNodeKey[] | undefined;\n\n @property({ attribute: false })\n accessor nodeDraggable: boolean | { icon?: false } | undefined;\n\n @property({ attribute: false })\n accessor switcherIcon: \"auto\" | \"chevron\" | false | undefined;\n\n @property({ attribute: false })\n accessor allowDrop: ((info: AllowDropInfo) => boolean) | undefined;\n\n @property({ attribute: false })\n accessor titleSuffixBrick: { useBrick: UseBrickConf } | undefined;\n\n @event({ type: \"check\" })\n accessor #checkEvent!: EventEmitter<TreeNodeKey[]>;\n\n @event({ type: \"check.detail\" })\n accessor #checkDetailEvent!: EventEmitter<CheckDetail>;\n\n #handleCheck: TreeProps<TreeNode>[\"onCheck\"] = (checkedKeys, info) => {\n this.#checkEvent.emit(checkedKeys as TreeNodeKey[]);\n this.#checkDetailEvent.emit({\n checkedKeys: checkedKeys as TreeNodeKey[],\n halfCheckedKeys: info.halfCheckedKeys as TreeNodeKey[],\n });\n };\n\n @event({ type: \"expand\" })\n accessor #expandEvent!: EventEmitter<TreeNodeKey[]>;\n\n #handleExpand: TreeProps<TreeNode>[\"onExpand\"] = (expandedKeys) => {\n this.#expandEvent.emit(expandedKeys as TreeNodeKey[]);\n };\n\n @event({ type: \"node.drop\" })\n accessor #dropEvent!: EventEmitter<DropDetail>;\n\n // istanbul ignore next\n #handleDrop = ({ dragNode, node: dropNode, dropPosition }: RawDropInfo) => {\n this.#dropEvent.emit({\n dragNode,\n dropNode,\n dropPosition,\n });\n };\n\n render() {\n return (\n <EoTreeComponent\n dataSource={this.dataSource}\n shadowRoot={this.shadowRoot!}\n checkable={this.checkable}\n selectable={this.selectable}\n defaultExpandAll={this.defaultExpandAll}\n showLine={this.showLine}\n nodeDraggable={this.nodeDraggable}\n switcherIcon={this.switcherIcon}\n expandedKeys={this.expandedKeys}\n checkedKeys={this.checkedKeys}\n titleSuffixBrick={this.titleSuffixBrick}\n onCheck={this.#handleCheck}\n onExpand={this.#handleExpand}\n allowDrop={this.allowDrop}\n onDrop={this.#handleDrop}\n />\n );\n }\n}\n\nexport interface EoTreeComponentProps extends EoTreeProps {\n shadowRoot: ShadowRoot;\n onCheck: TreeProps<TreeNode>[\"onCheck\"];\n onExpand: TreeProps<TreeNode>[\"onExpand\"];\n onDrop: TreeProps<TreeNode>[\"onDrop\"];\n allowDrop?: (info: AllowDropInfo) => boolean;\n}\n\nexport function EoTreeComponent({\n dataSource,\n shadowRoot,\n checkable,\n selectable,\n defaultExpandAll,\n showLine,\n expandedKeys,\n checkedKeys,\n nodeDraggable,\n switcherIcon,\n titleSuffixBrick,\n onCheck,\n onExpand,\n onDrop,\n allowDrop,\n}: EoTreeComponentProps) {\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => createCache(), []);\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot}\n // Auto clear injected styles after unmount\n autoClear\n cache={cache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <Tree\n switcherIcon={\n switcherIcon === false ? (\n false\n ) : switcherIcon === \"chevron\" ? (\n <DownOutlined />\n ) : undefined\n }\n {...(titleSuffixBrick?.useBrick\n ? {\n titleRender: (nodeData: TreeNode) => {\n return (\n <>\n {nodeData.title}\n <span onClick={(e) => e.stopPropagation()}>\n <ReactUseMultipleBricks\n useBrick={titleSuffixBrick.useBrick}\n data={nodeData}\n />\n </span>\n </>\n );\n },\n }\n : null)}\n treeData={dataSource}\n checkable={checkable}\n selectable={selectable}\n defaultExpandAll={defaultExpandAll}\n showLine={showLine}\n draggable={nodeDraggable}\n {...(expandedKeys ? { expandedKeys } : null)}\n {...(checkedKeys ? { checkedKeys } : null)}\n onCheck={onCheck}\n onExpand={onExpand}\n allowDrop={allowDrop}\n onDrop={onDrop}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, { CSSProperties, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { TreeSelect, ConfigProvider, theme } from \"antd\";\nimport { TreeSelectProps as AntdTreeSelectProps } from \"antd/lib/tree-select\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface TreeSelectProps\n extends Pick<\n AntdTreeSelectProps,\n | \"value\"\n | \"allowClear\"\n | \"disabled\"\n | \"fieldNames\"\n | \"filterTreeNode\"\n | \"maxTagCount\"\n | \"multiple\"\n | \"onSearch\"\n | \"onSelect\"\n | \"onChange\"\n | \"onTreeExpand\"\n | \"loading\"\n | \"placeholder\"\n | \"size\"\n | \"showSearch\"\n | \"searchValue\"\n | \"treeData\"\n | \"treeDefaultExpandAll\"\n | \"treeExpandedKeys\"\n > {\n shadowRoot: ShadowRoot | null;\n checkable?: boolean;\n suffixIcon?: GeneralIconProps;\n popupPlacement?: AntdTreeSelectProps[\"placement\"];\n dropdownStyle?: CSSProperties;\n maxTagCount?: number | \"responsive\";\n popupMatchSelectWidth?: boolean;\n}\n\n/**\n * 树选择器\n * @author sailor\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-tree-select\", {\n styleTexts: [styleText],\n})\nclass TreeSelectBrick extends FormItemElementBase implements TreeSelectProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor treeData: AntdTreeSelectProps[\"treeData\"];\n\n @property({ type: Boolean })\n accessor treeDefaultExpandAll: boolean | undefined;\n\n @property({ attribute: false })\n accessor treeExpandedKeys: string[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor fieldNames: AntdTreeSelectProps[\"fieldNames\"];\n\n @property({\n attribute: false,\n })\n accessor value: AntdTreeSelectProps[\"value\"];\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor checkable: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined = true;\n\n @property({\n type: Boolean,\n })\n accessor loading: boolean | undefined = false;\n\n @property({\n attribute: false,\n })\n accessor filterTreeNode: AntdTreeSelectProps[\"filterTreeNode\"];\n\n @property({\n type: Boolean,\n })\n accessor showSearch: boolean | undefined = true;\n\n @property({\n attribute: false,\n })\n accessor suffixIcon: GeneralIconProps | undefined;\n\n @property()\n accessor popupPlacement: AntdTreeSelectProps[\"placement\"] = \"bottomLeft\";\n\n @property()\n accessor size: AntdTreeSelectProps[\"size\"];\n\n @property({\n attribute: false,\n })\n accessor maxTagCount: number | \"responsive\" | undefined;\n\n @property({\n attribute: false,\n })\n accessor dropdownStyle: CSSProperties | undefined;\n\n @property({\n type: Boolean,\n })\n accessor popupMatchSelectWidth: boolean | undefined = true;\n\n /**\n * @detail { value: AntdTreeSelectProps[\"value\"], selectedOptions: DefaultOptionType[] | DefaultOptionType[][] }\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<{\n value: AntdTreeSelectProps[\"value\"];\n }>;\n\n handleOnChange = (value: AntdTreeSelectProps[\"value\"]): void => {\n this.value = value;\n this.#changeEvent.emit({ value });\n };\n\n @event({ type: \"search\" })\n accessor #searchEvent!: EventEmitter<string>;\n\n #handleSearch = (value: string): void => {\n this.#searchEvent.emit(value);\n };\n\n @event({ type: \"select\" })\n accessor #selectEvent!: EventEmitter<{ value: AntdTreeSelectProps[\"value\"] }>;\n\n #handleSelect = (value: AntdTreeSelectProps[\"value\"]): void => {\n this.#selectEvent.emit({ value });\n };\n\n @event({ type: \"expand\" })\n accessor #expandEvent!: EventEmitter<{ keys: React.Key[] }>;\n\n #handleExpand = (keys: React.Key[]): void => {\n this.#expandEvent.emit({ keys });\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n notRender={this.notRender}\n trigger=\"handleOnChange\"\n >\n <TreeSelectElement\n shadowRoot={this.shadowRoot}\n checkable={this.checkable}\n treeData={this.treeData}\n treeDefaultExpandAll={this.treeDefaultExpandAll}\n fieldNames={this.fieldNames}\n filterTreeNode={this.filterTreeNode}\n value={this.value}\n multiple={this.multiple}\n placeholder={this.placeholder}\n loading={this.loading}\n disabled={this.disabled}\n allowClear={this.allowClear}\n showSearch={this.showSearch}\n suffixIcon={this.suffixIcon}\n size={this.size}\n popupPlacement={this.popupPlacement}\n treeExpandedKeys={this.treeExpandedKeys}\n maxTagCount={this.maxTagCount}\n dropdownStyle={this.dropdownStyle}\n onChange={this.handleOnChange}\n onSearch={this.#handleSearch}\n onSelect={this.#handleSelect}\n onTreeExpand={this.#handleExpand}\n popupMatchSelectWidth={this.popupMatchSelectWidth}\n />\n </WrappedFormItem>\n );\n }\n}\n\ninterface TreeSelectComponentProps extends TreeSelectProps {\n onChange?: (value: AntdTreeSelectProps[\"value\"]) => void;\n}\n\nfunction TreeSelectElement(\n props: TreeSelectComponentProps\n): React.ReactElement {\n const {\n shadowRoot,\n checkable,\n loading,\n treeData,\n treeExpandedKeys,\n treeDefaultExpandAll,\n fieldNames,\n value,\n placeholder,\n disabled,\n multiple,\n allowClear,\n popupPlacement,\n dropdownStyle,\n suffixIcon,\n size,\n maxTagCount,\n onChange,\n onSearch,\n onSelect,\n onTreeExpand,\n showSearch,\n popupMatchSelectWidth,\n } = props;\n\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n /* istanbul ignore next */\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={shadowRoot as ShadowRoot} cache={cache}>\n <TreeSelect\n getPopupContainer={(trigger) => trigger.parentElement}\n allowClear={allowClear}\n loading={loading}\n disabled={disabled}\n multiple={multiple}\n fieldNames={fieldNames}\n placeholder={placeholder}\n placement={popupPlacement}\n dropdownStyle={dropdownStyle}\n suffixIcon={suffixIcon && <WrappedIcon {...suffixIcon} />}\n maxTagCount={maxTagCount}\n value={value}\n size={size}\n treeData={treeData}\n treeCheckable={checkable}\n treeExpandedKeys={treeExpandedKeys}\n treeDefaultExpandAll={treeDefaultExpandAll}\n onChange={onChange}\n onSelect={onSelect}\n onSearch={onSearch}\n onTreeExpand={onTreeExpand}\n virtual={false}\n showSearch={showSearch}\n popupMatchSelectWidth={popupMatchSelectWidth}\n className={classNames({\n notPopupMatchSelectWidth: !popupMatchSelectWidth,\n })}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { Tooltip, ConfigProvider } from \"antd\";\nimport {\n StyleProvider,\n createCache,\n legacyLogicalPropertiesTransformer,\n} from \"@ant-design/cssinjs\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 超出宽度鼠标悬浮显示tooltip\n * 构件 `eo-text-tooltip`\n */\nexport\n@defineElement(\"eo-text-tooltip\", {\n styleTexts: [styleText],\n})\nclass EoTextTooltip extends ReactNextElement implements EoTextTooltipProps {\n /**\n * 文案\n * @default\n */\n @property({ type: String })\n accessor label: string | undefined;\n\n /**\n * 省略行数\n * @default 1\n */\n @property({ type: Number })\n accessor lineClamp: number = 1;\n\n render() {\n return (\n <EoTextTooltipComponent label={this.label} lineClamp={this.lineClamp} />\n );\n }\n}\n\nexport interface EoTextTooltipProps {\n label?: string;\n lineClamp?: number;\n}\n\nexport function EoTextTooltipComponent(props: EoTextTooltipProps) {\n const { lineClamp, label } = props;\n const ref = useRef<HTMLDivElement>(null);\n // 是否显示tooltip\n const [show, setShow] = useState(false);\n // 判断是否需要显示省略号\n const isEllipsis = useCallback(() => {\n const parentDom = ref.current;\n /* istanbul ignore if */\n if (!parentDom) return false;\n const { offsetWidth, offsetHeight, scrollWidth, scrollHeight } = parentDom;\n return offsetWidth < scrollWidth || offsetHeight < scrollHeight;\n }, [lineClamp, label]);\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n useEffect(() => {\n setShow(isEllipsis());\n }, [isEllipsis]);\n return (\n <ConfigProvider prefixCls=\"antdV5\">\n <StyleProvider\n cache={cache}\n hashPriority=\"high\"\n transformers={[legacyLogicalPropertiesTransformer]}\n >\n <Tooltip\n title={\n /* istanbul ignore next */\n show ? label : null\n }\n >\n <div\n ref={ref}\n className=\"ellipsisWrap\"\n style={\n {\n \"--line-clamp\": lineClamp,\n } as React.CSSProperties\n }\n >\n {label}\n </div>\n </Tooltip>\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { Worker, Viewer } from \"@react-pdf-viewer/core\";\n\n// Plugins\nimport { defaultLayoutPlugin } from \"@react-pdf-viewer/default-layout\";\n\n// Import styles\nimport \"@react-pdf-viewer/core/lib/styles/index.css\";\nimport \"@react-pdf-viewer/default-layout/lib/styles/index.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PdfViewerProps {\n url: string;\n page?: number;\n search?: string;\n viewerStyle?: React.CSSProperties | undefined;\n}\n\n/**\n * 构件 `advanced.pdf-viewer`\n */\nexport\n@defineElement(\"advanced.pdf-viewer\", {\n // 样式文件引入报错,使用非shadow dom模式正常\n shadowOptions: false,\n})\nclass PdfViewer extends ReactNextElement implements PdfViewerProps {\n @property()\n accessor url!: string;\n\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n @property()\n accessor search: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor viewerStyle: React.CSSProperties | undefined;\n\n render() {\n return (\n <PdfViewerComponent\n url={this.url}\n page={this.page ? this.page - 1 : 0}\n search={this.search}\n viewerStyle={this.viewerStyle}\n />\n );\n }\n}\n\nexport interface PdfViewerComponentProps extends PdfViewerProps {\n // Define event handlers here.\n}\n\nexport function PdfViewerComponent({\n url,\n search,\n page,\n viewerStyle,\n}: PdfViewerComponentProps) {\n // https://react-pdf-viewer.dev/examples/jump-to-the-first-match-of-pre-defined-keywords-automatically/\n const [isDocumentLoaded, setDocumentLoaded] = useState(false);\n\n const defaultLayoutPluginInstance = defaultLayoutPlugin();\n\n useEffect(() => {\n if (isDocumentLoaded && search) {\n defaultLayoutPluginInstance.toolbarPluginInstance.searchPluginInstance.highlight(\n {\n keyword: search,\n }\n );\n }\n }, [isDocumentLoaded, search]);\n\n return (\n // See: https://react-pdf-viewer.dev/examples/compile-and-set-the-worker-source-with-webpack/\n <Worker\n workerUrl={`${process.env.NODE_ENV === \"test\" ? \"\" : __webpack_public_path__}workers/pdf.worker.min.js`}\n >\n <div style={viewerStyle}>\n <Viewer\n fileUrl={url}\n initialPage={page}\n plugins={[defaultLayoutPluginInstance]}\n onDocumentLoad={() => setDocumentLoaded(true)}\n />\n </div>\n </Worker>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline;width:-moz-fit-content;width:fit-content;max-width:100%}:host([hidden]){display:none}.ellipsisWrap{display:-webkit-box;word-break:break-all;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:var(--line-clamp);white-space:normal;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-grid-layout{position:relative;transition:height 200ms ease}.react-grid-item{transition:all 200ms ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:0.2;transition-duration:100ms;z-index:2;-webkit-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item > .react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item > .react-resizable-handle::after{content:\"\";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,0.4);border-bottom:2px solid rgba(0,0,0,0.4)}.react-resizable-hide > .react-resizable-handle{display:none}.react-grid-item > .react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-w,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-n,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.ant-tree-select{width:100%;min-height:28px;height:max-content}.ant-select-lg{height:38px}.ant-select-sm{height:20px}.ant-select-multiple .ant-select-selector{border-radius:var(--small-border-radius)}.ant-select-multiple .ant-select-selector:after{line-height:22px}.notPopupMatchSelectWidth .ant-select-tree-title{white-space:nowrap}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host .ant-tree{background-color:transparent}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.componentItemIcon--znvUWa0v{font-size:16px;color:#262626;margin-top:2px}.componentItemWrapper--mLC8xy_9{display:flex;flex-direction:column}.componentItemTitle--zo3KGnys{font-weight:400;font-size:12px;color:#595959;line-height:18px;text-align:left;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.componentItemContent--zOG8IL31{background-color:#f3f4f7;cursor:move;display:flex;justify-content:center;align-items:center}.componentItemThumbnail--epDINDMl{background:#ffffff;border:4px solid #f3f4f7;width:96px;height:64px;border-radius:1px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"componentItemIcon\": `componentItemIcon--znvUWa0v`,\n\t\"componentItemWrapper\": `componentItemWrapper--mLC8xy_9`,\n\t\"componentItemTitle\": `componentItemTitle--zo3KGnys`,\n\t\"componentItemContent\": `componentItemContent--zOG8IL31`,\n\t\"componentItemThumbnail\": `componentItemThumbnail--epDINDMl`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-table-head-cell-padding:14px 16px;--eo-table-head-cell-height:51px;--eo-table-body-cell-padding:11px 16px;--eo-table-body-cell-height:45px}html[data-ui=\"v8-2\"] eo-next-table:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:9px 16px;--eo-table-head-cell-height:41px}html[data-ui=\"v8-2\"] eo-next-table[size=\"large\"]:not([theme-variant=\"elevo\"]){--eo-table-body-cell-padding:9px 16px;--eo-table-body-cell-height:45px}html[data-ui=\"v8-2\"] eo-next-table[size=\"middle\"]:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:7px 16px;--eo-table-head-cell-height:37px;--eo-table-body-cell-padding:6px 16px;--eo-table-body-cell-height:39px}html[data-ui=\"v8-2\"] eo-next-table[size=\"small\"]:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:3px 16px;--eo-table-head-cell-height:29px;--eo-table-body-cell-padding:1px 16px;--eo-table-body-cell-height:31px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.component--MVAoEnGN{height:100%}.editMask--nl6r17tE{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}.deleteIcon--tNyE_ou4{position:absolute;right:15px;top:15px;cursor:pointer;font-size:16px;width:30px;height:30px;display:flex;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text)}.deleteIcon--tNyE_ou4:hover{color:var(--color-error)}.deleteIcon--tNyE_ou4:active{color:var(--color-error-active)}.itemWrapper--_lUkkTz1{position:relative;width:100%}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"component\": `component--MVAoEnGN`,\n\t\"editMask\": `editMask--nl6r17tE`,\n\t\"deleteIcon\": `deleteIcon--tNyE_ou4`,\n\t\"itemWrapper\": `itemWrapper--_lUkkTz1`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ant-select-single .ant-select-selector{border-radius:var(--medius-border-radius)}.ant-select-dropdown{border-radius:var(--medius-border-radius)}.ant-cascader-dropdown .ant-cascader-menu-item{border-radius:var(--small-border-radius)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--eo-next-table-header-border-radius:0}:host([hidden]){display:none}:host([bordered]){--eo-next-table-header-border-radius:4px}.pagination-wrapper{display:flex;gap:20px}.pagination-total-text{color:var(--color-secondary-text)}.pagination-total-number{font-weight:var(--font-weight-400);color:var(--color-normal-text)}.select-info{display:flex;gap:10px}.ant-pagination-total-text{position:absolute;left:0}.ant-pagination-options{order:-1;padding-right:12px}.ant-table-wrapper{background:var(--eo-table-wrapper-background)}.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-thead\n > tr\n > th,\n.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-tbody\n > tr\n > th,\n.next-table.ant-table-wrapper .ant-table .ant-table-container tfoot > tr > th{padding:var(--eo-table-head-cell-padding);height:var(--eo-table-head-cell-height)}.next-table.ant-table-wrapper .ant-table .ant-table-container .ant-table-cell,\n.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-tbody\n > tr\n > td,\n.next-table.ant-table-wrapper .ant-table .ant-table-container tfoot > tr > td{padding:var(--eo-table-body-cell-padding);height:var(--eo-table-body-cell-height)}.ant-table-ping-left .ant-table-cell-fix-left-last::after{box-shadow:var(--left-slide-shadow)}.ant-table-ping-right .ant-table-cell-fix-right-first::after{box-shadow:var(--right-slide-shadow)}.ant-pagination-options .ant-select .ant-select-selector{border:none;box-shadow:none!important;color:var(--color-normal-text)}.ant-pagination .ant-pagination-item:not(.ant-pagination-item-active) a{color:var(--color-normal-text)}.ant-table-expanded-row eo-next-table{--eo-table-wrapper-background:var(--antd-table-row-expand-nested-wrapper);--antd-table-header-bg:initial}.next-table.ant-table-wrapper .ant-table-container,\n.next-table.ant-table-wrapper\n .ant-table-container\n table\n > tbody\n > tr:last-child\n > *:first-child{border-bottom-left-radius:var(--eo-next-table-header-border-radius)}.next-table.ant-table-wrapper\n .ant-table-container\n table\n > tbody\n > tr:last-child\n > *:last-child{border-bottom-right-radius:var(--eo-next-table-header-border-radius)}.next-table.ant-table-wrapper tr.ant-table-expanded-row > th,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row:hover > th,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row > td,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row:hover > td{background-color:var(--color-fill-global-bg-1)}.next-table.ant-table-wrapper .ant-table-container::before{left:0}.next-table.ant-table-wrapper .ant-table-container::after{right:0}.ant-pagination-options .ant-select .ant-select-arrow{left:auto;right:11px}.next-table.ant-table-wrapper\n .ant-table-ping-left\n .ant-table-cell-fix-left-first::after,\n.next-table.ant-table-wrapper\n .ant-table-ping-left\n .ant-table-cell-fix-left-last::after{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-right\n .ant-table-cell-fix-right-first::after,\n.next-table.ant-table-wrapper\n .ant-table-ping-right\n .ant-table-cell-fix-right-last::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-left:not(.ant-table-has-fix-left)\n .ant-table-container::before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-right:not(.ant-table-has-fix-right)\n .ant-table-container::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper .ant-table-column-sorters{justify-content:initial}.next-table.ant-table-wrapper .ant-table-column-title{flex:initial}.next-table.ant-table-wrapper .ant-table-column-sorter{margin-left:8px}.expand-icon{font-size:11px;background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.next-table.ant-table-wrapper .ant-table-row-indent + .expand-icon{margin-top:2.5px;margin-right:8px}.invisible{visibility:hidden}.next-table.ant-table-wrapper\n .ant-table.ant-table-bordered\n > .ant-table-container\n > .ant-table-content\n > table\n > tbody\n > tr.ant-table-placeholder\n > td\n > .ant-table-expanded-row-fixed::after{border-right:none}.next-table.row-clickable .ant-table-tbody > tr{cursor:pointer}:host([theme-variant=\"elevo\"]){--eo-next-table-header-border-radius:var(--elevo-border-radius);--eo-table-head-cell-height:41px;--eo-table-head-cell-padding:9px 16px;--eo-table-body-cell-height:44px;--eo-table-body-cell-padding:9px 16px}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table{background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter);border-radius:var(--elevo-border-radius);color:rgba(0,0,0,0.8)}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-thead > tr > th{color:rgba(38,38,38,0.65);font-size:12px;font-weight:400}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-thead > tr > td{color:rgba(38,38,38,0.65);font-size:12px;font-weight:400}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before{border-radius:var(--elevo-border-radius) 0 0 var(--elevo-border-radius)}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after{border-radius:0 var(--elevo-border-radius) var(--elevo-border-radius) 0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered{background:#fff}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered .ant-table-thead > tr > th{color:#262626;background:#f3f6fa;font-weight:500}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > th{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > td{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > th:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > td:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > th{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > th{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > td{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > td{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) .ant-table-tbody > tr > td{border-bottom:none}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container{border-left:1px solid #f0f0f0;border-top:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead > tr > th:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody > tr > th:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead > tr > td:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody > tr > td:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > th{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > th{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > td{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > td{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item{background:transparent}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item a{color:#595959}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item:hover{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item-active{background:rgba(211,213,228,0.3);border-color:transparent}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item-active a{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"][size=\"small\"]),\n:host([theme-variant=\"elevo\"][size=\"middle\"]){--eo-table-head-cell-height:35px;--eo-table-head-cell-padding:7px 16px;--eo-table-body-cell-height:40px;--eo-table-body-cell-padding:7px 16px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!../../../../node_modules/react-grid-layout/css/styles.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!../../../../node_modules/react-resizable/css/styles.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-grid-item.react-grid-placeholder{background-color:#ddd}.react-grid-item.react-draggable-dragging{pointer-events:none}.react-grid-item.react-grid-placeholder.forbidden{background-color:red}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.gridLayoutWrapper--DIttynOM{display:flex;height:100%;position:relative;width:100%}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP{width:132px;padding:6px 12px 6px 16px;overflow-y:auto;box-shadow:1px 0 0 0 var(--palette-gray-4);background:var(--color-fill-bg-container-1);z-index:998;position:sticky;top:0}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentTitle--nKf9GEoj{font-size:16px;padding:6px 0;font-weight:500;color:#262626;line-height:22px;text-align:left}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB{margin-top:12px;width:100%;display:flex;flex-direction:column;gap:10px}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB eo-checkbox::part(checkbox-option){margin-left:0;width:100%;background:none}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;overflow:hidden}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layout--kz28taJj,.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .actionsWrapper--vQro2Dyn{width:100%}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layout--kz28taJj{flex-grow:1}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layoutEdit--FVqWXNWj{overflow-y:auto}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .actionsWrapper--vQro2Dyn{position:sticky;top:0;z-index:997;margin-left:1px;display:flex;gap:8px;justify-content:flex-end;background:var(--color-fill-bg-container-1);padding:8px 12px;box-shadow:0 1px 1px 0 var(--palette-gray-5)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"gridLayoutWrapper\": `gridLayoutWrapper--DIttynOM`,\n\t\"componentWrapper\": `componentWrapper--P8xsKOQP`,\n\t\"componentTitle\": `componentTitle--nKf9GEoj`,\n\t\"componentList\": `componentList--s3XnAYsB`,\n\t\"layoutWrapper\": `layoutWrapper--pk1t3UAR`,\n\t\"layout\": `layout--kz28taJj`,\n\t\"actionsWrapper\": `actionsWrapper--vQro2Dyn`,\n\t\"layoutEdit\": `layoutEdit--FVqWXNWj`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/react-grid-layout/css/styles.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/react-resizable/css/styles.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.grid-layout-wrapper{display:flex;height:100%;position:relative}.grid-layout-wrapper .component-wrapper{width:150px;padding:6px 12px;overflow-y:scroll;box-shadow:1px 0 0 0 var(--palette-gray-5);background:var(--color-fill-bg-container-1);z-index:999;position:sticky;top:0}.grid-layout-wrapper .component-wrapper .component-title{font-size:16px;padding:6px 0;font-weight:500}.grid-layout-wrapper .component-wrapper .component-list{margin-top:6px}.grid-layout-wrapper .component-wrapper .component-list eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}.grid-layout-wrapper .component-wrapper .component-list eo-checkbox::part(checkbox-option){margin-left:0;width:100%;background:none}.grid-layout-wrapper .layout-wrapper{flex:1}.grid-layout-wrapper .layout-wrapper .layout{max-width:1300px;margin:0 auto}.grid-layout-wrapper .layout-wrapper .actions-wrapper{position:sticky;top:0;z-index:999;margin-left:1px;display:flex;gap:8px;justify-content:flex-end;background:var(--color-fill-bg-container-1);padding:8px 12px;box-shadow:0 1px 1px 0 var(--palette-gray-5)}.grid-layout-wrapper .layout-wrapper .edit-mask{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}.grid-layout-wrapper .layout-wrapper .delete-icon{position:absolute;right:15px;top:15px;cursor:pointer;font-size:16px;width:30px;height:30px;display:flex;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text)}.grid-layout-wrapper .layout-wrapper .delete-icon:hover{color:var(--color-error)}.grid-layout-wrapper .layout-wrapper .delete-icon:active{color:var(--color-error-active)}.react-grid-item.react-grid-placeholder{background-color:#ddd}.react-grid-item.react-draggable-dragging{pointer-events:none}.react-grid-item.react-grid-placeholder.forbidden{background-color:red}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","compareFunMap","$eq","isEqual","$lt","lt","$lte","lte","$gt","gt","$gte","gte","$ne","value","fieldValue","$isEqual","$notEqual","$in","includes","$nin","$exists","isUndefined","getCellStyle","cellStatus","item","dataIndex","mapping","list","finalValue","undefined","get","ret","find","borderLeft","leftBorderColor","getKeysOfData","data","rowKey","childrenColumnName","keys","forEach","children","key","length","getRowsOfData","rows","stripEmptyExpandableChildrenByName","name","arguments","_value$name","initializeReactI18n","en","zh","type","downMenuIcon","lib","icon","theme","rightMenuIcon","WrappedIcon","wrapBrick","DraggableBodyRow","_ref","index","moveRow","className","style","restProps","ref","React","isOver","dropClassName","drop","useDrop","accept","collect","monitor","dragIndex","getItem","drag","useDrag","isDragging","_extends","classNames","cursor","BrickTable","props","locale","i18n","language","split","zhCN","enUS","error","configProps","pagination","sortBy","columns","expandIconAsCell","expandIconColumnIndex","scroll","onDelete","ellipsisInfo","showHeader","initData","useMemo","_props$dataSource","dataSource","map","isNil","setData","useState","rowKeyExpandIconMapRef","useRef","Map","columnTitleBrickDataMapRef","useBrickItemBrickDataMapRef","itemExpandedRowBrickDataMapRef","useEffect","current","clear","expandIconColumnIndexOffset","rowSelection","customColumns","column","useBrick","valueSuffix","cellStyle","headerBrick","colSpanKey","rowSpanKey","filterDropdownBrick","columnConf","title","set","getCustomHeader","ReactUseMultipleBricks","filterDropdown","itemBrickDataMap","render","getCustomComp","brickData","cellData","rowData","columnIndex","shouldCellUpdate","record","prevRecord","Number","innerRender","colSpan","rowSpan","toPath","verticalAlign","components","body","row","hoverIndex","dragRow","newData","update","$splice","onDrag","pickExpandProps","pickBy","expandRowByClick","expandedRowKeys","defaultExpandAllRows","table","Table","expandIconCellHidden","customDropTable","tableDraggable","tableThTransparent","thTransparent","zebraPatternTable","zebraPattern","xSmallSizeTable","onRow","onChange","expandedRowBrick","expandedRowRender","_props$expandedRowBri","rowIndex","onExpand","expanded","showSorterTooltip","onExpandedRowsChange","expandedRows","rowClassName","invalidRow","disabledRow","expandIcon","iconProps","_props$expandIcon","expandable","iconNode","collapsedIcon","_props$expandIcon2","expandedIcon","onClick","e","visibility","DndProvider","backend","HTML5Backend","context","window","cahce","createCache","ConfigProvider","StyleProvider","container","shadowRoot","cache","defineElement","property","event","method","createDecorators","_TableComponent","_A","WeakMap","_TableComponent_brand","WeakSet","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_total","_AA","TableComponent","ReactNextElement","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_pageUpdate","_init_extra_pageUpdate","_init_filterUpdate","_init_extra_filterUpdate","_init_selectUpdate","_init_extra_selectUpdate","_init_selectRowKeysUpdate","_init_extra_selectRowKeysUpdate","_init_sortUpdate","_init_extra_sortUpdate","_init_rowExpand","_init_extra_rowExpand","_init_expandRowsChange","_init_extra_expandRowsChange","_init_rowDrag","_init_extra_rowDrag","_init_showCard","_init_extra_showCard","_init_rowSelection","_init_extra_rowSelection","_init_rowKey","_init_extra_rowKey","_init_hiddenColumns","_init_extra_hiddenColumns","_init_showSelectInfo","_init_extra_showSelectInfo","_init_filters","_init_extra_filters","_init_configProps","_init_extra_configProps","_init_sort","_init_extra_sort","_init_order","_init_extra_order","_init_rowDisabledConfig","_init_extra_rowDisabledConfig","_init_expandedRowBrick","_init_extra_expandedRowBrick","_init_expandIcon","_init_extra_expandIcon","_init_expandIconAsCell","_init_extra_expandIconAsCell","_init_expandIconColumnIndex","_init_extra_expandIconColumnIndex","_init_expandRowByClick","_init_extra_expandRowByClick","_init_optimizedColumns","_init_extra_optimizedColumns","_init_stripEmptyExpandableChildren","_init_extra_stripEmptyExpandableChildren","_init_defaultExpandAllRows","_init_extra_defaultExpandAllRows","_init_ellipsisInfo","_init_extra_ellipsisInfo","_init_expandedRowKeys","_init_extra_expandedRowKeys","_init_selectAllChildren","_init_extra_selectAllChildren","_init_defaultSelectAll","_defineProperty","_init_extra_defaultSelectAll","_init_childrenColumnName","_init_extra_childrenColumnName","_init_sortable","_init_extra_sortable","_init_frontSearch","_init_extra_frontSearch","_init_frontSearchQuery","_init_extra_frontSearchQuery","_init_exactSearch","_init_extra_exactSearch","_init_frontSearchFilterKeys","_init_extra_frontSearchFilterKeys","_init_page","_init_extra_page","_init_pageSize","_init_extra_pageSize","_init_scrollConfigs","x","_init_extra_scrollConfigs","_init_qField","_init_extra_qField","_init_tableDraggable","_init_extra_tableDraggable","_init_zebraPattern","_init_extra_zebraPattern","_init_storeCheckedByUrl","_init_extra_storeCheckedByUrl","_init_extraRows","_init_extra_extraRows","_init_autoSelectParentWhenAllChildrenSelected","_init_extra_autoSelectParentWhenAllChildrenSelected","_init_thTransparent","_init_extra_thTransparent","_init_showHeader","_init_extra_showHeader","_init_pagination","_init_extra_pagination","_init_size","_init_extra_size","_init_type","_init_extra_type","_init_shouldUpdateUrlParams","_init_extra_shouldUpdateUrlParams","_init_shouldRenderWhenUrlParamsUpdate","_init_extra_shouldRenderWhenUrlParamsUpdate","page","pageSize","total","ascend","descend","_init_selectedRowKeys","_init_extra_selectedRowKeys","_ref2","_this$rowKey","_this$configProps","this","_fields","parent","matchedParent","some","_findParentByChildKeyValue","selectedRowKeys","selectedRows","_getRowKey","rowKeyRowMap","keyBy","_selected","_selectedRowKeys","_allChildren","child","rowKeyValue","autoSelectParentWhenAllChildrenSelected","_selectedRow","selectedRowKeySet","Set","_dataSource","every","has","uniq","pullAll","concat","extraRowKeyRowMap","extraRows","_selectedRows","detail","isEmpty","_selectUpdateEventDetailField","_selectUpdateEventDetailKeys","merge","_selectUpdateEventDetailExtra","_selectUpdateEventName","dispatchEvent","CustomEvent","_classPrivateGetter","_get_selectUpdate","emit","_get_selectRowKeysUpdate","result","isArray","_getSelectedRowsWithChildren","checked","_isInSelect","allChildren","selectAllChildren","_disabledChildrenKeys","storeCheckedByUrl","_updateUrlChecked","selected","changeRows","allParentKeys","changedParentRows","filter","v","toChangedChildrenKeys","flatten","r","cr","history","getHistory","URLSearchParams","location","search","options","checkedOptions","_getCheckedFromUrl","pull","shouldUpdateUrlParams","pushQuery","join","notify","filters","sorter","urlSearchParams","_get_filterUpdate","newPage","_get_pageUpdate","delete","order","columnKey","sort","_get_sortUpdate","frontSearch","frontendSearch","shouldRenderWhenUrlParamsUpdate","marginLeft","role","pullKeys","recordChildren","keysToPull","c","_render","_get_rowExpand","_get_expandRowsChange","_get_rowDrag","allRows","_getAllRows","_this$configProps$row","_this$configProps3","defaultPagination","_classPrivateFieldGet","showSizeChanger","pageSizeOptions","showTotal","totals","_this$configProps2","showSelectInfo","renderSelectInfo","rowDisabledConfig","Array","defaultRowSelection","defaultSelectAll","_handleDefaultSelectAll","onSelect","_handleOnSelect","onSelectAll","_handleSelectAll","_handleRowSelectChange","preserveSelectedRowKeys","getCheckboxProps","disabled","config","field","operator","fun","_finalConfigProps","cloneDeep","size","rowSelec","_this$type","_this$type2","_columns","sortOrder","_urlSearchParams$get","_get","filteredValue","filtered","_find$value","_find","f","String","_ref3","_get2","_ref4","_ref5","_get3","_this$configProps4","_originalDataSource","_pureSource","stripEmptyExpandableChildren","_classPrivateFieldSet","showCard","hiddenColumns","optimizedColumns","sortable","fields","frontSearchQuery","exactSearch","frontSearchFilterKeys","scrollConfigs","qField","processedDataSource","processConfigProps","processedColumns","getModifyColumns","filterSourceData","q","trim","toLowerCase","handleFrontendDataChange","tempDataSource","handleFrontendFilterSource","handleFrontendSorter","handleFrontendFilters","filterKeys","_filterKeys","filteredChildren","JSON","stringify","direction","a","b","aValue","bValue","filtersArray","k","_filter$value$include","_filter$value","expandAll","allKeys","_this$hiddenColumns","_ref6","_initConfigProps","_error","_handleOnChange","_handleOnExpand","_handleOnExpandedRowsChange","draggable","_handleOnDrag","_test_only_getOriginalDataSource","updateData","updateError","selectUpdateEventName","selectUpdateEventDetailKeys","selectUpdateEventDetailField","selectUpdateEventDetailExtra","_TableComponent2","_set_pageUpdate","_set_filterUpdate","_set_selectUpdate","_set_selectRowKeysUpdate","_set_sortUpdate","_set_rowExpand","_set_expandRowsChange","_set_rowDrag","_initClass","_applyDecs","styleTexts","styleText","alias","o","cancelable","Boolean","attribute","_","_checkInRHS","_FormItemElementBase_brand","FormItemElementBase","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_classPrivateSetter","_set_validate","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","WrappedFormItem","_CascaderBrick","_CascaderBrick_brand","CascaderElement","fieldNames","placeholder","multiple","allowClear","showSearch","expandTrigger","limit","popupPlacement","cascaderStyle","suffixIcon","maxTagCount","currentTheme","useCurrentTheme","algorithm","darkAlgorithm","defaultAlgorithm","hashPriority","Cascader","getPopupContainer","trigger","parentElement","inputValue","path","label","filterValues","toLocaleLowerCase","j","option","placement","selectedOptions","_CascaderBrick2","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_options","_init_extra_options","_init_fieldNames","_init_extra_fieldNames","_init_value","_init_extra_value","_init_placeholder","_init_extra_placeholder","_init_multiple","_init_extra_multiple","_init_disabled","_init_extra_disabled","_init_allowClear","_init_extra_allowClear","_init_showSearch","_init_extra_showSearch","_init_suffixIcon","_init_extra_suffixIcon","_init_expandTrigger","_init_extra_expandTrigger","_init_popupPlacement","_init_extra_popupPlacement","_init_limit","_init_extra_limit","_init_maxTagCount","_init_extra_maxTagCount","_init_cascaderStyle","_init_extra_cascaderStyle","_init_changeEvent","_init_extra_changeEvent","Promise","resolve","then","_get_changeEvent","required","exportparts","curElement","formElement","handleOnChange","_set_changeEvent","K","NS","defaultPaginationConfig","defaultRowSelectionConfig","getSearchKeywords","Object","prototype","call","flat","Infinity","getValueByDataIndex","searchList","searchFields","reduce","pre","keywords","flatMap","newRow","isPlainObject","getAllKeys","childrenKeys","THEME_COLORS","getCellStatusStyle","col","_col$cellStatus$dataI","_col$cellStatus$mappi","match","m","boxShadow","Row","forwardRef","DraggableRow","attributes","listeners","setNodeRef","transform","transition","useSortable","CSS","Transform","touchAction","position","zIndex","CacheUseBrickItem","cacheData","setCacheData","values","TOTAL","SELECT_INFO","SELECT_INFO_plural","CLEAR","WrappedLink","NextTableComponent","_dataSource$page","_dataSource$pageSize","_props$expandedRowKey","_expandConfig$expande","_expandConfig$expandI","cell","loading","multiSort","rowDraggable","rowClickable","bordered","scrollConfig","themeVariant","onPageChange","onPageSizeChange","onSort","onRowClick","onRowSelect","onRowExpand","onRowDrag","t","useTranslation","styleCache","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","setList","keyList","_list$map","setPageAndPageSize","setSelectedRowKeys","setExpandedRowKeys","setSort","isTreeData","_dataSource$list","_v$childrenColumnName","_props$expandedRowKey2","_dataSource$page2","_dataSource$pageSize2","hiddenColumnsSet","optimizedColumnsSet","sortMap","curSort","comparator","recordA","recordB","aIsNil","bIsNil","naturalComparator","compare","sortPriority","preRecord","_cell$header","_col$headerBrick","header","onCell","cellColSpanKey","cellRowSpanKey","onHeaderCell","headerStyle","rowSelectionConfig","paginationConfig","expandConfig","useImperativeHandle","_pre$pageSize","onDragEnd","useCallback","active","over","prev","activeIndex","findIndex","overIndex","newList","arrayMove","headerBorderRadius","headerSplitColor","headerBg","headerSortActiveBg","headerSortHoverBg","bodySortBg","rowHoverBg","borderColor","cellPaddingInline","cellPaddingInlineMD","cellPaddingInlineSM","DndContext","collisionDetection","closestCenter","modifiers","restrictToVerticalAxis","restrictToFirstScrollableAncestor","SortableContext","items","strategy","verticalListSortingStrategy","variant","Trans","i18nKey","el","count","info","rowDisabled","checkIfByTransform","if","rowExpandable","indent","expandIconBrick","DefaultExpandIcon","newRows","_filters","extra","action","_pagination$pageSize","_pagination$current","_pagination$pageSize2","newSort","IconComponent","DownOutlined","RightOutlined","invisible","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_EoNextTable","_tableRef","_EoNextTable_brand","_handlePageChange","_handlePageSizeChange","_handleSort","_handleRowClick","_handleRowSelect","_handleRowExpand","_handleExpandedRowsChange","_handleRowDrag","EoNextTable","createRef","_init_columns","_init_extra_columns","_init_cell","_init_extra_cell","_init_dataSource","_init_extra_dataSource","_init_loading","_init_extra_loading","_init_multiSort","_init_extra_multiSort","_init_expandable","_init_extra_expandable","_init_rowDraggable","_init_extra_rowDraggable","_init_rowClickable","_init_extra_rowClickable","_init_searchFields","_init_extra_searchFields","_init_bordered","_init_extra_bordered","_init_scrollConfig","_init_extra_scrollConfig","_init_injectChartV2Styles","_init_extra_injectChartV2Styles","_init_themeVariant","_init_extra_themeVariant","_init_pageChangeEvent","_init_extra_pageChangeEvent","_get_pageChangeEvent","_init_pageSizeChangeEvent","_init_extra_pageSizeChangeEvent","_get_pageSizeChangeEvent","_init_sortChangeEvent","_init_extra_sortChangeEvent","_get_sortChangeEvent","_init_rowClickEvent","_init_extra_rowClickEvent","_get_rowClickEvent","_init_rowSelectEvent","_init_extra_rowSelectEvent","_init_rowSelectV2Event","_init_extra_rowSelectV2Event","_get_rowSelectEvent","_get_rowSelectV2Event","_init_rowExpandEvent","_init_extra_rowExpandEvent","_get_rowExpandEvent","_init_expandedRowsChangeEvent","_init_extra_expandedRowsChangeEvent","_get_expandedRowsChangeEvent","_init_rowDragEvent","_init_extra_rowDragEvent","_get_rowDragEvent","injectChartV2Styles","params","_classPrivateFieldGet2","chartStyleText","_EoNextTable2","_set_pageChangeEvent","_set_pageSizeChangeEvent","_set_sortChangeEvent","_set_rowClickEvent","_set_rowSelectEvent","_set_rowSelectV2Event","_set_rowExpandEvent","_set_expandedRowsChangeEvent","_set_rowDragEvent","WrappedButton","WrappedDropdownButton","onActionClick","WrappedCheckbox","showDialog","unwrapProvider","getRealKey","isAdmin","auth","getAuth","EoWorkbenchLayoutComponent","cardTitle","layouts","layoutsProps","componentList","isEdit","onSave","onCancel","ResponsiveReactGridLayout","WidthProvider","Responsive","gridLayoutRef","layoutWrapperRef","layoutCacheRef","_setLayouts","cols","setCols","layoutWrapperStyle","setLayoutWrapperStyle","setLayouts","handleChange","handleLayoutChange","currentLayout","isAllowAction","w","y","h","i","minH","matchItem","_currentLayout$t$minH","Math","max","random","handleCheckBoxChange","checkedKeys","layoutsKeys","addItems","layout","handleClearLayout","handleSave","handleDeleteItem","deletedItem","_layouts$filter","stopPropagation","handleEditMaskClick","preventDefault","renderChild","_component$position","component","onMouseDown","ReactUseBrick","computedOptions","computedSelectedComponentKeys","handleWatchLayoutSizeChange","_layoutWrapperRef$cur","_layoutWrapperRef$cur2","top","getClientRects","height","document","clientHeight","overflow","addEventListener","removeEventListener","handleCancel","btnText","actions","text","danger","content","handleActionClick","draggableCancel","breakpoints","lg","md","sm","rowHeight","isResizable","isDraggable","handleDragCallback","oldItem","newItem","_gridLayoutRef$curren","placeholderDOM","querySelector","classList","contains","add","remove","onLayoutChange","onBreakpointChange","handleBreakpointChange","_newBreakpoint","newCols","_EoWorkbenchLayout","_componentRef","_EoWorkbenchLayout_brand","_handleChange","_handleSave","_handleCancel","_handleActionClick","EoWorkbenchLayout","_init_cardTitle","_init_extra_cardTitle","_init_isEdit","_init_extra_isEdit","_init_layouts","_init_extra_layouts","_init_componentList","_init_extra_componentList","_init_saveEvent","_init_extra_saveEvent","_get_saveEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_cancelEvent","_init_actionClickEvent","_init_extra_actionClickEvent","_get_actionClickEvent","_EoWorkbenchLayout2","_set_saveEvent","_set_cancelEvent","_set_actionClickEvent","DroppableComponentLayoutItemElement","cardConfigs","setCardConfigs","omit","cardWidth","newCardConfigs","cardBorderWidth","editMaskTop","noPadding","deleteIconPosition","right","styles","itemWrapper","editMask","deleteIcon","DroppableComponentLayoutItem","memo","DraggableComponentMenuItem","onDragStart","thumbnail","componentItemWrapper","componentItemTitle","componentItemContent","dataTransfer","componentItemThumbnail","src","alt","defaultCardConfig","showMoreIcon","cardBorderStyle","cardTitleFontSize","cardBorderRadius","cardTitleColor","cardBorderColor","cardBgType","getLayoutDefaultCardConfig","cardType","customDefaultCardConfigMap","_moreLinkByCardTypeMa","moreLinkByCardTypeMap","moreIconLink","moreIconText","abnormalResourceInspectionResults","abnormalSystemInspectionResults","CLEAR_CONFIRM","CARD_LIST","CLEAR_CONFIRM_MESSAGE","SAVE","CANCEL","SETTING","MORE","SAVE_AS_TEMPLATE","LOAD_FROM_TEMPLATE","CLEAR_ALL","URl_PREFIX","origin","getBasePath","toolbarBricks","showSettingButton","onSetting","gap","keyComponentMap","draggingComponentRef","currentLayoutsMap","addComponent","currentLayouts","newLayouts","pick","newLayout","dropItem","handleResize","contentHeight","oldLayout","initNewH","newH","ceil","_layout$cardBorderSty","_layout$cardBorderRad","background","cardBackground","border","borderRadius","backdropFilter","SizeMe","monitorHeight","gridLayoutWrapper","componentWrapper","componentTitle","layoutWrapper","actionsWrapper","handleSetting","layoutEdit","layoutItemStyles","isDroppable","compactType","margin","useCSSTransforms","onDropDragOver","onDrop","_EoWorkbenchLayoutV","_EoWorkbenchLayoutV2_brand","_handleSetting","EoWorkbenchLayoutV2","_init_toolbarBricks","_init_extra_toolbarBricks","_init_customDefaultCardConfigMap","_init_extra_customDefaultCardConfigMap","_init_showSettingButton","_init_extra_showSettingButton","_init_gap","_init_extra_gap","_init_settingEvent","_init_extra_settingEvent","_get_settingEvent","connectedCallback","display","super","_EoWorkbenchLayoutV2","_set_settingEvent","shadowOptions","capture","selector","backgroundColor","target","Error","reject","html2canvas","useCORS","allowTaint","scale","devicePixelRatio","canvas","catch","customElements","define","createProviderClass","async","fileType","bucketName","blob","toBlob","getCanvasBlob","files","File","file","formData","FormData","append","url","http","request","uploadFile","objectName","buildImageUrl","toDataURL","image","Image","onload","createElement","width","ctx","getContext","drawImage","href","download","MouseEvent","downloadImage","jsPDF","imageData","pdf","addImage","save","returnPromise","_EoTree","_EoTree_brand","_handleCheck","_handleExpand","_handleDrop","EoTree","_init_checkable","_init_extra_checkable","_init_selectable","_init_extra_selectable","_init_defaultExpandAll","_init_extra_defaultExpandAll","_init_showLine","_init_extra_showLine","_init_expandedKeys","_init_extra_expandedKeys","_init_checkedKeys","_init_extra_checkedKeys","_init_nodeDraggable","_init_extra_nodeDraggable","_init_switcherIcon","_init_extra_switcherIcon","_init_allowDrop","_init_extra_allowDrop","_init_titleSuffixBrick","_init_extra_titleSuffixBrick","_init_checkEvent","_init_extra_checkEvent","_init_checkDetailEvent","_init_extra_checkDetailEvent","_get_checkEvent","_get_checkDetailEvent","halfCheckedKeys","_init_expandEvent","_init_extra_expandEvent","expandedKeys","_get_expandEvent","_init_dropEvent","_init_extra_dropEvent","dragNode","node","dropNode","dropPosition","_get_dropEvent","checkable","selectable","defaultExpandAll","showLine","nodeDraggable","switcherIcon","allowDrop","titleSuffixBrick","EoTreeComponent","onCheck","autoClear","Tree","titleRender","nodeData","treeData","_EoTree2","_set_checkEvent","_set_checkDetailEvent","_set_expandEvent","_set_dropEvent","_TreeSelectBrick","_TreeSelectBrick_brand","_handleSearch","_handleSelect","TreeSelectElement","treeExpandedKeys","treeDefaultExpandAll","dropdownStyle","onSearch","onTreeExpand","popupMatchSelectWidth","TreeSelect","treeCheckable","virtual","notPopupMatchSelectWidth","_TreeSelectBrick2","_init_treeData","_init_extra_treeData","_init_treeDefaultExpandAll","_init_extra_treeDefaultExpandAll","_init_treeExpandedKeys","_init_extra_treeExpandedKeys","_init_filterTreeNode","_init_extra_filterTreeNode","_init_dropdownStyle","_init_extra_dropdownStyle","_init_popupMatchSelectWidth","_init_extra_popupMatchSelectWidth","_init_searchEvent","_init_extra_searchEvent","_get_searchEvent","_init_selectEvent","_init_extra_selectEvent","_get_selectEvent","filterTreeNode","_set_searchEvent","_set_selectEvent","_EoTextTooltip","EoTextTooltip","_init_lineClamp","_init_extra_lineClamp","lineClamp","EoTextTooltipComponent","show","setShow","isEllipsis","parentDom","offsetWidth","offsetHeight","scrollWidth","scrollHeight","prefixCls","transformers","legacyLogicalPropertiesTransformer","Tooltip","_EoTextTooltip2","_PdfViewer","PdfViewer","_init_url","_init_extra_url","_init_search","_init_extra_search","_init_viewerStyle","_init_extra_viewerStyle","viewerStyle","PdfViewerComponent","isDocumentLoaded","setDocumentLoaded","defaultLayoutPluginInstance","defaultLayoutPlugin","toolbarPluginInstance","searchPluginInstance","highlight","keyword","Worker","workerUrl","__webpack_public_path__","Viewer","fileUrl","initialPage","plugins","onDocumentLoad","_PdfViewer2"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/8382.d552299f.js","mappings":"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","sources":["webpack:///./src/table/table.shadow.css","webpack:///./src/next-table/chart-v2.shadow.css","webpack:///../../node_modules/react-resizable/css/styles.css","webpack:///./src/table/utils.tsx","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/i18n.ts","webpack:///./src/table/index.tsx","webpack:///../../src/FormItemElement.tsx","webpack:///./src/cascader/index.tsx","webpack:///./src/next-table/i18n.ts","webpack:///./src/next-table/utils.ts","webpack:///./src/next-table/Row.tsx","webpack:///./src/next-table/CacheUseBrickItem.tsx","webpack:///./src/next-table/Table.tsx","webpack:///./src/next-table/host-context.css?3429","webpack:///./src/next-table/index.tsx","webpack:///./src/workbench-layout/index.tsx","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.module.css?5d2f","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.tsx","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.module.css?66f3","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.tsx","webpack:///./src/workbench-layout-v2/utils.ts","webpack:///./src/workbench-layout-v2/styles.module.css?4307","webpack:///./src/workbench-layout-v2/styles.css?4d90","webpack:///./src/workbench-layout-v2/i18n.ts","webpack:///./src/workbench-layout-v2/index.tsx","webpack:///./src/data-providers/snapshot.ts","webpack:///./src/data-providers/capture-snapshot.ts","webpack:///./src/tree/index.tsx","webpack:///./src/tree-select/index.tsx","webpack:///./src/text-tooltip/index.tsx","webpack:///./src/pdf-viewer/index.tsx","webpack:///./src/text-tooltip/styles.shadow.css","webpack:///../../node_modules/react-grid-layout/css/styles.css","webpack:///./src/tree-select/styles.shadow.css","webpack:///./src/tree/styles.shadow.css","webpack:///./src/workbench-layout-v2/DraggableComponentMenuItem.module.css","webpack:///./src/next-table/host-context.css","webpack:///./src/workbench-layout-v2/DroppableComponentLayoutItem.module.css","webpack:///./src/cascader/styles.shadow.css","webpack:///./src/next-table/styles.shadow.css","webpack:///./src/workbench-layout-v2/styles.css","webpack:///./src/workbench-layout-v2/styles.module.css","webpack:///./src/workbench-layout/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.brickTableOddRow{background-color:var(--color-fill-bg-base-4)}.ant-table-small .ant-table-body{margin:0}.ant-table-small .ant-table-thead{background:var(--antd-table-header-bg)}.ant-table-small .ant-table-row{line-height:26px}.ant-table-tbody > tr.invalidRow > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.invalidRow:hover > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.disabledRow > td{background-color:var(--theme-gray-border-color)}.ant-table-tbody > .ant-table-row-selected td{background:var(--antd-table-cell-fixed-body-bg)!important}td.alignTop{vertical-align:top}td.alignBottom{vertical-align:bottom}.expandIconCellHidden .ant-table-row-expand-icon-cell,\n.expandIconCellHidden .ant-table-expand-icon-col{width:1px;min-width:auto}.expandIconCellHidden .ant-table-row-expand-icon-cell > *,\n.expandIconCellHidden .ant-table-expand-icon-col > *{display:none}.expandIconSpan{cursor:pointer;margin-right:9px;color:var(--antd-table-row-expand-icon-color);font-size:11px}.expandIconSpan .anticon{background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.tableThTransparent thead.ant-table-thead > tr > th{background:var(--antd-table-header-bg)}.zebraPatternTable .ant-table-tbody tr td{border-bottom:0}.ellipsis{max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.totalText{color:var(--antd-pagination-total-text)}.total{font-weight:normal;color:var(--antd-pagination-total-strong-text)}.ant-table-wrapper .ant-table-thead > tr > th{padding:11px 16px;font-size:12px;line-height:20px;border-bottom:0;font-weight:500;color:var(--antd-table-header-color)}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:24px 0}.xSmallSizeTable .ant-table{line-height:1}.xSmallSizeTable .ant-table .ant-table-selection-col{width:32px}.xSmallSizeTable .ant-table-thead tr th,\n.xSmallSizeTable .ant-table-tbody tr td{padding:0px 2px}.xSmallSizeTable .ant-table-thead tr th:first-child,\n.xSmallSizeTable .ant-table-tbody tr td:first-child{padding:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[class^=\"chartWrap--\"]{position:relative;display:flex;flex-direction:column}[class^=\"chartWrap--\"] img::selection{background:transparent}[class^=\"chartWrap--\"] [class^=\"chartEle--\"]{display:flex;justify-content:center;align-items:center;flex:1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,\n.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,\n.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import {\n lt,\n lte,\n gt,\n gte,\n get,\n isEqual,\n forEach,\n includes,\n isUndefined,\n} from \"lodash\";\nimport { type CellStatusProps } from \"./index.js\";\nexport const compareFunMap: Record<string, any> = {\n $eq: isEqual,\n $lt: lt,\n $lte: lte,\n $gt: gt,\n $gte: gte,\n $ne: (value: any, fieldValue: any): boolean => !isEqual(value, fieldValue),\n $isEqual: isEqual,\n $notEqual: (value: any, fieldValue: any): boolean =>\n !isEqual(value, fieldValue),\n $in: includes,\n $nin: (value: any, fieldValue: any): boolean => !includes(value, fieldValue),\n $exists: (value: any, fieldValue: any): boolean =>\n value ? !isUndefined(fieldValue) : isUndefined(fieldValue),\n};\n\nexport function getCellStyle(\n cellStatus: CellStatusProps,\n item: Record<string, any>,\n value?: any\n): Record<string, string> {\n const { dataIndex, mapping: list } = cellStatus;\n const finalValue = dataIndex !== undefined ? get(item, dataIndex) : value;\n const ret = list.find((item) => item.value === finalValue);\n\n if (!ret) return {};\n\n return {\n borderLeft: `4px solid ${ret.leftBorderColor}`,\n };\n}\nexport const getKeysOfData = (\n data: Record<string, any>[],\n rowKey: string,\n childrenColumnName: string,\n keys: string[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n const key = get(item, rowKey);\n keys.push(key);\n if (children?.length) {\n getKeysOfData(children, rowKey, childrenColumnName, keys);\n }\n });\n }\n};\nexport const getRowsOfData = (\n data: Record<string, any>[],\n childrenColumnName: string,\n rows: Record<string, any>[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n rows.push(item);\n if (children?.length) {\n getRowsOfData(children, childrenColumnName, rows);\n }\n });\n }\n};\n\nexport function stripEmptyExpandableChildrenByName(\n name: string,\n data: Record<string, any>[] = []\n): Record<string, any>[] {\n if (data?.length) {\n data.forEach((value) => {\n if (value[name]?.length) {\n return stripEmptyExpandableChildrenByName(name, value[name]);\n }\n\n delete value[name];\n return value;\n });\n }\n return data;\n}\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { Table, type TableProps, ConfigProvider } from \"antd\";\nimport { getCellStyle } from \"./utils.js\";\nimport { pickBy, isNil, toPath, isEqual } from \"lodash\";\nimport classNames from \"classnames\";\nimport { DndProvider, useDrag, useDrop } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport update from \"immutability-helper\";\nimport { CustomColumn } from \"./index.js\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\n\nimport { i18n } from \"@next-core/i18n\";\n\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst type = \"DraggableBodyRow\";\n\nconst downMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"down\",\n theme: \"outlined\",\n};\n\nconst rightMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"right\",\n theme: \"outlined\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface BrickTableProps {\n shadowRoot: ShadowRoot | null;\n dataSource: Record<string, any>[];\n columns: CustomColumn[];\n configProps?: TableProps<any>;\n error?: any;\n onDelete?: (index: number) => void;\n onChange: any;\n onSelectChange?: (selected: string[]) => void;\n showCard?: boolean;\n // 展开行相关属性\n expandedRowBrick?: {\n useBrick?: UseSingleBrickConf;\n };\n expandIcon?: {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n };\n expandIconAsCell?: boolean;\n expandIconColumnIndex?: number;\n expandRowByClick?: boolean;\n defaultExpandAllRows?: boolean;\n onExpand?: (expanded: boolean, record: Record<string, any>) => void;\n onExpandedRowsChange?: (expandedRows: React.Key[]) => void;\n expandedRowKeys?: React.Key[];\n rowKey?: string;\n childrenColumnName?: string;\n tableDraggable?: boolean;\n onDrag?: (data: Record<string, any>[]) => void;\n zebraPattern?: boolean;\n scroll?: TableProps<unknown>[\"scroll\"];\n optimizedColumns?: Array<string | number>;\n ellipsisInfo?: boolean;\n thTransparent?: boolean;\n showHeader?: boolean;\n xSmallSizeTable?: boolean;\n}\n\nconst DraggableBodyRow = ({\n index,\n moveRow,\n className,\n style,\n ...restProps\n}: any) => {\n const ref = React.useRef(null);\n const [{ isOver, dropClassName }, drop] = useDrop({\n accept: type,\n collect: (monitor: any) => {\n const { index: dragIndex } = monitor.getItem() || {};\n if (dragIndex === index) {\n return {};\n }\n return {\n isOver: monitor.isOver(),\n dropClassName:\n dragIndex < index ? `dropOverDownward` : `dropOverUpward`,\n };\n },\n drop: (item: any) => {\n moveRow(item.index, index);\n },\n });\n const [, drag] = useDrag({\n type,\n item: { type, index },\n collect: (monitor: any) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n drop(drag(ref));\n return (\n <tr\n ref={ref}\n className={classNames(className, {\n [dropClassName as string]: isOver,\n })}\n style={{ cursor: \"move\", ...style }}\n {...restProps}\n />\n );\n};\n\nconst getCustomHeader = (\n useBrick: UseSingleBrickConf,\n data?: { title: unknown }\n): (() => React.ReactElement) => {\n return function CustomHeader() {\n return <ReactUseMultipleBricks useBrick={useBrick} data={data} />;\n };\n};\n\ntype ItemBrickDataMap = Map<unknown, BrickData>;\ntype BrickData = {\n cellData: unknown;\n rowData: Record<string, unknown>;\n columnIndex: number;\n};\n\nconst getCustomComp = (\n useBrick: UseSingleBrickConf,\n itemBrickDataMap?: ItemBrickDataMap\n) => {\n return function CustomComp(\n value: any,\n item: Record<string, any>,\n index: number\n ) {\n if (useBrick) {\n let brickData: BrickData | undefined = itemBrickDataMap?.get(item);\n\n if (!brickData) {\n brickData = {\n cellData: value,\n rowData: item,\n columnIndex: index,\n };\n itemBrickDataMap?.set(item, brickData);\n }\n\n return <ReactUseMultipleBricks useBrick={useBrick} data={brickData} />;\n }\n };\n};\n\nexport function BrickTable(props: BrickTableProps): React.ReactElement {\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n if (props.error) {\n throw props.error;\n }\n\n const {\n configProps = {\n pagination: true,\n sortBy: false,\n },\n columns,\n rowKey = \"key\",\n expandIconAsCell,\n expandIconColumnIndex,\n childrenColumnName,\n scroll,\n onDelete, // 用于 brick form 中,will be deprecated\n ellipsisInfo,\n showHeader,\n } = props;\n\n const initData = useMemo(() => {\n return props.dataSource?.map((item, index) =>\n isNil(item[rowKey]) ? { ...item, [rowKey]: index } : item\n );\n }, [props.dataSource, rowKey]);\n\n const [data, setData] = useState(initData);\n const rowKeyExpandIconMapRef = useRef<Map<unknown, React.ReactNode>>(\n new Map()\n );\n const columnTitleBrickDataMapRef = useRef<\n Map<CustomColumn, { title: unknown }>\n >(new Map());\n const useBrickItemBrickDataMapRef = useRef<\n Map<UseSingleBrickConf, ItemBrickDataMap>\n >(new Map());\n const itemExpandedRowBrickDataMapRef = useRef<Map<unknown, unknown>>(\n new Map()\n );\n\n useEffect(() => {\n itemExpandedRowBrickDataMapRef.current.clear();\n setData(initData);\n }, [initData]);\n\n const expandIconColumnIndexOffset = (configProps as TableProps<any>)\n ?.rowSelection\n ? -1\n : 0;\n const customColumns = useMemo(() => {\n if (columns) {\n columnTitleBrickDataMapRef.current.clear();\n useBrickItemBrickDataMapRef.current.clear();\n const customColumns = columns.map((column, index) => {\n const {\n useBrick,\n valueSuffix,\n cellStatus,\n cellStyle = {},\n headerBrick,\n colSpanKey,\n rowSpanKey,\n filterDropdownBrick,\n ...columnConf\n } = column;\n if (headerBrick?.useBrick) {\n const useBrick = headerBrick?.useBrick;\n let data = columnTitleBrickDataMapRef.current.get(column);\n\n if (!data) {\n data = {\n title: columnConf.title,\n };\n columnTitleBrickDataMapRef.current.set(column, data);\n }\n\n columnConf.title = getCustomHeader(\n useBrick as UseSingleBrickConf,\n data\n );\n }\n\n if (filterDropdownBrick?.useBrick) {\n columnConf.filterDropdown = (\n <ReactUseMultipleBricks useBrick={filterDropdownBrick.useBrick} />\n );\n }\n\n if (useBrick) {\n let itemBrickDataMap: ItemBrickDataMap | undefined;\n\n if (useBrick) {\n itemBrickDataMap =\n useBrickItemBrickDataMapRef.current.get(useBrick);\n\n if (!itemBrickDataMap) {\n itemBrickDataMap = new Map();\n useBrickItemBrickDataMapRef.current.set(\n useBrick,\n itemBrickDataMap\n );\n }\n }\n\n columnConf.render = getCustomComp(useBrick, itemBrickDataMap);\n // [only update when record changed](https://ant.design/components/table-cn/#%E4%B8%BA%E4%BB%80%E4%B9%88-%E6%9B%B4%E6%96%B0-state-%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%85%A8%E8%A1%A8%E6%B8%B2%E6%9F%93%EF%BC%9F)\n columnConf.shouldCellUpdate = (record: any, prevRecord: any) => {\n return !isEqual(record, prevRecord);\n };\n } else if (valueSuffix) {\n columnConf.render = (value: string) => value + valueSuffix;\n }\n if (\n !expandIconAsCell &&\n index === Number(expandIconColumnIndex) + expandIconColumnIndexOffset\n ) {\n const innerRender = columnConf.render;\n columnConf.render = function ExpandIcon(\n value: any,\n record: any,\n index: any\n ) {\n return (\n <>\n {!record[childrenColumnName as string] &&\n rowKeyExpandIconMapRef.current.get(\n rowKey ? record[rowKey] : record\n )}\n {innerRender ? innerRender(value, record, index) : value}\n </>\n );\n };\n }\n if (cellStatus || colSpanKey || rowSpanKey || cellStyle) {\n const innerRender = columnConf.render;\n columnConf.render = (value: any, item: any, index: number) => {\n return {\n children: innerRender ? innerRender(value, item, index) : value,\n props: {\n colSpan: item[colSpanKey as string],\n rowSpan: item[rowSpanKey as string],\n style: {\n ...(cellStatus ? getCellStyle(cellStatus, item, value) : {}),\n ...cellStyle,\n },\n },\n };\n };\n }\n\n if (typeof columnConf.dataIndex === \"string\") {\n columnConf.dataIndex = toPath(columnConf.dataIndex);\n }\n if (columnConf.verticalAlign === \"top\") {\n columnConf.className\n ? (columnConf.className += \" alignTop\")\n : (columnConf.className = \"alignTop\");\n }\n if (columnConf.verticalAlign === \"bottom\") {\n columnConf.className\n ? (columnConf.className += \" alignBottom\")\n : (columnConf.className = \"alignBottom\");\n }\n if (ellipsisInfo) {\n columnConf.className\n ? (columnConf.className += \" ellipsisInfoCell\")\n : (columnConf.className = \"ellipsisInfoCell\");\n }\n return columnConf;\n });\n\n return customColumns;\n }\n }, [\n columns,\n childrenColumnName,\n expandIconAsCell,\n expandIconColumnIndex,\n expandIconColumnIndexOffset,\n rowKey,\n onDelete,\n ellipsisInfo,\n ]);\n\n const expandedRowRender = (record: Record<string, any>, index: number) => {\n let data = itemExpandedRowBrickDataMapRef.current.get(record);\n\n if (!data) {\n data = {\n rowData: record,\n rowIndex: index,\n };\n itemExpandedRowBrickDataMapRef.current.set(record, data);\n }\n\n return (\n <ReactUseMultipleBricks\n useBrick={props.expandedRowBrick?.useBrick as UseSingleBrickConf}\n data={data}\n />\n );\n };\n\n const components = {\n body: {\n row: DraggableBodyRow,\n },\n };\n\n const moveRow = (dragIndex: number, hoverIndex: number) => {\n const dragRow = data[dragIndex];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const newData = update(data, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragRow],\n ],\n });\n setData(newData);\n props.onDrag && props.onDrag(newData);\n };\n\n const onExpand = (expanded: boolean, record: Record<string, any>) => {\n props.onExpand && props.onExpand(expanded, record);\n };\n\n const onExpandedRowsChange = (expandedRows: React.Key[]) => {\n props.onExpandedRowsChange && props.onExpandedRowsChange(expandedRows);\n };\n\n const getCustomExpandIcon = (iconProps: any) => {\n const { record, expandable, expanded, onExpand } = iconProps;\n let icon = props.expandIcon?.collapsedIcon || downMenuIcon;\n let iconNode: React.ReactNode;\n if (expandable) {\n if (!expanded) {\n icon = props.expandIcon?.expandedIcon || rightMenuIcon;\n }\n iconNode = (\n <span\n className=\"expandIconSpan\"\n data-testid=\"expand-icon\"\n onClick={(e) => {\n onExpand(record, e);\n }}\n >\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n );\n } else {\n iconNode = (\n <span className=\"expandIconSpan\" data-testid=\"expand-icon\">\n <span style={{ visibility: \"hidden\" }}>\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n </span>\n );\n }\n\n if (iconNode) {\n if (!expandIconAsCell) {\n rowKeyExpandIconMapRef.current.set(\n rowKey ? record[rowKey] : record,\n iconNode\n );\n }\n return iconNode;\n } else {\n return <></>;\n }\n };\n\n const pickExpandProps = pickBy(\n {\n expandIconColumnIndex,\n expandIconAsCell,\n expandRowByClick: props.expandRowByClick,\n expandedRowKeys: props.expandedRowKeys,\n defaultExpandAllRows: props.defaultExpandAllRows,\n },\n (item) => !isNil(item)\n );\n\n let table = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <Table\n className={classNames(\"brickTable\", {\n expandIconCellHidden: !expandIconAsCell,\n customDropTable: props.tableDraggable,\n tableThTransparent: props.thTransparent,\n zebraPatternTable: data?.length >= 2 && props.zebraPattern,\n xSmallSizeTable: props.xSmallSizeTable,\n })}\n dataSource={data}\n {...(props.tableDraggable\n ? {\n components,\n onRow: (record, index) => ({\n index,\n moveRow: moveRow,\n }),\n }\n : {})}\n columns={customColumns}\n onChange={props.onChange}\n {...(props.expandedRowBrick\n ? {\n expandedRowRender,\n }\n : {})}\n {...pickExpandProps}\n onExpand={onExpand}\n showSorterTooltip={false}\n onExpandedRowsChange={onExpandedRowsChange}\n rowKey={rowKey}\n childrenColumnName={childrenColumnName}\n rowClassName={(record, index) => {\n if (record.invalidRow) {\n return \"invalidRow\";\n }\n if (record.disabledRow) {\n return \"disabledRow\";\n }\n return props.zebraPattern && index % 2 ? \"brickTableOddRow\" : \"\";\n }}\n expandIcon={getCustomExpandIcon}\n scroll={scroll}\n showHeader={showHeader}\n {...configProps}\n />\n );\n\n if (props.tableDraggable) {\n table = (\n <DndProvider backend={HTML5Backend} context={window}>\n {table}\n </DndProvider>\n );\n }\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider locale={locale}>\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n {table}\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/advanced/eo-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string };\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./table.shadow.css\";\nimport { ColumnProps, TablePaginationConfig, TableProps } from \"antd/es/table\";\nimport { BrickEventsMap, UseSingleBrickConf } from \"@next-core/types\";\nimport {\n get,\n map,\n set,\n isEmpty,\n merge,\n isNil,\n forEach,\n cloneDeep,\n isArray,\n uniq,\n pullAll,\n every,\n find,\n pull,\n filter,\n flatten,\n keyBy,\n} from \"lodash\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { BrickTable } from \"./BrickTable.js\";\nimport {\n TableRowSelection,\n SorterResult,\n RowSelectionType,\n} from \"antd/lib/table/interface.js\";\nimport {\n compareFunMap,\n getKeysOfData,\n getRowsOfData,\n stripEmptyExpandableChildrenByName,\n} from \"./utils.js\";\nimport type { SortOrder } from \"antd/lib/table/interface.js\";\nimport type { DataIndex } from \"rc-table/lib/interface.js\";\nimport type { SizeType } from \"antd/lib/config-provider/SizeContext.js\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface RowDisabledProps {\n field: string;\n value: any;\n operator:\n | \"$eq\"\n | \"$ne\"\n | \"$lt\"\n | \"$lte\"\n | \"$gt\"\n | \"$gte\"\n | \"$isEqual\"\n | \"$notEqual\"\n | \"$in\"\n | \"$nin\"\n | \"$exists\";\n}\n\nexport interface CellStatusProps {\n dataIndex?: string;\n mapping: Array<{\n leftBorderColor: string;\n value: any;\n }>;\n}\n\nexport interface CustomColumnComponent {\n /** 构件名称 */\n brick: string | any;\n /** 字段值、列表项和 index 对应所用构件的属性的 key */\n fields?: {\n value?: string;\n item?: string;\n index?: string;\n };\n /** 构件属性 */\n properties?: Record<string, any>;\n /** 事件 */\n events?: BrickEventsMap;\n}\n\nexport interface CustomColumn extends ColumnProps<Record<string, any>> {\n /**\n * 支持为某列自定义展示构件\n */\n useBrick?: UseSingleBrickConf;\n /**\n * 字段的值展示时的后缀\n */\n valueSuffix?: string;\n /**\n * 支持为某列的表头自定义展示构件,可通过 DATA.title 获取标题文本\n */\n headerBrick?: {\n useBrick: UseSingleBrickConf;\n };\n /**\n * 在渲染自定义构件的场景下额外设置单元格的状态样式, `dataIndex` 表示取哪一列的字段值作为判断数据,不填的话默认取当前列的字段,`mapping` 表示判断的条件,条件被成功匹配时用当前的样式。目前仅支持单元格 `leftBorderColor` 属性的设置\n */\n cellStatus?: CellStatusProps;\n /**\n * 设置列的每个单元格样式\n */\n cellStyle?: React.CSSProperties;\n /**\n * 单元格内元素的垂直对齐方式\n */\n verticalAlign?: \"top\" | \"bottom\";\n /**\n * 每条记录的控制列合并的值的 key\n */\n colSpanKey?: string;\n /**\n * 每条记录的控制行合并的值的 key\n */\n rowSpanKey?: string;\n /**\n * 自定义筛选菜单\n */\n filterDropdownBrick?: {\n useBrick: UseSingleBrickConf;\n };\n}\n\nexport interface SortUpdateEventDetail {\n sort: string;\n order: string | number;\n}\n\nexport interface RowExpandEventDetail {\n expanded: boolean;\n record: Record<string, any>;\n}\n\nexport interface ExpandRowsChangeEventDetail {\n expandedRows: React.Key[];\n}\n\nexport interface RowDragEventDetail {\n data: Record<string, any>[];\n}\n\nexport interface EoTableEventsMap {\n \"page.update\": CustomEvent<Record<string, number>>;\n \"filter.update\": CustomEvent<Record<string, number>>;\n \"select.update\": CustomEvent<Record<string, any>[]>;\n \"select.row.keys.update\": CustomEvent<string[]>;\n \"sort.update\": CustomEvent<SortUpdateEventDetail>;\n \"row.expand\": CustomEvent<RowExpandEventDetail>;\n \"expand.rows.change\": CustomEvent<ExpandRowsChangeEventDetail>;\n \"row.drag\": CustomEvent<RowDragEventDetail>;\n}\n\nexport interface EoTableEventsMapping {\n onPageChange: \"page.update\";\n onFilterUpdate: \"filter.update\";\n onSelectUpdate: \"select.update\";\n onSelectRowKeysUpdate: \"select.row.keys.update\";\n onSortUpdate: \"sort.update\";\n onRowExpand: \"row.expand\";\n onExpandRowsChange: \"expand.rows.change\";\n onRowDrag: \"row.drag\";\n}\n\n/**\n * 简易表格构件。\n *\n * ⚠️ 通常情况下,应使用 `eo-next-table` 替代。\n *\n * @author sailor\n * @category table\n *\n * @insider\n */\n@defineElement(\"eo-table\", {\n styleTexts: [styleText],\n alias: [\"advanced.general-table\"],\n})\nclass TableComponent extends ReactNextElement {\n /**\n * 页码变化,pagePath 可在 fields.page 中设置,默认为 page\n */\n @event({ type: \"page.update\" }) accessor #pageUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 每页条数变化 ,pagePath 可在 fields.page 中设置,pageSizePath 可在 fields.pageSize 中设置,默认为 pageSize\n */\n @event({ type: \"filter.update\" }) accessor #filterUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行数据\n */\n @event({ type: \"select.update\" }) accessor #selectUpdate!: EventEmitter<\n Record<string, any>[]\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行key集合\n */\n @event({ type: \"select.row.keys.update\" })\n accessor #selectRowKeysUpdate!: EventEmitter<string[]>;\n\n /**\n * 排序变化,detail 中的 sort 为对应排序列的 key/dataIndex,order 为升序/降序\n */\n @event({ type: \"sort.update\", cancelable: true })\n accessor #sortUpdate!: EventEmitter<SortUpdateEventDetail>;\n\n /**\n * 点击展开图标时触发的事件,事件详情中`expanded`为是否展开,`record`被点击的行信息\n */\n @event({ type: \"row.expand\" })\n accessor #rowExpand!: EventEmitter<RowExpandEventDetail>;\n\n /**\n * 展开的行变化时触发的事件,事件详情为当前展开的所有行的`rowKey`集合\n */\n @event({ type: \"expand.rows.change\" })\n accessor #expandRowsChange!: EventEmitter<ExpandRowsChangeEventDetail>;\n\n /**\n * 表格行拖拽结束发生的事件,事件详情为拖拽后重新排序的所有行数据\n */\n @event({ type: \"row.drag\" })\n accessor #rowDrag!: EventEmitter<RowDragEventDetail>;\n\n /**\n * 扩展自 ant-design 的 Column 相关配置项,具体查阅:[Column](https://ant.design/components/table-cn/#Column)\n */\n set columns(value: CustomColumn[]) {\n this._columns = value;\n this._render();\n }\n get columns(): CustomColumn[] {\n return this._columns as CustomColumn[];\n }\n\n /**\n * 数据源,通过 useResolves 从后台接口获取或者直接在 storyboard 中配置\n */\n set dataSource(value: Record<string, any>[]) {\n this._isInSelect = false;\n this._originalDataSource = value;\n this._dataSource = cloneDeep(\n this._fields.dataSource ? get(value, this._fields.dataSource) : value\n );\n // 前端搜索需要保留一个干净的数据\n this._pureSource = cloneDeep(this._dataSource);\n if (this.stripEmptyExpandableChildren) {\n const columnName =\n this.configProps?.expandable?.childrenColumnName || \"children\";\n stripEmptyExpandableChildrenByName(columnName, this._dataSource);\n }\n this.#total = get(value, this._fields.total as string);\n this.page = get(value, \"page\") ?? this.page ?? 1;\n this.pageSize =\n get(value, \"page_size\") ?? get(value, \"pageSize\") ?? this.pageSize ?? 10;\n this._render();\n }\n\n /**\n * 是否显示外层卡片\n */\n @property({\n type: Boolean,\n })\n accessor showCard = true;\n\n /**\n * 表格行是否可选择,具体查阅:[rowSelection](https://ant.design/components/table-cn/#rowSelection)\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: false | TableRowSelection<any> | undefined;\n\n /**\n * 指定每一行的 key,不指定则默认为索引 index。强烈建议设置该属性,否则在某些情况下可能行为不如预期。\n */\n @property()\n accessor rowKey: string | undefined;\n\n /**\n * 隐藏相应列(输入对应的 dataIndex 或者 key 即可)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: Array<string | number> | undefined;\n\n /**\n * 是否显示已选择信息和清除按钮。仅在设置了`rowSelection`时有效。默认不显示\n * @group rowSelection\n */\n @property({\n type: Boolean,\n })\n accessor showSelectInfo = false;\n\n // 表头过滤的 filters\n /**\n * 表头过滤的过滤项,key 为 column 的 dataIndex,value 为过滤值集合。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor filters: Record<string, string[]> | undefined;\n\n /**\n * ant-design 的 Table 相关配置项,具体查阅:[Table](https://ant.design/components/table-cn/#Table),其中分页配置和行选择配值在构件中设置了常用的默认配置,也可自行覆盖,具体描述见下表\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor configProps: any;\n\n /**\n * 被排序列的 dataIndex。通常来自于 url 参数,可以设置成 ${QUERY.sort}。\n * @group paginationAndFilter\n */\n @property()\n accessor sort: string | undefined | null;\n\n /**\n * 升序/降序,可以设置成 ${QUERY.order}。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor order: string | number | undefined | null;\n\n /**\n * 配置每一行是否禁用,其中 `field` 表示数据源中的字段路径, `value` 表示与其字段比较的值, `operator` 表示两者比较的方法,结果为 `true` 时会禁用当前行, 需要注意的是该配置需要在 `rowSelection: true` 的前提下使用,并且设置 `rowKey` 属性赋予每行唯一的 key,防止顺序变化时造成的错误勾选(如上 demo 所示)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor rowDisabledConfig: RowDisabledProps | RowDisabledProps[] | undefined;\n\n // start -- 行展开相关属性\n /**\n * 自定义行展开的构件 [UseBrickConf](/next-docs/docs/api-reference/brick-types.usesinglebrickconf)\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowBrick:\n | {\n useBrick?: UseSingleBrickConf;\n }\n | undefined;\n\n /**\n * 自定义展开图标。\n * @default {collapsedIcon:{lib:'antd',icon:'down',theme:'outlined'},expandedIcon:{lib:'antd',icon:'right',theme:'outlined'}}\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIcon:\n | {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n }\n | undefined;\n\n /**\n * 展开的图标是否为一个单元格,默认显示在第一列;设置为 false 的时候,可以通过`expandIconColumnIndex`属性设置展开的图标在哪一列\n * @default true\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIconAsCell = true;\n\n /**\n * 展开的图标显示在哪一列,如果没有 rowSelection,默认显示在第一列,否则显示在选择框后面。当`expandIconAsCell`为 false 时,该属性生效。\n * @group expand\n */\n @property({\n type: Number,\n })\n accessor expandIconColumnIndex: number | undefined;\n\n /**\n * 通过点击行来展开子行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor expandRowByClick: boolean | undefined;\n\n /**\n * 优化渲染的列(输入对应的 dataIndex),针对配置了 useBrick 的列。当前 antd 在更新 state 的时候,会全量渲染单元格,如果确定某一列在后续操作中不需要重新渲染,例如仅作为展示的单元格,可通过该属性设置以优化性能。注意,在树形表格中,当某一列内包含展开/收起按钮,则不应该设置该列。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: Array<string | number> | undefined;\n\n /**\n * 树形数据展示时是否需要去除空数组\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor stripEmptyExpandableChildren = false;\n\n /**\n * 初始时,是否展开所有行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultExpandAllRows: boolean | undefined;\n\n /**\n * 是否显示省略信息\n * @group basic\n */\n @property({ type: Boolean })\n accessor ellipsisInfo: boolean | undefined;\n\n /**\n * 展开的行的 rowKey\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: string[] | undefined;\n\n // end -- 行展开相关属性\n\n /**\n * 表格树形数据展示的时候,行选择父节点的时候是否同步勾选/取消勾选所有子节点,并且被同步勾选的子节点不能单独取消。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor selectAllChildren: boolean | undefined;\n\n /**\n * 是否默认选择所有行。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultSelectAll: boolean | undefined;\n\n private _disabledChildrenKeys: React.Key[] = [];\n\n /**\n * 指定树形结构的列名\n * @default children\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor childrenColumnName = \"children\";\n\n /**\n * 是否支持排序。默认开启,当对应列的sorter设置成true时则可排序。sortable为false时则排序都不生效。\n * @default true\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor sortable = true;\n\n /**\n * 设置相关字段取自哪里,具体描述见下表\n * @group advanced\n */\n set fields(value: any) {\n this._fields = { ...this._fields, ...value };\n this._render();\n }\n\n /**\n * 是否前端进行搜索,配合`presentational-bricks.brick-input`使用\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 前端搜索参数\n * @group paginationAndFilter\n */\n @property()\n accessor frontSearchQuery = \"\";\n\n /**\n * 是否精确搜索\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor exactSearch: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法如[\"name\",\"value.a\"],不配置的时候默认为对所有 columns 的 dataIndex[]进行前端搜索\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor frontSearchFilterKeys: string[] | undefined;\n\n /**\n * 页码。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 page;前台搜索的时候,一般配置成 \"${query.page=1|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n /**\n * 页码条数。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 pageSize/page_size;前台搜索的时候,一般配置成 \"${query.pageSize=10|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * @kind {\n * x?: string | number | true;\n * y?: number | string;\n * } & {\n * scrollToFirstRowOnChange?: boolean;\n * }\n * 表格是否可滚动,也可以指定滚动区域的宽、高,配置项。详见 [scroll](https://ant.design/components/table-cn/#scroll)\n * @required false\n * @default { x: true }\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor scrollConfigs: TableProps<unknown>[\"scroll\"] = { x: true };\n\n /**\n * 把过滤条件更新到 url 时的字段名\n * @default \"q\"\n * @group paginationAndFilter\n */\n @property()\n accessor qField = \"q\";\n\n /**\n * 表格行是否可拖拽,注意,树形数据的表格不支持该功能\n * @group basic\n */\n @property({\n type: Boolean,\n })\n accessor tableDraggable: boolean | undefined;\n\n /**\n * 是否展示斑马纹\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor zebraPattern: boolean | undefined;\n\n /**\n * 翻页时是否记住之前选中的项。注意,选中项的rowKey将保存在url中,如果不设置rowKey,该设置不生效。如果选择太多可能会造成url过长,请谨慎使用\n * @group other\n */\n @property({ type: Boolean })\n accessor storeCheckedByUrl: boolean | undefined;\n\n /**\n * 额外的行,通常为跨页勾选时,不在当前页的行\n * @group other\n */\n @property({ attribute: false })\n accessor extraRows: Record<string, unknown>[] = [];\n\n /**\n * 当所有子节点选中时,自动选中父节点\n * @group expand\n */\n @property({ type: Boolean })\n accessor autoSelectParentWhenAllChildrenSelected: boolean | undefined;\n\n /**\n * 表格表头是否透明\n * @group ui\n */\n @property({ type: Boolean })\n accessor thTransparent: boolean | undefined;\n\n /**\n * 是否显示表头\n * @default true\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor showHeader = true;\n\n /**\n * 是否显示分页\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor pagination: false | TablePaginationConfig | undefined;\n\n /**\n * 表格大小(antd原生size)\n * @group ui\n */\n @property()\n accessor size: SizeType | \"x-small\";\n\n /**\n * 选框类型(单选/多选)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor type: RowSelectionType | undefined;\n\n /**\n * 是否更新 url 参数。设置为否之后,如果是后台进行分页/排序等功能,则需要结合事件进行编排。如果是前台进行分页/排序,则不需要。\n * @default true\n * @group other\n */\n @property({ type: Boolean })\n accessor shouldUpdateUrlParams = true;\n\n /**\n * 更新 url 参数时是否触发页面重新渲染。仅在`shouldUpdateUrlParams`为true时有效。\n * @default true\n * @group other\n */\n @property({\n type: Boolean,\n })\n accessor shouldRenderWhenUrlParamsUpdate = true;\n\n // 对外获取内部 _dataSource 的值\n // istanbul ignore next\n get processedDataSource() {\n return this._dataSource;\n }\n\n // 对外获取内部 _finalConfigProps 的值\n // istanbul ignore next\n get processConfigProps() {\n return this._finalConfigProps;\n }\n\n // 对外获取内部 _columns 的值\n // istanbul ignore next\n get processedColumns() {\n return this.getModifyColumns();\n }\n\n private _originalDataSource: Record<string, any>[] = [];\n private _dataSource: Record<string, any>[] = [];\n private _pureSource: Record<string, any>[] | undefined;\n private _columns: CustomColumn[] | undefined;\n private _finalConfigProps: any = {}; //处理过的配置,主要处理分页和rowSelect\n private _error: any;\n\n #total?: number | undefined;\n\n private _selectUpdateEventName = \"\";\n private _selectUpdateEventDetailKeys: string[] = [];\n private _selectUpdateEventDetailField = \"\";\n private _selectUpdateEventDetailExtra: any = {};\n\n private _fields: {\n dataSource: string; // 指定 dataSource 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 list\n total: string; // 指定 total 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 total\n page: string; // 指定请求后台 page 参数 path\n pageSize: string; // 指定请求后台 pageSize 参数 path\n rowKey?: string; // 指定每一行的 key,不指定则默认为 index\n ascend?: string | number; // 指定 ascend 排序对应字段,例如有些后台对应为 1 ,有些对应为 \"asc\"。这里默认为 \"ascend\"。\n descend?: string | number; // 指定 descend 排序对应字段,例如有些后台对应为 0 ,有些对应为 \"desc\"。这里默认为 \"descend\"。\n order?: number;\n } = {\n page: \"page\",\n pageSize: \"pageSize\",\n dataSource: \"list\",\n total: \"total\",\n ascend: \"ascend\",\n descend: \"descend\",\n };\n\n /**\n * 指定选中项的 key 数组\n * @default []\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: React.Key[] = [];\n\n private _selected = false;\n private _selectedRow: Record<string, unknown> | undefined;\n private _selectedRows: Record<string, any>[] = [];\n private _allChildren: Record<string, any>[] = [];\n private _isInSelect = false;\n /**\n * 搜索过滤\n */\n @method()\n filterSourceData(event: CustomEvent): void {\n const q = this.exactSearch\n ? event.detail.q.trim()\n : event.detail.q.trim().toLowerCase();\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n urlSearchParams.set(\"page\", \"1\");\n if (q) {\n urlSearchParams.set(this.qField, q);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n } else {\n urlSearchParams.delete(this.qField);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n }\n this.page = 1;\n }\n this.frontSearchQuery = q;\n }\n\n handleFrontendDataChange(\n data: Record<string, any>[] = [],\n columns: CustomColumn[] = []\n ): Record<string, any>[] {\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n this.frontSearchQuery = urlSearchParams.get(this.qField) as string;\n }\n let tempDataSource: Record<string, any>[] = [];\n tempDataSource = this.handleFrontendFilterSource(\n data,\n this.frontSearchQuery || \"\",\n columns\n );\n const order = isNil(this.order)\n ? null\n : this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\";\n tempDataSource = this.handleFrontendSorter(tempDataSource, {\n columnKey: this.sort as string,\n order,\n });\n tempDataSource = this.handleFrontendFilters(tempDataSource);\n this.#total = tempDataSource.length;\n return tempDataSource;\n }\n\n // 前端过滤\n handleFrontendFilterSource(\n data: Record<string, any>[],\n q: string,\n columns: CustomColumn[],\n filterKeys?: DataIndex[]\n ): Record<string, any>[] {\n if (!q) {\n return data;\n }\n\n const dataSource: Record<string, any>[] = [];\n\n if (!filterKeys) {\n filterKeys = (this.frontSearchFilterKeys ||\n columns.map((column) => column.dataIndex)) as DataIndex[];\n }\n\n data.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n const filteredChildren = this.handleFrontendFilterSource(\n children,\n q,\n columns,\n filterKeys\n );\n\n if (filteredChildren.length > 0) {\n dataSource.push({\n ...item,\n [this.childrenColumnName]: filteredChildren,\n });\n return;\n }\n }\n\n const valid = filterKeys?.some((key) => {\n const value = get(item, key);\n if (isNil(value)) {\n return false;\n }\n if (this.exactSearch) {\n return value === q;\n }\n return JSON.stringify(value).toLowerCase().includes(q);\n });\n\n if (valid) {\n dataSource.push(item);\n }\n });\n return dataSource;\n }\n\n private _getRowKey = (): string =>\n this.rowKey ?? this._fields.rowKey ?? this.configProps?.rowKey ?? \"key\";\n\n private _findParentByChildKeyValue = (\n value: string,\n rowKey: string,\n list: Record<string, unknown>[],\n parent?: Record<string, unknown>\n ): Record<string, unknown> | undefined => {\n let matchedParent: Record<string, unknown> | undefined;\n\n list.some((item) => {\n if (item[rowKey] === value) {\n matchedParent = parent;\n } else {\n const children = item[this.childrenColumnName] as Record<\n string,\n unknown\n >[];\n\n if (children) {\n matchedParent = this._findParentByChildKeyValue(\n value,\n rowKey,\n children,\n item\n );\n }\n }\n\n return matchedParent ? true : false;\n });\n\n return matchedParent;\n };\n\n // istanbul ignore next\n private _handleRowSelectChange = (\n selectedRowKeys: string[],\n selectedRows: any[]\n ): void => {\n const rowKey = this._getRowKey();\n const rowKeyRowMap = keyBy(selectedRows, rowKey);\n if (this._selected) {\n const _selectedRowKeys = [...selectedRowKeys];\n this._allChildren.forEach((child) => {\n const rowKeyValue = child[rowKey];\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = child;\n });\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n const selectedRowKeySet = new Set(selectedRowKeys);\n const parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n\n if (\n parent &&\n (parent[this.childrenColumnName] as Record<string, unknown>[]).every(\n (item) => selectedRowKeySet.has(item[rowKey] as string)\n )\n ) {\n const rowKeyValue = parent[rowKey] as string;\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = parent;\n }\n }\n this.selectedRowKeys = uniq(_selectedRowKeys);\n } else {\n let parent: Record<string, unknown> | undefined;\n\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n }\n this.selectedRowKeys = pullAll(\n selectedRowKeys,\n map(\n this._allChildren.concat(\n parent as unknown as Record<string, unknown>[]\n ),\n rowKey\n )\n );\n }\n this._selectedRow = undefined;\n const extraRowKeyRowMap = keyBy(this.extraRows, rowKey);\n this._selectedRows = this.selectedRowKeys.map(\n (key) =>\n rowKeyRowMap[key as string | number] ||\n extraRowKeyRowMap[key as string | number]\n );\n\n let detail = null;\n const data = isEmpty(this._selectUpdateEventDetailField)\n ? this._selectedRows\n : map(this._selectedRows, (row) =>\n get(row, this._selectUpdateEventDetailField)\n );\n detail =\n isEmpty(this._selectUpdateEventDetailKeys) || isEmpty(data)\n ? data\n : set({}, this._selectUpdateEventDetailKeys, data);\n if (!isEmpty(detail)) {\n detail = merge(detail, this._selectUpdateEventDetailExtra);\n }\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit(detail);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail })\n );\n }\n this.#selectRowKeysUpdate.emit(selectedRowKeys);\n };\n\n // istanbul ignore next\n private _getSelectedRowsWithChildren = (\n row: Record<string, any>\n ): Record<string, any>[] => {\n const result: Record<string, any>[] = [];\n if (\n !isEmpty(row[this.childrenColumnName]) &&\n isArray(row[this.childrenColumnName])\n ) {\n forEach(row[this.childrenColumnName], (item) => {\n result.push(item);\n result.push(...this._getSelectedRowsWithChildren(item));\n });\n }\n return result;\n };\n\n // istanbul ignore next\n private _handleOnSelect = (\n row: Record<string, any>,\n checked: boolean\n ): void => {\n this._selected = checked;\n this._selectedRow = row;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n const allChildren = this.selectAllChildren\n ? this._getSelectedRowsWithChildren(row)\n : [];\n\n this._allChildren = allChildren;\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (checked) {\n this._disabledChildrenKeys = uniq([\n ...this._disabledChildrenKeys,\n ...map(allChildren, rowKey),\n ]);\n } else {\n this._disabledChildrenKeys = pullAll(this._disabledChildrenKeys, [\n ...map(allChildren, rowKey),\n ]);\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked([row[rowKey]], checked);\n }\n };\n\n // istanbul ignore next\n private _handleSelectAll = (\n selected: boolean,\n selectedRows: Record<string, any>[],\n changeRows: Record<string, any>[]\n ): void => {\n this._selected = selected;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n if (this.selectAllChildren) {\n const allParentKeys = map(this._dataSource, rowKey);\n const changedParentRows = changeRows.filter((v) =>\n allParentKeys.includes(v[rowKey])\n );\n const toChangedChildrenKeys = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr[rowKey])\n )\n );\n const allChildren = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr)\n )\n );\n this._allChildren = allChildren;\n\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (selected) {\n this._disabledChildrenKeys = uniq(\n this._disabledChildrenKeys.concat(toChangedChildrenKeys)\n );\n } else {\n // disabled children in changeRows should be removed\n this._disabledChildrenKeys = this._disabledChildrenKeys.filter(\n (v) => !toChangedChildrenKeys.includes(v)\n );\n }\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked(map(changeRows, rowKey), selected);\n }\n };\n\n private _getCheckedFromUrl = () => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const checked = urlSearchParams.get(\"checked\");\n return isEmpty(checked) ? [] : (checked as string).split(\",\");\n };\n\n private _updateUrlChecked = (options: any[], checked: boolean) => {\n const history = getHistory();\n let checkedOptions: string[] = this._getCheckedFromUrl();\n if (checked) {\n checkedOptions = [...checkedOptions, ...options];\n } else {\n pull(checkedOptions, ...options);\n }\n if (this.shouldUpdateUrlParams) {\n history.pushQuery(\n { checked: checkedOptions.join(\",\") },\n { notify: false }\n );\n }\n };\n private _handleOnChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n // 分页\n if (!isEmpty(pagination)) {\n if (pagination.pageSize !== this.pageSize) {\n pagination.current = 1;\n urlSearchParams.set(\"page\", \"1\");\n urlSearchParams.set(\n \"pageSize\",\n (pagination?.pageSize as number).toString()\n );\n this.#filterUpdate.emit({\n [this._fields.pageSize]: pagination.pageSize as number,\n [this._fields.page]: 1,\n });\n this.page = 1;\n this.pageSize = pagination.pageSize;\n } else if (pagination.current !== this.page) {\n const newPage = pagination.current || 1;\n urlSearchParams.set(\"page\", newPage.toString());\n this.#pageUpdate.emit({\n [this._fields.page]: newPage, // 可配置的 path\n });\n this.page = newPage;\n }\n }\n this.filters = filters;\n // 过滤\n if (!isEmpty(filters)) {\n forEach(filters, (value: any, key) => {\n isNil(value) || value.length === 0\n ? urlSearchParams.delete(key)\n : urlSearchParams.set(key, value);\n });\n }\n // 排序: 切换分页和页码的时候不应该触发sort.update事件 排序触发/取消的时候,order的类型 'descend' | 'ascend' | null,没触发是false\n if (\n sorter.order &&\n isNil(sorter.order) &&\n (sorter.columnKey !== this.sort ||\n this._fields[sorter.order] !== this.order)\n ) {\n if (sorter.columnKey && sorter.order) {\n urlSearchParams.set(\"sort\", sorter.columnKey as string);\n urlSearchParams.set(\n \"order\",\n (this._fields[sorter.order] as number).toString()\n );\n this.sort = sorter.columnKey as string;\n this.order = this._fields[sorter.order];\n } else {\n urlSearchParams.delete(\"sort\");\n urlSearchParams.delete(\"order\");\n this.sort = null;\n this.order = null;\n }\n this.#sortUpdate.emit({\n sort: this.sort as string,\n order: this.order as unknown as string,\n });\n }\n if (this.frontSearch) {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, { notify: false });\n }\n this.frontendSearch(pagination, filters, sorter);\n } else {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, {\n notify: !!this.shouldRenderWhenUrlParamsUpdate,\n });\n }\n }\n };\n\n // istanbul ignore next\n private renderSelectInfo = () => {\n // eslint-disable-next-line react/display-name\n return (\n <span style={{ marginLeft: 20 }}>\n <span>已选择{this.selectedRowKeys.length}项</span>\n <a\n role=\"button\"\n style={{ marginLeft: \"10px\" }}\n onClick={() => {\n this.selectedRowKeys = [];\n this._selectedRows = [];\n this._disabledChildrenKeys = [];\n this._allChildren = [];\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit([]);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail: [] })\n );\n }\n }}\n >\n 清空\n </a>\n </span>\n );\n };\n\n // 对前端搜索数据进行排序\n private handleFrontendSorter(\n dataSource: Record<string, any>[],\n sorter: Partial<SorterResult<Record<string, any>>>\n ): Record<string, any>[] {\n const tempDataSource: Record<string, any>[] = dataSource || [];\n const { columnKey, order } = sorter;\n\n if (!columnKey || !order) {\n return dataSource;\n }\n\n let direction: 1 | -1 = 1;\n\n if (order === \"descend\") {\n direction = -1;\n } else if (order === \"ascend\") {\n direction = 1;\n }\n\n if (direction !== undefined) {\n tempDataSource.sort((a, b) => {\n const aValue = get(a, columnKey as string | number);\n const bValue = get(b, columnKey as string | number);\n\n if (isNil(aValue)) {\n if (!isNil(bValue)) {\n return 1;\n }\n } else {\n if (isNil(bValue)) {\n return -1;\n }\n }\n\n if (aValue == bValue) {\n return 0;\n }\n\n if (aValue > bValue) {\n return direction;\n }\n\n return -direction;\n });\n tempDataSource.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n this.handleFrontendSorter(children, sorter);\n }\n });\n }\n\n return tempDataSource;\n }\n\n // 对前端搜索数据进行表头筛选项过滤\n private handleFrontendFilters(\n dataSource: Record<string, any>[]\n ): Record<string, any>[] {\n let tempDataSource: Record<string, any>[] = dataSource || [];\n const filtersArray = map(this.filters, (item, k) => ({\n key: k,\n value: item,\n })).filter((item) => !isNil(item.value) && item.value.length !== 0);\n tempDataSource = tempDataSource.filter((item) => {\n return every(filtersArray, (filter) => {\n return filter.value?.includes(get(item, filter.key)) ?? true;\n });\n });\n return tempDataSource;\n }\n\n // istanbul ignore next\n private frontendSearch(\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void {\n this.sort = isNil(sorter.order) ? null : (sorter.columnKey as string);\n this.order = isNil(sorter.order) ? null : this._fields[sorter.order];\n }\n\n // 点击展开图标时触发的事件\n // istanbul ignore next\n private _handleOnExpand = (\n expanded: boolean,\n record: Record<string, any>\n ): void => {\n if (this.expandedRowKeys) {\n const rowKey = this._getRowKey();\n const pullKeys: string[] = [get(record, rowKey)];\n const recordChildren = get(record, this.childrenColumnName);\n if (!isEmpty(recordChildren)) {\n const keysToPull = map(\n filter(recordChildren, (c) =>\n isEmpty(get(c, this.childrenColumnName))\n ),\n rowKey\n );\n pullKeys.push(...keysToPull);\n }\n this.expandedRowKeys = expanded\n ? [...this.expandedRowKeys, ...pullKeys]\n : pull(this.expandedRowKeys, ...pullKeys);\n this._render();\n }\n this.#rowExpand.emit({\n expanded,\n record,\n });\n };\n\n // 展开的行变化时触发的事件\n // istanbul ignore next\n private _handleOnExpandedRowsChange = (expandedRows: React.Key[]): void => {\n this.#expandRowsChange.emit({\n expandedRows,\n });\n };\n\n // 拖拽排序后触发的事件\n // istanbul ignore next\n private _handleOnDrag = (data: Record<string, any>[]): void => {\n this.#rowDrag.emit({\n data,\n });\n };\n\n /**\n * 展开所有行\n */\n @method()\n expandAll() {\n const allKeys: string[] = [];\n const rowKey = this._getRowKey();\n if (this._dataSource)\n getKeysOfData(this._dataSource, rowKey, this.childrenColumnName, allKeys);\n this.expandedRowKeys = allKeys;\n }\n\n getModifyColumns(): CustomColumn[] {\n let columns = this._columns;\n if (this._columns && this.hiddenColumns) {\n columns = this._columns.filter((column) => {\n return !this.hiddenColumns?.includes(\n (column.dataIndex as string) ?? column.key\n );\n });\n }\n if (this.sortable === false) {\n columns = map(columns, (column) => {\n column.sorter = false;\n return column;\n });\n }\n return columns as CustomColumn[];\n }\n\n render() {\n // 前端搜索的参数处理\n if (this.frontSearch) {\n this._dataSource = this.handleFrontendDataChange(\n this._pureSource,\n this._columns\n );\n }\n this._initConfigProps();\n return (\n // https://github.com/ant-design/ant-design/issues/38911\n <BrickTable\n shadowRoot={this.shadowRoot}\n dataSource={this._dataSource || []}\n columns={this.getModifyColumns()}\n configProps={this._finalConfigProps}\n error={this._error}\n onChange={this._handleOnChange}\n showCard={this.showCard}\n showHeader={this.showHeader}\n expandedRowBrick={this.expandedRowBrick}\n expandIconAsCell={this.expandIconAsCell}\n expandIconColumnIndex={this.expandIconColumnIndex}\n expandRowByClick={this.expandRowByClick}\n defaultExpandAllRows={this.defaultExpandAllRows}\n onExpand={this._handleOnExpand}\n onExpandedRowsChange={this._handleOnExpandedRowsChange}\n expandedRowKeys={this.expandedRowKeys}\n rowKey={this._getRowKey()}\n childrenColumnName={this.childrenColumnName}\n tableDraggable={this.tableDraggable || this.draggable}\n onDrag={this._handleOnDrag}\n zebraPattern={this.zebraPattern}\n expandIcon={this.expandIcon}\n scroll={this.scrollConfigs}\n optimizedColumns={this.optimizedColumns}\n ellipsisInfo={this.ellipsisInfo}\n thTransparent={this.thTransparent}\n xSmallSizeTable={this.size == \"x-small\"}\n />\n );\n }\n\n // istanbul ignore next\n private _getAllRows = (): Record<string, any>[] => {\n const allRows: Record<string, any>[] = [];\n getRowsOfData(this._dataSource, this.childrenColumnName, allRows);\n return allRows;\n };\n\n // istanbul ignore next\n private _handleDefaultSelectAll = () => {\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n this._selectedRows = this._getAllRows();\n this.selectedRowKeys = map(this._selectedRows, rowKey);\n return this.selectedRowKeys;\n };\n\n private _initConfigProps = () => {\n // 默认分页配置\n const defaultPagination: TablePaginationConfig = {\n current: this.page,\n pageSize: this.pageSize,\n total: this.#total,\n showSizeChanger: true,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n // eslint-disable-next-line react/display-name\n showTotal: (totals) => (\n <>\n <span className=\"totalText\">\n 共 <strong className=\"total\">{totals}</strong> 条\n </span>\n {(this.configProps?.rowSelection || this.rowSelection) &&\n this.showSelectInfo &&\n this.selectedRowKeys.length !== 0 &&\n this.renderSelectInfo()}\n </>\n ),\n };\n\n const rowKey = this._getRowKey();\n let rowDisabledConfig: RowDisabledProps[];\n\n if (this.rowDisabledConfig) {\n rowDisabledConfig = Array.isArray(this.rowDisabledConfig)\n ? this.rowDisabledConfig\n : [this.rowDisabledConfig];\n }\n\n // 当 rowSelection 为 true 或者有相关配置的时候的默认行选择配置\n const defaultRowSelection: TableRowSelection<any> = {\n ...(rowKey\n ? ({\n selectedRowKeys: this._isInSelect\n ? this.selectedRowKeys\n : this.storeCheckedByUrl\n ? this._getCheckedFromUrl()\n : this.defaultSelectAll\n ? this._handleDefaultSelectAll()\n : this.selectedRowKeys,\n onSelect: this._handleOnSelect,\n onSelectAll: this._handleSelectAll,\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n } as any)\n : {\n // 当用户没有设置rowKey时的兼容处理\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n }),\n getCheckboxProps: (record: any) => {\n if (\n !isEmpty(this._disabledChildrenKeys) &&\n this._disabledChildrenKeys.includes(get(record, rowKey))\n ) {\n return {\n disabled: true,\n };\n }\n if (!rowDisabledConfig) return {};\n\n return {\n disabled: rowDisabledConfig.some((config) => {\n const { field, value, operator } = config;\n const fun = compareFunMap[operator];\n\n return fun?.(value, get(record, field));\n }),\n };\n },\n };\n if (this.configProps) {\n this._finalConfigProps = cloneDeep(this.configProps);\n if (this.configProps.pagination !== false) {\n this._finalConfigProps.pagination = {\n ...defaultPagination,\n ...this.pagination,\n ...this.configProps.pagination,\n };\n if (\n (this.configProps.pagination === undefined ||\n this.configProps.pagination === null) &&\n this.pagination === false\n ) {\n this._finalConfigProps.pagination = false;\n }\n }\n if (!this.configProps.size) {\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n } else {\n this._finalConfigProps = {};\n this._finalConfigProps.pagination =\n this.pagination !== false ? defaultPagination : false;\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n const rowSelec = this.configProps?.rowSelection ?? this.rowSelection;\n if (rowSelec) {\n if (rowSelec === true) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n };\n } else {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n ...rowSelec,\n ...(defaultRowSelection.selectedRowKeys\n ? { selectedRowKeys: defaultRowSelection.selectedRowKeys }\n : {}),\n };\n }\n } else if (this.type) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type,\n };\n } else {\n this._finalConfigProps.rowSelection = false;\n }\n\n // 初始化列排序\n if (this._columns) {\n this._columns = this._columns.map((item) => {\n if (isNil(item.key)) {\n item.key = item.dataIndex as string;\n }\n if (item.sorter) {\n item.sortOrder = (this.sort === item.key &&\n !isNil(this.order) &&\n (this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\")) as SortOrder;\n }\n // 初始化表头过滤值\n if (item.filters) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const filteredValue =\n urlSearchParams.get(item.key as string) ??\n get(this.filters, item.key as string | number)?.join(\",\");\n if (!isNil(filteredValue) && !isEmpty(filteredValue)) {\n item.filtered = true;\n item.filteredValue = filteredValue\n .split(\",\")\n .map(\n (v: any) =>\n find(item.filters, (f) => String(f.value) === v)?.value ?? v\n );\n } else {\n item.filtered = false;\n item.filteredValue = [];\n }\n }\n return item;\n });\n }\n };\n\n _test_only_getOriginalDataSource(): Record<string, any>[] {\n return this._originalDataSource;\n }\n\n updateData(event: CustomEvent): void {\n this._dataSource = event.detail;\n this._error = null;\n this._render();\n }\n\n updateError(event: CustomEvent): void {\n this._error = event.detail;\n this._render();\n }\n\n set selectUpdateEventName(value: string) {\n this._selectUpdateEventName = value;\n }\n\n set selectUpdateEventDetailKeys(value: string[]) {\n this._selectUpdateEventDetailKeys = value;\n }\n\n set selectUpdateEventDetailField(value: string) {\n this._selectUpdateEventDetailField = value;\n }\n\n set selectUpdateEventDetailExtra(value: any) {\n this._selectUpdateEventDetailExtra = value;\n }\n}\n\nexport { TableComponent };\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","import React, { CSSProperties, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { Cascader, ConfigProvider, theme } from \"antd\";\nimport {\n CascaderProps as AntdCascaderProps,\n DefaultOptionType,\n} from \"antd/lib/cascader\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CascaderProps\n extends Pick<\n AntdCascaderProps,\n \"options\" | \"fieldNames\" | \"value\" | \"expandTrigger\" | \"size\"\n > {\n shadowRoot: ShadowRoot | null;\n multiple?: boolean;\n placeholder?: string;\n disabled?: boolean;\n allowClear?: boolean;\n showSearch?: boolean;\n limit?: number;\n suffixIcon?: GeneralIconProps;\n popupPlacement?: AntdCascaderProps[\"placement\"];\n cascaderStyle?: CSSProperties;\n maxTagCount?: number | \"responsive\";\n onChange?: (\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ) => void;\n}\n\nexport interface CascaderChangeEventDetail {\n value: AntdCascaderProps[\"value\"];\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][];\n}\n\nexport interface CascaderEventsMap {\n \"cascader.change\": CustomEvent<CascaderChangeEventDetail>;\n}\n\nexport interface CascaderEventsMapping {\n onCascaderChange: \"cascader.change\";\n}\n\n/**\n * 级联选择器\n * @author nlicroshan\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-cascader\", {\n alias: [\"advanced.general-cascader\"],\n styleTexts: [styleText],\n})\nclass CascaderBrick extends FormItemElementBase implements CascaderProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor options: AntdCascaderProps[\"options\"];\n\n @property({\n attribute: false,\n })\n accessor fieldNames: AntdCascaderProps[\"fieldNames\"] = {\n label: \"label\",\n value: \"value\",\n children: \"children\",\n };\n\n @property({\n attribute: false,\n })\n accessor value: AntdCascaderProps[\"value\"];\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined = true;\n\n @property({\n type: Boolean,\n })\n accessor showSearch: boolean | undefined = true;\n\n @property({\n attribute: false,\n })\n accessor suffixIcon: GeneralIconProps | undefined;\n\n @property()\n accessor expandTrigger: AntdCascaderProps[\"expandTrigger\"] = \"click\";\n\n @property()\n accessor popupPlacement: AntdCascaderProps[\"placement\"] = \"bottomLeft\";\n\n @property()\n accessor size: AntdCascaderProps[\"size\"];\n\n @property({\n type: Number,\n })\n accessor limit: number | undefined = 50;\n\n @property({\n attribute: false,\n })\n accessor maxTagCount: number | \"responsive\" | undefined;\n\n @property({\n attribute: false,\n })\n accessor cascaderStyle: CSSProperties | undefined;\n\n /**\n * @detail { value: AntdCascaderProps[\"value\"], selectedOptions: DefaultOptionType[] | DefaultOptionType[][] }\n * @description 级联选择项输入变化时触发,value 为选择的值,selectedOptions 为选择的值所对应的 options\n */\n @event({ type: \"cascader.change\" })\n accessor #changeEvent!: EventEmitter<CascaderChangeEventDetail>;\n\n handleOnChange = (\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ): void => {\n this.value = value;\n Promise.resolve().then(() => {\n this.#changeEvent.emit({ value, selectedOptions });\n });\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n notRender={this.notRender}\n trigger=\"handleOnChange\"\n >\n <CascaderElement\n shadowRoot={this.shadowRoot}\n options={this.options}\n fieldNames={this.fieldNames}\n value={this.value}\n multiple={this.multiple}\n placeholder={this.placeholder}\n disabled={this.disabled}\n allowClear={this.allowClear}\n showSearch={this.showSearch}\n expandTrigger={this.expandTrigger}\n suffixIcon={this.suffixIcon}\n size={this.size}\n limit={this.limit}\n popupPlacement={this.popupPlacement}\n maxTagCount={this.maxTagCount}\n cascaderStyle={this.cascaderStyle}\n onChange={this.handleOnChange}\n />\n </WrappedFormItem>\n );\n }\n}\n\nfunction CascaderElement(props: CascaderProps): React.ReactElement {\n const {\n shadowRoot,\n options,\n fieldNames,\n value,\n placeholder,\n disabled,\n multiple,\n allowClear,\n showSearch,\n expandTrigger,\n size,\n limit,\n popupPlacement,\n cascaderStyle,\n suffixIcon,\n maxTagCount,\n onChange,\n } = props;\n\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n const filter = (inputValue: string, path: DefaultOptionType[]): boolean => {\n const label = fieldNames?.label || \"label\";\n const filterValues = inputValue\n .split(\" \")\n .filter((item) => item)\n .map((item) => item.toLocaleLowerCase());\n for (let j = 0; j < filterValues.length; j++) {\n if (\n !path.some((option) =>\n (option[label] as string).toLowerCase().includes(filterValues[j])\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n /* istanbul ignore next */\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={cache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <Cascader\n getPopupContainer={(trigger) => trigger.parentElement}\n allowClear={allowClear}\n disabled={disabled}\n multiple={multiple as true | undefined}\n expandTrigger={expandTrigger}\n fieldNames={fieldNames}\n placeholder={placeholder}\n size={size}\n showSearch={showSearch && { limit, filter }}\n placement={popupPlacement}\n style={cascaderStyle}\n suffixIcon={suffixIcon && <WrappedIcon {...suffixIcon} />}\n maxTagCount={maxTagCount}\n value={value as any}\n options={options}\n onChange={\n ((\n value: AntdCascaderProps[\"value\"],\n selectedOptions: DefaultOptionType[] | DefaultOptionType[][]\n ) => onChange?.(value, selectedOptions)) as any\n }\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","export enum K {\n TOTAL = \"TOTAL\",\n SELECT_INFO = \"SELECT_INFO\",\n CLEAR = \"CLEAR\",\n}\n\nconst en: Locale = {\n TOTAL: \"Total <el>{{ total }}</el> items\",\n SELECT_INFO: \"{{ count }} item selected\",\n SELECT_INFO_plural: \"{{ count }} items selected\",\n CLEAR: \"Clear\",\n};\n\nconst zh: Locale = {\n TOTAL: \"共 <el>{{ total }}</el> 条\",\n SELECT_INFO: \"已选择 {{ count }} 项\",\n CLEAR: \"清空\",\n};\n\nexport const NS = \"bricks/advanced/eo-next-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { get, isNil, reduce } from \"lodash\";\nimport type { SortOrder } from \"antd/es/table/interface.js\";\nimport { Column, RecordType } from \"./interface.js\";\n\nexport const DEFAULT_PAGE_SIZE = 20;\nexport const DEFAULT_PAGE = 1;\n\nexport const defaultPaginationConfig = {\n showSizeChanger: true,\n showTotal: true,\n};\n\nexport const defaultRowSelectionConfig = {\n preserveSelectedRowKeys: true,\n showSelectInfo: true,\n};\n\nexport function getSearchKeywords(value: unknown): string[] {\n const result = [];\n if (isNil(value)) {\n // do nothing\n } else if (Array.isArray(value)) {\n value.map((v) => result.push(getSearchKeywords(v)));\n } else if (Object.prototype.toString.call(value) === \"[object Object]\") {\n for (const k in value as Record<string, any>) {\n result.push(\n String(k),\n getSearchKeywords((value as Record<string, any>)[k])\n );\n }\n } else {\n // string, number, bigint, boolean...\n result.push(String(value));\n }\n\n return result.flat(Infinity).filter(Boolean) as string[];\n}\n\nexport function getValueByDataIndex(\n record: RecordType,\n dataIndex: Column[\"dataIndex\"]\n) {\n // 嵌套在 dataIndex 中用数组表示,所以 \"a.b\" 这种要识别成 key: \"a.b\"。\n return Array.isArray(dataIndex)\n ? get(record, dataIndex)\n : record[dataIndex as string];\n}\n\nexport function searchList({\n list,\n columns,\n q,\n searchFields,\n childrenColumnName,\n}: {\n list?: RecordType[];\n columns?: Column[];\n q?: string;\n searchFields?: (string | string[])[];\n childrenColumnName: string;\n}) {\n if (!q) return list;\n\n return reduce(\n list,\n (pre, row) => {\n let keywords: string[] = [];\n\n if (searchFields) {\n keywords = searchFields.flatMap((field) =>\n getSearchKeywords(get(row, field))\n );\n } else if (columns) {\n keywords = columns.flatMap((column) => {\n const value = getValueByDataIndex(row, column.dataIndex);\n return getSearchKeywords(value);\n });\n }\n\n const selfMatched = keywords.some((v) => v.toLowerCase().includes(q));\n\n if (selfMatched) {\n return pre.concat(row);\n }\n\n const filteredChildren = searchList({\n list: row[childrenColumnName],\n columns,\n q,\n searchFields,\n childrenColumnName,\n });\n const childrenMatched = !!filteredChildren?.length;\n\n if (childrenMatched) {\n const newRow = {\n ...row,\n [childrenColumnName]: filteredChildren,\n } as RecordType;\n return pre.concat(newRow);\n }\n return pre;\n },\n [] as RecordType[]\n );\n}\n\nexport function isPlainObject(value: unknown): value is Record<string, any> {\n return (\n Object.prototype.toString.call(value) === \"[object Object]\" &&\n value !== null &&\n !Array.isArray(value)\n );\n}\n\nexport function getAllKeys({\n list,\n rowKey,\n childrenColumnName,\n}: {\n list?: RecordType[];\n rowKey: string;\n childrenColumnName: string;\n}) {\n const keys: (string | number)[] = [];\n\n list?.forEach((row) => {\n keys.push(row[rowKey]);\n const childrenKeys = getAllKeys({\n list: row[childrenColumnName],\n rowKey,\n childrenColumnName,\n });\n keys.push(...childrenKeys);\n });\n\n return [...new Set(keys)] as (string | number)[];\n}\n\nexport function naturalComparator(\n a: unknown,\n b: unknown,\n sortOrder?: SortOrder\n) {\n const aIsNil = a == null;\n const bIsNil = b == null;\n\n if (aIsNil || bIsNil) {\n // Always put null/undefined at the end\n const result = sortOrder === \"descend\" ? -1 : 1;\n return aIsNil && bIsNil ? 0 : aIsNil ? result : -result;\n }\n\n return a == b ? 0 : a > b ? 1 : -1;\n}\n\nconst THEME_COLORS = [\n \"green\",\n \"red\",\n \"blue\",\n \"orange\",\n \"cyan\",\n \"purple\",\n \"geekblue\",\n \"gray\",\n];\n\nexport function getCellStatusStyle(\n record: RecordType,\n col: Column\n): React.CSSProperties | null {\n if (!col.cellStatus) {\n return null;\n }\n const dataIndex = col.cellStatus.dataIndex ?? col.dataIndex;\n const value = getValueByDataIndex(record, dataIndex);\n\n const match = col.cellStatus.mapping?.find((m) => m.value === value);\n if (!match) {\n return null;\n }\n\n const color = THEME_COLORS.includes(match.leftBorderColor)\n ? `var(--theme-${match.leftBorderColor}-color)`\n : match.leftBorderColor;\n\n return { boxShadow: `inset 4px 0 ${color}` };\n}\n","import React, { Ref, forwardRef } from \"react\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { useSortable } from \"@dnd-kit/sortable\";\n\ntype RowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\nexport const Row = forwardRef(function LegacyRow(\n props: RowProps,\n ref: Ref<HTMLTableRowElement>\n): React.ReactElement {\n return <tr {...props} ref={ref} />;\n});\n\ninterface DraggableRowProps extends RowProps {\n \"data-row-key\": string;\n}\n\nexport function DraggableRow(props: DraggableRowProps): React.ReactElement {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: props[\"data-row-key\"],\n });\n\n const style: React.CSSProperties = {\n ...props.style,\n transform: CSS.Transform.toString(transform),\n transition,\n cursor: \"move\",\n touchAction: \"none\",\n ...(isDragging ? { position: \"relative\", zIndex: 999 } : {}),\n };\n\n return (\n <Row\n {...props}\n ref={setNodeRef}\n style={style}\n {...attributes}\n {...listeners}\n />\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nexport function CacheUseBrickItem(props: {\n useBrick: UseSingleBrickConf | UseSingleBrickConf[];\n data: any;\n}): React.ReactNode {\n const [cacheData, setCacheData] = useState<any>(props.data);\n\n useEffect(() => {\n setCacheData(props.data);\n }, Object.values(props.data));\n\n return <ReactUseMultipleBricks useBrick={props.useBrick} data={cacheData} />;\n}\n","import React, {\n Ref,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport type { RecordType, Sort, NextTableProps } from \"./interface.js\";\nimport { Table, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { RowSelectMethod, type SortOrder } from \"antd/es/table/interface.js\";\nimport { DownOutlined, RightOutlined } from \"@ant-design/icons\";\nimport type { RenderExpandIconProps } from \"rc-table/lib/interface.js\";\nimport { i18n } from \"@next-core/i18n\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { Trans } from \"react-i18next\";\nimport classNames from \"classnames\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport {\n DEFAULT_PAGE,\n DEFAULT_PAGE_SIZE,\n defaultPaginationConfig,\n defaultRowSelectionConfig,\n getAllKeys,\n getCellStatusStyle,\n getValueByDataIndex,\n isPlainObject,\n naturalComparator,\n searchList,\n} from \"./utils.js\";\nimport { isNil, keyBy } from \"lodash\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport {\n type DragEndEvent,\n DndContext,\n PointerSensor,\n useSensor,\n useSensors,\n closestCenter,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n arrayMove,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport {\n restrictToFirstScrollableAncestor,\n restrictToVerticalAxis,\n} from \"@dnd-kit/modifiers\";\nimport { DraggableRow, Row } from \"./Row.js\";\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport { CacheUseBrickItem } from \"./CacheUseBrickItem.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nexport interface NextTableComponentProps extends NextTableProps {\n shadowRoot: ShadowRoot | null;\n rowKey: string;\n childrenColumnName: string;\n onPageChange?: (detail: { page: number; pageSize: number }) => void;\n onPageSizeChange?: (detail: { page: number; pageSize: number }) => void;\n onSort?: (detail?: Sort | Sort[]) => void;\n onRowClick?: (detail: RecordType) => void;\n onRowSelect?: (detail: {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }) => void;\n onRowExpand?: (detail: { expanded: boolean; record: RecordType }) => void;\n onExpandedRowsChange?: (detail: (string | number)[]) => void;\n onRowDrag?: (detail: {\n list: RecordType[];\n active: RecordType;\n over: RecordType;\n }) => void;\n}\n\nexport interface NextTableComponentRef {\n search: (params: { q: string }) => void;\n}\n\nexport const NextTableComponent = forwardRef(function LegacyNextTableComponent(\n props: NextTableComponentProps,\n ref: Ref<NextTableComponentRef>\n) {\n const {\n shadowRoot,\n rowKey,\n columns,\n cell,\n dataSource,\n frontSearch,\n pagination,\n loading,\n multiSort,\n rowSelection,\n hiddenColumns,\n expandable,\n childrenColumnName,\n rowDraggable,\n rowClickable,\n searchFields,\n size,\n showHeader,\n bordered,\n scrollConfig,\n optimizedColumns,\n themeVariant,\n onPageChange,\n onPageSizeChange,\n onSort,\n onRowClick,\n onRowSelect,\n onRowExpand,\n onExpandedRowsChange,\n onRowDrag,\n } = props;\n\n const { t } = useTranslation(NS);\n const styleCache = useMemo(() => {\n return createCache();\n }, []);\n const currentTheme = useCurrentTheme();\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 1,\n },\n })\n );\n\n const [list, setList] = useState<RecordType[] | undefined>(dataSource?.list);\n const keyList = useMemo(\n () => list?.map((v) => v[rowKey]) ?? [],\n [list, rowKey]\n );\n\n const [{ page, pageSize }, setPageAndPageSize] = useState<{\n page: number;\n pageSize: number;\n }>({\n page: dataSource?.page ?? DEFAULT_PAGE,\n pageSize: dataSource?.pageSize ?? DEFAULT_PAGE_SIZE,\n });\n const [selectedRowKeys, setSelectedRowKeys] = useState<\n (string | number)[] | undefined\n >(props.selectedRowKeys);\n const [expandedRowKeys, setExpandedRowKeys] = useState<(string | number)[]>(\n props.expandedRowKeys ?? []\n );\n const [sort, setSort] = useState<Sort | Sort[] | undefined>(props.sort);\n\n const isTreeData = useMemo(\n () => dataSource?.list?.some((v) => v[childrenColumnName]?.length),\n [dataSource?.list, childrenColumnName]\n );\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys);\n }, [props.selectedRowKeys]);\n\n useEffect(() => {\n setExpandedRowKeys(props.expandedRowKeys ?? []);\n }, [props.expandedRowKeys]);\n\n useEffect(() => {\n if (isPlainObject(expandable) && expandable.defaultExpandAllRows) {\n setExpandedRowKeys(\n getAllKeys({\n list: dataSource?.list,\n rowKey,\n childrenColumnName,\n })\n );\n }\n }, []);\n\n useEffect(() => {\n setList(dataSource?.list);\n setPageAndPageSize({\n page: dataSource?.page ?? DEFAULT_PAGE,\n pageSize: dataSource?.pageSize ?? DEFAULT_PAGE_SIZE,\n });\n }, [dataSource]);\n\n useEffect(() => {\n setSort(props.sort);\n }, [props.sort]);\n\n const processedColumns = useMemo(() => {\n const hiddenColumnsSet = new Set(hiddenColumns);\n const optimizedColumnsSet = new Set(optimizedColumns);\n const sortMap = keyBy(([] as Sort[]).concat(sort || []), \"columnKey\");\n\n return columns\n ?.filter((col) => !hiddenColumnsSet.has(col.key!))\n .map((col) => {\n const curSort = sortMap[col.key!];\n const comparator = (\n recordA: RecordType,\n recordB: RecordType,\n sortOrder?: SortOrder\n ) => {\n return naturalComparator(\n getValueByDataIndex(recordA, col.dataIndex),\n getValueByDataIndex(recordB, col.dataIndex),\n sortOrder\n );\n };\n\n return {\n ...col,\n ...(col.sortable\n ? {\n sorter: multiSort\n ? {\n compare: frontSearch ? comparator : undefined,\n multiple: col.sortPriority,\n }\n : frontSearch\n ? comparator\n : true,\n sortOrder: curSort ? curSort.order : null,\n }\n : {}),\n ...(optimizedColumnsSet.has(col.key!)\n ? {\n shouldCellUpdate(record: RecordType, preRecord: RecordType) {\n return record !== preRecord;\n },\n }\n : {}),\n render(value: any, record: RecordType, index: number) {\n const data = {\n cellData: value,\n rowData: record,\n /**\n * @deprecated wrong naming, it's actually `rowIndex`\n */\n columnIndex: index,\n rowIndex: index,\n columnKey: col.key,\n };\n return cell?.useBrick ? (\n <CacheUseBrickItem useBrick={cell.useBrick} data={data} />\n ) : col.useBrick ? (\n <CacheUseBrickItem useBrick={col.useBrick} data={data} />\n ) : (\n <>{value}</>\n );\n },\n title() {\n const data = {\n title: col.title,\n columnKey: col.key,\n };\n return cell?.header?.useBrick ? (\n <CacheUseBrickItem useBrick={cell.header.useBrick} data={data} />\n ) : col.headerBrick?.useBrick ? (\n <CacheUseBrickItem\n useBrick={col.headerBrick.useBrick}\n data={data}\n />\n ) : (\n <>{col.title as string}</>\n );\n },\n onCell(record: RecordType) {\n return {\n colSpan: col.cellColSpanKey\n ? record[col.cellColSpanKey]\n : undefined,\n rowSpan: col.cellRowSpanKey\n ? record[col.cellRowSpanKey]\n : undefined,\n style: {\n ...col.cellStyle,\n ...getCellStatusStyle(record, col),\n verticalAlign: col.verticalAlign,\n },\n };\n },\n onHeaderCell() {\n return {\n style: col.headerStyle,\n };\n },\n };\n });\n }, [\n cell,\n columns,\n hiddenColumns,\n multiSort,\n sort,\n frontSearch,\n optimizedColumns,\n ]);\n\n const rowSelectionConfig = useMemo(() => {\n if (rowSelection === false || isNil(rowSelection)) {\n return undefined;\n }\n return {\n ...defaultRowSelectionConfig,\n ...(rowSelection === true ? {} : rowSelection),\n };\n }, [rowSelection]);\n\n const paginationConfig = useMemo(() => {\n if (pagination === false) {\n return false;\n }\n return { ...defaultPaginationConfig, ...pagination };\n }, [pagination]);\n\n const expandConfig = useMemo(() => {\n if (isTreeData || (!isTreeData && childrenColumnName !== \"children\")) {\n // still need to set childrenColumnName to antd\n return isPlainObject(expandable) ? expandable : {};\n }\n if (expandable === false || isNil(expandable)) {\n return undefined;\n }\n return isPlainObject(expandable) ? expandable : {};\n }, [expandable, isTreeData, childrenColumnName]);\n\n useImperativeHandle(ref, () => ({\n search: ({ q }) => {\n const result = searchList({\n q: q?.trim().toLowerCase() || \"\",\n list: dataSource?.list,\n columns,\n searchFields,\n childrenColumnName,\n });\n setList(result);\n setPageAndPageSize((pre) => {\n if (pre.page !== 1) {\n const newData = {\n page: 1,\n pageSize: pre.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageChange?.(newData);\n return newData;\n }\n return pre;\n });\n },\n }));\n\n // istanbul ignore next\n const onDragEnd = useCallback(\n ({ active, over }: DragEndEvent) => {\n if (over && active.id !== over?.id) {\n setList((prev = []) => {\n const activeIndex = prev.findIndex((v) => v[rowKey] === active.id);\n const overIndex = prev.findIndex((v) => v[rowKey] === over?.id);\n const newList = arrayMove(prev, activeIndex, overIndex);\n onRowDrag?.({\n list: newList,\n active: prev[activeIndex],\n over: prev[overIndex],\n });\n return newList;\n });\n }\n },\n [rowKey, onRowDrag]\n );\n\n return (\n <ConfigProvider\n locale={locale}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n components: {\n Table: {\n headerBorderRadius:\n \"var(--eo-next-table-header-border-radius)\" as unknown as number,\n headerSplitColor: \"none\",\n ...(themeVariant === \"elevo\"\n ? {\n headerBg: \"none\",\n headerSortActiveBg: \"none\",\n headerSortHoverBg: \"none\",\n bodySortBg: \"none\",\n rowHoverBg: \"rgba(189, 191, 212, 0.1)\",\n borderColor: \"#f0f0f0\",\n }\n : {\n headerBg: \"var(--antd-table-header-bg)\",\n headerSortActiveBg: \"var(--antd-table-header-sort-active-bg)\",\n headerSortHoverBg: \"var(--antd-table-header-sort-active-bg)\",\n bodySortBg:\n \"var(--antd-table-header-overwrite-sort-td-active-bg)\",\n }),\n // cellPaddingBlock: 11,\n cellPaddingInline: 16,\n // cellPaddingBlockMD: 8,\n cellPaddingInlineMD: 16,\n // cellPaddingBlockSM: 4,\n cellPaddingInlineSM: 16,\n ...(bordered\n ? { borderColor: \"var(--theme-gray-border-color)\" }\n : null),\n },\n },\n }}\n getPopupContainer={() => shadowRoot as unknown as HTMLElement}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={styleCache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[\n restrictToVerticalAxis,\n restrictToFirstScrollableAncestor,\n ]}\n onDragEnd={onDragEnd}\n >\n <SortableContext\n items={keyList}\n strategy={verticalListSortingStrategy}\n >\n <Table\n components={{\n body: {\n row: rowDraggable && !isTreeData ? DraggableRow : Row,\n },\n }}\n loading={loading}\n rowKey={rowKey}\n columns={processedColumns}\n dataSource={list}\n size={size}\n showHeader={showHeader}\n bordered={bordered}\n scroll={scrollConfig === false ? undefined : scrollConfig}\n pagination={\n paginationConfig === false\n ? false\n : {\n ...paginationConfig,\n total: dataSource?.total,\n current: page,\n pageSize: pageSize,\n showSizeChanger: {\n showSearch: false,\n variant: \"borderless\",\n },\n showTotal: (total: number) => {\n return (\n <div className=\"pagination-wrapper\">\n {paginationConfig.showTotal ? (\n <span className=\"pagination-total-text\">\n <Trans\n i18nKey={t(K.TOTAL)}\n values={{ total }}\n components={{\n el: (\n <strong className=\"pagination-total-number\" />\n ),\n }}\n />\n </span>\n ) : null}\n {rowSelectionConfig?.showSelectInfo &&\n selectedRowKeys?.length ? (\n <span className=\"select-info\">\n <span>\n {t(K.SELECT_INFO, {\n count: selectedRowKeys.length,\n })}\n </span>\n <WrappedLink\n onClick={() => {\n setSelectedRowKeys([]);\n onRowSelect?.({\n keys: [],\n rows: [],\n info: { type: \"none\" },\n });\n }}\n >\n {t(K.CLEAR)}\n </WrappedLink>\n </span>\n ) : null}\n </div>\n );\n },\n }\n }\n rowSelection={\n rowSelectionConfig === undefined\n ? undefined\n : {\n ...rowSelectionConfig,\n selectedRowKeys: selectedRowKeys,\n getCheckboxProps(record: RecordType) {\n const data = {\n rowData: record,\n };\n return {\n disabled:\n rowSelectionConfig.rowDisabled !== undefined\n ? checkIfByTransform(\n { if: rowSelectionConfig.rowDisabled },\n data\n )\n : false,\n };\n },\n onChange(\n keys,\n rows: RecordType[],\n info: { type: RowSelectMethod }\n ) {\n setSelectedRowKeys(keys as (string | number)[]);\n onRowSelect?.({\n keys: keys as (string | number)[],\n rows,\n info,\n });\n },\n }\n }\n expandable={\n expandConfig === undefined\n ? undefined\n : {\n ...expandConfig,\n childrenColumnName,\n expandedRowKeys,\n rowExpandable(record) {\n const data = {\n rowData: record,\n };\n return expandConfig.rowExpandable !== undefined\n ? checkIfByTransform(\n { if: expandConfig.rowExpandable },\n data\n )\n : true;\n },\n expandedRowRender: expandConfig.expandedRowBrick?.useBrick\n ? (record, index, indent /* , expanded */) => {\n const data = {\n rowData: record,\n index,\n indent,\n // Do not pass `expanded`, it changes every time the row is toggled,\n // thus the brick will be re-rendered every time as well.\n // expanded,\n };\n return (\n <CacheUseBrickItem\n useBrick={\n expandConfig.expandedRowBrick!.useBrick\n }\n data={data}\n />\n );\n }\n : undefined,\n expandIcon: expandConfig.expandIconBrick?.useBrick\n ? ({ expanded, expandable, record, onExpand }) => {\n const data = {\n rowData: record,\n expanded,\n expandable,\n };\n return (\n <span\n onClick={(e) =>\n expandable && onExpand(record, e)\n }\n >\n <CacheUseBrickItem\n useBrick={\n expandConfig.expandIconBrick!.useBrick\n }\n data={data}\n />\n </span>\n );\n }\n : DefaultExpandIcon,\n onExpand: (expanded, record) => {\n onRowExpand?.({ expanded, record });\n },\n onExpandedRowsChange: (expandedRows) => {\n const newRows = [...expandedRows] as (\n | string\n | number\n )[];\n setExpandedRowKeys(newRows);\n onExpandedRowsChange?.(newRows);\n },\n }\n }\n onRow={\n rowClickable\n ? (record) => ({\n onClick: () => {\n onRowClick?.(record);\n },\n })\n : undefined\n }\n onChange={(pagination, _filters, sorter, extra) => {\n switch (extra.action) {\n case \"paginate\": {\n setPageAndPageSize((pre) => {\n if (pre.pageSize !== pagination.pageSize) {\n const newData = {\n page: 1,\n pageSize: pagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageSizeChange?.(newData);\n onPageChange?.(newData);\n return newData;\n } else if (pre.page !== pagination.current) {\n const newData = {\n page: pagination.current ?? DEFAULT_PAGE,\n pageSize: pagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n onPageChange?.(newData);\n return newData;\n }\n return pre;\n });\n break;\n }\n case \"sort\": {\n const newSort = Array.isArray(sorter)\n ? sorter\n .filter((v) => v.order)\n .map((v) => ({\n columnKey: v.columnKey as string | number,\n order: v.order,\n }))\n : sorter.order\n ? {\n columnKey: sorter.columnKey as string | number,\n order: sorter.order,\n }\n : undefined;\n setSort(newSort);\n onSort?.(newSort);\n }\n }\n }}\n className={classNames(\"next-table\", {\n \"row-clickable\": rowClickable,\n })}\n />\n </SortableContext>\n </DndContext>\n </StyleProvider>\n </ConfigProvider>\n );\n});\n\nfunction DefaultExpandIcon({\n expanded,\n expandable,\n onExpand,\n record,\n}: RenderExpandIconProps<RecordType>) {\n const IconComponent = expanded ? DownOutlined : RightOutlined;\n return (\n <IconComponent\n className={classNames(\"expand-icon\", { invisible: !expandable })}\n onClick={(e) => expandable && onExpand(record, e)}\n />\n );\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { createRef } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { NextTableComponent, NextTableComponentRef } from \"./Table.js\";\nimport type {\n CellConfig,\n Column,\n DataSource,\n ExpandableType,\n NextTableProps,\n PaginationType,\n RecordType,\n RowSelectionType,\n Sort,\n TableScroll,\n} from \"./interface.js\";\nimport { RowSelectMethod } from \"antd/es/table/interface.js\";\nimport type { TableProps } from \"antd/es/table\";\nimport \"./host-context.css\";\nimport chartStyleText from \"./chart-v2.shadow.css\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\nexport interface PageOrPageSizeChangeEventDetail {\n page: number;\n pageSize: number;\n}\n\nexport interface RowSelectEventDetail {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n}\n\nexport interface RowExpandEventDetail {\n expanded: boolean;\n record: RecordType;\n}\n\nexport interface RowDragEventDetail {\n list: RecordType[];\n active: RecordType;\n over: RecordType;\n}\n\nexport interface EoNextTableEventsMap {\n \"page.change\": CustomEvent<PageOrPageSizeChangeEventDetail>;\n \"page.size.change\": CustomEvent<PageOrPageSizeChangeEventDetail>;\n \"sort.change\": CustomEvent<Sort | Sort[] | undefined>;\n \"row.click\": CustomEvent<RecordType>;\n \"row.select\": CustomEvent<RowSelectEventDetail>;\n \"row.select.v2\": CustomEvent<RecordType[]>;\n \"row.expand\": CustomEvent<RowExpandEventDetail>;\n \"expanded.rows.change\": CustomEvent<(string | number)[]>;\n \"row.drag\": CustomEvent<RowDragEventDetail>;\n}\n\nexport interface EoNextTableEventsMapping {\n onPageChange: \"page.change\";\n onPageSizeChange: \"page.size.change\";\n onSortChange: \"sort.change\";\n onRowClick: \"row.click\";\n onRowSelect: \"row.select\";\n onRowSelectV2: \"row.select.v2\";\n onRowExpand: \"row.expand\";\n onExpandedRowsChange: \"expanded.rows.change\";\n onRowDrag: \"row.drag\";\n}\n\n/**\n * 大型表格\n * @author nlicro\n * @category table\n */\nexport\n@defineElement(\"eo-next-table\", {\n styleTexts: [styleText],\n})\nclass EoNextTable extends ReactNextElement implements NextTableProps {\n #tableRef = createRef<NextTableComponentRef>();\n\n /**\n * 指定表格行的 key\n */\n @property()\n accessor rowKey: string = \"key\";\n\n /**\n * 列定义\n */\n @property({\n attribute: false,\n })\n accessor columns: Column[] | undefined;\n\n /**\n * 单元格\n */\n @property({\n attribute: false,\n })\n accessor cell: CellConfig | undefined;\n\n /**\n * 数据源\n */\n @property({\n attribute: false,\n })\n accessor dataSource: DataSource | undefined;\n\n /**\n * 是否前端搜索\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 分页配置\n */\n @property({\n attribute: false,\n })\n accessor pagination: PaginationType;\n\n /**\n * 显示加载中状态\n */\n @property({\n type: Boolean,\n })\n accessor loading: boolean | undefined;\n\n /**\n * 是否支持多列排序,前端搜索时需设置 column.sortPriority 优先级\n */\n @property({\n type: Boolean,\n })\n accessor multiSort: boolean | undefined;\n\n /**\n * 排序信息\n */\n @property({\n attribute: false,\n })\n accessor sort: Sort | Sort[] | undefined;\n\n /**\n * 表格行可选择配置\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: RowSelectionType;\n\n /**\n * 选中项的 key\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: (string | number)[] | undefined;\n\n /**\n * 隐藏的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: (string | number)[] | undefined;\n\n /**\n * 表格行展开配置\n */\n @property({\n attribute: false,\n })\n accessor expandable: ExpandableType;\n\n /**\n * 展开项的 key\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: (string | number)[] | undefined;\n\n /**\n * 树形结构的列名\n */\n @property()\n accessor childrenColumnName: string = \"children\";\n\n /**\n * 表格行拖拽配置\n */\n @property({\n type: Boolean,\n })\n accessor rowDraggable: boolean | undefined;\n\n /**\n * 表格行可点击(激活鼠标手势)\n */\n @property({\n type: Boolean,\n })\n accessor rowClickable: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法。不配置的时候默认为对所有 column.dataIndex 进行前端搜索\n */\n @property({\n attribute: false,\n })\n accessor searchFields: (string | string[])[] | undefined;\n\n /**\n * 表格大小\n */\n @property()\n accessor size: TableProps<RecordType>[\"size\"] = \"large\";\n\n /**\n * 是否显示表头\n */\n @property({\n type: Boolean,\n })\n accessor showHeader: boolean = true;\n\n /**\n * 是否显示边框\n */\n @property({ type: Boolean })\n accessor bordered: boolean | undefined;\n\n /**\n * 滚动配置\n */\n @property({\n attribute: false,\n })\n accessor scrollConfig: TableScroll = { x: true };\n\n /**\n * 优化渲染的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: (string | number)[] | undefined;\n\n /**\n * 注入 chart-v2 所需的样式(因其使用 light DOM 实现),仅 EasyOps 内部使用。\n *\n * @internal\n */\n @property({ type: Boolean })\n accessor injectChartV2Styles: boolean | undefined;\n\n /** 主题变体 */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n /**\n * 前端搜索\n */\n @method()\n search(params: { q: string }) {\n this.#tableRef.current?.search(params);\n }\n\n /**\n * page 或 pageSize 改变的回调\n * @detail 改变后的页码及每页条数\n */\n @event({ type: \"page.change\" })\n accessor #pageChangeEvent!: EventEmitter<PageOrPageSizeChangeEventDetail>;\n #handlePageChange = (detail: PageOrPageSizeChangeEventDetail): void => {\n this.#pageChangeEvent.emit(detail);\n };\n\n /**\n * pageSize 变化的回调\n * @detail 改变后的页码及每页条数\n * @deprecated 统一用 `page.change` 事件\n */\n @event({ type: \"page.size.change\" })\n accessor #pageSizeChangeEvent!: EventEmitter<PageOrPageSizeChangeEventDetail>;\n #handlePageSizeChange = (detail: PageOrPageSizeChangeEventDetail): void => {\n this.#pageSizeChangeEvent.emit(detail);\n };\n\n /**\n * 排序变化的回调\n * @detail 当前排序的信息\n */\n @event({ type: \"sort.change\" })\n accessor #sortChangeEvent!: EventEmitter<Sort | Sort[] | undefined>;\n #handleSort = (detail: Sort | Sort[] | undefined): void => {\n this.#sortChangeEvent.emit(detail);\n };\n\n /**\n * 行点击时的回调\n * @detail 被点击的行数据\n */\n @event({ type: \"row.click\" })\n accessor #rowClickEvent!: EventEmitter<RecordType>;\n\n #handleRowClick = (detail: RecordType): void => {\n this.#rowClickEvent.emit(detail);\n };\n\n /**\n * 行选中项发生变化时的回调\n * @detail 改变后的 rowKey 及行数据\n */\n @event({ type: \"row.select\" })\n accessor #rowSelectEvent!: EventEmitter<RowSelectEventDetail>;\n\n /**\n * 行选中项发生变化时的回调(v2 版本)\n *\n * @detail 改变后的行数据\n */\n @event({ type: \"row.select.v2\" })\n accessor #rowSelectV2Event!: EventEmitter<RecordType[]>;\n\n #handleRowSelect = (detail: RowSelectEventDetail): void => {\n this.#rowSelectEvent.emit(detail);\n this.#rowSelectV2Event.emit(detail.rows);\n };\n\n /**\n * 点击展开图标时触发\n * @detail 当前行的展开情况及数据\n */\n @event({ type: \"row.expand\" })\n accessor #rowExpandEvent!: EventEmitter<RowExpandEventDetail>;\n #handleRowExpand = (detail: RowExpandEventDetail): void => {\n this.#rowExpandEvent.emit(detail);\n };\n\n /**\n * 展开的行变化时触发\n * @detail 所有展开行的 key\n */\n @event({ type: \"expanded.rows.change\" })\n accessor #expandedRowsChangeEvent!: EventEmitter<(string | number)[]>;\n #handleExpandedRowsChange = (detail: (string | number)[]): void => {\n this.#expandedRowsChangeEvent.emit(detail);\n };\n\n /**\n * 表格行拖拽结束发生的事件\n * @detail 重新排序的行数据、拖拽的行数据、放下位置的行数据\n */\n @event({ type: \"row.drag\" })\n accessor #rowDragEvent!: EventEmitter<RowDragEventDetail>;\n // istanbul ignore next\n #handleRowDrag = (detail: RowDragEventDetail): void => {\n this.#rowDragEvent.emit(detail);\n };\n\n render() {\n return (\n <>\n {this.injectChartV2Styles && <style>{chartStyleText}</style>}\n <NextTableComponent\n ref={this.#tableRef}\n shadowRoot={this.shadowRoot}\n rowKey={this.rowKey}\n columns={this.columns}\n cell={this.cell}\n dataSource={this.dataSource}\n frontSearch={this.frontSearch}\n pagination={this.pagination}\n loading={this.loading}\n multiSort={this.multiSort}\n sort={this.sort}\n rowSelection={this.rowSelection}\n selectedRowKeys={this.selectedRowKeys}\n hiddenColumns={this.hiddenColumns}\n expandable={this.expandable}\n expandedRowKeys={this.expandedRowKeys}\n childrenColumnName={this.childrenColumnName}\n rowDraggable={this.rowDraggable}\n rowClickable={this.rowClickable}\n searchFields={this.searchFields}\n size={this.size}\n showHeader={this.showHeader}\n bordered={this.bordered}\n scrollConfig={this.scrollConfig}\n themeVariant={this.themeVariant}\n optimizedColumns={this.optimizedColumns}\n onPageChange={this.#handlePageChange}\n onPageSizeChange={this.#handlePageSizeChange}\n onSort={this.#handleSort}\n onRowClick={this.#handleRowClick}\n onRowSelect={this.#handleRowSelect}\n onRowExpand={this.#handleRowExpand}\n onExpandedRowsChange={this.#handleExpandedRowsChange}\n onRowDrag={this.#handleRowDrag}\n />\n </>\n );\n }\n}\n\nexport { NextTableProps };\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport \"@next-core/theme\";\nimport {\n ItemCallback,\n Layout,\n Responsive,\n WidthProvider,\n} from \"react-grid-layout\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport {\n DropdownButton,\n DropdownButtonEvents,\n DropdownButtonEventsMap,\n DropdownButtonProps,\n} from \"@next-bricks/basic/dropdown-button\";\nimport type {\n Checkbox,\n CheckboxOptionType,\n CheckboxProps,\n} from \"@next-bricks/form/checkbox\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport { SimpleAction } from \"@next-bricks/basic/actions\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\ntype Item = {\n position: Layout;\n key: string;\n title: string;\n style?: React.CSSProperties;\n useBrick: UseSingleBrickConf;\n};\n\ninterface CheckboxEvents {\n change: CustomEvent<CheckboxOptionType[]>;\n}\n\ninterface CheckboxEventsMap {\n onChange: \"change\";\n}\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedDropdownButton = wrapBrick<\n DropdownButton,\n DropdownButtonProps,\n DropdownButtonEvents,\n DropdownButtonEventsMap\n>(\"eo-dropdown-button\", {\n onActionClick: \"action.click\",\n});\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedCheckbox = wrapBrick<\n Checkbox,\n CheckboxProps,\n CheckboxEvents,\n CheckboxEventsMap\n>(\"eo-checkbox\", {\n onChange: \"change\",\n});\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nexport interface EoWorkbenchLayoutProps {\n cardTitle?: string;\n layouts?: Layout[];\n componentList?: Item[];\n isEdit?: boolean;\n}\n\nexport interface EoWorkbenchLayoutComponentRef {\n setLayouts(layouts: Layout[]): void;\n}\n\nexport interface EoWorkbenchLayoutComponentProps\n extends EoWorkbenchLayoutProps {\n onChange?: (layout: Layout[]) => void;\n onSave?: (layout: Layout[]) => void;\n onCancel?: () => void;\n onActionClick?: (action: SimpleAction, layouts: Layout[]) => void;\n}\n\nconst getRealKey = (key: string): string =>\n key?.includes(\":\") ? key.split(\":\")[0] : key;\nconst { isAdmin } = auth.getAuth();\n\nexport const EoWorkbenchLayoutComponent = forwardRef<\n EoWorkbenchLayoutComponentRef,\n EoWorkbenchLayoutComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n componentList = [],\n isEdit,\n onChange,\n onSave,\n onCancel,\n onActionClick,\n },\n ref\n) {\n const ResponsiveReactGridLayout = useMemo(\n () => WidthProvider(Responsive),\n []\n );\n const gridLayoutRef = useRef<HTMLDivElement>(null);\n const layoutWrapperRef = useRef<HTMLDivElement>(null);\n const layoutCacheRef = useRef<Layout[]>(layoutsProps ?? []);\n\n const [layouts, _setLayouts] = useState<Layout[]>(layoutCacheRef.current);\n const [cols, setCols] = useState<number>(3);\n const [layoutWrapperStyle, setLayoutWrapperStyle] =\n useState<React.CSSProperties>();\n\n const setLayouts = useCallback((layouts: Layout[]) => {\n layoutCacheRef.current = layouts;\n _setLayouts(layouts);\n }, []);\n\n useImperativeHandle(ref, () => ({\n setLayouts,\n }));\n\n const handleChange = useCallback(\n (layouts: Layout[]) => {\n setLayouts(layouts);\n onChange?.(layouts);\n },\n [onChange, setLayouts]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const handleDragCallback: ItemCallback = (layout, oldItem, newItem) => {\n const placeholderDOM = gridLayoutRef.current?.querySelector(\n \".react-grid-placeholder\"\n );\n if (placeholderDOM) {\n if (newItem.w > 1 && newItem.x > 0) {\n !placeholderDOM.classList.contains(\"forbidden\") &&\n placeholderDOM.classList.add(\"forbidden\");\n } else {\n placeholderDOM.classList.contains(\"forbidden\") &&\n placeholderDOM.classList.remove(\"forbidden\");\n }\n }\n };\n\n const handleLayoutChange = useCallback(\n (currentLayout: Layout[]) => {\n if (!isEdit) {\n return;\n }\n\n let isAllowAction = true;\n\n for (let t = 0; t < currentLayout.length; t++) {\n const { x, w, y, h, i, minH } = currentLayout[t];\n if (w > 1 && x > 0) {\n isAllowAction = false;\n break;\n }\n if (w === 1 && x < 2) {\n const matchItem = currentLayout.find(\n (item) => item.i !== i && item.w === 1 && item.y === y && x < 2\n );\n if (matchItem) {\n currentLayout[t].minH = currentLayout[t].minH ?? h;\n currentLayout[t].h = Math.max(matchItem.h, h);\n }\n } else {\n currentLayout[t].h = minH ?? h;\n currentLayout[t].minH = undefined;\n }\n }\n\n handleChange(\n !isAllowAction\n ? // revert to previous layouts\n layoutCacheRef.current.map((item) => {\n const { w, i } = item;\n // should update key to refresh layout\n const key = `${getRealKey(i)}:${Math.random()}`;\n let x = item.x;\n\n if (w > 1 && x > 0) {\n x = 0;\n }\n\n return {\n ...item,\n x,\n i: key,\n };\n })\n : currentLayout\n );\n },\n [handleChange, isEdit]\n );\n\n const handleBreakpointChange = (_newBreakpoint: string, newCols: number) => {\n setCols(newCols);\n };\n\n const handleCheckBoxChange = useCallback(\n (event: CustomEvent<CheckboxOptionType[]>): void => {\n const checkedKeys = event.detail.map((item) => item.value);\n const layoutsKeys = layouts.map((item) => getRealKey(item.i));\n const addItems = event.detail\n .filter((item) => !layoutsKeys.includes(item.key))\n .map((item) => ({\n ...item.position,\n x: item.w > 1 ? 0 : (layouts.length * 2) % cols,\n y: Infinity,\n }));\n\n handleChange(\n layouts\n .filter((layout) => checkedKeys.includes(getRealKey(layout.i)))\n .concat(addItems)\n );\n },\n [layouts, handleChange, cols]\n );\n\n const handleClearLayout = () => {\n handleChange([]);\n };\n\n const handleSave = useCallback(() => {\n onSave?.(\n layouts.map((item) => ({\n ...item,\n i: getRealKey(item.i),\n }))\n );\n }, [layouts, onSave]);\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleActionClick = (action: SimpleAction) => {\n const { event } = action;\n\n switch (event) {\n case \"clear\":\n showDialog({\n type: \"confirm\",\n title: \"清空确认\",\n content: \"将清空所有卡片,从零开始编辑,该操作无法撤回。\",\n }).then(handleClearLayout);\n break;\n default:\n onActionClick?.(\n action,\n (layouts ?? []).map((item) => ({\n ...item,\n i: getRealKey(item.i),\n }))\n );\n }\n };\n\n const handleDeleteItem = useCallback(\n (e: React.MouseEvent, deletedItem: Item) => {\n e.stopPropagation();\n handleChange(\n layouts.filter((item) => getRealKey(item.i) !== deletedItem.key) ?? []\n );\n },\n [handleChange, layouts]\n );\n\n const handleEditMaskClick = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n\n const renderChild = useMemo(\n () =>\n layouts\n .map((layout) => {\n const component = componentList.find(\n (item) => item.key === getRealKey(layout.i)\n );\n if (!component) {\n return null;\n }\n return (\n <div\n key={layout.i}\n data-grid={{\n ...(component.position ?? {}),\n ...layout,\n }}\n style={component.style}\n className=\"drag-box\"\n >\n {isEdit && (\n <div className=\"edit-mask\" onMouseDown={handleEditMaskClick} />\n )}\n <ReactUseBrick useBrick={component.useBrick} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n className=\"delete-icon\"\n onClick={(e) => handleDeleteItem(e, component)}\n />\n )}\n </div>\n );\n })\n .filter(Boolean),\n [componentList, handleDeleteItem, layouts, isEdit]\n );\n\n const computedOptions = useMemo(\n () =>\n componentList.map((item) => ({\n ...item,\n label: item.title,\n value: item.key,\n })),\n [componentList]\n );\n\n const computedSelectedComponentKeys = useMemo(\n () => layouts.map((layout) => getRealKey(layout.i)),\n [layouts]\n );\n\n const handleWatchLayoutSizeChange = useCallback(() => {\n if (layoutWrapperRef && isEdit) {\n const { top } =\n layoutWrapperRef.current?.getClientRects()?.[0] ?? ({} as DOMRect);\n top !== undefined &&\n setLayoutWrapperStyle({\n height: document.body.clientHeight - top,\n overflow: \"scroll\",\n });\n }\n }, [isEdit]);\n\n useEffect(() => {\n if (isEdit) {\n handleWatchLayoutSizeChange();\n setLayouts(layoutsProps || []); // 编辑的情况下需要动态改变一些布局\n window.addEventListener(\"resize\", handleWatchLayoutSizeChange);\n\n return () => {\n window.removeEventListener(\"resize\", handleWatchLayoutSizeChange);\n };\n }\n }, [isEdit, handleWatchLayoutSizeChange, layoutsProps, setLayouts]);\n\n return (\n <div className=\"grid-layout-wrapper\" ref={gridLayoutRef}>\n {isEdit && (\n <div className=\"component-wrapper\">\n <div className=\"component-title\">{cardTitle}</div>\n <div className=\"component-list\">\n <WrappedCheckbox\n options={computedOptions}\n value={computedSelectedComponentKeys}\n onChange={handleCheckBoxChange as any}\n />\n <slot name=\"toolbar\"></slot>\n </div>\n </div>\n )}\n <div\n className=\"layout-wrapper\"\n ref={layoutWrapperRef}\n style={layoutWrapperStyle}\n >\n {isEdit && (\n <div className=\"actions-wrapper\">\n <WrappedButton type=\"primary\" onClick={handleSave}>\n 保存\n </WrappedButton>\n <WrappedButton onClick={handleCancel}>取消</WrappedButton>\n <WrappedDropdownButton\n btnText=\"更多\"\n icon={{\n lib: \"antd\",\n icon: \"down\",\n }}\n actions={[\n ...(isAdmin\n ? [{ text: \"另存为模板\", event: \"saveAsTemplate\" }]\n : []),\n { text: \"从模版加载\", event: \"loadFromTemplate\" },\n { text: \"清空所有\", danger: true, event: \"clear\" },\n ]}\n onActionClick={(e) => {\n handleActionClick(e.detail);\n }}\n data-testid=\"edit-layout-actions\"\n />\n </div>\n )}\n <ResponsiveReactGridLayout\n className=\"layout\"\n draggableCancel=\".delete-icon,.edit-actions,.ignore-item\"\n breakpoints={{ lg: 1300, md: 1024, sm: 768 }}\n rowHeight={1}\n cols={{ lg: 3, md: 3, sm: isEdit ? 3 : 1 }}\n isResizable={false}\n isDraggable={isEdit}\n onDrag={handleDragCallback}\n onLayoutChange={handleLayoutChange}\n onBreakpointChange={handleBreakpointChange}\n >\n {renderChild}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n );\n});\n\n/**\n * 工作台布局\n * @deprecated Please use eo-workbench-layout-v2 which support global styles instead\n */\nexport\n@defineElement(\"eo-workbench-layout\", {\n styleTexts: [styleText],\n})\nclass EoWorkbenchLayout extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutComponentRef>();\n\n @property()\n accessor cardTitle: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor isEdit: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor layouts: Layout[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor componentList: Item[] | undefined;\n\n @event({\n type: \"change\",\n })\n accessor #changeEvent!: EventEmitter<Layout[]>;\n\n #handleChange = (layouts: Layout[]) => {\n this.#changeEvent.emit(layouts);\n };\n\n @event({\n type: \"save\",\n })\n accessor #saveEvent!: EventEmitter<Layout[]>;\n\n #handleSave = (layouts: Layout[]) => {\n this.#saveEvent.emit(layouts);\n };\n\n @event({\n type: \"cancel\",\n })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #handleCancel = () => {\n this.#cancelEvent.emit();\n };\n\n /**\n * 操作点击事件\n * @detail {\n action: SimpleAction;\n layouts: Layout[];\n }\n */\n @event({\n type: \"action.click\",\n })\n accessor #actionClickEvent!: EventEmitter<{\n action: SimpleAction;\n layouts: Layout[];\n }>;\n\n #handleActionClick = (action: SimpleAction, layouts: Layout[]): void => {\n this.#actionClickEvent.emit({ action, layouts });\n action.event &&\n this.dispatchEvent(new CustomEvent(action.event, { detail: layouts }));\n };\n\n @method()\n setLayouts(layouts: Layout[]) {\n this.#componentRef.current?.setLayouts(layouts);\n }\n\n render() {\n return (\n <EoWorkbenchLayoutComponent\n cardTitle={this.cardTitle}\n layouts={this.layouts}\n componentList={this.componentList}\n isEdit={this.isEdit}\n onChange={this.#handleChange}\n onSave={this.#handleSave}\n onCancel={this.#handleCancel}\n onActionClick={this.#handleActionClick}\n ref={this.#componentRef}\n />\n );\n }\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DroppableComponentLayoutItem.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DroppableComponentLayoutItem.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { memo, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nimport { WorkbenchComponent, ExtraLayout } from \"../interfaces\";\n\nimport styles from \"./DroppableComponentLayoutItem.module.css\";\nimport { cloneDeep, isEqual, omit } from \"lodash\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface DroppableComponentLayoutItemProps {\n component: WorkbenchComponent;\n layout: ExtraLayout;\n isEdit?: boolean;\n onDelete?(i: string): void;\n}\n\nconst position = [\"x\", \"y\", \"w\", \"h\"];\n\nexport function DroppableComponentLayoutItemElement(\n props: DroppableComponentLayoutItemProps\n): React.ReactElement {\n const { component, isEdit, onDelete, layout } = props;\n\n const handleEditMaskClick = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n\n const handleDeleteClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onDelete?.(layout.i);\n };\n /**\n * cloneDeep 操作是为了让 useBrick事件抛出的值是计算后的值\n */\n const useBrick = useMemo(\n () => cloneDeep(component.useBrick),\n [component.useBrick]\n );\n const [cardConfigs, setCardConfigs] = useState(() =>\n omit(\n {\n ...layout,\n cardWidth: layout.cardWidth || component.position.w,\n cardTitle: component.title,\n },\n position\n )\n );\n\n // todo 用于处理 layout 重新渲染导致页面卡顿\n /* istanbul ignore next */\n useEffect(() => {\n const newCardConfigs = omit(\n {\n ...layout,\n cardWidth: layout.cardWidth || component.position.w,\n },\n position\n );\n\n if (!isEqual(newCardConfigs, cardConfigs)) {\n setCardConfigs(newCardConfigs);\n }\n }, [layout, cardConfigs, component.position.w]);\n\n const cardBorderWidth = useMemo(() => {\n return cardConfigs?.cardBorderWidth !== 1\n ? (cardConfigs?.cardBorderWidth as any) - 1\n : 0;\n }, [cardConfigs]);\n\n const editMaskTop = useMemo(() => {\n return 45 + cardBorderWidth;\n }, [cardBorderWidth]);\n const noPadding = useMemo(() => {\n return layout.noPadding;\n }, [layout]);\n\n const deleteIconPosition = useMemo(() => {\n const top = 15;\n return {\n top: !noPadding ? top : 0,\n right: top,\n };\n }, [noPadding]);\n\n return (\n <div className={styles.itemWrapper}>\n {isEdit && (\n <div\n className={styles.editMask}\n style={{\n top: editMaskTop,\n }}\n onMouseDown={handleEditMaskClick}\n data-testid=\"droppable-component-layout-item-edit-mask\"\n />\n )}\n <ReactUseBrick useBrick={useBrick} data={cardConfigs} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n style={deleteIconPosition}\n className={styles.deleteIcon}\n onClick={handleDeleteClick}\n data-testid=\"droppable-component-layout-item-delete\"\n />\n )}\n </div>\n );\n}\n\nexport const DroppableComponentLayoutItem = memo(\n DroppableComponentLayoutItemElement\n);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DraggableComponentMenuItem.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DraggableComponentMenuItem.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { WorkbenchComponent } from \"../interfaces\";\nimport styles from \"./DraggableComponentMenuItem.module.css\";\nexport interface DraggableComponentMenuItemProps {\n component: WorkbenchComponent;\n onClick?(): void;\n onDragStart?(): void;\n onDragEnd?(): void;\n}\n\nexport function DraggableComponentMenuItem(\n props: DraggableComponentMenuItemProps\n): React.ReactElement {\n const { component, onClick, onDragStart, onDragEnd } = props;\n const { key, title, thumbnail } = component;\n\n return (\n <div\n className={styles.componentItemWrapper}\n data-testid=\"draggable-component-menu-item\"\n >\n <div className={styles.componentItemTitle}>{title}</div>\n <div\n className={styles.componentItemContent}\n draggable\n onDragStart={(e) => {\n e.dataTransfer.setData(\"text/plain\", key);\n onDragStart?.();\n }}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-testid=\"draggable-component-menu-item-thumbnail\"\n >\n <img\n className={styles.componentItemThumbnail}\n src={thumbnail}\n alt={title}\n />\n </div>\n </div>\n );\n}\n","import { CardStyleConfig } from \"../interfaces\";\n\nexport const defaultCardConfig: CardStyleConfig = {\n cardWidth: 2,\n showMoreIcon: false,\n cardBorderStyle: \"solid\",\n cardTitleFontSize: 16,\n cardBorderWidth: 1,\n cardBorderRadius: 6,\n cardTitleColor: \"#262626\",\n cardBorderColor: \"#e8e8e8\",\n cardBgType: \"none\",\n};\n\nexport const getLayoutDefaultCardConfig = (\n cardType: string,\n customDefaultCardConfigMap?: Record<string, CardStyleConfig>\n): CardStyleConfig => {\n const moreLinkByCardTypeMap: Record<string, CardStyleConfig> = {\n \"notice-card\": {\n moreIconLink: \"/announcement-management\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n \"cmdb-object-collect-card\": {\n moreIconLink: \"/cmdb-model-management\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n \"itsm-todos\": {\n moreIconLink: \"/itsc-workbench/workbench?activeKey=run\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n abnormalResourceInspectionResults: {\n moreIconLink: \"/automatic-inspection/suites\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n abnormalSystemInspectionResults: {\n moreIconLink: \"/automatic-inspection/system/list\",\n showMoreIcon: true,\n moreIconText: \"更多\",\n },\n ...(customDefaultCardConfigMap ?? {}),\n };\n return {\n ...defaultCardConfig,\n ...(moreLinkByCardTypeMap?.[cardType] ?? {}),\n };\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","export enum K {\n CLEAR_CONFIRM = \"CLEAR_CONFIRM\",\n CARD_LIST = \"CARD_LIST\",\n CLEAR_CONFIRM_MESSAGE = \"CLEAR_CONFIRM_MESSAGE\",\n SAVE = \"SAVE\",\n CANCEL = \"CANCEL\",\n SETTING = \"SETTING\",\n MORE = \"MORE\",\n SAVE_AS_TEMPLATE = \"SAVE_AS_TEMPLATE\",\n LOAD_FROM_TEMPLATE = \"LOAD_FROM_TEMPLATE\",\n CLEAR_ALL = \"CLEAR_ALL\"\n}\n\nconst en: Locale = {\n CLEAR_CONFIRM: \"Clear Confirm\",\n CARD_LIST: \"Card List\",\n CLEAR_CONFIRM_MESSAGE: \"All cards will be cleared and editing will start from scratch. This operation cannot be undone.\",\n SAVE: \"Save\",\n CANCEL: \"Cancel\",\n SETTING: \"Setting\",\n MORE: \"More\",\n SAVE_AS_TEMPLATE: \"Save As Template\",\n LOAD_FROM_TEMPLATE: \"Load From Template\",\n CLEAR_ALL: \"Clear All\"\n};\n\nconst zh: Locale = {\n CLEAR_CONFIRM: \"清空确认\",\n CARD_LIST: \"卡片列表\",\n CLEAR_CONFIRM_MESSAGE: \"将清空所有卡片,从零开始编辑,该操作无法撤回。\",\n SAVE: \"保存\",\n CANCEL: \"取消\",\n SETTING: \"设置\",\n MORE: \"更多\",\n SAVE_AS_TEMPLATE: \"另存为模板\",\n LOAD_FROM_TEMPLATE: \"从模板加载\",\n CLEAR_ALL: \"清空所有\"\n};\n\nexport const NS = \"bricks/advanced/eo-workbench-layout-v2\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { Layout, Responsive, WidthProvider } from \"react-grid-layout\";\nimport \"@next-core/theme\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport {\n DropdownButton,\n DropdownButtonEvents,\n DropdownButtonEventsMap,\n DropdownButtonProps,\n} from \"@next-bricks/basic/dropdown-button\";\nimport type { showDialog as _showDialog } from \"@next-bricks/basic/data-providers/show-dialog/show-dialog\";\nimport { SimpleAction } from \"@next-bricks/basic/actions\";\nimport { keyBy, pick } from \"lodash\";\nimport { SizeMe } from \"react-sizeme\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport {\n WorkbenchComponent,\n ExtraLayout,\n CardStyleConfig,\n} from \"../interfaces\";\nimport { DroppableComponentLayoutItem } from \"./DroppableComponentLayoutItem\";\nimport { DraggableComponentMenuItem } from \"./DraggableComponentMenuItem\";\nimport { getLayoutDefaultCardConfig } from \"./utils\";\n\nimport styles from \"./styles.module.css\";\nimport layoutItemStyles from \"./DroppableComponentLayoutItem.module.css\";\nimport \"./styles.css\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedDropdownButton = wrapBrick<\n DropdownButton,\n DropdownButtonProps,\n DropdownButtonEvents,\n DropdownButtonEventsMap\n>(\"eo-dropdown-button\", { onActionClick: \"action.click\" });\nconst showDialog = unwrapProvider<typeof _showDialog>(\"basic.show-dialog\");\n\nconst ROW_HEIGHT = 1;\nconst MARGIN_WIDTH = 16;\nconst MARGIN_HEIGHT = 16;\nconst URl_PREFIX = `${window.location.origin}${getBasePath()}api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/sys-setting/object/`;\nexport interface EoWorkbenchLayoutV2Props {\n cardTitle?: string;\n layouts?: ExtraLayout[];\n toolbarBricks?: { useBrick: UseSingleBrickConf[] };\n componentList?: WorkbenchComponent[];\n isEdit?: boolean;\n showSettingButton?: boolean;\n customDefaultCardConfigMap?: Record<string, CardStyleConfig>;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentRef {\n setLayouts(layouts: ExtraLayout[]): void;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentProps\n extends EoWorkbenchLayoutV2Props {\n gap?: number;\n onChange?: (layout: ExtraLayout[]) => void;\n onSave?: (layout: ExtraLayout[]) => void;\n onCancel?: () => void;\n onActionClick?: (action: SimpleAction, layouts: ExtraLayout[]) => void;\n onSetting?: () => void;\n}\n\nconst getRealKey = (key: string): string =>\n key?.includes(\":\") ? key.split(\":\")[0] : key;\nconst { isAdmin } = auth.getAuth();\n\nexport const EoWorkbenchLayoutComponent = forwardRef<\n EoWorkbenchLayoutV2ComponentRef,\n EoWorkbenchLayoutV2ComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n customDefaultCardConfigMap,\n toolbarBricks,\n componentList = [],\n isEdit,\n showSettingButton,\n onChange,\n onSave,\n onCancel,\n onActionClick,\n onSetting,\n gap,\n },\n ref\n) {\n const ResponsiveReactGridLayout = useMemo(\n () => WidthProvider(Responsive),\n []\n );\n const { t } = useTranslation(NS);\n const gridLayoutRef = useRef<HTMLDivElement>(null);\n const layoutWrapperRef = useRef<HTMLDivElement>(null);\n const layoutCacheRef = useRef<ExtraLayout[]>(layoutsProps ?? []);\n const [layouts, _setLayouts] = useState<ExtraLayout[]>(\n layoutCacheRef.current\n );\n const keyComponentMap = useMemo(\n () => keyBy(componentList, \"key\"),\n [componentList]\n );\n const [cols, setCols] = useState<number>(3);\n const [layoutWrapperStyle, setLayoutWrapperStyle] =\n useState<React.CSSProperties>();\n const draggingComponentRef = useRef<WorkbenchComponent>();\n\n const setLayouts = useCallback((layouts: ExtraLayout[]) => {\n layoutCacheRef.current = layouts;\n _setLayouts(layouts);\n }, []);\n\n useImperativeHandle(ref, () => ({ setLayouts }));\n\n const handleChange = useCallback(\n (layouts: ExtraLayout[]) => {\n setLayouts(layouts);\n onChange?.(layouts);\n },\n [onChange, setLayouts]\n );\n\n // const handleDragCallback: ItemCallback = (layout, oldItem, newItem) => {\n // const placeholderDOM = gridLayoutRef.current?.querySelector(\n // \".react-grid-placeholder\"\n // );\n // if (placeholderDOM) {\n // if (newItem.w > 1 && newItem.x > 0) {\n // !placeholderDOM.classList.contains(\"forbidden\") &&\n // placeholderDOM.classList.add(\"forbidden\");\n // } else {\n // placeholderDOM.classList.contains(\"forbidden\") &&\n // placeholderDOM.classList.remove(\"forbidden\");\n // }\n // }\n // };\n\n /* istanbul ignore next */\n const handleLayoutChange = useCallback(\n (currentLayout: ExtraLayout[]) => {\n if (!isEdit) {\n return;\n }\n\n // 占位拖拽不触发 setLayouts\n if (currentLayout.some((v) => v.isDraggable)) {\n return;\n }\n\n const currentLayoutsMap = keyBy(layouts, \"i\");\n for (let t = 0; t < currentLayout.length; t++) {\n const { x, w, y, h, i, minH } = currentLayout[t];\n if (w === 1 && x < 2) {\n const matchItem = currentLayout.find(\n (item) => item.i !== i && item.w === 1 && item.y === y && x < 2\n );\n if (matchItem) {\n currentLayout[t].minH = currentLayout[t].minH ?? h;\n }\n } else {\n currentLayout[t].h = minH ?? h;\n currentLayout[t].minH = undefined;\n }\n }\n\n handleChange(\n currentLayout.map((v) => {\n const layoutItem = currentLayoutsMap?.[v.i];\n return { ...layoutItem, ...v, type: getRealKey(v.i) };\n })\n );\n },\n [handleChange, isEdit, layouts]\n );\n\n const handleBreakpointChange = (_newBreakpoint: string, newCols: number) => {\n setCols(newCols);\n };\n\n const handleClearLayout = () => {\n handleChange([]);\n };\n\n const handleSave = useCallback(() => {\n onSave?.(layouts);\n }, [layouts, onSave]);\n\n const handleSetting = () => {\n onSetting?.();\n };\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleActionClick = (action: SimpleAction) => {\n const { event } = action;\n\n switch (event) {\n case \"clear\":\n showDialog({\n type: \"confirm\",\n title: t(K.CLEAR_CONFIRM) as string,\n content: t(K.CLEAR_CONFIRM_MESSAGE),\n }).then(handleClearLayout);\n break;\n default:\n onActionClick?.(action, layouts ?? []);\n }\n };\n\n const addComponent = (\n component: WorkbenchComponent,\n currentLayouts?: Layout[]\n ): void => {\n const defaultCardConfig = getLayoutDefaultCardConfig(\n component.key,\n customDefaultCardConfigMap\n );\n const currentLayoutsMap = keyBy(currentLayouts, \"i\");\n const newLayouts = layouts.map((layout) => {\n return {\n ...layout,\n ...pick(currentLayoutsMap?.[layout.i], [\"x\", \"y\"]),\n };\n });\n let newLayout = {\n ...defaultCardConfig,\n ...component.position,\n i: `${component.key}:${Math.random()}`,\n cardWidth: component.position.w,\n type: component.key,\n x: component.position.w > 1 ? 0 : (layouts.length * 2) % cols,\n y: Infinity,\n };\n if (currentLayouts) {\n const dropItem = currentLayouts.find((v) => v.i === \"__dropping-elem__\");\n newLayout = {\n ...newLayout,\n ...pick(dropItem, \"x\", \"y\"),\n };\n handleChange([newLayout, ...newLayouts]);\n return;\n }\n handleChange(layouts.concat(newLayout));\n };\n\n const handleDeleteItem = useCallback(\n (i: string) => {\n handleChange(layouts.filter((item) => item.i !== i) ?? []);\n },\n [handleChange, layouts]\n );\n\n /* istanbul ignore next */\n const handleResize = useCallback(\n (i: string, contentHeight: number) => {\n const oldLayout = layouts.find((layout: ExtraLayout) => layout.i === i);\n const initNewH =\n ((oldLayout?.cardBorderStyle === \"solid\"\n ? oldLayout?.cardBorderWidth || 0\n : 0) *\n 2 +\n contentHeight +\n (gap ?? MARGIN_HEIGHT)) /\n ((gap ?? MARGIN_HEIGHT) + ROW_HEIGHT);\n const newH = isEdit ? Math.ceil(initNewH) : initNewH;\n\n if (!oldLayout) return;\n\n const currentH = isEdit ? Math.ceil(oldLayout.h) : oldLayout.h;\n if (currentH !== newH) {\n const newLayouts = layouts.map((item) =>\n item.i === i ? { ...item, h: newH } : item\n );\n handleChange(newLayouts);\n }\n },\n [layouts, handleChange, gap, isEdit]\n );\n\n const renderChild = useMemo(() => {\n return layouts\n .map((layout) => {\n const component = keyComponentMap[getRealKey(layout.type as string)];\n if (!component) {\n return null;\n }\n const background =\n layout?.cardBgType === \"picture\"\n ? `url(\"${URl_PREFIX}${layout?.cardBackground}\") no-repeat center / cover`\n : layout?.cardBgType === \"realNone\"\n ? \"none\"\n : layout?.cardBgType === \"color\"\n ? layout?.cardBackground\n : \"#fff\";\n const border =\n layout?.cardBorderStyle === \"solid\"\n ? `${layout?.cardBorderWidth}px ${layout?.cardBorderStyle} ${layout?.cardBorderColor}`\n : (layout?.cardBorderStyle ?? \"1px solid #e8e8e8\");\n const borderRadius = `${layout?.cardBorderRadius ?? 6}px`;\n\n return (\n <div\n className=\"drag-box\"\n data-grid={{\n ...(component.position ?? {}),\n ...layout,\n w: layout.cardWidth || layout.w,\n }}\n key={layout.i}\n style={{\n ...(component.style || {}),\n background,\n border,\n borderRadius,\n backdropFilter: \"blur(10px)\",\n }}\n >\n <SizeMe monitorHeight>\n {({ size }) => {\n if (size.height) {\n handleResize(layout.i, size.height);\n }\n return (\n <DroppableComponentLayoutItem\n component={component}\n isEdit={isEdit}\n layout={layout}\n onDelete={handleDeleteItem}\n />\n );\n }}\n </SizeMe>\n </div>\n );\n })\n .filter(Boolean);\n }, [layouts, keyComponentMap, isEdit, handleDeleteItem, handleResize]);\n\n const handleWatchLayoutSizeChange = useCallback(() => {\n if (layoutWrapperRef && isEdit) {\n const { top } =\n layoutWrapperRef.current?.getClientRects()?.[0] ?? ({} as DOMRect);\n top !== undefined &&\n setLayoutWrapperStyle({\n height: document.body.clientHeight - top,\n });\n }\n }, [isEdit]);\n\n useEffect(() => {\n if (isEdit) {\n handleWatchLayoutSizeChange();\n setLayouts(layoutsProps || []); // 编辑的情况下需要动态改变一些布局\n window.addEventListener(\"resize\", handleWatchLayoutSizeChange);\n\n return () => {\n window.removeEventListener(\"resize\", handleWatchLayoutSizeChange);\n };\n }\n }, [isEdit, handleWatchLayoutSizeChange, layoutsProps, setLayouts]);\n\n return (\n <div className={styles.gridLayoutWrapper} ref={gridLayoutRef}>\n {isEdit && (\n <div className={styles.componentWrapper} style={layoutWrapperStyle}>\n <div className={styles.componentTitle}>{cardTitle}</div>\n <div className={styles.componentList}>\n {componentList?.map((component, index) => (\n <DraggableComponentMenuItem\n component={component}\n onClick={() => {\n addComponent(component);\n }}\n onDragStart={() => {\n draggingComponentRef.current = component;\n }}\n onDragEnd={() => {\n draggingComponentRef.current = undefined;\n }}\n key={component.key || index}\n />\n ))}\n {toolbarBricks?.useBrick && (\n <ReactUseMultipleBricks useBrick={toolbarBricks.useBrick} />\n )}\n </div>\n </div>\n )}\n <div\n className={styles.layoutWrapper}\n ref={layoutWrapperRef}\n style={layoutWrapperStyle}\n >\n {isEdit && (\n <div className={styles.actionsWrapper}>\n <WrappedButton type=\"primary\" onClick={handleSave}>\n {t(K.SAVE)}\n </WrappedButton>\n <WrappedButton onClick={handleCancel}>{t(K.CANCEL)}</WrappedButton>\n {showSettingButton && (\n <WrappedButton\n data-testid=\"setting-button\"\n onClick={handleSetting}\n >\n {t(K.SETTING)}\n </WrappedButton>\n )}\n <WrappedDropdownButton\n btnText={t(K.MORE) as string}\n icon={{ lib: \"antd\", icon: \"down\" }}\n actions={[\n ...(isAdmin\n ? [{ text: t(K.SAVE_AS_TEMPLATE), event: \"saveAsTemplate\" }]\n : []),\n { text: t(K.LOAD_FROM_TEMPLATE), event: \"loadFromTemplate\" },\n { text: t(K.CLEAR_ALL), danger: true, event: \"clear\" },\n ]}\n onActionClick={(e) => {\n handleActionClick(e.detail);\n }}\n data-testid=\"edit-layout-actions\"\n />\n </div>\n )}\n <ResponsiveReactGridLayout\n className={classNames(styles.layout, {\n [`${styles.layoutEdit}`]: isEdit,\n })}\n draggableCancel={`.${layoutItemStyles.deleteIcon},.edit-actions,.ignore-item`}\n breakpoints={{ lg: 1300, md: 1024, sm: 768 }}\n rowHeight={ROW_HEIGHT}\n cols={{ lg: 3, md: 3, sm: isEdit ? 3 : 1 }}\n isResizable={false}\n isDraggable={isEdit}\n isDroppable={isEdit}\n compactType=\"vertical\"\n margin={[gap ?? MARGIN_WIDTH, gap ?? MARGIN_HEIGHT]}\n // onDrag={handleDragCallback}\n useCSSTransforms={false}\n onDropDragOver={() => {\n if (draggingComponentRef.current) {\n return pick(draggingComponentRef.current.position, [\"w\", \"h\"]);\n }\n }}\n onDrop={(layout) => {\n if (draggingComponentRef.current) {\n addComponent(draggingComponentRef.current, layout);\n }\n }}\n onLayoutChange={handleLayoutChange}\n onBreakpointChange={handleBreakpointChange}\n >\n {renderChild}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n );\n});\n\n/**\n * 工作台布局V2, 未使用shadow dom\n */\nexport\n@defineElement(\"eo-workbench-layout-v2\", { shadowOptions: false })\nclass EoWorkbenchLayoutV2 extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutV2ComponentRef>();\n\n @property()\n accessor cardTitle: string | undefined;\n\n @property({ type: Boolean })\n accessor isEdit: boolean | undefined;\n\n @property({ attribute: false })\n accessor layouts: ExtraLayout[] | undefined;\n\n @property({ attribute: false })\n accessor toolbarBricks: { useBrick: UseSingleBrickConf[] } | undefined;\n\n @property({ attribute: false })\n accessor componentList: WorkbenchComponent[] | undefined;\n\n /**\n * 自定义卡片默认配置, 用于覆盖默认卡片配置\n */\n @property({ attribute: false })\n accessor customDefaultCardConfigMap:\n | Record<string, CardStyleConfig>\n | undefined;\n\n /**\n * description: 用于设置页面样式和布局的按钮\n */\n @property({ type: Boolean })\n accessor showSettingButton: boolean | undefined;\n\n /**\n * description: 卡片间隔\n */\n @property({ type: Number })\n accessor gap: number | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<ExtraLayout[]>;\n\n #handleChange = (layouts: ExtraLayout[]) => {\n this.#changeEvent.emit(layouts);\n };\n\n @event({ type: \"save\" })\n accessor #saveEvent!: EventEmitter<ExtraLayout[]>;\n\n #handleSave = (layouts: ExtraLayout[]) => {\n this.#saveEvent.emit(layouts);\n };\n\n @event({ type: \"cancel\" })\n accessor #cancelEvent!: EventEmitter<void>;\n\n #handleCancel = () => {\n this.#cancelEvent.emit();\n };\n\n @event({ type: \"setting\" })\n accessor #settingEvent!: EventEmitter<void>;\n #handleSetting = () => {\n this.#settingEvent.emit();\n };\n\n /**\n * 操作点击事件\n * @detail {\n action: SimpleAction;\n layouts: Layout[];\n }\n */\n @event({ type: \"action.click\" })\n accessor #actionClickEvent!: EventEmitter<{\n action: SimpleAction;\n layouts: Layout[];\n }>;\n\n #handleActionClick = (action: SimpleAction, layouts: Layout[]): void => {\n this.#actionClickEvent.emit({ action, layouts });\n action.event &&\n this.dispatchEvent(new CustomEvent(action.event, { detail: layouts }));\n };\n\n @method()\n setLayouts(layouts: Layout[]) {\n this.#componentRef.current?.setLayouts(layouts);\n }\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <EoWorkbenchLayoutComponent\n cardTitle={this.cardTitle}\n layouts={this.layouts}\n gap={this.gap}\n toolbarBricks={this.toolbarBricks}\n componentList={this.componentList}\n showSettingButton={this.showSettingButton}\n isEdit={this.isEdit}\n customDefaultCardConfigMap={this.customDefaultCardConfigMap}\n onChange={this.#handleChange}\n onSave={this.#handleSave}\n onCancel={this.#handleCancel}\n onActionClick={this.#handleActionClick}\n onSetting={this.#handleSetting}\n ref={this.#componentRef}\n />\n );\n }\n}\n","// istanbul ignore file: nothing logical except calling html2canvas.\nimport { http } from \"@next-core/http\";\nimport html2canvas from \"html2canvas\";\nimport { getBasePath } from \"@next-core/runtime\";\n\nexport type UploadStatus = \"uploading\" | \"done\" | \"error\";\n\nexport function capture(\n selector?: string,\n backgroundColor?: string\n): Promise<HTMLCanvasElement> {\n const target: HTMLElement | null = selector\n ? document.querySelector(`${selector}`)\n : document.body;\n if (!target) {\n throw new Error(`target not found: ${selector}`);\n }\n return new Promise(function (resolve, reject) {\n html2canvas(target, {\n backgroundColor: backgroundColor || null,\n useCORS: true,\n allowTaint: true,\n scale: window.devicePixelRatio < 3 ? window.devicePixelRatio : 2,\n })\n .then(function (canvas: HTMLCanvasElement) {\n resolve(canvas);\n })\n .catch(reject);\n });\n}\n\nexport function downloadImage(\n canvas: HTMLCanvasElement,\n name = \"image\"\n): Promise<string> {\n return new Promise((resolve, reject) => {\n try {\n const url = canvas.toDataURL(\"image/png\");\n const image = new Image();\n image.onload = function () {\n const canvas = document.createElement(\"canvas\");\n canvas.width = image.width;\n canvas.height = image.height;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(image, 0, 0, image.width, image.height);\n\n const url = canvas.toDataURL(\"image/png\");\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = name;\n const event = new MouseEvent(\"click\");\n a.dispatchEvent(event);\n };\n image.src = url;\n resolve(\"succeed\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n reject(\"failed\");\n }\n });\n}\n\nexport function getCanvasBlob(canvas: HTMLCanvasElement): Promise<Blob> {\n return new Promise(function (resolve, reject) {\n canvas.toBlob(function (blob: Blob | null) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n });\n });\n}\n\nexport function uploadFile(\n file: File,\n bucketName: string\n): Promise<{ data: { objectName: string } }> {\n const formData = new FormData();\n formData.append(\"file\", file, file.name);\n\n const url = `${getBasePath()}api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${bucketName}/object`;\n\n return http.request(url, {\n method: \"PUT\",\n body: formData,\n });\n}\nexport function buildImageUrl(bucketName: string, objectName: string) {\n return `${getBasePath()}api/gateway/logic.object_store_service/api/v1/objectStore/bucket/${bucketName}/object/${objectName}`;\n}\n","// istanbul ignore file: nothing logical except calling html2canvas.\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport {\n capture,\n downloadImage,\n getCanvasBlob,\n uploadFile,\n buildImageUrl,\n} from \"./snapshot.js\";\nexport type SnapshotOptions = {\n /** 文件名称 */\n name: string;\n /** 文件类型 */\n fileType: \"image\" | \"pdf\";\n /** 选择器 */\n selector?: string;\n /** 对象存储桶名字, fileType只能为 `image` */\n bucketName?: string;\n /** 画布背景颜色, 默认透明 */\n backgroundColor?: string;\n};\n/**\n * 截图,保存或上传\n *\n * @param options 选项\n */\nexport async function captureSnapshot(\n options: SnapshotOptions\n): Promise<void | string> {\n const { name, fileType, bucketName, selector, backgroundColor } = options;\n switch (fileType) {\n case \"image\":\n {\n const canvas = await capture(selector, backgroundColor);\n if (bucketName) {\n const blob = await getCanvasBlob(canvas);\n const files = new File([blob], `${name}.png`, { type: blob.type });\n const result = await uploadFile(files, bucketName);\n return buildImageUrl(bucketName, result.data.objectName);\n } else {\n await downloadImage(canvas, name);\n }\n }\n break;\n case \"pdf\": {\n const { jsPDF } = await import(\"jspdf\");\n const canvas = await capture(selector, backgroundColor);\n const imageData = canvas.toDataURL(\"image/jpeg\", 1.0);\n const orientation =\n canvas.width > canvas.height ? \"landscape\" : \"portrait\";\n const pdf = new jsPDF(orientation, \"pt\", [canvas.width, canvas.height]);\n pdf.addImage(imageData, \"JPEG\", 0, 0, canvas.width, canvas.height);\n await pdf.save(`${name}.pdf`, { returnPromise: true });\n break;\n }\n default:\n break;\n }\n}\n\ncustomElements.define(\n \"advanced.capture-snapshot\",\n createProviderClass(captureSnapshot)\n);\n","import React, { useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { Tree, ConfigProvider, theme } from \"antd\";\nimport type { TreeProps } from \"antd\";\nimport type { BasicDataNode } from \"antd/es/tree\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { DownOutlined } from \"@ant-design/icons\";\nimport {\n useCurrentTheme,\n ReactUseMultipleBricks,\n} from \"@next-core/react-runtime\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface EoTreeProps {\n dataSource?: TreeNode[];\n checkable?: boolean;\n selectable?: boolean;\n defaultExpandAll?: boolean;\n showLine?: boolean;\n expandedKeys?: TreeNodeKey[];\n checkedKeys?: TreeNodeKey[];\n nodeDraggable?: boolean | { icon?: false };\n switcherIcon?: \"auto\" | \"chevron\" | false;\n allowDrop?: (info: AllowDropInfo) => boolean;\n titleSuffixBrick?: { useBrick: UseBrickConf };\n}\n\nexport interface TreeNode extends BasicDataNode {\n title: string;\n key: TreeNodeKey;\n children?: TreeNode[];\n}\n\nexport type TreeNodeKey = string | number;\n\nexport interface CheckDetail {\n checkedKeys: TreeNodeKey[];\n halfCheckedKeys: TreeNodeKey[];\n}\n\nexport interface AllowDropInfo {\n dragNode: TreeNode;\n dropNode: TreeNode;\n /**\n * The drop position is relative to the drop node, inside 0, top -1, bottom 1\n */\n dropPosition: number;\n}\n\nexport interface DropDetail {\n dragNode: TreeNode;\n dropNode: TreeNode;\n /**\n * The drop position is relative to the drop node, inside 0, top -1, bottom 1\n */\n dropPosition: number;\n}\n\nexport type RawDropInfo = Parameters<\n Exclude<TreeProps<TreeNode>[\"onDrop\"], undefined>\n>[0];\n\nexport interface EoTreeEventsMap {\n check: CustomEvent<TreeNodeKey[]>;\n \"check.detail\": CustomEvent<CheckDetail>;\n expand: CustomEvent<TreeNodeKey[]>;\n \"node.drop\": CustomEvent<DropDetail>;\n}\n\nexport interface EoTreeEventsMapping {\n onCheck: \"check\";\n onCheckDetail: \"check.detail\";\n onExpand: \"expand\";\n onNodeDrop: \"node.drop\";\n}\n\n/**\n * 树形构件\n * @author steve\n */\nexport\n@defineElement(\"eo-tree\", {\n styleTexts: [styleText],\n})\nclass EoTree extends ReactNextElement implements EoTreeProps {\n @property({ attribute: false })\n accessor dataSource: TreeNode[] | undefined;\n\n @property({ type: Boolean })\n accessor checkable: boolean | undefined;\n\n /**\n * @default true\n */\n @property({ type: Boolean })\n accessor selectable: boolean | undefined;\n\n @property({ type: Boolean })\n accessor defaultExpandAll: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showLine: boolean | undefined;\n\n @property({ attribute: false })\n accessor expandedKeys: TreeNodeKey[] | undefined;\n\n @property({ attribute: false })\n accessor checkedKeys: TreeNodeKey[] | undefined;\n\n @property({ attribute: false })\n accessor nodeDraggable: boolean | { icon?: false } | undefined;\n\n @property({ attribute: false })\n accessor switcherIcon: \"auto\" | \"chevron\" | false | undefined;\n\n @property({ attribute: false })\n accessor allowDrop: ((info: AllowDropInfo) => boolean) | undefined;\n\n @property({ attribute: false })\n accessor titleSuffixBrick: { useBrick: UseBrickConf } | undefined;\n\n @event({ type: \"check\" })\n accessor #checkEvent!: EventEmitter<TreeNodeKey[]>;\n\n @event({ type: \"check.detail\" })\n accessor #checkDetailEvent!: EventEmitter<CheckDetail>;\n\n #handleCheck: TreeProps<TreeNode>[\"onCheck\"] = (checkedKeys, info) => {\n this.#checkEvent.emit(checkedKeys as TreeNodeKey[]);\n this.#checkDetailEvent.emit({\n checkedKeys: checkedKeys as TreeNodeKey[],\n halfCheckedKeys: info.halfCheckedKeys as TreeNodeKey[],\n });\n };\n\n @event({ type: \"expand\" })\n accessor #expandEvent!: EventEmitter<TreeNodeKey[]>;\n\n #handleExpand: TreeProps<TreeNode>[\"onExpand\"] = (expandedKeys) => {\n this.#expandEvent.emit(expandedKeys as TreeNodeKey[]);\n };\n\n @event({ type: \"node.drop\" })\n accessor #dropEvent!: EventEmitter<DropDetail>;\n\n // istanbul ignore next\n #handleDrop = ({ dragNode, node: dropNode, dropPosition }: RawDropInfo) => {\n this.#dropEvent.emit({\n dragNode,\n dropNode,\n dropPosition,\n });\n };\n\n render() {\n return (\n <EoTreeComponent\n dataSource={this.dataSource}\n shadowRoot={this.shadowRoot!}\n checkable={this.checkable}\n selectable={this.selectable}\n defaultExpandAll={this.defaultExpandAll}\n showLine={this.showLine}\n nodeDraggable={this.nodeDraggable}\n switcherIcon={this.switcherIcon}\n expandedKeys={this.expandedKeys}\n checkedKeys={this.checkedKeys}\n titleSuffixBrick={this.titleSuffixBrick}\n onCheck={this.#handleCheck}\n onExpand={this.#handleExpand}\n allowDrop={this.allowDrop}\n onDrop={this.#handleDrop}\n />\n );\n }\n}\n\nexport interface EoTreeComponentProps extends EoTreeProps {\n shadowRoot: ShadowRoot;\n onCheck: TreeProps<TreeNode>[\"onCheck\"];\n onExpand: TreeProps<TreeNode>[\"onExpand\"];\n onDrop: TreeProps<TreeNode>[\"onDrop\"];\n allowDrop?: (info: AllowDropInfo) => boolean;\n}\n\nexport function EoTreeComponent({\n dataSource,\n shadowRoot,\n checkable,\n selectable,\n defaultExpandAll,\n showLine,\n expandedKeys,\n checkedKeys,\n nodeDraggable,\n switcherIcon,\n titleSuffixBrick,\n onCheck,\n onExpand,\n onDrop,\n allowDrop,\n}: EoTreeComponentProps) {\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => createCache(), []);\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot}\n // Auto clear injected styles after unmount\n autoClear\n cache={cache}\n // Set hashPriority to \"high\" to disable `:where()` usage for compatibility\n hashPriority=\"high\"\n >\n <Tree\n switcherIcon={\n switcherIcon === false ? (\n false\n ) : switcherIcon === \"chevron\" ? (\n <DownOutlined />\n ) : undefined\n }\n {...(titleSuffixBrick?.useBrick\n ? {\n titleRender: (nodeData: TreeNode) => {\n return (\n <>\n {nodeData.title}\n <span onClick={(e) => e.stopPropagation()}>\n <ReactUseMultipleBricks\n useBrick={titleSuffixBrick.useBrick}\n data={nodeData}\n />\n </span>\n </>\n );\n },\n }\n : null)}\n treeData={dataSource}\n checkable={checkable}\n selectable={selectable}\n defaultExpandAll={defaultExpandAll}\n showLine={showLine}\n draggable={nodeDraggable}\n {...(expandedKeys ? { expandedKeys } : null)}\n {...(checkedKeys ? { checkedKeys } : null)}\n onCheck={onCheck}\n onExpand={onExpand}\n allowDrop={allowDrop}\n onDrop={onDrop}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, { CSSProperties, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { TreeSelect, ConfigProvider, theme } from \"antd\";\nimport { TreeSelectProps as AntdTreeSelectProps } from \"antd/lib/tree-select\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface TreeSelectProps\n extends Pick<\n AntdTreeSelectProps,\n | \"value\"\n | \"allowClear\"\n | \"disabled\"\n | \"fieldNames\"\n | \"filterTreeNode\"\n | \"maxTagCount\"\n | \"multiple\"\n | \"onSearch\"\n | \"onSelect\"\n | \"onChange\"\n | \"onTreeExpand\"\n | \"loading\"\n | \"placeholder\"\n | \"size\"\n | \"showSearch\"\n | \"searchValue\"\n | \"treeData\"\n | \"treeDefaultExpandAll\"\n | \"treeExpandedKeys\"\n > {\n shadowRoot: ShadowRoot | null;\n checkable?: boolean;\n suffixIcon?: GeneralIconProps;\n popupPlacement?: AntdTreeSelectProps[\"placement\"];\n dropdownStyle?: CSSProperties;\n maxTagCount?: number | \"responsive\";\n popupMatchSelectWidth?: boolean;\n}\n\n/**\n * 树选择器\n * @author sailor\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-tree-select\", {\n styleTexts: [styleText],\n})\nclass TreeSelectBrick extends FormItemElementBase implements TreeSelectProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor treeData: AntdTreeSelectProps[\"treeData\"];\n\n @property({ type: Boolean })\n accessor treeDefaultExpandAll: boolean | undefined;\n\n @property({ attribute: false })\n accessor treeExpandedKeys: string[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor fieldNames: AntdTreeSelectProps[\"fieldNames\"];\n\n @property({\n attribute: false,\n })\n accessor value: AntdTreeSelectProps[\"value\"];\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor checkable: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined = true;\n\n @property({\n type: Boolean,\n })\n accessor loading: boolean | undefined = false;\n\n @property({\n attribute: false,\n })\n accessor filterTreeNode: AntdTreeSelectProps[\"filterTreeNode\"];\n\n @property({\n type: Boolean,\n })\n accessor showSearch: boolean | undefined = true;\n\n @property({\n attribute: false,\n })\n accessor suffixIcon: GeneralIconProps | undefined;\n\n @property()\n accessor popupPlacement: AntdTreeSelectProps[\"placement\"] = \"bottomLeft\";\n\n @property()\n accessor size: AntdTreeSelectProps[\"size\"];\n\n @property({\n attribute: false,\n })\n accessor maxTagCount: number | \"responsive\" | undefined;\n\n @property({\n attribute: false,\n })\n accessor dropdownStyle: CSSProperties | undefined;\n\n @property({\n type: Boolean,\n })\n accessor popupMatchSelectWidth: boolean | undefined = true;\n\n /**\n * @detail { value: AntdTreeSelectProps[\"value\"], selectedOptions: DefaultOptionType[] | DefaultOptionType[][] }\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<{\n value: AntdTreeSelectProps[\"value\"];\n }>;\n\n handleOnChange = (value: AntdTreeSelectProps[\"value\"]): void => {\n this.value = value;\n this.#changeEvent.emit({ value });\n };\n\n @event({ type: \"search\" })\n accessor #searchEvent!: EventEmitter<string>;\n\n #handleSearch = (value: string): void => {\n this.#searchEvent.emit(value);\n };\n\n @event({ type: \"select\" })\n accessor #selectEvent!: EventEmitter<{ value: AntdTreeSelectProps[\"value\"] }>;\n\n #handleSelect = (value: AntdTreeSelectProps[\"value\"]): void => {\n this.#selectEvent.emit({ value });\n };\n\n @event({ type: \"expand\" })\n accessor #expandEvent!: EventEmitter<{ keys: React.Key[] }>;\n\n #handleExpand = (keys: React.Key[]): void => {\n this.#expandEvent.emit({ keys });\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this as HTMLElement}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n notRender={this.notRender}\n trigger=\"handleOnChange\"\n >\n <TreeSelectElement\n shadowRoot={this.shadowRoot}\n checkable={this.checkable}\n treeData={this.treeData}\n treeDefaultExpandAll={this.treeDefaultExpandAll}\n fieldNames={this.fieldNames}\n filterTreeNode={this.filterTreeNode}\n value={this.value}\n multiple={this.multiple}\n placeholder={this.placeholder}\n loading={this.loading}\n disabled={this.disabled}\n allowClear={this.allowClear}\n showSearch={this.showSearch}\n suffixIcon={this.suffixIcon}\n size={this.size}\n popupPlacement={this.popupPlacement}\n treeExpandedKeys={this.treeExpandedKeys}\n maxTagCount={this.maxTagCount}\n dropdownStyle={this.dropdownStyle}\n onChange={this.handleOnChange}\n onSearch={this.#handleSearch}\n onSelect={this.#handleSelect}\n onTreeExpand={this.#handleExpand}\n popupMatchSelectWidth={this.popupMatchSelectWidth}\n />\n </WrappedFormItem>\n );\n }\n}\n\ninterface TreeSelectComponentProps extends TreeSelectProps {\n onChange?: (value: AntdTreeSelectProps[\"value\"]) => void;\n}\n\nfunction TreeSelectElement(\n props: TreeSelectComponentProps\n): React.ReactElement {\n const {\n shadowRoot,\n checkable,\n loading,\n treeData,\n treeExpandedKeys,\n treeDefaultExpandAll,\n fieldNames,\n value,\n placeholder,\n disabled,\n multiple,\n allowClear,\n popupPlacement,\n dropdownStyle,\n suffixIcon,\n size,\n maxTagCount,\n onChange,\n onSearch,\n onSelect,\n onTreeExpand,\n showSearch,\n popupMatchSelectWidth,\n } = props;\n\n const currentTheme = useCurrentTheme();\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n /* istanbul ignore next */\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={shadowRoot as ShadowRoot} cache={cache}>\n <TreeSelect\n getPopupContainer={(trigger) => trigger.parentElement}\n allowClear={allowClear}\n loading={loading}\n disabled={disabled}\n multiple={multiple}\n fieldNames={fieldNames}\n placeholder={placeholder}\n placement={popupPlacement}\n dropdownStyle={dropdownStyle}\n suffixIcon={suffixIcon && <WrappedIcon {...suffixIcon} />}\n maxTagCount={maxTagCount}\n value={value}\n size={size}\n treeData={treeData}\n treeCheckable={checkable}\n treeExpandedKeys={treeExpandedKeys}\n treeDefaultExpandAll={treeDefaultExpandAll}\n onChange={onChange}\n onSelect={onSelect}\n onSearch={onSearch}\n onTreeExpand={onTreeExpand}\n virtual={false}\n showSearch={showSearch}\n popupMatchSelectWidth={popupMatchSelectWidth}\n className={classNames({\n notPopupMatchSelectWidth: !popupMatchSelectWidth,\n })}\n />\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { Tooltip, ConfigProvider } from \"antd\";\nimport {\n StyleProvider,\n createCache,\n legacyLogicalPropertiesTransformer,\n} from \"@ant-design/cssinjs\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 超出宽度鼠标悬浮显示tooltip\n * 构件 `eo-text-tooltip`\n */\nexport\n@defineElement(\"eo-text-tooltip\", {\n styleTexts: [styleText],\n})\nclass EoTextTooltip extends ReactNextElement implements EoTextTooltipProps {\n /**\n * 文案\n * @default\n */\n @property({ type: String })\n accessor label: string | undefined;\n\n /**\n * 省略行数\n * @default 1\n */\n @property({ type: Number })\n accessor lineClamp: number = 1;\n\n render() {\n return (\n <EoTextTooltipComponent label={this.label} lineClamp={this.lineClamp} />\n );\n }\n}\n\nexport interface EoTextTooltipProps {\n label?: string;\n lineClamp?: number;\n}\n\nexport function EoTextTooltipComponent(props: EoTextTooltipProps) {\n const { lineClamp, label } = props;\n const ref = useRef<HTMLDivElement>(null);\n // 是否显示tooltip\n const [show, setShow] = useState(false);\n // 判断是否需要显示省略号\n const isEllipsis = useCallback(() => {\n const parentDom = ref.current;\n /* istanbul ignore if */\n if (!parentDom) return false;\n const { offsetWidth, offsetHeight, scrollWidth, scrollHeight } = parentDom;\n return offsetWidth < scrollWidth || offsetHeight < scrollHeight;\n }, [lineClamp, label]);\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n useEffect(() => {\n setShow(isEllipsis());\n }, [isEllipsis]);\n return (\n <ConfigProvider prefixCls=\"antdV5\">\n <StyleProvider\n cache={cache}\n hashPriority=\"high\"\n transformers={[legacyLogicalPropertiesTransformer]}\n >\n <Tooltip\n title={\n /* istanbul ignore next */\n show ? label : null\n }\n >\n <div\n ref={ref}\n className=\"ellipsisWrap\"\n style={\n {\n \"--line-clamp\": lineClamp,\n } as React.CSSProperties\n }\n >\n {label}\n </div>\n </Tooltip>\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { Worker, Viewer } from \"@react-pdf-viewer/core\";\n\n// Plugins\nimport { defaultLayoutPlugin } from \"@react-pdf-viewer/default-layout\";\n\n// Import styles\nimport \"@react-pdf-viewer/core/lib/styles/index.css\";\nimport \"@react-pdf-viewer/default-layout/lib/styles/index.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PdfViewerProps {\n url: string;\n page?: number;\n search?: string;\n viewerStyle?: React.CSSProperties | undefined;\n}\n\n/**\n * 构件 `advanced.pdf-viewer`\n */\nexport\n@defineElement(\"advanced.pdf-viewer\", {\n // 样式文件引入报错,使用非shadow dom模式正常\n shadowOptions: false,\n})\nclass PdfViewer extends ReactNextElement implements PdfViewerProps {\n @property()\n accessor url!: string;\n\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n @property()\n accessor search: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor viewerStyle: React.CSSProperties | undefined;\n\n render() {\n return (\n <PdfViewerComponent\n url={this.url}\n page={this.page ? this.page - 1 : 0}\n search={this.search}\n viewerStyle={this.viewerStyle}\n />\n );\n }\n}\n\nexport interface PdfViewerComponentProps extends PdfViewerProps {\n // Define event handlers here.\n}\n\nexport function PdfViewerComponent({\n url,\n search,\n page,\n viewerStyle,\n}: PdfViewerComponentProps) {\n // https://react-pdf-viewer.dev/examples/jump-to-the-first-match-of-pre-defined-keywords-automatically/\n const [isDocumentLoaded, setDocumentLoaded] = useState(false);\n\n const defaultLayoutPluginInstance = defaultLayoutPlugin();\n\n useEffect(() => {\n if (isDocumentLoaded && search) {\n defaultLayoutPluginInstance.toolbarPluginInstance.searchPluginInstance.highlight(\n {\n keyword: search,\n }\n );\n }\n }, [isDocumentLoaded, search]);\n\n return (\n // See: https://react-pdf-viewer.dev/examples/compile-and-set-the-worker-source-with-webpack/\n <Worker\n workerUrl={`${process.env.NODE_ENV === \"test\" ? \"\" : __webpack_public_path__}workers/pdf.worker.min.js`}\n >\n <div style={viewerStyle}>\n <Viewer\n fileUrl={url}\n initialPage={page}\n plugins={[defaultLayoutPluginInstance]}\n onDocumentLoad={() => setDocumentLoaded(true)}\n />\n </div>\n </Worker>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline;width:-moz-fit-content;width:fit-content;max-width:100%}:host([hidden]){display:none}.ellipsisWrap{display:-webkit-box;word-break:break-all;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:var(--line-clamp);white-space:normal;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-grid-layout{position:relative;transition:height 200ms ease}.react-grid-item{transition:all 200ms ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:0.2;transition-duration:100ms;z-index:2;-webkit-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item > .react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item > .react-resizable-handle::after{content:\"\";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,0.4);border-bottom:2px solid rgba(0,0,0,0.4)}.react-resizable-hide > .react-resizable-handle{display:none}.react-grid-item > .react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-w,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-n,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item > .react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item > .react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.ant-tree-select{width:100%;min-height:28px;height:max-content}.ant-select-lg{height:38px}.ant-select-sm{height:20px}.ant-select-multiple .ant-select-selector{border-radius:var(--small-border-radius)}.ant-select-multiple .ant-select-selector:after{line-height:22px}.notPopupMatchSelectWidth .ant-select-tree-title{white-space:nowrap}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host .ant-tree{background-color:transparent}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.componentItemIcon--znvUWa0v{font-size:16px;color:#262626;margin-top:2px}.componentItemWrapper--mLC8xy_9{display:flex;flex-direction:column}.componentItemTitle--zo3KGnys{font-weight:400;font-size:12px;color:#595959;line-height:18px;text-align:left;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.componentItemContent--zOG8IL31{background-color:#f3f4f7;cursor:move;display:flex;justify-content:center;align-items:center}.componentItemThumbnail--epDINDMl{background:#ffffff;border:4px solid #f3f4f7;width:96px;height:64px;border-radius:1px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"componentItemIcon\": `componentItemIcon--znvUWa0v`,\n\t\"componentItemWrapper\": `componentItemWrapper--mLC8xy_9`,\n\t\"componentItemTitle\": `componentItemTitle--zo3KGnys`,\n\t\"componentItemContent\": `componentItemContent--zOG8IL31`,\n\t\"componentItemThumbnail\": `componentItemThumbnail--epDINDMl`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--eo-table-head-cell-padding:14px 16px;--eo-table-head-cell-height:51px;--eo-table-body-cell-padding:11px 16px;--eo-table-body-cell-height:45px}html[data-ui=\"v8-2\"] eo-next-table:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:9px 16px;--eo-table-head-cell-height:41px}html[data-ui=\"v8-2\"] eo-next-table[size=\"large\"]:not([theme-variant=\"elevo\"]){--eo-table-body-cell-padding:9px 16px;--eo-table-body-cell-height:45px}html[data-ui=\"v8-2\"] eo-next-table[size=\"middle\"]:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:7px 16px;--eo-table-head-cell-height:37px;--eo-table-body-cell-padding:6px 16px;--eo-table-body-cell-height:39px}html[data-ui=\"v8-2\"] eo-next-table[size=\"small\"]:not([theme-variant=\"elevo\"]){--eo-table-head-cell-padding:3px 16px;--eo-table-head-cell-height:29px;--eo-table-body-cell-padding:1px 16px;--eo-table-body-cell-height:31px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.component--MVAoEnGN{height:100%}.editMask--nl6r17tE{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}.deleteIcon--tNyE_ou4{position:absolute;right:15px;top:15px;cursor:pointer;font-size:16px;width:30px;height:30px;display:flex;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text)}.deleteIcon--tNyE_ou4:hover{color:var(--color-error)}.deleteIcon--tNyE_ou4:active{color:var(--color-error-active)}.itemWrapper--_lUkkTz1{position:relative;width:100%}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"component\": `component--MVAoEnGN`,\n\t\"editMask\": `editMask--nl6r17tE`,\n\t\"deleteIcon\": `deleteIcon--tNyE_ou4`,\n\t\"itemWrapper\": `itemWrapper--_lUkkTz1`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ant-select-single .ant-select-selector{border-radius:var(--medius-border-radius)}.ant-select-dropdown{border-radius:var(--medius-border-radius)}.ant-cascader-dropdown .ant-cascader-menu-item{border-radius:var(--small-border-radius)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--eo-next-table-header-border-radius:0}:host([hidden]){display:none}:host([bordered]){--eo-next-table-header-border-radius:4px}.pagination-wrapper{display:flex;gap:20px}.pagination-total-text{color:var(--color-secondary-text)}.pagination-total-number{font-weight:var(--font-weight-400);color:var(--color-normal-text)}.select-info{display:flex;gap:10px}.ant-pagination-total-text{position:absolute;left:0}.ant-pagination-options{order:-1;padding-right:12px}.ant-table-wrapper{background:var(--eo-table-wrapper-background)}.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-thead\n > tr\n > th,\n.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-tbody\n > tr\n > th,\n.next-table.ant-table-wrapper .ant-table .ant-table-container tfoot > tr > th{padding:var(--eo-table-head-cell-padding);height:var(--eo-table-head-cell-height)}.next-table.ant-table-wrapper .ant-table .ant-table-container .ant-table-cell,\n.next-table.ant-table-wrapper\n .ant-table\n .ant-table-container\n .ant-table-tbody\n > tr\n > td,\n.next-table.ant-table-wrapper .ant-table .ant-table-container tfoot > tr > td{padding:var(--eo-table-body-cell-padding);height:var(--eo-table-body-cell-height)}.ant-table-ping-left .ant-table-cell-fix-left-last::after{box-shadow:var(--left-slide-shadow)}.ant-table-ping-right .ant-table-cell-fix-right-first::after{box-shadow:var(--right-slide-shadow)}.ant-pagination-options .ant-select .ant-select-selector{border:none;box-shadow:none!important;color:var(--color-normal-text)}.ant-pagination .ant-pagination-item:not(.ant-pagination-item-active) a{color:var(--color-normal-text)}.ant-table-expanded-row eo-next-table{--eo-table-wrapper-background:var(--antd-table-row-expand-nested-wrapper);--antd-table-header-bg:initial}.next-table.ant-table-wrapper .ant-table-container,\n.next-table.ant-table-wrapper\n .ant-table-container\n table\n > tbody\n > tr:last-child\n > *:first-child{border-bottom-left-radius:var(--eo-next-table-header-border-radius)}.next-table.ant-table-wrapper\n .ant-table-container\n table\n > tbody\n > tr:last-child\n > *:last-child{border-bottom-right-radius:var(--eo-next-table-header-border-radius)}.next-table.ant-table-wrapper tr.ant-table-expanded-row > th,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row:hover > th,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row > td,\n.next-table.ant-table-wrapper tr.ant-table-expanded-row:hover > td{background-color:var(--color-fill-global-bg-1)}.next-table.ant-table-wrapper .ant-table-container::before{left:0}.next-table.ant-table-wrapper .ant-table-container::after{right:0}.ant-pagination-options .ant-select .ant-select-arrow{left:auto;right:11px}.next-table.ant-table-wrapper\n .ant-table-ping-left\n .ant-table-cell-fix-left-first::after,\n.next-table.ant-table-wrapper\n .ant-table-ping-left\n .ant-table-cell-fix-left-last::after{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-right\n .ant-table-cell-fix-right-first::after,\n.next-table.ant-table-wrapper\n .ant-table-ping-right\n .ant-table-cell-fix-right-last::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-left:not(.ant-table-has-fix-left)\n .ant-table-container::before{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper\n .ant-table-ping-right:not(.ant-table-has-fix-right)\n .ant-table-container::after{box-shadow:inset -10px 0 8px -8px rgba(0,0,0,0.15)}.next-table.ant-table-wrapper .ant-table-column-sorters{justify-content:initial}.next-table.ant-table-wrapper .ant-table-column-title{flex:initial}.next-table.ant-table-wrapper .ant-table-column-sorter{margin-left:8px}.expand-icon{font-size:11px;background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.next-table.ant-table-wrapper .ant-table-row-indent + .expand-icon{margin-top:2.5px;margin-right:8px}.invisible{visibility:hidden}.next-table.ant-table-wrapper\n .ant-table.ant-table-bordered\n > .ant-table-container\n > .ant-table-content\n > table\n > tbody\n > tr.ant-table-placeholder\n > td\n > .ant-table-expanded-row-fixed::after{border-right:none}.next-table.row-clickable .ant-table-tbody > tr{cursor:pointer}:host([theme-variant=\"elevo\"]){--eo-next-table-header-border-radius:var(--elevo-border-radius);--eo-table-head-cell-height:41px;--eo-table-head-cell-padding:9px 16px;--eo-table-body-cell-height:44px;--eo-table-body-cell-padding:9px 16px}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table{background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter);border-radius:var(--elevo-border-radius);color:rgba(0,0,0,0.8)}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-thead > tr > th{color:rgba(38,38,38,0.65);font-size:12px;font-weight:400}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-thead > tr > td{color:rgba(38,38,38,0.65);font-size:12px;font-weight:400}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before{border-radius:var(--elevo-border-radius) 0 0 var(--elevo-border-radius)}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after{border-radius:0 var(--elevo-border-radius) var(--elevo-border-radius) 0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered{background:#fff}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered .ant-table-thead > tr > th{color:#262626;background:#f3f6fa;font-weight:500}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > th{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > td{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td{border-right-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > th:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > th:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > td:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > td:not(:last-child){border-right:0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > th{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > th{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > td{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > td{border-color:#d9d9d9}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) .ant-table-tbody > tr > td{border-bottom:none}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container{border-left:1px solid #f0f0f0;border-top:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead > tr > th:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody > tr > th:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead > tr > td:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody > tr > td:last-child{border-right:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > th{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > th{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > thead:last-child > tr:last-child > td{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .next-table.ant-table-wrapper .ant-table:not(.ant-table-bordered) > .ant-table-container > .ant-table-content > table > tbody:last-child > tr:last-child > td{border-bottom:1px solid #f0f0f0}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item{background:transparent}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item a{color:#595959}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item:hover{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item-active{background:rgba(211,213,228,0.3);border-color:transparent}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-item-active a{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-prev:hover .ant-pagination-item-link{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-next:hover .ant-pagination-item-link{background:rgba(211,213,228,0.3)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"]) .ant-pagination .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon{color:var(--elevo-color-brand)}:host([theme-variant=\"elevo\"][size=\"small\"]),\n:host([theme-variant=\"elevo\"][size=\"middle\"]){--eo-table-head-cell-height:35px;--eo-table-head-cell-padding:7px 16px;--eo-table-body-cell-height:40px;--eo-table-body-cell-padding:7px 16px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!../../../../node_modules/react-grid-layout/css/styles.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!../../../../node_modules/react-resizable/css/styles.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.react-grid-item.react-grid-placeholder{background-color:#ddd}.react-grid-item.react-draggable-dragging{pointer-events:none}.react-grid-item.react-grid-placeholder.forbidden{background-color:red}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.gridLayoutWrapper--DIttynOM{display:flex;height:100%;position:relative;width:100%}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP{width:132px;padding:6px 12px 6px 16px;overflow-y:auto;box-shadow:1px 0 0 0 var(--palette-gray-4);background:var(--color-fill-bg-container-1);z-index:998;position:sticky;top:0}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentTitle--nKf9GEoj{font-size:16px;padding:6px 0;font-weight:500;color:#262626;line-height:22px;text-align:left}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB{margin-top:12px;width:100%;display:flex;flex-direction:column;gap:10px}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB eo-checkbox::part(checkbox-option){margin-left:0;width:100%;background:none}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;overflow:hidden}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layout--kz28taJj,.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .actionsWrapper--vQro2Dyn{width:100%}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layout--kz28taJj{flex-grow:1}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layoutEdit--FVqWXNWj{overflow-y:auto}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .actionsWrapper--vQro2Dyn{position:sticky;top:0;z-index:997;margin-left:1px;display:flex;gap:8px;justify-content:flex-end;background:var(--color-fill-bg-container-1);padding:8px 12px;box-shadow:0 1px 1px 0 var(--palette-gray-5)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"gridLayoutWrapper\": `gridLayoutWrapper--DIttynOM`,\n\t\"componentWrapper\": `componentWrapper--P8xsKOQP`,\n\t\"componentTitle\": `componentTitle--nKf9GEoj`,\n\t\"componentList\": `componentList--s3XnAYsB`,\n\t\"layoutWrapper\": `layoutWrapper--pk1t3UAR`,\n\t\"layout\": `layout--kz28taJj`,\n\t\"actionsWrapper\": `actionsWrapper--vQro2Dyn`,\n\t\"layoutEdit\": `layoutEdit--FVqWXNWj`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/react-grid-layout/css/styles.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/react-resizable/css/styles.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}.grid-layout-wrapper{display:flex;height:100%;position:relative}.grid-layout-wrapper .component-wrapper{width:150px;padding:6px 12px;overflow-y:scroll;box-shadow:1px 0 0 0 var(--palette-gray-5);background:var(--color-fill-bg-container-1);z-index:999;position:sticky;top:0}.grid-layout-wrapper .component-wrapper .component-title{font-size:16px;padding:6px 0;font-weight:500}.grid-layout-wrapper .component-wrapper .component-list{margin-top:6px}.grid-layout-wrapper .component-wrapper .component-list eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}.grid-layout-wrapper .component-wrapper .component-list eo-checkbox::part(checkbox-option){margin-left:0;width:100%;background:none}.grid-layout-wrapper .layout-wrapper{flex:1}.grid-layout-wrapper .layout-wrapper .layout{max-width:1300px;margin:0 auto}.grid-layout-wrapper .layout-wrapper .actions-wrapper{position:sticky;top:0;z-index:999;margin-left:1px;display:flex;gap:8px;justify-content:flex-end;background:var(--color-fill-bg-container-1);padding:8px 12px;box-shadow:0 1px 1px 0 var(--palette-gray-5)}.grid-layout-wrapper .layout-wrapper .edit-mask{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}.grid-layout-wrapper .layout-wrapper .delete-icon{position:absolute;right:15px;top:15px;cursor:pointer;font-size:16px;width:30px;height:30px;display:flex;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text)}.grid-layout-wrapper .layout-wrapper .delete-icon:hover{color:var(--color-error)}.grid-layout-wrapper .layout-wrapper .delete-icon:active{color:var(--color-error-active)}.react-grid-item.react-grid-placeholder{background-color:#ddd}.react-grid-item.react-draggable-dragging{pointer-events:none}.react-grid-item.react-grid-placeholder.forbidden{background-color:red}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","compareFunMap","$eq","isEqual","$lt","lt","$lte","lte","$gt","gt","$gte","gte","$ne","value","fieldValue","$isEqual","$notEqual","$in","includes","$nin","$exists","isUndefined","getCellStyle","cellStatus","item","dataIndex","mapping","list","finalValue","undefined","get","ret","find","borderLeft","leftBorderColor","getKeysOfData","data","rowKey","childrenColumnName","keys","forEach","children","key","length","getRowsOfData","rows","stripEmptyExpandableChildrenByName","name","arguments","_value$name","initializeReactI18n","en","zh","type","downMenuIcon","lib","icon","theme","rightMenuIcon","WrappedIcon","wrapBrick","DraggableBodyRow","_ref","index","moveRow","className","style","restProps","ref","React","isOver","dropClassName","drop","useDrop","accept","collect","monitor","dragIndex","getItem","drag","useDrag","isDragging","_extends","classNames","cursor","BrickTable","props","locale","i18n","language","split","zhCN","enUS","error","configProps","pagination","sortBy","columns","expandIconAsCell","expandIconColumnIndex","scroll","onDelete","ellipsisInfo","showHeader","initData","useMemo","_props$dataSource","dataSource","map","isNil","setData","useState","rowKeyExpandIconMapRef","useRef","Map","columnTitleBrickDataMapRef","useBrickItemBrickDataMapRef","itemExpandedRowBrickDataMapRef","useEffect","current","clear","expandIconColumnIndexOffset","rowSelection","customColumns","column","useBrick","valueSuffix","cellStyle","headerBrick","colSpanKey","rowSpanKey","filterDropdownBrick","columnConf","title","set","getCustomHeader","ReactUseMultipleBricks","filterDropdown","itemBrickDataMap","render","getCustomComp","brickData","cellData","rowData","columnIndex","shouldCellUpdate","record","prevRecord","Number","innerRender","colSpan","rowSpan","toPath","verticalAlign","components","body","row","hoverIndex","dragRow","newData","update","$splice","onDrag","pickExpandProps","pickBy","expandRowByClick","expandedRowKeys","defaultExpandAllRows","table","Table","expandIconCellHidden","customDropTable","tableDraggable","tableThTransparent","thTransparent","zebraPatternTable","zebraPattern","xSmallSizeTable","onRow","onChange","expandedRowBrick","expandedRowRender","_props$expandedRowBri","rowIndex","onExpand","expanded","showSorterTooltip","onExpandedRowsChange","expandedRows","rowClassName","invalidRow","disabledRow","expandIcon","iconProps","_props$expandIcon","expandable","iconNode","collapsedIcon","_props$expandIcon2","expandedIcon","onClick","e","visibility","DndProvider","backend","HTML5Backend","context","window","cahce","createCache","ConfigProvider","StyleProvider","container","shadowRoot","cache","defineElement","property","event","method","createDecorators","_TableComponent","_A","WeakMap","_TableComponent_brand","WeakSet","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_total","_AA","TableComponent","ReactNextElement","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_pageUpdate","_init_extra_pageUpdate","_init_filterUpdate","_init_extra_filterUpdate","_init_selectUpdate","_init_extra_selectUpdate","_init_selectRowKeysUpdate","_init_extra_selectRowKeysUpdate","_init_sortUpdate","_init_extra_sortUpdate","_init_rowExpand","_init_extra_rowExpand","_init_expandRowsChange","_init_extra_expandRowsChange","_init_rowDrag","_init_extra_rowDrag","_init_showCard","_init_extra_showCard","_init_rowSelection","_init_extra_rowSelection","_init_rowKey","_init_extra_rowKey","_init_hiddenColumns","_init_extra_hiddenColumns","_init_showSelectInfo","_init_extra_showSelectInfo","_init_filters","_init_extra_filters","_init_configProps","_init_extra_configProps","_init_sort","_init_extra_sort","_init_order","_init_extra_order","_init_rowDisabledConfig","_init_extra_rowDisabledConfig","_init_expandedRowBrick","_init_extra_expandedRowBrick","_init_expandIcon","_init_extra_expandIcon","_init_expandIconAsCell","_init_extra_expandIconAsCell","_init_expandIconColumnIndex","_init_extra_expandIconColumnIndex","_init_expandRowByClick","_init_extra_expandRowByClick","_init_optimizedColumns","_init_extra_optimizedColumns","_init_stripEmptyExpandableChildren","_init_extra_stripEmptyExpandableChildren","_init_defaultExpandAllRows","_init_extra_defaultExpandAllRows","_init_ellipsisInfo","_init_extra_ellipsisInfo","_init_expandedRowKeys","_init_extra_expandedRowKeys","_init_selectAllChildren","_init_extra_selectAllChildren","_init_defaultSelectAll","_defineProperty","_init_extra_defaultSelectAll","_init_childrenColumnName","_init_extra_childrenColumnName","_init_sortable","_init_extra_sortable","_init_frontSearch","_init_extra_frontSearch","_init_frontSearchQuery","_init_extra_frontSearchQuery","_init_exactSearch","_init_extra_exactSearch","_init_frontSearchFilterKeys","_init_extra_frontSearchFilterKeys","_init_page","_init_extra_page","_init_pageSize","_init_extra_pageSize","_init_scrollConfigs","x","_init_extra_scrollConfigs","_init_qField","_init_extra_qField","_init_tableDraggable","_init_extra_tableDraggable","_init_zebraPattern","_init_extra_zebraPattern","_init_storeCheckedByUrl","_init_extra_storeCheckedByUrl","_init_extraRows","_init_extra_extraRows","_init_autoSelectParentWhenAllChildrenSelected","_init_extra_autoSelectParentWhenAllChildrenSelected","_init_thTransparent","_init_extra_thTransparent","_init_showHeader","_init_extra_showHeader","_init_pagination","_init_extra_pagination","_init_size","_init_extra_size","_init_type","_init_extra_type","_init_shouldUpdateUrlParams","_init_extra_shouldUpdateUrlParams","_init_shouldRenderWhenUrlParamsUpdate","_init_extra_shouldRenderWhenUrlParamsUpdate","page","pageSize","total","ascend","descend","_init_selectedRowKeys","_init_extra_selectedRowKeys","_ref2","_this$rowKey","_this$configProps","this","_fields","parent","matchedParent","some","_findParentByChildKeyValue","selectedRowKeys","selectedRows","_getRowKey","rowKeyRowMap","keyBy","_selected","_selectedRowKeys","_allChildren","child","rowKeyValue","autoSelectParentWhenAllChildrenSelected","_selectedRow","selectedRowKeySet","Set","_dataSource","every","has","uniq","pullAll","concat","extraRowKeyRowMap","extraRows","_selectedRows","detail","isEmpty","_selectUpdateEventDetailField","_selectUpdateEventDetailKeys","merge","_selectUpdateEventDetailExtra","_selectUpdateEventName","dispatchEvent","CustomEvent","_classPrivateGetter","_get_selectUpdate","emit","_get_selectRowKeysUpdate","result","isArray","_getSelectedRowsWithChildren","checked","_isInSelect","allChildren","selectAllChildren","_disabledChildrenKeys","storeCheckedByUrl","_updateUrlChecked","selected","changeRows","allParentKeys","changedParentRows","filter","v","toChangedChildrenKeys","flatten","r","cr","history","getHistory","URLSearchParams","location","search","options","checkedOptions","_getCheckedFromUrl","pull","shouldUpdateUrlParams","pushQuery","join","notify","filters","sorter","urlSearchParams","_get_filterUpdate","newPage","_get_pageUpdate","delete","order","columnKey","sort","_get_sortUpdate","frontSearch","frontendSearch","shouldRenderWhenUrlParamsUpdate","marginLeft","role","pullKeys","recordChildren","keysToPull","c","_render","_get_rowExpand","_get_expandRowsChange","_get_rowDrag","allRows","_getAllRows","_this$configProps$row","_this$configProps3","defaultPagination","_classPrivateFieldGet","showSizeChanger","pageSizeOptions","showTotal","totals","_this$configProps2","showSelectInfo","renderSelectInfo","rowDisabledConfig","Array","defaultRowSelection","defaultSelectAll","_handleDefaultSelectAll","onSelect","_handleOnSelect","onSelectAll","_handleSelectAll","_handleRowSelectChange","preserveSelectedRowKeys","getCheckboxProps","disabled","config","field","operator","fun","_finalConfigProps","cloneDeep","size","rowSelec","_this$type","_this$type2","_columns","sortOrder","_urlSearchParams$get","_get","filteredValue","filtered","_find$value","_find","f","String","_ref3","_get2","_ref4","_ref5","_get3","_this$configProps4","_originalDataSource","_pureSource","stripEmptyExpandableChildren","_classPrivateFieldSet","showCard","hiddenColumns","optimizedColumns","sortable","fields","frontSearchQuery","exactSearch","frontSearchFilterKeys","scrollConfigs","qField","processedDataSource","processConfigProps","processedColumns","getModifyColumns","filterSourceData","q","trim","toLowerCase","handleFrontendDataChange","tempDataSource","handleFrontendFilterSource","handleFrontendSorter","handleFrontendFilters","filterKeys","_filterKeys","filteredChildren","JSON","stringify","direction","a","b","aValue","bValue","filtersArray","k","_filter$value$include","_filter$value","expandAll","allKeys","_this$hiddenColumns","_ref6","_initConfigProps","_error","_handleOnChange","_handleOnExpand","_handleOnExpandedRowsChange","draggable","_handleOnDrag","_test_only_getOriginalDataSource","updateData","updateError","selectUpdateEventName","selectUpdateEventDetailKeys","selectUpdateEventDetailField","selectUpdateEventDetailExtra","_TableComponent2","_set_pageUpdate","_set_filterUpdate","_set_selectUpdate","_set_selectRowKeysUpdate","_set_sortUpdate","_set_rowExpand","_set_expandRowsChange","_set_rowDrag","_initClass","_applyDecs","styleTexts","styleText","alias","o","cancelable","Boolean","attribute","_","_checkInRHS","_FormItemElementBase_brand","FormItemElementBase","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_classPrivateSetter","_set_validate","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","WrappedFormItem","_CascaderBrick","_CascaderBrick_brand","CascaderElement","fieldNames","placeholder","multiple","allowClear","showSearch","expandTrigger","limit","popupPlacement","cascaderStyle","suffixIcon","maxTagCount","currentTheme","useCurrentTheme","algorithm","darkAlgorithm","defaultAlgorithm","hashPriority","Cascader","getPopupContainer","trigger","parentElement","inputValue","path","label","filterValues","toLocaleLowerCase","j","option","placement","selectedOptions","_CascaderBrick2","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_options","_init_extra_options","_init_fieldNames","_init_extra_fieldNames","_init_value","_init_extra_value","_init_placeholder","_init_extra_placeholder","_init_multiple","_init_extra_multiple","_init_disabled","_init_extra_disabled","_init_allowClear","_init_extra_allowClear","_init_showSearch","_init_extra_showSearch","_init_suffixIcon","_init_extra_suffixIcon","_init_expandTrigger","_init_extra_expandTrigger","_init_popupPlacement","_init_extra_popupPlacement","_init_limit","_init_extra_limit","_init_maxTagCount","_init_extra_maxTagCount","_init_cascaderStyle","_init_extra_cascaderStyle","_init_changeEvent","_init_extra_changeEvent","Promise","resolve","then","_get_changeEvent","required","exportparts","curElement","formElement","handleOnChange","_set_changeEvent","K","NS","defaultPaginationConfig","defaultRowSelectionConfig","getSearchKeywords","Object","prototype","call","flat","Infinity","getValueByDataIndex","searchList","searchFields","reduce","pre","keywords","flatMap","newRow","isPlainObject","getAllKeys","childrenKeys","THEME_COLORS","getCellStatusStyle","col","_col$cellStatus$dataI","_col$cellStatus$mappi","match","m","boxShadow","Row","forwardRef","DraggableRow","attributes","listeners","setNodeRef","transform","transition","useSortable","CSS","Transform","touchAction","position","zIndex","CacheUseBrickItem","cacheData","setCacheData","values","TOTAL","SELECT_INFO","SELECT_INFO_plural","CLEAR","WrappedLink","NextTableComponent","_dataSource$page","_dataSource$pageSize","_props$expandedRowKey","_expandConfig$expande","_expandConfig$expandI","cell","loading","multiSort","rowDraggable","rowClickable","bordered","scrollConfig","themeVariant","onPageChange","onPageSizeChange","onSort","onRowClick","onRowSelect","onRowExpand","onRowDrag","t","useTranslation","styleCache","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","setList","keyList","_list$map","setPageAndPageSize","setSelectedRowKeys","setExpandedRowKeys","setSort","isTreeData","_dataSource$list","_v$childrenColumnName","_props$expandedRowKey2","_dataSource$page2","_dataSource$pageSize2","hiddenColumnsSet","optimizedColumnsSet","sortMap","curSort","comparator","recordA","recordB","aIsNil","bIsNil","naturalComparator","compare","sortPriority","preRecord","_cell$header","_col$headerBrick","header","onCell","cellColSpanKey","cellRowSpanKey","onHeaderCell","headerStyle","rowSelectionConfig","paginationConfig","expandConfig","useImperativeHandle","_pre$pageSize","onDragEnd","useCallback","active","over","prev","activeIndex","findIndex","overIndex","newList","arrayMove","headerBorderRadius","headerSplitColor","headerBg","headerSortActiveBg","headerSortHoverBg","bodySortBg","rowHoverBg","borderColor","cellPaddingInline","cellPaddingInlineMD","cellPaddingInlineSM","DndContext","collisionDetection","closestCenter","modifiers","restrictToVerticalAxis","restrictToFirstScrollableAncestor","SortableContext","items","strategy","verticalListSortingStrategy","variant","Trans","i18nKey","el","count","info","rowDisabled","checkIfByTransform","if","rowExpandable","indent","expandIconBrick","DefaultExpandIcon","newRows","_filters","extra","action","_pagination$pageSize","_pagination$current","_pagination$pageSize2","newSort","IconComponent","DownOutlined","RightOutlined","invisible","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_EoNextTable","_tableRef","_EoNextTable_brand","_handlePageChange","_handlePageSizeChange","_handleSort","_handleRowClick","_handleRowSelect","_handleRowExpand","_handleExpandedRowsChange","_handleRowDrag","EoNextTable","createRef","_init_columns","_init_extra_columns","_init_cell","_init_extra_cell","_init_dataSource","_init_extra_dataSource","_init_loading","_init_extra_loading","_init_multiSort","_init_extra_multiSort","_init_expandable","_init_extra_expandable","_init_rowDraggable","_init_extra_rowDraggable","_init_rowClickable","_init_extra_rowClickable","_init_searchFields","_init_extra_searchFields","_init_bordered","_init_extra_bordered","_init_scrollConfig","_init_extra_scrollConfig","_init_injectChartV2Styles","_init_extra_injectChartV2Styles","_init_themeVariant","_init_extra_themeVariant","_init_pageChangeEvent","_init_extra_pageChangeEvent","_get_pageChangeEvent","_init_pageSizeChangeEvent","_init_extra_pageSizeChangeEvent","_get_pageSizeChangeEvent","_init_sortChangeEvent","_init_extra_sortChangeEvent","_get_sortChangeEvent","_init_rowClickEvent","_init_extra_rowClickEvent","_get_rowClickEvent","_init_rowSelectEvent","_init_extra_rowSelectEvent","_init_rowSelectV2Event","_init_extra_rowSelectV2Event","_get_rowSelectEvent","_get_rowSelectV2Event","_init_rowExpandEvent","_init_extra_rowExpandEvent","_get_rowExpandEvent","_init_expandedRowsChangeEvent","_init_extra_expandedRowsChangeEvent","_get_expandedRowsChangeEvent","_init_rowDragEvent","_init_extra_rowDragEvent","_get_rowDragEvent","injectChartV2Styles","params","_classPrivateFieldGet2","chartStyleText","_EoNextTable2","_set_pageChangeEvent","_set_pageSizeChangeEvent","_set_sortChangeEvent","_set_rowClickEvent","_set_rowSelectEvent","_set_rowSelectV2Event","_set_rowExpandEvent","_set_expandedRowsChangeEvent","_set_rowDragEvent","WrappedButton","WrappedDropdownButton","onActionClick","WrappedCheckbox","showDialog","unwrapProvider","getRealKey","isAdmin","auth","getAuth","EoWorkbenchLayoutComponent","cardTitle","layouts","layoutsProps","componentList","isEdit","onSave","onCancel","ResponsiveReactGridLayout","WidthProvider","Responsive","gridLayoutRef","layoutWrapperRef","layoutCacheRef","_setLayouts","cols","setCols","layoutWrapperStyle","setLayoutWrapperStyle","setLayouts","handleChange","handleLayoutChange","currentLayout","isAllowAction","w","y","h","i","minH","matchItem","_currentLayout$t$minH","Math","max","random","handleCheckBoxChange","checkedKeys","layoutsKeys","addItems","layout","handleClearLayout","handleSave","handleDeleteItem","deletedItem","_layouts$filter","stopPropagation","handleEditMaskClick","preventDefault","renderChild","_component$position","component","onMouseDown","ReactUseBrick","computedOptions","computedSelectedComponentKeys","handleWatchLayoutSizeChange","_layoutWrapperRef$cur","_layoutWrapperRef$cur2","top","getClientRects","height","document","clientHeight","overflow","addEventListener","removeEventListener","handleCancel","btnText","actions","text","danger","content","handleActionClick","draggableCancel","breakpoints","lg","md","sm","rowHeight","isResizable","isDraggable","handleDragCallback","oldItem","newItem","_gridLayoutRef$curren","placeholderDOM","querySelector","classList","contains","add","remove","onLayoutChange","onBreakpointChange","handleBreakpointChange","_newBreakpoint","newCols","_EoWorkbenchLayout","_componentRef","_EoWorkbenchLayout_brand","_handleChange","_handleSave","_handleCancel","_handleActionClick","EoWorkbenchLayout","_init_cardTitle","_init_extra_cardTitle","_init_isEdit","_init_extra_isEdit","_init_layouts","_init_extra_layouts","_init_componentList","_init_extra_componentList","_init_saveEvent","_init_extra_saveEvent","_get_saveEvent","_init_cancelEvent","_init_extra_cancelEvent","_get_cancelEvent","_init_actionClickEvent","_init_extra_actionClickEvent","_get_actionClickEvent","_EoWorkbenchLayout2","_set_saveEvent","_set_cancelEvent","_set_actionClickEvent","DroppableComponentLayoutItemElement","cardConfigs","setCardConfigs","omit","cardWidth","newCardConfigs","cardBorderWidth","editMaskTop","noPadding","deleteIconPosition","right","styles","itemWrapper","editMask","deleteIcon","DroppableComponentLayoutItem","memo","DraggableComponentMenuItem","onDragStart","thumbnail","componentItemWrapper","componentItemTitle","componentItemContent","dataTransfer","componentItemThumbnail","src","alt","defaultCardConfig","showMoreIcon","cardBorderStyle","cardTitleFontSize","cardBorderRadius","cardTitleColor","cardBorderColor","cardBgType","getLayoutDefaultCardConfig","cardType","customDefaultCardConfigMap","_moreLinkByCardTypeMa","moreLinkByCardTypeMap","moreIconLink","moreIconText","abnormalResourceInspectionResults","abnormalSystemInspectionResults","CLEAR_CONFIRM","CARD_LIST","CLEAR_CONFIRM_MESSAGE","SAVE","CANCEL","SETTING","MORE","SAVE_AS_TEMPLATE","LOAD_FROM_TEMPLATE","CLEAR_ALL","URl_PREFIX","origin","getBasePath","toolbarBricks","showSettingButton","onSetting","gap","keyComponentMap","draggingComponentRef","currentLayoutsMap","addComponent","currentLayouts","newLayouts","pick","newLayout","dropItem","handleResize","contentHeight","oldLayout","initNewH","newH","ceil","_layout$cardBorderSty","_layout$cardBorderRad","background","cardBackground","border","borderRadius","backdropFilter","SizeMe","monitorHeight","gridLayoutWrapper","componentWrapper","componentTitle","layoutWrapper","actionsWrapper","handleSetting","layoutEdit","layoutItemStyles","isDroppable","compactType","margin","useCSSTransforms","onDropDragOver","onDrop","_EoWorkbenchLayoutV","_EoWorkbenchLayoutV2_brand","_handleSetting","EoWorkbenchLayoutV2","_init_toolbarBricks","_init_extra_toolbarBricks","_init_customDefaultCardConfigMap","_init_extra_customDefaultCardConfigMap","_init_showSettingButton","_init_extra_showSettingButton","_init_gap","_init_extra_gap","_init_settingEvent","_init_extra_settingEvent","_get_settingEvent","connectedCallback","display","super","_EoWorkbenchLayoutV2","_set_settingEvent","shadowOptions","capture","selector","backgroundColor","target","Error","reject","html2canvas","useCORS","allowTaint","scale","devicePixelRatio","canvas","catch","customElements","define","createProviderClass","async","fileType","bucketName","blob","toBlob","getCanvasBlob","files","File","file","formData","FormData","append","url","http","request","uploadFile","objectName","buildImageUrl","toDataURL","image","Image","onload","createElement","width","ctx","getContext","drawImage","href","download","MouseEvent","downloadImage","jsPDF","imageData","pdf","addImage","save","returnPromise","_EoTree","_EoTree_brand","_handleCheck","_handleExpand","_handleDrop","EoTree","_init_checkable","_init_extra_checkable","_init_selectable","_init_extra_selectable","_init_defaultExpandAll","_init_extra_defaultExpandAll","_init_showLine","_init_extra_showLine","_init_expandedKeys","_init_extra_expandedKeys","_init_checkedKeys","_init_extra_checkedKeys","_init_nodeDraggable","_init_extra_nodeDraggable","_init_switcherIcon","_init_extra_switcherIcon","_init_allowDrop","_init_extra_allowDrop","_init_titleSuffixBrick","_init_extra_titleSuffixBrick","_init_checkEvent","_init_extra_checkEvent","_init_checkDetailEvent","_init_extra_checkDetailEvent","_get_checkEvent","_get_checkDetailEvent","halfCheckedKeys","_init_expandEvent","_init_extra_expandEvent","expandedKeys","_get_expandEvent","_init_dropEvent","_init_extra_dropEvent","dragNode","node","dropNode","dropPosition","_get_dropEvent","checkable","selectable","defaultExpandAll","showLine","nodeDraggable","switcherIcon","allowDrop","titleSuffixBrick","EoTreeComponent","onCheck","autoClear","Tree","titleRender","nodeData","treeData","_EoTree2","_set_checkEvent","_set_checkDetailEvent","_set_expandEvent","_set_dropEvent","_TreeSelectBrick","_TreeSelectBrick_brand","_handleSearch","_handleSelect","TreeSelectElement","treeExpandedKeys","treeDefaultExpandAll","dropdownStyle","onSearch","onTreeExpand","popupMatchSelectWidth","TreeSelect","treeCheckable","virtual","notPopupMatchSelectWidth","_TreeSelectBrick2","_init_treeData","_init_extra_treeData","_init_treeDefaultExpandAll","_init_extra_treeDefaultExpandAll","_init_treeExpandedKeys","_init_extra_treeExpandedKeys","_init_filterTreeNode","_init_extra_filterTreeNode","_init_dropdownStyle","_init_extra_dropdownStyle","_init_popupMatchSelectWidth","_init_extra_popupMatchSelectWidth","_init_searchEvent","_init_extra_searchEvent","_get_searchEvent","_init_selectEvent","_init_extra_selectEvent","_get_selectEvent","filterTreeNode","_set_searchEvent","_set_selectEvent","_EoTextTooltip","EoTextTooltip","_init_lineClamp","_init_extra_lineClamp","lineClamp","EoTextTooltipComponent","show","setShow","isEllipsis","parentDom","offsetWidth","offsetHeight","scrollWidth","scrollHeight","prefixCls","transformers","legacyLogicalPropertiesTransformer","Tooltip","_EoTextTooltip2","_PdfViewer","PdfViewer","_init_url","_init_extra_url","_init_search","_init_extra_search","_init_viewerStyle","_init_extra_viewerStyle","viewerStyle","PdfViewerComponent","isDocumentLoaded","setDocumentLoaded","defaultLayoutPluginInstance","defaultLayoutPlugin","toolbarPluginInstance","searchPluginInstance","highlight","keyword","Worker","workerUrl","__webpack_public_path__","Viewer","fileUrl","initialPage","plugins","onDocumentLoad","_PdfViewer2"],"sourceRoot":""}
|