@next-bricks/advanced 0.41.8 → 0.41.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/bricks.json +5 -5
  2. package/dist/chunks/1122.7589c998.js +2 -0
  3. package/dist/chunks/1122.7589c998.js.map +1 -0
  4. package/dist/chunks/1889.38168295.js +2 -0
  5. package/dist/chunks/1889.38168295.js.map +1 -0
  6. package/dist/chunks/1940.07aef6d1.js +2 -0
  7. package/dist/chunks/1940.07aef6d1.js.map +1 -0
  8. package/dist/chunks/2197.a6f1a304.js +2 -0
  9. package/dist/chunks/{2197.c5138c85.js.map → 2197.a6f1a304.js.map} +1 -1
  10. package/dist/chunks/2252.dc7c39fb.js +3 -0
  11. package/dist/chunks/2252.dc7c39fb.js.map +1 -0
  12. package/dist/chunks/2277.87897478.js +2 -0
  13. package/dist/chunks/2277.87897478.js.map +1 -0
  14. package/dist/chunks/3063.18e1b229.js +3 -0
  15. package/dist/chunks/{3063.df8d2c3c.js.map → 3063.18e1b229.js.map} +1 -1
  16. package/dist/chunks/3171.3c5fbb7c.js +2 -0
  17. package/dist/chunks/3171.3c5fbb7c.js.map +1 -0
  18. package/dist/chunks/3933.767ebb9a.js +2 -0
  19. package/dist/chunks/3933.767ebb9a.js.map +1 -0
  20. package/dist/chunks/4411.ce125181.js +3 -0
  21. package/dist/chunks/4411.ce125181.js.map +1 -0
  22. package/dist/chunks/4658.4a7c4eca.js +2 -0
  23. package/dist/chunks/4658.4a7c4eca.js.map +1 -0
  24. package/dist/chunks/4837.c8f23854.js +2 -0
  25. package/dist/chunks/4837.c8f23854.js.map +1 -0
  26. package/dist/chunks/5399.c6d3cd26.js +2 -0
  27. package/dist/chunks/5399.c6d3cd26.js.map +1 -0
  28. package/dist/chunks/5479.61ea152c.js +2 -0
  29. package/dist/chunks/{5479.efda6c36.js.map → 5479.61ea152c.js.map} +1 -1
  30. package/dist/chunks/5552.e9d9c364.js +2 -0
  31. package/dist/chunks/5552.e9d9c364.js.map +1 -0
  32. package/dist/chunks/6314.08e1d165.js +2 -0
  33. package/dist/chunks/6314.08e1d165.js.map +1 -0
  34. package/dist/chunks/7218.17d790a3.js +2 -0
  35. package/dist/chunks/7218.17d790a3.js.map +1 -0
  36. package/dist/chunks/790.18344482.js +2 -0
  37. package/dist/chunks/790.18344482.js.map +1 -0
  38. package/dist/chunks/{871.35a2b661.js → 871.02ab8ac1.js} +2 -2
  39. package/dist/chunks/871.02ab8ac1.js.map +1 -0
  40. package/dist/chunks/9559.f28bf9ad.js +2 -0
  41. package/dist/chunks/9559.f28bf9ad.js.map +1 -0
  42. package/dist/chunks/capture-snapshot.46fb6283.js +2 -0
  43. package/dist/chunks/{capture-snapshot.7bf07b28.js.map → capture-snapshot.46fb6283.js.map} +1 -1
  44. package/dist/chunks/{eo-cascader.c70d4f6c.js → eo-cascader.9783a8fb.js} +2 -2
  45. package/dist/chunks/{eo-cascader.c70d4f6c.js.map → eo-cascader.9783a8fb.js.map} +1 -1
  46. package/dist/chunks/eo-table.ec53dab5.js +2 -0
  47. package/dist/chunks/{eo-table.585dcd61.js.map → eo-table.ec53dab5.js.map} +1 -1
  48. package/dist/chunks/{eo-tree-select.ecee3d60.js → eo-tree-select.d474faea.js} +2 -2
  49. package/dist/chunks/{eo-tree-select.ecee3d60.js.map → eo-tree-select.d474faea.js.map} +1 -1
  50. package/dist/chunks/{eo-tree.6f251481.js → eo-tree.3fa43c93.js} +3 -3
  51. package/dist/chunks/{eo-tree.6f251481.js.map → eo-tree.3fa43c93.js.map} +1 -1
  52. package/dist/chunks/{eo-workbench-layout-v2.ce4c6e6f.js → eo-workbench-layout-v2.c1d3f18d.js} +2 -2
  53. package/dist/chunks/{eo-workbench-layout-v2.ce4c6e6f.js.map → eo-workbench-layout-v2.c1d3f18d.js.map} +1 -1
  54. package/dist/chunks/{eo-workbench-layout.943d79fd.js → eo-workbench-layout.7d97c451.js} +2 -2
  55. package/dist/chunks/{eo-workbench-layout.943d79fd.js.map → eo-workbench-layout.7d97c451.js.map} +1 -1
  56. package/dist/chunks/main.1fc6d38a.js +2 -0
  57. package/dist/chunks/{main.3ada30c8.js.map → main.1fc6d38a.js.map} +1 -1
  58. package/dist/examples.json +3 -3
  59. package/dist/index.c0efb349.js +2 -0
  60. package/dist/index.c0efb349.js.map +1 -0
  61. package/dist/manifest.json +107 -107
  62. package/package.json +3 -3
  63. package/dist/chunks/1122.ec0ccaaf.js +0 -2
  64. package/dist/chunks/1122.ec0ccaaf.js.map +0 -1
  65. package/dist/chunks/1889.045907b2.js +0 -2
  66. package/dist/chunks/1889.045907b2.js.map +0 -1
  67. package/dist/chunks/1940.8eb45753.js +0 -2
  68. package/dist/chunks/1940.8eb45753.js.map +0 -1
  69. package/dist/chunks/2197.c5138c85.js +0 -2
  70. package/dist/chunks/2252.30640853.js +0 -3
  71. package/dist/chunks/2252.30640853.js.map +0 -1
  72. package/dist/chunks/2277.0f796f56.js +0 -2
  73. package/dist/chunks/2277.0f796f56.js.map +0 -1
  74. package/dist/chunks/3063.df8d2c3c.js +0 -3
  75. package/dist/chunks/3171.f56a377a.js +0 -2
  76. package/dist/chunks/3171.f56a377a.js.map +0 -1
  77. package/dist/chunks/3933.b92c9a3e.js +0 -2
  78. package/dist/chunks/3933.b92c9a3e.js.map +0 -1
  79. package/dist/chunks/4411.19209b9a.js +0 -3
  80. package/dist/chunks/4411.19209b9a.js.map +0 -1
  81. package/dist/chunks/4658.de08e61f.js +0 -2
  82. package/dist/chunks/4658.de08e61f.js.map +0 -1
  83. package/dist/chunks/4837.7ba6cd88.js +0 -2
  84. package/dist/chunks/4837.7ba6cd88.js.map +0 -1
  85. package/dist/chunks/5399.9dd8461a.js +0 -2
  86. package/dist/chunks/5399.9dd8461a.js.map +0 -1
  87. package/dist/chunks/5479.efda6c36.js +0 -2
  88. package/dist/chunks/5552.c22b3fd9.js +0 -2
  89. package/dist/chunks/5552.c22b3fd9.js.map +0 -1
  90. package/dist/chunks/6314.39af196b.js +0 -2
  91. package/dist/chunks/6314.39af196b.js.map +0 -1
  92. package/dist/chunks/7218.2797999f.js +0 -2
  93. package/dist/chunks/7218.2797999f.js.map +0 -1
  94. package/dist/chunks/790.5282208e.js +0 -2
  95. package/dist/chunks/790.5282208e.js.map +0 -1
  96. package/dist/chunks/871.35a2b661.js.map +0 -1
  97. package/dist/chunks/9559.241f0ed5.js +0 -2
  98. package/dist/chunks/9559.241f0ed5.js.map +0 -1
  99. package/dist/chunks/capture-snapshot.7bf07b28.js +0 -2
  100. package/dist/chunks/eo-table.585dcd61.js +0 -2
  101. package/dist/chunks/main.3ada30c8.js +0 -2
  102. package/dist/index.ca9beb3d.js +0 -2
  103. package/dist/index.ca9beb3d.js.map +0 -1
  104. /package/dist/chunks/{2252.30640853.js.LICENSE.txt → 2252.dc7c39fb.js.LICENSE.txt} +0 -0
  105. /package/dist/chunks/{3063.df8d2c3c.js.LICENSE.txt → 3063.18e1b229.js.LICENSE.txt} +0 -0
  106. /package/dist/chunks/{4411.19209b9a.js.LICENSE.txt → 4411.ce125181.js.LICENSE.txt} +0 -0
  107. /package/dist/chunks/{eo-tree.6f251481.js.LICENSE.txt → eo-tree.3fa43c93.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/2197.c5138c85.js","mappings":"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","sources":["webpack:///./src/table/utils.tsx","webpack:///./src/table/i18n.ts","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/index.tsx","webpack:///../../src/FormItemElement.tsx","webpack:///./src/cascader/index.tsx","webpack:///./src/next-table/index.tsx","webpack:///./src/workbench-layout/index.tsx","webpack:///./src/workbench-layout-v2/styles.module.css?4307","webpack:///./src/workbench-layout-v2/styles.css?4d90","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/workbench-layout-v2/styles.css","webpack:///../../node_modules/react-grid-layout/css/styles.css","webpack:///../../node_modules/react-resizable/css/styles.css","webpack:///./src/cascader/styles.shadow.css","webpack:///./src/table/table.shadow.css","webpack:///./src/text-tooltip/styles.shadow.css","webpack:///./src/tree-select/styles.shadow.css","webpack:///./src/tree/styles.shadow.css","webpack:///./src/workbench-layout/styles.shadow.css","webpack:///../../node_modules/react-grid-layout/css/styles.css?4a73","webpack:///../../node_modules/react-resizable/css/styles.css?e4a4","webpack:///./src/workbench-layout-v2/styles.module.css"],"sourcesContent":["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","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, { 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 { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, 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 { t } = useTranslation(NS);\n\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 optimizedColumns,\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 = <DndProvider backend={HTML5Backend}>{table}</DndProvider>;\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","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 * @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 */\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 container={shadowRoot as ShadowRoot} cache={cache}>\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\nexport { CascaderBrick };\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 PaginationType,\n RecordType,\n RowSelectionType,\n Sort,\n} from \"./interface.js\";\nimport { RowSelectMethod } from \"antd/es/table/interface.js\";\nimport type { TableProps } from \"antd/es/table\";\nimport type { NextTableComponentProps } from \"./Table.js\";\nimport \"./host-context.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 {\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 * 进行前端搜索的字段,支持嵌套的写法。不配置的时候默认为对所有 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 accessor bordered: boolean | undefined;\n\n /**\n * 滚动配置\n */\n @property({\n attribute: false,\n })\n accessor scrollConfig: TableProps<RecordType>[\"scroll\"] = { x: true };\n\n /**\n * 优化渲染的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: (string | number)[] | 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 改变后的 rowKey 及行数据\n */\n @event({ type: \"row.select\" })\n accessor #rowSelectEvent!: EventEmitter<{\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }>;\n #handleRowSelect = (detail: {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }): void => {\n this.#rowSelectEvent.emit(detail);\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 <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 searchFields={this.searchFields}\n size={this.size}\n showHeader={this.showHeader}\n bordered={this.bordered}\n scrollConfig={this.scrollConfig}\n optimizedColumns={this.optimizedColumns}\n onPageChange={this.#handlePageChange}\n onPageSizeChange={this.#handlePageSizeChange}\n onSort={this.#handleSort}\n onRowSelect={this.#handleRowSelect}\n onRowExpand={this.#handleRowExpand}\n onExpandedRowsChange={this.#handleExpandedRowsChange}\n onRowDrag={this.#handleRowDrag}\n />\n );\n }\n}\n\nexport { NextTableComponentProps };\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]!./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","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 {\n ReactUseBrick,\n ReactUseMultipleBricks,\n} from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport {\n ItemCallback,\n Layout,\n Responsive,\n WidthProvider,\n} from \"react-grid-layout\";\nimport \"@next-core/theme\";\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\";\nimport styles from \"./styles.module.css\";\nimport \"./styles.css\";\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 EoWorkbenchLayoutV2Props {\n cardTitle?: string;\n layouts?: Layout[];\n toolbarBricks?: {\n useBrick: UseSingleBrickConf[];\n };\n componentList?: Item[];\n isEdit?: boolean;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentRef {\n setLayouts(layouts: Layout[]): void;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentProps\n extends EoWorkbenchLayoutV2Props {\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 EoWorkbenchLayoutV2ComponentRef,\n EoWorkbenchLayoutV2ComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n toolbarBricks,\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\n className={styles.editMask}\n onMouseDown={handleEditMaskClick}\n />\n )}\n <ReactUseBrick useBrick={component.useBrick} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n className={styles.deleteIcon}\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={styles.gridLayoutWrapper} ref={gridLayoutRef}>\n {isEdit && (\n <div className={styles.componentWrapper}>\n <div className={styles.componentTitle}>{cardTitle}</div>\n <div className={styles.componentList}>\n <WrappedCheckbox\n options={computedOptions}\n value={computedSelectedComponentKeys}\n onChange={handleCheckBoxChange as any}\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 保存\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={styles.layout}\n draggableCancel={`.${styles.deleteIcon},.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 * 工作台布局V2,未使用shadow dom\n */\nexport\n@defineElement(\"eo-workbench-layout-v2\", {\n shadowOptions: false,\n})\nclass EoWorkbenchLayoutV2 extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutV2ComponentRef>();\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 toolbarBricks:\n | {\n useBrick: UseSingleBrickConf[];\n }\n | 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 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 toolbarBricks={this.toolbarBricks}\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","// 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\";\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 onChange?: (value: AntdTreeSelectProps[\"value\"]) => void;\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 /**\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 />\n </WrappedFormItem>\n );\n }\n}\n\nfunction TreeSelectElement(props: TreeSelectProps): 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 } = 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 />\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 {\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\ninterface TooltipPropsEoTextTooltipProps {\n label?: string;\n lineClamp?: number;\n}\n\nexport function EoTextTooltipComponent(props: TooltipPropsEoTextTooltipProps) {\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__}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\";\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 \"../../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___;\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___;\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, `.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, `: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 \"../../../../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}`, \"\"]);\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\";\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}:is(.grid-layout-wrapper .component-wrapper) .component-title{font-size:16px;padding:6px 0;font-weight:500}:is(.grid-layout-wrapper .component-wrapper) .component-list{margin-top:6px}:is(:is(.grid-layout-wrapper .component-wrapper) .component-list) eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}:is(:is(.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}:is(.grid-layout-wrapper .layout-wrapper) .layout{max-width:1300px;margin:0 auto}:is(.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)}:is(.grid-layout-wrapper .layout-wrapper) .edit-mask{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}:is(.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)}:is(.grid-layout-wrapper .layout-wrapper) .delete-icon:hover{color:var(--color-error)}:is(.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","// 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 \"../../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","// 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}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP{width:170px;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}:is(.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP) .componentTitle--nKf9GEoj{font-size:16px;padding:6px 0;font-weight:500}:is(.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP) .componentList--s3XnAYsB{margin-top:6px}:is(:is(.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP) .componentList--s3XnAYsB) eo-checkbox::part(checkbox-wrapper){display:flex;flex-wrap:wrap;gap:8px}:is(:is(.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP) .componentList--s3XnAYsB) eo-checkbox::part(checkbox-option){margin-left:0;width:100%;background:none}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR{flex:1}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .layout--kz28taJj{max-width:1300px;margin:0 auto}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .actionsWrapper--vQro2Dyn{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)}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .editMask--ql2wriZf{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .deleteIcon--IjEzXZqc{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)}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .deleteIcon--IjEzXZqc:hover{color:var(--color-error)}:is(.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR) .deleteIcon--IjEzXZqc:active{color:var(--color-error-active)}`, \"\"]);\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\"editMask\": `editMask--ql2wriZf`,\n\t\"deleteIcon\": `deleteIcon--IjEzXZqc`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["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","push","length","getRowsOfData","rows","stripEmptyExpandableChildrenByName","name","arguments","_value$name","NS","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","useTranslation","locale","i18n","language","split","zhCN","enUS","error","configProps","pagination","sortBy","columns","expandIconAsCell","expandIconColumnIndex","scroll","optimizedColumns","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","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","toString","_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","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","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","_EoNextTable","_tableRef","_EoNextTable_brand","_handlePageChange","_handlePageSizeChange","_handleSort","_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_searchFields","_init_extra_searchFields","_init_scrollConfig","_init_extra_scrollConfig","_init_pageChangeEvent","_init_extra_pageChangeEvent","_get_pageChangeEvent","_init_pageSizeChangeEvent","_init_extra_pageSizeChangeEvent","_get_pageSizeChangeEvent","_init_sortChangeEvent","_init_extra_sortChangeEvent","_get_sortChangeEvent","_init_rowSelectEvent","_init_extra_rowSelectEvent","_get_rowSelectEvent","_init_rowExpandEvent","_init_extra_rowExpandEvent","_get_rowExpandEvent","_init_expandedRowsChangeEvent","_init_extra_expandedRowsChangeEvent","_get_expandedRowsChangeEvent","_init_rowDragEvent","_init_extra_rowDragEvent","_get_rowDragEvent","cell","loading","multiSort","rowDraggable","searchFields","bordered","scrollConfig","params","_classPrivateFieldGet2","NextTableComponent","onPageChange","onPageSizeChange","onSort","onRowSelect","onRowExpand","onRowDrag","_EoNextTable2","_set_pageChangeEvent","_set_pageSizeChangeEvent","_set_sortChangeEvent","_set_rowSelectEvent","_set_rowExpandEvent","_set_expandedRowsChangeEvent","_set_rowDragEvent","WrappedButton","WrappedDropdownButton","onActionClick","WrappedCheckbox","showDialog","unwrapProvider","getRealKey","isAdmin","auth","getAuth","EoWorkbenchLayoutComponent","forwardRef","cardTitle","layouts","layoutsProps","componentList","isEdit","onSave","onCancel","ResponsiveReactGridLayout","WidthProvider","Responsive","gridLayoutRef","layoutWrapperRef","layoutCacheRef","_setLayouts","cols","setCols","layoutWrapperStyle","setLayoutWrapperStyle","setLayouts","useCallback","useImperativeHandle","handleChange","handleLayoutChange","currentLayout","isAllowAction","t","w","y","h","i","minH","matchItem","_currentLayout$t$minH","Math","max","random","handleCheckBoxChange","checkedKeys","layoutsKeys","addItems","position","Infinity","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","window","addEventListener","removeEventListener","handleCancel","btnText","actions","text","danger","action","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","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","toolbarBricks","styles","editMask","deleteIcon","gridLayoutWrapper","componentWrapper","componentTitle","layoutWrapper","actionsWrapper","_EoWorkbenchLayoutV","_EoWorkbenchLayoutV2_brand","EoWorkbenchLayoutV2","_init_toolbarBricks","_init_extra_toolbarBricks","connectedCallback","display","super","_EoWorkbenchLayoutV2","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","getBasePath","http","request","uploadFile","objectName","buildImageUrl","toDataURL","image","Image","onload","createElement","width","ctx","getContext","drawImage","href","download","MouseEvent","src","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","info","_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","onDrop","autoClear","hashPriority","Tree","DownOutlined","titleRender","nodeData","treeData","_EoTree2","_set_checkEvent","_set_checkDetailEvent","_set_expandEvent","_set_dropEvent","_TreeSelectBrick","_TreeSelectBrick_brand","_handleSearch","_handleSelect","TreeSelectElement","treeExpandedKeys","treeDefaultExpandAll","dropdownStyle","onSearch","onTreeExpand","TreeSelect","treeCheckable","virtual","_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_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","___CSS_LOADER_EXPORT___","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/2197.a6f1a304.js","mappings":"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","sources":["webpack:///./src/table/utils.tsx","webpack:///./src/table/i18n.ts","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/index.tsx","webpack:///../../src/FormItemElement.tsx","webpack:///./src/cascader/index.tsx","webpack:///./src/next-table/index.tsx","webpack:///./src/workbench-layout/index.tsx","webpack:///./src/workbench-layout-v2/styles.module.css?4307","webpack:///./src/workbench-layout-v2/styles.css?4d90","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/workbench-layout-v2/styles.css","webpack:///../../node_modules/react-grid-layout/css/styles.css","webpack:///../../node_modules/react-resizable/css/styles.css","webpack:///./src/cascader/styles.shadow.css","webpack:///./src/table/table.shadow.css","webpack:///./src/text-tooltip/styles.shadow.css","webpack:///./src/tree-select/styles.shadow.css","webpack:///./src/tree/styles.shadow.css","webpack:///./src/workbench-layout/styles.shadow.css","webpack:///../../node_modules/react-grid-layout/css/styles.css?4a73","webpack:///../../node_modules/react-resizable/css/styles.css?e4a4","webpack:///./src/workbench-layout-v2/styles.module.css"],"sourcesContent":["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","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, { 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 { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, 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 { t } = useTranslation(NS);\n\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 optimizedColumns,\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 = <DndProvider backend={HTML5Backend}>{table}</DndProvider>;\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","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 * @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 */\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 container={shadowRoot as ShadowRoot} cache={cache}>\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\nexport { CascaderBrick };\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 PaginationType,\n RecordType,\n RowSelectionType,\n Sort,\n} from \"./interface.js\";\nimport { RowSelectMethod } from \"antd/es/table/interface.js\";\nimport type { TableProps } from \"antd/es/table\";\nimport type { NextTableComponentProps } from \"./Table.js\";\nimport \"./host-context.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 {\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 * 进行前端搜索的字段,支持嵌套的写法。不配置的时候默认为对所有 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 accessor bordered: boolean | undefined;\n\n /**\n * 滚动配置\n */\n @property({\n attribute: false,\n })\n accessor scrollConfig: TableProps<RecordType>[\"scroll\"] = { x: true };\n\n /**\n * 优化渲染的列(输入对应的 column.key)\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: (string | number)[] | 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 改变后的 rowKey 及行数据\n */\n @event({ type: \"row.select\" })\n accessor #rowSelectEvent!: EventEmitter<{\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }>;\n #handleRowSelect = (detail: {\n keys: (string | number)[];\n rows: RecordType[];\n info: { type: RowSelectMethod };\n }): void => {\n this.#rowSelectEvent.emit(detail);\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 <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 searchFields={this.searchFields}\n size={this.size}\n showHeader={this.showHeader}\n bordered={this.bordered}\n scrollConfig={this.scrollConfig}\n optimizedColumns={this.optimizedColumns}\n onPageChange={this.#handlePageChange}\n onPageSizeChange={this.#handlePageSizeChange}\n onSort={this.#handleSort}\n onRowSelect={this.#handleRowSelect}\n onRowExpand={this.#handleRowExpand}\n onExpandedRowsChange={this.#handleExpandedRowsChange}\n onRowDrag={this.#handleRowDrag}\n />\n );\n }\n}\n\nexport { NextTableComponentProps };\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]!./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","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 {\n ReactUseBrick,\n ReactUseMultipleBricks,\n} from \"@next-core/react-runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport {\n ItemCallback,\n Layout,\n Responsive,\n WidthProvider,\n} from \"react-grid-layout\";\nimport \"@next-core/theme\";\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\";\nimport styles from \"./styles.module.css\";\nimport \"./styles.css\";\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 EoWorkbenchLayoutV2Props {\n cardTitle?: string;\n layouts?: Layout[];\n toolbarBricks?: {\n useBrick: UseSingleBrickConf[];\n };\n componentList?: Item[];\n isEdit?: boolean;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentRef {\n setLayouts(layouts: Layout[]): void;\n}\n\nexport interface EoWorkbenchLayoutV2ComponentProps\n extends EoWorkbenchLayoutV2Props {\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 EoWorkbenchLayoutV2ComponentRef,\n EoWorkbenchLayoutV2ComponentProps\n>(function EoWorkbenchLayoutComponent(\n {\n cardTitle = \"卡片列表\",\n layouts: layoutsProps,\n toolbarBricks,\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\n className={styles.editMask}\n onMouseDown={handleEditMaskClick}\n />\n )}\n <ReactUseBrick useBrick={component.useBrick} />\n {isEdit && (\n <WrappedIcon\n icon=\"delete\"\n lib=\"antd\"\n className={styles.deleteIcon}\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={styles.gridLayoutWrapper} ref={gridLayoutRef}>\n {isEdit && (\n <div className={styles.componentWrapper}>\n <div className={styles.componentTitle}>{cardTitle}</div>\n <div className={styles.componentList}>\n <WrappedCheckbox\n options={computedOptions}\n value={computedSelectedComponentKeys}\n onChange={handleCheckBoxChange as any}\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 保存\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={styles.layout}\n draggableCancel={`.${styles.deleteIcon},.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 * 工作台布局V2,未使用shadow dom\n */\nexport\n@defineElement(\"eo-workbench-layout-v2\", {\n shadowOptions: false,\n})\nclass EoWorkbenchLayoutV2 extends ReactNextElement {\n #componentRef = createRef<EoWorkbenchLayoutV2ComponentRef>();\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 toolbarBricks:\n | {\n useBrick: UseSingleBrickConf[];\n }\n | 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 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 toolbarBricks={this.toolbarBricks}\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","// 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\";\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 onChange?: (value: AntdTreeSelectProps[\"value\"]) => void;\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 /**\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 />\n </WrappedFormItem>\n );\n }\n}\n\nfunction TreeSelectElement(props: TreeSelectProps): 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 } = 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 />\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 {\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\ninterface TooltipPropsEoTextTooltipProps {\n label?: string;\n lineClamp?: number;\n}\n\nexport function EoTextTooltipComponent(props: TooltipPropsEoTextTooltipProps) {\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__}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\";\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 \"../../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___;\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___;\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, `.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, `: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 \"../../../../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}`, \"\"]);\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\";\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","// 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 \"../../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","// 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}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP{width:170px;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}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentTitle--nKf9GEoj{font-size:16px;padding:6px 0;font-weight:500}.gridLayoutWrapper--DIttynOM .componentWrapper--P8xsKOQP .componentList--s3XnAYsB{margin-top:6px}.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}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .layout--kz28taJj{max-width:1300px;margin:0 auto}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .actionsWrapper--vQro2Dyn{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)}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .editMask--ql2wriZf{position:absolute;left:0;right:0;top:45px;bottom:0;z-index:10}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .deleteIcon--IjEzXZqc{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)}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .deleteIcon--IjEzXZqc:hover{color:var(--color-error)}.gridLayoutWrapper--DIttynOM .layoutWrapper--pk1t3UAR .deleteIcon--IjEzXZqc:active{color:var(--color-error-active)}`, \"\"]);\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\"editMask\": `editMask--ql2wriZf`,\n\t\"deleteIcon\": `deleteIcon--IjEzXZqc`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["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","push","length","getRowsOfData","rows","stripEmptyExpandableChildrenByName","name","arguments","_value$name","NS","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","useTranslation","locale","i18n","language","split","zhCN","enUS","error","configProps","pagination","sortBy","columns","expandIconAsCell","expandIconColumnIndex","scroll","optimizedColumns","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","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","toString","_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","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","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","_EoNextTable","_tableRef","_EoNextTable_brand","_handlePageChange","_handlePageSizeChange","_handleSort","_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_searchFields","_init_extra_searchFields","_init_scrollConfig","_init_extra_scrollConfig","_init_pageChangeEvent","_init_extra_pageChangeEvent","_get_pageChangeEvent","_init_pageSizeChangeEvent","_init_extra_pageSizeChangeEvent","_get_pageSizeChangeEvent","_init_sortChangeEvent","_init_extra_sortChangeEvent","_get_sortChangeEvent","_init_rowSelectEvent","_init_extra_rowSelectEvent","_get_rowSelectEvent","_init_rowExpandEvent","_init_extra_rowExpandEvent","_get_rowExpandEvent","_init_expandedRowsChangeEvent","_init_extra_expandedRowsChangeEvent","_get_expandedRowsChangeEvent","_init_rowDragEvent","_init_extra_rowDragEvent","_get_rowDragEvent","cell","loading","multiSort","rowDraggable","searchFields","bordered","scrollConfig","params","_classPrivateFieldGet2","NextTableComponent","onPageChange","onPageSizeChange","onSort","onRowSelect","onRowExpand","onRowDrag","_EoNextTable2","_set_pageChangeEvent","_set_pageSizeChangeEvent","_set_sortChangeEvent","_set_rowSelectEvent","_set_rowExpandEvent","_set_expandedRowsChangeEvent","_set_rowDragEvent","WrappedButton","WrappedDropdownButton","onActionClick","WrappedCheckbox","showDialog","unwrapProvider","getRealKey","isAdmin","auth","getAuth","EoWorkbenchLayoutComponent","forwardRef","cardTitle","layouts","layoutsProps","componentList","isEdit","onSave","onCancel","ResponsiveReactGridLayout","WidthProvider","Responsive","gridLayoutRef","layoutWrapperRef","layoutCacheRef","_setLayouts","cols","setCols","layoutWrapperStyle","setLayoutWrapperStyle","setLayouts","useCallback","useImperativeHandle","handleChange","handleLayoutChange","currentLayout","isAllowAction","t","w","y","h","i","minH","matchItem","_currentLayout$t$minH","Math","max","random","handleCheckBoxChange","checkedKeys","layoutsKeys","addItems","position","Infinity","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","window","addEventListener","removeEventListener","handleCancel","btnText","actions","text","danger","action","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","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","toolbarBricks","styles","editMask","deleteIcon","gridLayoutWrapper","componentWrapper","componentTitle","layoutWrapper","actionsWrapper","_EoWorkbenchLayoutV","_EoWorkbenchLayoutV2_brand","EoWorkbenchLayoutV2","_init_toolbarBricks","_init_extra_toolbarBricks","connectedCallback","display","super","_EoWorkbenchLayoutV2","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","getBasePath","http","request","uploadFile","objectName","buildImageUrl","toDataURL","image","Image","onload","createElement","width","ctx","getContext","drawImage","href","download","MouseEvent","src","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","info","_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","onDrop","autoClear","hashPriority","Tree","DownOutlined","titleRender","nodeData","treeData","_EoTree2","_set_checkEvent","_set_checkDetailEvent","_set_expandEvent","_set_dropEvent","_TreeSelectBrick","_TreeSelectBrick_brand","_handleSearch","_handleSelect","TreeSelectElement","treeExpandedKeys","treeDefaultExpandAll","dropdownStyle","onSearch","onTreeExpand","TreeSelect","treeCheckable","virtual","_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_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","___CSS_LOADER_EXPORT___","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___"],"sourceRoot":""}