nsc-react-component 4.3.5 → 4.3.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AppstoreOutlined","CheckOutlined","ColumnHeightOutlined","SearchOutlined","SortAscendingOutlined","SortDescendingOutlined","RedoOutlined","isEmptyObj","Store","PageStore","utils","React","DndProvider","BodyRow","DndContextType","IBodyRowProps","treeUtils","BodyRowComponent","HTML5Backend","withZhLocale","Resizable","getLess","getNode","NoData","getStorage","config","cls","styles","ResizeableTitle","props","onResize","width","restProps","_objectWithoutProperties","_excluded","createElement","height","draggableOpts","enableUserSelectHack","NSCTable","Component","constructor","_autoType","_defineProperty","createRef","onBeforeLoad","load","header","cell","index","e","_ref","size","cols","state","nextColumns","_objectSpread","setState","getColumns","ev","data","JSON","parse","_this","eventType","payload","tableSize","dragIndex","hoverIndex","drag","target","dragNode","record","targetNode","moveArray","ids","parentNode","getChildNodeIds","params","id","parentId","attribute","moveRow","store","reload","modal","type","storePrefix","autoType","content","dataSource","columns","loading","pagination","activeIndex","searchText","fieldOption","searchColor","sorts","filterParams","sortType","sorter","sortInfo","defaultSort","checkColumn","defaultCheck","selectedRowKeys","selectedRowDatas","filter","extra","_ref2","listeners","listenersProps","restStore","_excluded2","storeProps","model","component","options","callback","dataChanged","modelData","paging","getPagination","onErrorLoad","err","response","autoLoad","Object","assign","current","componentDidMount","resizeColumn","setData","window","addEventListener","listenMessage","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","preState","resetColumn","newCols","colss","map","col","temp","onHeaderCell","column","handleResize","push","clearSelectColor","getPaginationByStore","onChange","filters","autoOnChange","autoSort","autoPagination","isMultiple","Array","isArray","handlePagination","p","currentKey","pageSizeKey","pageSize","ascParams","getSortParam","onChangeFn","getStore","getModel","handleSearch","val","filterColumn","checkedValue","length","_message","warning","filterColumns","newCol","includes","dataIndex","initShow","sortState","arguments","undefined","sortSearch","orderItems","field","asc","order","forEach","v","stringify","isBeyond","event","textRange","el","textContent","targetW","getBoundingClientRect","range","document","createRange","setStart","setEnd","childNodes","rangeWidth","setSelectedRowKeys","setSelectedRowDatas","sortFields","defaultShowCols","ellipsis","render","showTitle","text","_this$state$cols","currentCol","find","c","actualWidth","colWidth","colWidthObj","small","middle","default","large","paddingWidth","style","display","ref","removeAttribute","scrollWidth","clientWidth","setAttribute","className","overflow","textOverflow","whiteSpace","indexOf","sortOrder","multiple","item","filterProps","obj","searchKey","Div","title","placeholder","concat","tableSearchRef","filterDropdown","_ref3","setSelectedKeys","selectedKeys","confirm","clearFilters","_Space","_Button","onClick","_this$tableSearchRef$","newFilterParams","key","getValue","sortParam","filterIcon","renderToolBar","colLists","toolbar","tableTool","storeRequestConfig","tools","toolsClick","onToolClick","sizeItem","sortItem","sortContent","Fragment","cursor","color","sizeContent","_Checkbox","Group","bind","label","value","disabled","fontSize","_Popover","placement","trigger","overlayStyle","minWidth","maxWidth","marginRight","onRefresh","getSelectedRowKeys","getSelectedRowDatas","resetSelectedRowKeys","rowSelectionOnSelect","selected","rowKey","newSelectedRowKeys","newSelectedRowDatas","splice","rowSelectionOnSelectAll","selectedRows","changeRows","newids","newdatas","changeIds","_this$props$toolbar","omit","clickChangeColor","position","showSizeChanger","showQuickJumper","showTotal","total","_ref4","from","to","onRowFn","onRow","custom","onClickFn","rowClassName","newDataSource","getSearchMenuDatas","treeDatas","expandedRowKeys","openKeys","dragable","dragableProps","components","resizeProps","toolFlag","toolprops","show","showRowSelection","rowSelection","onSelect","onSelectAll","columnWidth","tableProps","configTableProps","DefaultTable","_Table","_extends","childrenColumnName","sheitem","locale","emptyText","scroll","x","_Pagination","page","action","_ref5","backend","dragUrl"],"sources":["../../../src/components/base/table/index.tsx"],"sourcesContent":["/*\r\n * @Descripttion:\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-03-23 08:46:20\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-03-23 10:30:42\r\n */\r\nimport {\r\n AppstoreOutlined,\r\n CheckOutlined,\r\n ColumnHeightOutlined,\r\n SearchOutlined,\r\n SortAscendingOutlined,\r\n SortDescendingOutlined,\r\n RedoOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport Store, { PageStore, StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport {\r\n Button,\r\n Checkbox,\r\n CheckboxOptionType,\r\n Menu,\r\n message,\r\n Pagination,\r\n Popover,\r\n Space,\r\n Table,\r\n TableProps,\r\n Tooltip,\r\n} from \"antd\";\r\nimport { ColumnType, TablePaginationConfig } from \"antd/lib/table\";\r\nimport * as React from \"react\";\r\nimport { DndProvider } from \"react-dnd\";\r\nimport BodyRow, { DndContextType, IBodyRowProps } from \"../common/BodyRow\";\r\nimport treeUtils from \"../../treeUtils\";\r\nimport \"./index.module.less\";\r\nconst { BodyRowComponent, HTML5Backend } = BodyRow;\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport { Resizable } from \"react-resizable\";\r\nimport \"./resize.module.less\";\r\nimport { getLess, getNode, simplifyColumns } from \"../../utils\";\r\nimport NoData from \"../../base/common/NoData\";\r\nimport { getStorage } from \"@bj-nsc/functions\";\r\nimport config from \"../../config\";\r\nimport EllipseCell from \"../common/EllipseCell\";\r\nimport cls from \"classnames\";\r\nimport isEqual from \"lodash/isEqual\";\r\nconst styles = null;\r\ninterface IDragParams {\r\n id: string | number;\r\n ids: Array<string | number>;\r\n parentId: string | number;\r\n}\r\n// interface StoreProps {}\r\n\r\nexport type StoreType = \"PageStore\" | \"TreeStore\" | \"BaseStore\";\r\n\r\ninterface NSCTablePagination extends TablePaginationConfig {\r\n totalKey?: string;\r\n pageSizeKey?: string;\r\n currentKey?: string;\r\n}\r\n\r\ninterface ToolBarProps {\r\n show: boolean;\r\n tools?: Array<string>;\r\n onToolClick?: { onRefresh?: any; onSort?: any };\r\n}\r\ninterface NSCTableProps extends TableProps<any> {\r\n store?: StoreProps;\r\n showTotal?: boolean; // 是否显示总条数信息,默认true\r\n dragable?: boolean; // 是否可拖动, 默认false\r\n filterColumn?: boolean; // 是否支持过滤显示表格列, 默认true\r\n moveRow?: (params: IDragParams) => void; // 拖拽完成后的回调\r\n dragUrl?: string; // 保存拖拽排序的接口\r\n pagination?: false | NSCTablePagination;\r\n autoPagination?: boolean; // 组件是否自动处理分页\r\n autoSort?: boolean; //组件是否自动处理排序\r\n autoOnChange?: boolean; // 组件是否自动onChange, false则不做任何处理全部交给调用方\r\n resizeColumn?: boolean;\r\n sortFields?: Array<string>; //需要排序的字段Index\r\n toolbar?: ToolBarProps | boolean;\r\n autoSize?: boolean;\r\n sortSearch?: boolean; //是否添加排序查询,默认true\r\n showRowSelection?: boolean;\r\n rowKey?: string;\r\n [propsName: string]: any;\r\n}\r\n\r\nexport type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;\r\nexport { DndContextType, IBodyRowProps };\r\n\r\nconst ResizeableTitle = (props: any) => {\r\n const { onResize, width, ...restProps } = props;\r\n return (\r\n <Resizable\r\n width={width || 150}\r\n height={0}\r\n onResize={onResize}\r\n draggableOpts={{ enableUserSelectHack: false }}\r\n >\r\n <th {...restProps} />\r\n </Resizable>\r\n );\r\n};\r\nclass NSCTable extends React.Component<INSCTableProps, any> {\r\n static defaultProps = {\r\n dragable: false,\r\n showTotal: true,\r\n filterColumn: true,\r\n dragUrl: \"\",\r\n autoPagination: true,\r\n autoSort: true,\r\n autoOnChange: true,\r\n resizeColumn: true,\r\n toolbar: {\r\n show: true,\r\n onToolClick: {} as any,\r\n tools:[] as any\r\n } as any,\r\n };\r\n\r\n store = {} as StoreProps;\r\n thIconRef = React.createRef<HTMLDivElement>();\r\n tableSearchRef = React.createRef<any>();\r\n\r\n listeners = {\r\n onBeforeLoad: null,\r\n load: null,\r\n };\r\n\r\n components = {\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n let modal = props.type || \"auto\";\r\n let storePrefix = getStorage(\"store-pre-key\");\r\n let autoType = getStorage(\r\n storePrefix ? storePrefix + \"tableSize\" : \"tableSize\"\r\n );\r\n autoType = autoType?.content;\r\n this.state = {\r\n dataSource: [],\r\n columns: [],\r\n loading: false,\r\n pagination: {},\r\n activeIndex: -1,\r\n //搜索文本\r\n searchText: null,\r\n fieldOption: null,\r\n searchColor: null,\r\n cols: [],\r\n sorts: [],\r\n filterParams: {},\r\n tableSize: this.props.size || autoType || \"default\",\r\n sortType: \"single\",\r\n sorter: [], //记录当前排序字段\r\n sortInfo: {},\r\n defaultSort: true,\r\n checkColumn: [],\r\n defaultCheck: true,\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n filter: [],\r\n extra: {},\r\n };\r\n if (props.store instanceof Store) {\r\n this.store = props.store;\r\n } else {\r\n const { listeners: listenersProps = {}, ...restStore } =\r\n props.store || {};\r\n const storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: (store, options) => {\r\n this.setState({ loading: true });\r\n utils.callback(listenersProps.onBeforeLoad, this, [store, options]);\r\n },\r\n dataChanged: (data, modelData, store) => {\r\n let paging = !(this.props.pagination === false);\r\n if (paging && !this.props.dataSource) {\r\n this.setState({\r\n dataSource: modelData,\r\n pagination: store.getPagination(),\r\n loading: false,\r\n activeIndex: -1,\r\n });\r\n } else {\r\n this.setState({ dataSource: modelData, loading: false });\r\n }\r\n\r\n utils.callback(listenersProps.dataChanged, this, [\r\n data,\r\n modelData,\r\n store,\r\n paging,\r\n ]);\r\n },\r\n load: (data, modelData, store) => {\r\n utils.callback(listenersProps.load, this, [data, modelData, store]);\r\n },\r\n onErrorLoad: (err, response) => {\r\n this.setState({ loading: false });\r\n utils.callback(listenersProps.onErrorLoad, this, [err, response]);\r\n },\r\n },\r\n data: restStore.data\r\n ? restStore.data\r\n : props.dataSource\r\n ? props.dataSource\r\n : null,\r\n ...restStore,\r\n autoLoad: restStore.autoLoad === false ? false : true,\r\n };\r\n this.store = new PageStore(\r\n Object.assign({}, storeProps, {\r\n pagination: { current: 1, ...this.props.pagination },\r\n })\r\n );\r\n }\r\n }\r\n\r\n handleResize =\r\n (index: any) =>\r\n (e: any, { size }: any) => {\r\n const { cols } = this.state;\r\n const nextColumns = [...cols];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n this.setState(\r\n {\r\n cols: nextColumns,\r\n },\r\n () => {\r\n // 在状态更新后重新获取列配置\r\n this.getColumns();\r\n }\r\n );\r\n };\r\n\r\n componentDidMount() {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({ columns: [...this.props.columns] });\r\n } else {\r\n this.setState({ cols: [...this.props.columns] });\r\n }\r\n const store = this.props.store;\r\n if (store && store.data) {\r\n this.store.setData(store.data);\r\n }\r\n window.addEventListener(\"message\", this.listenMessage);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"message\", this.listenMessage);\r\n }\r\n listenMessage = (ev) => {\r\n const data = typeof ev.data === \"string\" ? JSON.parse(ev.data) : ev.data;\r\n let _this = this;\r\n if (data.eventType == \"changeTableSize\") {\r\n const { payload } = data;\r\n if (\r\n payload.size == \"default\" ||\r\n payload.size == \"small\" ||\r\n payload.size == \"middle\"\r\n ) {\r\n _this.setState({ tableSize: payload.size });\r\n }\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, preState) {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({ columns: this.props.columns });\r\n }\r\n } else {\r\n if (preState.cols !== this.state.cols) {\r\n this.resetColumn();\r\n }\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({\r\n cols: this.props.columns,\r\n columns: this.props.columns,\r\n });\r\n }\r\n if (prevProps.size !== this.props.size) {\r\n this.setState({ tableSize: this.props.size });\r\n }\r\n }\r\n }\r\n resetColumn() {\r\n const { cols } = this.state;\r\n const newCols: any = [];\r\n let colss = cols || [];\r\n colss.map((col: any, index: any) => {\r\n let temp = {\r\n ...col,\r\n onHeaderCell: (column: { width: any }) => ({\r\n width: column.width,\r\n onResize: this.handleResize(index),\r\n }),\r\n };\r\n newCols.push(temp);\r\n });\r\n this.setState({\r\n columns: newCols,\r\n });\r\n }\r\n\r\n /**\r\n * 清除选中颜色\r\n */\r\n clearSelectColor() {\r\n this.setState({ activeIndex: -1 });\r\n return this;\r\n }\r\n\r\n getPaginationByStore() {\r\n return this.store.getPagination();\r\n }\r\n\r\n onChange(pagination, filters, sorter, extra) {\r\n const {\r\n autoOnChange = true,\r\n autoSort,\r\n autoPagination,\r\n onChange,\r\n store,\r\n } = this.props;\r\n const { filterParams } = this.state;\r\n const isMultiple = Array.isArray(sorter);\r\n if (autoOnChange === false || !store) {\r\n onChange && onChange(pagination, filters, sorter, extra);\r\n return;\r\n }\r\n const handlePagination = () => {\r\n let params = {} as {\r\n size?: string;\r\n pageSize?: string;\r\n ascs?: string;\r\n descs?: string;\r\n [propName: string]: string;\r\n };\r\n const paging = this.getPaginationByStore() || {};\r\n if (!isEmptyObj(pagination)) {\r\n const p = {\r\n [paging.currentKey || \"current\"]: pagination.current,\r\n [paging.pageSizeKey || \"size\"]: pagination.pageSize,\r\n };\r\n Object.assign(params, p);\r\n }\r\n let ascParams = this.getSortParam(sorter, true);\r\n if (isMultiple) {\r\n this.setState({ sorter });\r\n } else if (!isMultiple && !isEmptyObj(sorter)) {\r\n sorter.column &&\r\n this.setState({ sorter: [sorter], defaultSort: false });\r\n } else {\r\n this.setState({ sorter: [] });\r\n }\r\n this.setState({\r\n filters,\r\n extra,\r\n });\r\n params = { ...filterParams, ...params, ...ascParams };\r\n autoSort && this.store.reload({ params });\r\n };\r\n\r\n const onChangeFn = this.props.onChange;\r\n\r\n autoPagination && handlePagination();\r\n // 用户传了onChange保留用户自主处理表格变化的权力\r\n if (onChangeFn) {\r\n utils.callback(onChangeFn, this, [pagination, filters, sorter, extra]);\r\n }\r\n }\r\n\r\n getStore() {\r\n return this.store;\r\n }\r\n\r\n /**\r\n * 获取数据模型对象\r\n */\r\n getModel() {\r\n return this.store.getModel();\r\n }\r\n\r\n /**\r\n * 菜单搜索过滤显示\r\n * @param {String} val\r\n */\r\n handleSearch(val, fieldOption, searchColor) {\r\n this.setState({\r\n searchText: val,\r\n fieldOption: fieldOption,\r\n searchColor: searchColor,\r\n });\r\n }\r\n\r\n /**\r\n * 模块列表移动排序\r\n */\r\n moveRow = (dragIndex, hoverIndex, drag, target) => {\r\n const _this = this;\r\n let dragNode = drag.record;\r\n let targetNode = target.record;\r\n dragNode.moveArray(dragNode, targetNode);\r\n let ids = dragNode.parentNode.getChildNodeIds();\r\n let params = {\r\n id: dragNode.id,\r\n parentId: dragNode.attribute.parentId,\r\n ids: ids,\r\n };\r\n\r\n if (this.props.moveRow) {\r\n this.props.moveRow(params);\r\n } else {\r\n this.store.reload();\r\n }\r\n };\r\n\r\n filterColumn(checkedValue) {\r\n if (checkedValue.length == 0) {\r\n message.warning(\"至少显示一列!\");\r\n return;\r\n }\r\n const filterColumns = this.props.columns.map((col: ColumnType<{}>) => {\r\n const newCol = { ...col } as ColumnType<{}> & { initShow: boolean };\r\n if (checkedValue.includes(col.dataIndex)) {\r\n newCol.initShow = true;\r\n } else {\r\n newCol.initShow = false;\r\n }\r\n return newCol;\r\n });\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({\r\n columns: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n } else {\r\n this.setState({\r\n cols: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n }\r\n }\r\n getSortParam(sorter, sortState = false) {\r\n const isMultiple = Array.isArray(sorter);\r\n const { sortSearch = true } = this.props;\r\n if (!sortSearch) {\r\n return {};\r\n }\r\n let sortInfo = {};\r\n let orderItems = [];\r\n if (!isEmptyObj(sorter) && !isMultiple && sorter.column) {\r\n orderItems = [\r\n {\r\n column: sorter.column.field || sorter.column.dataIndex,\r\n asc: sorter.order == \"ascend\",\r\n },\r\n ];\r\n if (sorter.column) sortInfo[sorter.column.dataIndex] = sorter.order;\r\n } else if (isMultiple) {\r\n sorter.forEach((v) => {\r\n sortInfo[v.column.dataIndex] = v.order;\r\n let field = v.column.field || v.column.dataIndex;\r\n orderItems.push({\r\n column: field,\r\n asc: v.order == \"ascend\",\r\n });\r\n });\r\n }\r\n if (sortState) {\r\n this.setState({\r\n sortInfo: sortInfo,\r\n });\r\n }\r\n return { orderItems: JSON.stringify(orderItems) };\r\n }\r\n isBeyond(e) {\r\n const ev = window.event || e; // 浏览器兼容,最好写一下\r\n const textRange = (el) => {\r\n const textContent = el;\r\n const targetW = textContent.getBoundingClientRect().width;\r\n const range = document.createRange();\r\n range.setStart(textContent, 0);\r\n range.setEnd(textContent, textContent.childNodes.length);\r\n const rangeWidth = range.getBoundingClientRect().width;\r\n return rangeWidth > targetW;\r\n };\r\n return !textRange(ev.target); // target可以保证当前划过的dom节点一直保持是:el-tooltip__trigger\r\n }\r\n setSelectedRowKeys(data: Array<String | Number>) {\r\n this.setState({\r\n selectedRowKeys: data,\r\n });\r\n }\r\n setSelectedRowDatas(data: Array<Object>) {\r\n this.setState({\r\n selectedRowDatas: data,\r\n });\r\n }\r\n getColumns() {\r\n const { columns, sortType, sortInfo } = this.state;\r\n const { sortFields = [], size = \"large\" } = this.props;\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n const cols = defaultShowCols.map((col, index) => {\r\n // 替换 getColumns 方法中原来的 ellipsis 处理部分\r\n if (col.ellipsis && !col.render) {\r\n col.ellipsis = {\r\n showTitle: false,\r\n };\r\n col.render = (text, record, index) => {\r\n // 获取当前列的实时宽度\r\n const currentCol = this.state.cols?.find((c) => {\r\n // 处理 dataIndex 可能是字符串或数组的情况\r\n if (Array.isArray(c.dataIndex) && Array.isArray(col.dataIndex)) {\r\n return (\r\n JSON.stringify(c.dataIndex) === JSON.stringify(col.dataIndex)\r\n );\r\n }\r\n return c.dataIndex === col.dataIndex;\r\n });\r\n\r\n const actualWidth = currentCol?.width || col.width;\r\n let colWidth: any = \"100%\";\r\n\r\n if (actualWidth) {\r\n const size = this.state.tableSize || this.props.size || \"default\";\r\n const colWidthObj = {\r\n small: 16,\r\n middle: 16,\r\n default: 16,\r\n large: 32,\r\n };\r\n const paddingWidth = colWidthObj[size] || 16;\r\n\r\n if (actualWidth > paddingWidth) {\r\n colWidth = actualWidth - paddingWidth;\r\n } else {\r\n colWidth = actualWidth;\r\n }\r\n }\r\n\r\n return (\r\n <div style={{ display: \"inline-table\", width: \"100%\" }}>\r\n <div\r\n ref={(el) => {\r\n if (el) {\r\n // 清除之前的title\r\n el.removeAttribute(\"title\");\r\n\r\n // 检查文本是否溢出\r\n if (el.scrollWidth > el.clientWidth) {\r\n el.setAttribute(\"title\", text);\r\n }\r\n }\r\n }}\r\n className={getLess(styles, \"nsc-table-text\")}\r\n style={{\r\n width: colWidth,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {text}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n if (sortFields.indexOf(col.dataIndex) > -1) {\r\n if (sortType == \"single\") {\r\n col.sorter = true;\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n } else if (sortType == \"multiple\") {\r\n col.sorter = { multiple: index };\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n }\r\n }\r\n return col;\r\n });\r\n cols.map((item, index) => {\r\n if (!isEmptyObj(item.filterProps)) {\r\n let obj = { ...item };\r\n const { type, props, searchKey } = item.filterProps;\r\n let Div = null;\r\n let text = item.title;\r\n Div = getNode(type, {\r\n placeholder: `搜索${text}`,\r\n ...props,\r\n ref: this.tableSearchRef,\r\n });\r\n obj = {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }) => {\r\n return (\r\n <div className={getLess(styles, \"nsc-table-search\")}>\r\n <div className={getLess(styles, \"nsc-table-search-space\")}>\r\n {Div}\r\n </div>\r\n <Space>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n confirm();\r\n const { filterParams } = this.state;\r\n let newFilterParams = { ...filterParams };\r\n let key = item.field || item.dataIndex;\r\n newFilterParams[key] =\r\n this.tableSearchRef.current?.getValue();\r\n this.setState({\r\n filterParams: { ...newFilterParams },\r\n });\r\n const sortParam = this.getSortParam(this.state.sorter);\r\n this.store.load({\r\n params: { ...newFilterParams, ...sortParam },\r\n });\r\n }}\r\n size=\"small\"\r\n className={getLess(styles, \"nsc-table-search-button\")}\r\n >\r\n 查询\r\n </Button>\r\n </Space>\r\n </div>\r\n );\r\n },\r\n filterIcon: () => {\r\n return <SearchOutlined />;\r\n },\r\n ...obj,\r\n };\r\n cols[index] = obj;\r\n }\r\n });\r\n return cols;\r\n }\r\n renderToolBar() {\r\n let { tableSize, columns, sortType } = this.state;\r\n let { filterColumn, columns: colLists, toolbar } = this.props;\r\n const { tableTool, storeRequestConfig = {} } = config();\r\n let tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n let toolsClick = {} as any;\r\n if (toolbar == true) {\r\n tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n } else {\r\n tools = toolbar.tools\r\n ? toolbar.tools\r\n : tableTool.tools\r\n ? tableTool.tools\r\n : tools;\r\n toolsClick = toolbar.onToolClick ? toolbar.onToolClick : {};\r\n }\r\n const sizeItem = [\r\n { title: \"宽松\", key: \"default\" },\r\n { title: \"中等\", key: \"middle\" },\r\n { title: \"紧凑\", key: \"small\" },\r\n ];\r\n const sortItem = [\r\n { title: \"单字段排序\", key: \"single\" },\r\n { title: \"多字段排序\", key: \"multiple\" },\r\n ];\r\n const sortContent = (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{\r\n cursor: this.state.defaultSort ? \"not-allowed\" : \"pointer\",\r\n color: this.state.defaultSort && \"rgba(0,0,0,.45)\",\r\n }}\r\n onClick={() => {\r\n if (this.state.defaultSort) {\r\n return;\r\n }\r\n this.setState({ sorter: [], sortInfo: {}, defaultSort: true });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n 恢复默认排序\r\n </div>\r\n {sortItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n sorter: [],\r\n sortInfo: {},\r\n sortType: item.key,\r\n defaultSort: false,\r\n });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n {sortType == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {sortType == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n {this.state.sorter.length > 0 && (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{ color: \"rgba(0,0,0,.45)\" }}\r\n >\r\n 当前排序\r\n </div>\r\n {this.state.sorter.map((item, index) => {\r\n return (\r\n <div\r\n className={getLess(styles, \"nsc-table-content-tiem\")}\r\n key={index}\r\n >\r\n <div style={{ width: 20 }}>\r\n {item.order == \"ascend\" ? (\r\n <SortAscendingOutlined />\r\n ) : (\r\n <SortDescendingOutlined />\r\n )}\r\n </div>\r\n <div> {item.column.title}</div>\r\n </div>\r\n );\r\n })}\r\n </>\r\n )}\r\n </>\r\n );\r\n const sizeContent = (\r\n <>\r\n <div className={getLess(styles, \"nsc-table-cotent-title\")}>\r\n 表格密度\r\n </div>\r\n {sizeItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n tableSize: item.key,\r\n });\r\n }}\r\n >\r\n {tableSize == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {tableSize == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </>\r\n );\r\n\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n\r\n const content = (\r\n <Checkbox.Group\r\n onChange={this.filterColumn.bind(this)}\r\n options={colLists.map(\r\n (col: ColumnType<{}> & { filterColumn: boolean; dataIndex: any }) => {\r\n if (!col.dataIndex) {\r\n col.dataIndex = col.title;\r\n }\r\n return {\r\n label: col.title,\r\n value: col.dataIndex,\r\n disabled: col.filterColumn === false,\r\n } as CheckboxOptionType;\r\n }\r\n )}\r\n // defaultValue={defaultShowCols.map((col) => col.dataIndex)}\r\n value={\r\n this.state.defaultCheck\r\n ? defaultShowCols.map((col) => col.dataIndex)\r\n : this.state.checkColumn\r\n }\r\n ></Checkbox.Group>\r\n );\r\n return (\r\n <div className={getLess(styles, \"nsc-table-tool-bar\")}>\r\n {tools.indexOf(\"column\") > -1 && (\r\n <div style={{ fontSize: 14 }}>\r\n <Popover\r\n title=\"选择显示的列\"\r\n content={content}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ minWidth: 410, maxWidth: 450 }}\r\n >\r\n <AppstoreOutlined\r\n className={getLess(styles, \"nsc-table-th-app-store-icon\")}\r\n />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"sort\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sortContent} trigger=\"click\">\r\n <SortAscendingOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"size\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sizeContent} trigger=\"click\">\r\n <ColumnHeightOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"refresh\") > -1 && (\r\n <div\r\n style={{ marginRight: 8, fontSize: 14, cursor: \"pointer\" }}\r\n onClick={() => {\r\n const params = { ...this.state.filterParams };\r\n if (toolsClick.onRefresh) {\r\n toolsClick.onRefresh();\r\n } else {\r\n this.store.load({ params });\r\n }\r\n }}\r\n >\r\n <RedoOutlined />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n getSelectedRowKeys() {\r\n return this.state.selectedRowKeys;\r\n }\r\n getSelectedRowDatas() {\r\n return this.state.selectedRowDatas;\r\n }\r\n resetSelectedRowKeys() {\r\n this.setState({\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n });\r\n }\r\n rowSelectionOnSelect(record: any, selected: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n let { rowKey = \"id\" } = this.props;\r\n let newSelectedRowKeys = [...selectedRowKeys];\r\n let newSelectedRowDatas = [...selectedRowDatas];\r\n if (selected) {\r\n newSelectedRowKeys = [...newSelectedRowKeys, record[rowKey]];\r\n newSelectedRowDatas = [...newSelectedRowDatas, record];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (item === record[rowKey]) {\r\n newSelectedRowKeys.splice(index, 1);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (item[rowKey] === record[rowKey]) {\r\n newSelectedRowDatas.splice(index, 1);\r\n }\r\n });\r\n }\r\n this.setState({\r\n selectedRowKeys: newSelectedRowKeys,\r\n selectedRowDatas: newSelectedRowDatas,\r\n });\r\n }\r\n rowSelectionOnSelectAll(selected: any, selectedRows: any, changeRows: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n const { rowKey = \"id\" } = this.props;\r\n let newids: any = [];\r\n let newdatas: any = [];\r\n if (changeRows.length > 0) {\r\n let changeIds = changeRows.map((item: any) => item[rowKey]);\r\n if (selected) {\r\n newids = [...selectedRowKeys, ...changeIds];\r\n newdatas = [...selectedRowDatas, ...changeRows];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item) == -1) {\r\n newids.push(item);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item[rowKey]) == -1) {\r\n newdatas.push(item);\r\n }\r\n });\r\n }\r\n } else {\r\n newids = [...selectedRowKeys];\r\n newdatas = [...selectedRowDatas];\r\n }\r\n this.setState({\r\n selectedRowKeys: [...newids],\r\n selectedRowDatas: [...newdatas],\r\n });\r\n }\r\n render() {\r\n let _this = this,\r\n {\r\n loading,\r\n dataSource,\r\n pagination = {},\r\n searchText,\r\n fieldOption,\r\n searchColor,\r\n tableSize,\r\n } = this.state,\r\n props = utils.omit(\r\n this.props,\r\n [\r\n \"store\",\r\n \"onChange\",\r\n \"columns\",\r\n \"resetColumn\",\r\n \"toolbar\",\r\n \"sortFields\",\r\n \"filterColumn\",\r\n \"sortSearch\",\r\n \"showRowSelection\",\r\n \"pageType\",\r\n ],\r\n {\r\n rowKey: \"id\",\r\n clickChangeColor: false,\r\n }\r\n );\r\n if (props.pagination !== false) {\r\n props.pagination = {\r\n position: [\"bottomRight\"],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n ...pagination,\r\n ...props.pagination,\r\n };\r\n if (props.showTotal == true) {\r\n props.pagination.showTotal = function (total, [from, to]) {\r\n // return \"显示 \" + from + \" - \" + to + \"条,共 \" + total + \" 条\";\r\n return \"共 \" + total + \" 条\";\r\n };\r\n }\r\n }\r\n props.onChange = function (pagination, filters, sorter, extra) {\r\n _this.onChange(_this.state.pagination, filters, sorter, extra);\r\n };\r\n if (props.clickChangeColor) {\r\n const onRowFn = props.onRow;\r\n props.onRow = function (record, index) {\r\n var custom = onRowFn ? onRowFn(record, index) : {};\r\n const onClickFn = custom.onClick;\r\n custom.onClick = (event) => {\r\n _this.setState({\r\n activeIndex: index, //获取点击行的索引\r\n });\r\n utils.callback(onClickFn, _this, [event]);\r\n };\r\n return custom;\r\n };\r\n props.rowClassName = function (record, index) {\r\n return index === _this.state.activeIndex\r\n ? \"nsc-table-clickRowStyle\"\r\n : \"\";\r\n };\r\n }\r\n let newDataSource = [];\r\n if (searchText) {\r\n const data = treeUtils.getSearchMenuDatas(\r\n this,\r\n searchText,\r\n fieldOption,\r\n searchColor\r\n );\r\n newDataSource = data.treeDatas;\r\n props.expandedRowKeys = data.openKeys;\r\n } else {\r\n newDataSource = dataSource;\r\n }\r\n props.store = props.store || {};\r\n props.store.autoLoad = props.store.autoLoad === false ? false : true;\r\n const { dragable } = _this.props;\r\n const dragableProps =\r\n dragable === true\r\n ? {\r\n components: BodyRowComponent,\r\n onRow: (record, index) => ({\r\n index,\r\n record,\r\n moveRow: this.moveRow,\r\n }),\r\n }\r\n : {};\r\n let { resizeColumn } = this.props;\r\n\r\n const resizeProps =\r\n resizeColumn === true ? { components: this.components } : null;\r\n const { tableTool } = config();\r\n let toolFlag = true;\r\n let toolprops =\r\n this.props.toolbar === false || this.props.toolbar?.show === false\r\n ? false\r\n : true;\r\n if (!toolprops) {\r\n toolFlag = toolprops;\r\n } else {\r\n toolFlag = tableTool.show === false ? false : true;\r\n }\r\n if (this.props.showRowSelection) {\r\n const { rowSelection = {} } = this.props;\r\n props = {\r\n ...props,\r\n rowSelection: {\r\n selectedRowKeys: this.state.selectedRowKeys,\r\n onSelect: this.rowSelectionOnSelect.bind(this),\r\n onSelectAll: this.rowSelectionOnSelectAll.bind(this),\r\n columnWidth: 40,\r\n ...rowSelection,\r\n },\r\n };\r\n }\r\n const { tableProps: configTableProps } = config();\r\n const DefaultTable = (\r\n <div className={getLess(styles, \"nsc-table\")}>\r\n {toolFlag && this.renderToolBar()}\r\n <Table\r\n childrenColumnName=\"childNodes\"\r\n sheitem\r\n dataSource={newDataSource}\r\n columns={this.getColumns()}\r\n loading={loading}\r\n className={cls(getLess(styles, \"nsc-table-content\"), props.className)}\r\n locale={{\r\n emptyText: (\r\n <NoData className={getLess(styles, \"nsc-table-nodata\")} />\r\n ),\r\n }}\r\n scroll={{ x: \"max-content\" }}\r\n {...configTableProps}\r\n {...resizeProps}\r\n {...props}\r\n {...dragableProps}\r\n size={tableSize}\r\n pagination={false}\r\n // style={{ height: 600 }}\r\n />\r\n {props.pagination !== false && (\r\n <div className={getLess(styles, \"nsc-table-pagination\")}>\r\n <Pagination\r\n {...props.pagination}\r\n onChange={(page, pageSize) => {\r\n const extra = this.state.extra;\r\n extra.action = \"paginate\";\r\n this.setState(({ pagination = {} }) => {\r\n return {\r\n pagination: { ...pagination, current: page, pageSize },\r\n };\r\n });\r\n this.onChange(\r\n { current: page, pageSize },\r\n this.state.filter,\r\n this.state.sorter,\r\n extra\r\n );\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n return dragable === true ? (\r\n <DndProvider backend={HTML5Backend}>{DefaultTable}</DndProvider>\r\n ) : (\r\n DefaultTable\r\n );\r\n }\r\n}\r\n\r\nexport default withZhLocale(NSCTable);\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["AppstoreOutlined","CheckOutlined","ColumnHeightOutlined","SearchOutlined","SortAscendingOutlined","SortDescendingOutlined","RedoOutlined","isEmptyObj","Store","PageStore","utils","React","DndProvider","BodyRow","DndContextType","IBodyRowProps","treeUtils","BodyRowComponent","HTML5Backend","withZhLocale","Resizable","getLess","getNode","NoData","getStorage","config","cls","styles","ResizeableTitle","props","onResize","width","restProps","_objectWithoutProperties","_excluded","createElement","height","draggableOpts","enableUserSelectHack","NSCTable","Component","constructor","_autoType","_defineProperty","createRef","onBeforeLoad","load","header","cell","index","e","_ref","size","cols","state","nextColumns","_objectSpread","setState","getColumns","ev","data","JSON","parse","_this","eventType","payload","tableSize","dragIndex","hoverIndex","drag","target","dragNode","record","targetNode","moveArray","ids","parentNode","getChildNodeIds","params","id","parentId","attribute","moveRow","store","reload","modal","type","storePrefix","autoType","content","dataSource","columns","loading","pagination","activeIndex","searchText","fieldOption","searchColor","sorts","filterParams","sortType","sorter","sortInfo","defaultSort","checkColumn","defaultCheck","selectedRowKeys","selectedRowDatas","filter","extra","_ref2","listeners","listenersProps","restStore","_excluded2","storeProps","model","component","options","callback","dataChanged","modelData","paging","getPagination","onErrorLoad","err","response","autoLoad","Object","assign","current","componentDidMount","resizeColumn","setData","window","addEventListener","listenMessage","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","preState","resetColumn","newCols","colss","map","col","temp","onHeaderCell","column","handleResize","push","clearSelectColor","getPaginationByStore","onChange","filters","autoOnChange","autoSort","autoPagination","isMultiple","Array","isArray","handlePagination","p","currentKey","pageSizeKey","pageSize","ascParams","getSortParam","onChangeFn","getStore","getModel","handleSearch","val","filterColumn","checkedValue","length","_message","warning","filterColumns","newCol","includes","dataIndex","initShow","sortState","arguments","undefined","sortSearch","orderItems","field","asc","order","forEach","v","stringify","isBeyond","event","textRange","el","textContent","targetW","getBoundingClientRect","range","document","createRange","setStart","setEnd","childNodes","rangeWidth","setSelectedRowKeys","setSelectedRowDatas","sortFields","defaultShowCols","ellipsis","render","showTitle","text","_this$state$cols","currentCol","find","c","actualWidth","colWidth","colWidthObj","small","middle","default","large","paddingWidth","style","display","ref","removeAttribute","scrollWidth","clientWidth","setAttribute","className","overflow","textOverflow","whiteSpace","indexOf","sortOrder","multiple","item","filterProps","obj","searchKey","Div","title","placeholder","concat","tableSearchRef","filterDropdown","_ref3","setSelectedKeys","selectedKeys","confirm","clearFilters","_Space","_Button","onClick","_this$tableSearchRef$","newFilterParams","key","getValue","sortParam","filterIcon","renderToolBar","colLists","toolbar","tableTool","storeRequestConfig","tools","toolsClick","onToolClick","sizeItem","sortItem","sortContent","Fragment","cursor","color","sizeContent","_Checkbox","Group","bind","label","value","disabled","fontSize","_Popover","placement","trigger","overlayStyle","minWidth","maxWidth","marginRight","onRefresh","getSelectedRowKeys","getSelectedRowDatas","resetSelectedRowKeys","rowSelectionOnSelect","selected","rowKey","newSelectedRowKeys","newSelectedRowDatas","splice","rowSelectionOnSelectAll","selectedRows","changeRows","newids","newdatas","changeIds","omit","clickChangeColor","position","showSizeChanger","showQuickJumper","showTotal","total","_ref4","from","to","onRowFn","onRow","custom","onClickFn","rowClassName","newDataSource","getSearchMenuDatas","treeDatas","expandedRowKeys","openKeys","dragable","dragableProps","components","resizeProps","toolFlag","show","showRowSelection","rowSelection","onSelect","onSelectAll","columnWidth","tableProps","configTableProps","DefaultTable","_Table","_extends","childrenColumnName","sheitem","locale","emptyText","scroll","x","_Pagination","page","action","_ref5","backend","dragUrl"],"sources":["../../../src/components/base/table/index.tsx"],"sourcesContent":["/*\r\n * @Descripttion:\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-03-23 08:46:20\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-03-23 10:30:42\r\n */\r\nimport {\r\n AppstoreOutlined,\r\n CheckOutlined,\r\n ColumnHeightOutlined,\r\n SearchOutlined,\r\n SortAscendingOutlined,\r\n SortDescendingOutlined,\r\n RedoOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport Store, { PageStore, StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport {\r\n Button,\r\n Checkbox,\r\n CheckboxOptionType,\r\n Menu,\r\n message,\r\n Pagination,\r\n Popover,\r\n Space,\r\n Table,\r\n TableProps,\r\n Tooltip,\r\n} from \"antd\";\r\nimport { ColumnType, TablePaginationConfig } from \"antd/lib/table\";\r\nimport * as React from \"react\";\r\nimport { DndProvider } from \"react-dnd\";\r\nimport BodyRow, { DndContextType, IBodyRowProps } from \"../common/BodyRow\";\r\nimport treeUtils from \"../../treeUtils\";\r\nimport \"./index.module.less\";\r\nconst { BodyRowComponent, HTML5Backend } = BodyRow;\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport { Resizable } from \"react-resizable\";\r\nimport \"./resize.module.less\";\r\nimport { getLess, getNode, simplifyColumns } from \"../../utils\";\r\nimport NoData from \"../../base/common/NoData\";\r\nimport { getStorage } from \"@bj-nsc/functions\";\r\nimport config from \"../../config\";\r\nimport EllipseCell from \"../common/EllipseCell\";\r\nimport cls from \"classnames\";\r\nimport isEqual from \"lodash/isEqual\";\r\nconst styles = null;\r\ninterface IDragParams {\r\n id: string | number;\r\n ids: Array<string | number>;\r\n parentId: string | number;\r\n}\r\n// interface StoreProps {}\r\n\r\nexport type StoreType = \"PageStore\" | \"TreeStore\" | \"BaseStore\";\r\n\r\ninterface NSCTablePagination extends TablePaginationConfig {\r\n totalKey?: string;\r\n pageSizeKey?: string;\r\n currentKey?: string;\r\n}\r\n\r\ninterface ToolBarProps {\r\n show: boolean;\r\n tools?: Array<string>;\r\n onToolClick?: { onRefresh?: any; onSort?: any };\r\n}\r\ninterface NSCTableProps extends TableProps<any> {\r\n store?: StoreProps;\r\n showTotal?: boolean; // 是否显示总条数信息,默认true\r\n dragable?: boolean; // 是否可拖动, 默认false\r\n filterColumn?: boolean; // 是否支持过滤显示表格列, 默认true\r\n moveRow?: (params: IDragParams) => void; // 拖拽完成后的回调\r\n dragUrl?: string; // 保存拖拽排序的接口\r\n pagination?: false | NSCTablePagination;\r\n autoPagination?: boolean; // 组件是否自动处理分页\r\n autoSort?: boolean; //组件是否自动处理排序\r\n autoOnChange?: boolean; // 组件是否自动onChange, false则不做任何处理全部交给调用方\r\n resizeColumn?: boolean;\r\n sortFields?: Array<string>; //需要排序的字段Index\r\n toolbar?: ToolBarProps | boolean;\r\n autoSize?: boolean;\r\n sortSearch?: boolean; //是否添加排序查询,默认true\r\n showRowSelection?: boolean;\r\n rowKey?: string;\r\n [propsName: string]: any;\r\n}\r\n\r\nexport type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;\r\nexport { DndContextType, IBodyRowProps };\r\n\r\nconst ResizeableTitle = (props: any) => {\r\n const { onResize, width, ...restProps } = props;\r\n return (\r\n <Resizable\r\n width={width || 150}\r\n height={0}\r\n onResize={onResize}\r\n draggableOpts={{ enableUserSelectHack: false }}\r\n >\r\n <th {...restProps} />\r\n </Resizable>\r\n );\r\n};\r\nclass NSCTable extends React.Component<INSCTableProps, any> {\r\n static defaultProps = {\r\n dragable: false,\r\n showTotal: true,\r\n filterColumn: true,\r\n dragUrl: \"\",\r\n autoPagination: true,\r\n autoSort: true,\r\n autoOnChange: true,\r\n resizeColumn: true,\r\n toolbar: {\r\n show: false,\r\n onToolClick: {} as any,\r\n tools: [] as any,\r\n } as any,\r\n };\r\n\r\n store = {} as StoreProps;\r\n thIconRef = React.createRef<HTMLDivElement>();\r\n tableSearchRef = React.createRef<any>();\r\n\r\n listeners = {\r\n onBeforeLoad: null,\r\n load: null,\r\n };\r\n\r\n components = {\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n let modal = props.type || \"auto\";\r\n let storePrefix = getStorage(\"store-pre-key\");\r\n let autoType = getStorage(\r\n storePrefix ? storePrefix + \"tableSize\" : \"tableSize\"\r\n );\r\n autoType = autoType?.content;\r\n this.state = {\r\n dataSource: [],\r\n columns: [],\r\n loading: false,\r\n pagination: {},\r\n activeIndex: -1,\r\n //搜索文本\r\n searchText: null,\r\n fieldOption: null,\r\n searchColor: null,\r\n cols: [],\r\n sorts: [],\r\n filterParams: {},\r\n tableSize: this.props.size || autoType || \"default\",\r\n sortType: \"single\",\r\n sorter: [], //记录当前排序字段\r\n sortInfo: {},\r\n defaultSort: true,\r\n checkColumn: [],\r\n defaultCheck: true,\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n filter: [],\r\n extra: {},\r\n };\r\n if (props.store instanceof Store) {\r\n this.store = props.store;\r\n } else {\r\n const { listeners: listenersProps = {}, ...restStore } =\r\n props.store || {};\r\n const storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: (store, options) => {\r\n this.setState({ loading: true });\r\n utils.callback(listenersProps.onBeforeLoad, this, [store, options]);\r\n },\r\n dataChanged: (data, modelData, store) => {\r\n let paging = !(this.props.pagination === false);\r\n if (paging && !this.props.dataSource) {\r\n this.setState({\r\n dataSource: modelData,\r\n pagination: store.getPagination(),\r\n loading: false,\r\n activeIndex: -1,\r\n });\r\n } else {\r\n this.setState({ dataSource: modelData, loading: false });\r\n }\r\n\r\n utils.callback(listenersProps.dataChanged, this, [\r\n data,\r\n modelData,\r\n store,\r\n paging,\r\n ]);\r\n },\r\n load: (data, modelData, store) => {\r\n utils.callback(listenersProps.load, this, [data, modelData, store]);\r\n },\r\n onErrorLoad: (err, response) => {\r\n this.setState({ loading: false });\r\n utils.callback(listenersProps.onErrorLoad, this, [err, response]);\r\n },\r\n },\r\n data: restStore.data\r\n ? restStore.data\r\n : props.dataSource\r\n ? props.dataSource\r\n : null,\r\n ...restStore,\r\n autoLoad: restStore.autoLoad === false ? false : true,\r\n };\r\n this.store = new PageStore(\r\n Object.assign({}, storeProps, {\r\n pagination: { current: 1, ...this.props.pagination },\r\n })\r\n );\r\n }\r\n }\r\n\r\n handleResize =\r\n (index: any) =>\r\n (e: any, { size }: any) => {\r\n const { cols } = this.state;\r\n const nextColumns = [...cols];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n this.setState(\r\n {\r\n cols: nextColumns,\r\n },\r\n () => {\r\n // 在状态更新后重新获取列配置\r\n this.getColumns();\r\n }\r\n );\r\n };\r\n\r\n componentDidMount() {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({ columns: [...this.props.columns] });\r\n } else {\r\n this.setState({ cols: [...this.props.columns] });\r\n }\r\n const store = this.props.store;\r\n if (store && store.data) {\r\n this.store.setData(store.data);\r\n }\r\n window.addEventListener(\"message\", this.listenMessage);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"message\", this.listenMessage);\r\n }\r\n listenMessage = (ev) => {\r\n const data = typeof ev.data === \"string\" ? JSON.parse(ev.data) : ev.data;\r\n let _this = this;\r\n if (data.eventType == \"changeTableSize\") {\r\n const { payload } = data;\r\n if (\r\n payload.size == \"default\" ||\r\n payload.size == \"small\" ||\r\n payload.size == \"middle\"\r\n ) {\r\n _this.setState({ tableSize: payload.size });\r\n }\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, preState) {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({ columns: this.props.columns });\r\n }\r\n } else {\r\n if (preState.cols !== this.state.cols) {\r\n this.resetColumn();\r\n }\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({\r\n cols: this.props.columns,\r\n columns: this.props.columns,\r\n });\r\n }\r\n if (prevProps.size !== this.props.size) {\r\n this.setState({ tableSize: this.props.size });\r\n }\r\n }\r\n }\r\n resetColumn() {\r\n const { cols } = this.state;\r\n const newCols: any = [];\r\n let colss = cols || [];\r\n colss.map((col: any, index: any) => {\r\n let temp = {\r\n ...col,\r\n onHeaderCell: (column: { width: any }) => ({\r\n width: column.width,\r\n onResize: this.handleResize(index),\r\n }),\r\n };\r\n newCols.push(temp);\r\n });\r\n this.setState({\r\n columns: newCols,\r\n });\r\n }\r\n\r\n /**\r\n * 清除选中颜色\r\n */\r\n clearSelectColor() {\r\n this.setState({ activeIndex: -1 });\r\n return this;\r\n }\r\n\r\n getPaginationByStore() {\r\n return this.store.getPagination();\r\n }\r\n\r\n onChange(pagination, filters, sorter, extra) {\r\n const {\r\n autoOnChange = true,\r\n autoSort,\r\n autoPagination,\r\n onChange,\r\n store,\r\n } = this.props;\r\n const { filterParams } = this.state;\r\n const isMultiple = Array.isArray(sorter);\r\n if (autoOnChange === false || !store) {\r\n onChange && onChange(pagination, filters, sorter, extra);\r\n return;\r\n }\r\n const handlePagination = () => {\r\n let params = {} as {\r\n size?: string;\r\n pageSize?: string;\r\n ascs?: string;\r\n descs?: string;\r\n [propName: string]: string;\r\n };\r\n const paging = this.getPaginationByStore() || {};\r\n if (!isEmptyObj(pagination)) {\r\n const p = {\r\n [paging.currentKey || \"current\"]: pagination.current,\r\n [paging.pageSizeKey || \"size\"]: pagination.pageSize,\r\n };\r\n Object.assign(params, p);\r\n }\r\n let ascParams = this.getSortParam(sorter, true);\r\n if (isMultiple) {\r\n this.setState({ sorter });\r\n } else if (!isMultiple && !isEmptyObj(sorter)) {\r\n sorter.column &&\r\n this.setState({ sorter: [sorter], defaultSort: false });\r\n } else {\r\n this.setState({ sorter: [] });\r\n }\r\n this.setState({\r\n filters,\r\n extra,\r\n });\r\n params = { ...filterParams, ...params, ...ascParams };\r\n autoSort && this.store.reload({ params });\r\n };\r\n\r\n const onChangeFn = this.props.onChange;\r\n\r\n autoPagination && handlePagination();\r\n // 用户传了onChange保留用户自主处理表格变化的权力\r\n if (onChangeFn) {\r\n utils.callback(onChangeFn, this, [pagination, filters, sorter, extra]);\r\n }\r\n }\r\n\r\n getStore() {\r\n return this.store;\r\n }\r\n\r\n /**\r\n * 获取数据模型对象\r\n */\r\n getModel() {\r\n return this.store.getModel();\r\n }\r\n\r\n /**\r\n * 菜单搜索过滤显示\r\n * @param {String} val\r\n */\r\n handleSearch(val, fieldOption, searchColor) {\r\n this.setState({\r\n searchText: val,\r\n fieldOption: fieldOption,\r\n searchColor: searchColor,\r\n });\r\n }\r\n\r\n /**\r\n * 模块列表移动排序\r\n */\r\n moveRow = (dragIndex, hoverIndex, drag, target) => {\r\n const _this = this;\r\n let dragNode = drag.record;\r\n let targetNode = target.record;\r\n dragNode.moveArray(dragNode, targetNode);\r\n let ids = dragNode.parentNode.getChildNodeIds();\r\n let params = {\r\n id: dragNode.id,\r\n parentId: dragNode.attribute.parentId,\r\n ids: ids,\r\n };\r\n\r\n if (this.props.moveRow) {\r\n this.props.moveRow(params);\r\n } else {\r\n this.store.reload();\r\n }\r\n };\r\n\r\n filterColumn(checkedValue) {\r\n if (checkedValue.length == 0) {\r\n message.warning(\"至少显示一列!\");\r\n return;\r\n }\r\n const filterColumns = this.props.columns.map((col: ColumnType<{}>) => {\r\n const newCol = { ...col } as ColumnType<{}> & { initShow: boolean };\r\n if (checkedValue.includes(col.dataIndex)) {\r\n newCol.initShow = true;\r\n } else {\r\n newCol.initShow = false;\r\n }\r\n return newCol;\r\n });\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({\r\n columns: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n } else {\r\n this.setState({\r\n cols: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n }\r\n }\r\n getSortParam(sorter, sortState = false) {\r\n const isMultiple = Array.isArray(sorter);\r\n const { sortSearch = true } = this.props;\r\n if (!sortSearch) {\r\n return {};\r\n }\r\n let sortInfo = {};\r\n let orderItems = [];\r\n if (!isEmptyObj(sorter) && !isMultiple && sorter.column) {\r\n orderItems = [\r\n {\r\n column: sorter.column.field || sorter.column.dataIndex,\r\n asc: sorter.order == \"ascend\",\r\n },\r\n ];\r\n if (sorter.column) sortInfo[sorter.column.dataIndex] = sorter.order;\r\n } else if (isMultiple) {\r\n sorter.forEach((v) => {\r\n sortInfo[v.column.dataIndex] = v.order;\r\n let field = v.column.field || v.column.dataIndex;\r\n orderItems.push({\r\n column: field,\r\n asc: v.order == \"ascend\",\r\n });\r\n });\r\n }\r\n if (sortState) {\r\n this.setState({\r\n sortInfo: sortInfo,\r\n });\r\n }\r\n return { orderItems: JSON.stringify(orderItems) };\r\n }\r\n isBeyond(e) {\r\n const ev = window.event || e; // 浏览器兼容,最好写一下\r\n const textRange = (el) => {\r\n const textContent = el;\r\n const targetW = textContent.getBoundingClientRect().width;\r\n const range = document.createRange();\r\n range.setStart(textContent, 0);\r\n range.setEnd(textContent, textContent.childNodes.length);\r\n const rangeWidth = range.getBoundingClientRect().width;\r\n return rangeWidth > targetW;\r\n };\r\n return !textRange(ev.target); // target可以保证当前划过的dom节点一直保持是:el-tooltip__trigger\r\n }\r\n setSelectedRowKeys(data: Array<String | Number>) {\r\n this.setState({\r\n selectedRowKeys: data,\r\n });\r\n }\r\n setSelectedRowDatas(data: Array<Object>) {\r\n this.setState({\r\n selectedRowDatas: data,\r\n });\r\n }\r\n getColumns() {\r\n const { columns, sortType, sortInfo } = this.state;\r\n const { sortFields = [], size = \"large\" } = this.props;\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n const cols = defaultShowCols.map((col, index) => {\r\n // 替换 getColumns 方法中原来的 ellipsis 处理部分\r\n if (col.ellipsis && !col.render) {\r\n col.ellipsis = {\r\n showTitle: false,\r\n };\r\n col.render = (text, record, index) => {\r\n // 获取当前列的实时宽度\r\n const currentCol = this.state.cols?.find((c) => {\r\n // 处理 dataIndex 可能是字符串或数组的情况\r\n if (Array.isArray(c.dataIndex) && Array.isArray(col.dataIndex)) {\r\n return (\r\n JSON.stringify(c.dataIndex) === JSON.stringify(col.dataIndex)\r\n );\r\n }\r\n return c.dataIndex === col.dataIndex;\r\n });\r\n\r\n const actualWidth = currentCol?.width || col.width;\r\n let colWidth: any = \"100%\";\r\n\r\n if (actualWidth) {\r\n const size = this.state.tableSize || this.props.size || \"default\";\r\n const colWidthObj = {\r\n small: 16,\r\n middle: 16,\r\n default: 16,\r\n large: 32,\r\n };\r\n const paddingWidth = colWidthObj[size] || 16;\r\n\r\n if (actualWidth > paddingWidth) {\r\n colWidth = actualWidth - paddingWidth;\r\n } else {\r\n colWidth = actualWidth;\r\n }\r\n }\r\n\r\n return (\r\n <div style={{ display: \"inline-table\", width: \"100%\" }}>\r\n <div\r\n ref={(el) => {\r\n if (el) {\r\n // 清除之前的title\r\n el.removeAttribute(\"title\");\r\n\r\n // 检查文本是否溢出\r\n if (el.scrollWidth > el.clientWidth) {\r\n el.setAttribute(\"title\", text);\r\n }\r\n }\r\n }}\r\n className={getLess(styles, \"nsc-table-text\")}\r\n style={{\r\n width: colWidth,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {text}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n if (sortFields.indexOf(col.dataIndex) > -1) {\r\n if (sortType == \"single\") {\r\n col.sorter = true;\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n } else if (sortType == \"multiple\") {\r\n col.sorter = { multiple: index };\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n }\r\n }\r\n return col;\r\n });\r\n cols.map((item, index) => {\r\n if (!isEmptyObj(item.filterProps)) {\r\n let obj = { ...item };\r\n const { type, props, searchKey } = item.filterProps;\r\n let Div = null;\r\n let text = item.title;\r\n Div = getNode(type, {\r\n placeholder: `搜索${text}`,\r\n ...props,\r\n ref: this.tableSearchRef,\r\n });\r\n obj = {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }) => {\r\n return (\r\n <div className={getLess(styles, \"nsc-table-search\")}>\r\n <div className={getLess(styles, \"nsc-table-search-space\")}>\r\n {Div}\r\n </div>\r\n <Space>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n confirm();\r\n const { filterParams } = this.state;\r\n let newFilterParams = { ...filterParams };\r\n let key = item.field || item.dataIndex;\r\n newFilterParams[key] =\r\n this.tableSearchRef.current?.getValue();\r\n this.setState({\r\n filterParams: { ...newFilterParams },\r\n });\r\n const sortParam = this.getSortParam(this.state.sorter);\r\n this.store.load({\r\n params: { ...newFilterParams, ...sortParam },\r\n });\r\n }}\r\n size=\"small\"\r\n className={getLess(styles, \"nsc-table-search-button\")}\r\n >\r\n 查询\r\n </Button>\r\n </Space>\r\n </div>\r\n );\r\n },\r\n filterIcon: () => {\r\n return <SearchOutlined />;\r\n },\r\n ...obj,\r\n };\r\n cols[index] = obj;\r\n }\r\n });\r\n return cols;\r\n }\r\n renderToolBar() {\r\n let { tableSize, columns, sortType } = this.state;\r\n let { filterColumn, columns: colLists, toolbar } = this.props;\r\n const { tableTool, storeRequestConfig = {} } = config();\r\n let tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n let toolsClick = {} as any;\r\n if (toolbar == true) {\r\n tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n } else {\r\n tools = toolbar.tools\r\n ? toolbar.tools\r\n : tableTool.tools\r\n ? tableTool.tools\r\n : tools;\r\n toolsClick = toolbar.onToolClick ? toolbar.onToolClick : {};\r\n }\r\n const sizeItem = [\r\n { title: \"宽松\", key: \"default\" },\r\n { title: \"中等\", key: \"middle\" },\r\n { title: \"紧凑\", key: \"small\" },\r\n ];\r\n const sortItem = [\r\n { title: \"单字段排序\", key: \"single\" },\r\n { title: \"多字段排序\", key: \"multiple\" },\r\n ];\r\n const sortContent = (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{\r\n cursor: this.state.defaultSort ? \"not-allowed\" : \"pointer\",\r\n color: this.state.defaultSort && \"rgba(0,0,0,.45)\",\r\n }}\r\n onClick={() => {\r\n if (this.state.defaultSort) {\r\n return;\r\n }\r\n this.setState({ sorter: [], sortInfo: {}, defaultSort: true });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n 恢复默认排序\r\n </div>\r\n {sortItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n sorter: [],\r\n sortInfo: {},\r\n sortType: item.key,\r\n defaultSort: false,\r\n });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n {sortType == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {sortType == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n {this.state.sorter.length > 0 && (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{ color: \"rgba(0,0,0,.45)\" }}\r\n >\r\n 当前排序\r\n </div>\r\n {this.state.sorter.map((item, index) => {\r\n return (\r\n <div\r\n className={getLess(styles, \"nsc-table-content-tiem\")}\r\n key={index}\r\n >\r\n <div style={{ width: 20 }}>\r\n {item.order == \"ascend\" ? (\r\n <SortAscendingOutlined />\r\n ) : (\r\n <SortDescendingOutlined />\r\n )}\r\n </div>\r\n <div> {item.column.title}</div>\r\n </div>\r\n );\r\n })}\r\n </>\r\n )}\r\n </>\r\n );\r\n const sizeContent = (\r\n <>\r\n <div className={getLess(styles, \"nsc-table-cotent-title\")}>\r\n 表格密度\r\n </div>\r\n {sizeItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n tableSize: item.key,\r\n });\r\n }}\r\n >\r\n {tableSize == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {tableSize == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </>\r\n );\r\n\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n\r\n const content = (\r\n <Checkbox.Group\r\n onChange={this.filterColumn.bind(this)}\r\n options={colLists.map(\r\n (col: ColumnType<{}> & { filterColumn: boolean; dataIndex: any }) => {\r\n if (!col.dataIndex) {\r\n col.dataIndex = col.title;\r\n }\r\n return {\r\n label: col.title,\r\n value: col.dataIndex,\r\n disabled: col.filterColumn === false,\r\n } as CheckboxOptionType;\r\n }\r\n )}\r\n // defaultValue={defaultShowCols.map((col) => col.dataIndex)}\r\n value={\r\n this.state.defaultCheck\r\n ? defaultShowCols.map((col) => col.dataIndex)\r\n : this.state.checkColumn\r\n }\r\n ></Checkbox.Group>\r\n );\r\n return (\r\n <div className={getLess(styles, \"nsc-table-tool-bar\")}>\r\n {tools.indexOf(\"column\") > -1 && (\r\n <div style={{ fontSize: 14 }}>\r\n <Popover\r\n title=\"选择显示的列\"\r\n content={content}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ minWidth: 410, maxWidth: 450 }}\r\n >\r\n <AppstoreOutlined\r\n className={getLess(styles, \"nsc-table-th-app-store-icon\")}\r\n />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"sort\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sortContent} trigger=\"click\">\r\n <SortAscendingOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"size\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sizeContent} trigger=\"click\">\r\n <ColumnHeightOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"refresh\") > -1 && (\r\n <div\r\n style={{ marginRight: 8, fontSize: 14, cursor: \"pointer\" }}\r\n onClick={() => {\r\n const params = { ...this.state.filterParams };\r\n if (toolsClick.onRefresh) {\r\n toolsClick.onRefresh();\r\n } else {\r\n this.store.load({ params });\r\n }\r\n }}\r\n >\r\n <RedoOutlined />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n getSelectedRowKeys() {\r\n return this.state.selectedRowKeys;\r\n }\r\n getSelectedRowDatas() {\r\n return this.state.selectedRowDatas;\r\n }\r\n resetSelectedRowKeys() {\r\n this.setState({\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n });\r\n }\r\n rowSelectionOnSelect(record: any, selected: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n let { rowKey = \"id\" } = this.props;\r\n let newSelectedRowKeys = [...selectedRowKeys];\r\n let newSelectedRowDatas = [...selectedRowDatas];\r\n if (selected) {\r\n newSelectedRowKeys = [...newSelectedRowKeys, record[rowKey]];\r\n newSelectedRowDatas = [...newSelectedRowDatas, record];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (item === record[rowKey]) {\r\n newSelectedRowKeys.splice(index, 1);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (item[rowKey] === record[rowKey]) {\r\n newSelectedRowDatas.splice(index, 1);\r\n }\r\n });\r\n }\r\n this.setState({\r\n selectedRowKeys: newSelectedRowKeys,\r\n selectedRowDatas: newSelectedRowDatas,\r\n });\r\n }\r\n rowSelectionOnSelectAll(selected: any, selectedRows: any, changeRows: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n const { rowKey = \"id\" } = this.props;\r\n let newids: any = [];\r\n let newdatas: any = [];\r\n if (changeRows.length > 0) {\r\n let changeIds = changeRows.map((item: any) => item[rowKey]);\r\n if (selected) {\r\n newids = [...selectedRowKeys, ...changeIds];\r\n newdatas = [...selectedRowDatas, ...changeRows];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item) == -1) {\r\n newids.push(item);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item[rowKey]) == -1) {\r\n newdatas.push(item);\r\n }\r\n });\r\n }\r\n } else {\r\n newids = [...selectedRowKeys];\r\n newdatas = [...selectedRowDatas];\r\n }\r\n this.setState({\r\n selectedRowKeys: [...newids],\r\n selectedRowDatas: [...newdatas],\r\n });\r\n }\r\n render() {\r\n let _this = this,\r\n {\r\n loading,\r\n dataSource,\r\n pagination = {},\r\n searchText,\r\n fieldOption,\r\n searchColor,\r\n tableSize,\r\n } = this.state,\r\n props = utils.omit(\r\n this.props,\r\n [\r\n \"store\",\r\n \"onChange\",\r\n \"columns\",\r\n \"resetColumn\",\r\n \"toolbar\",\r\n \"sortFields\",\r\n \"filterColumn\",\r\n \"sortSearch\",\r\n \"showRowSelection\",\r\n \"pageType\",\r\n ],\r\n {\r\n rowKey: \"id\",\r\n clickChangeColor: false,\r\n }\r\n );\r\n if (props.pagination !== false) {\r\n props.pagination = {\r\n position: [\"bottomRight\"],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n ...pagination,\r\n ...props.pagination,\r\n };\r\n if (props.showTotal == true) {\r\n props.pagination.showTotal = function (total, [from, to]) {\r\n // return \"显示 \" + from + \" - \" + to + \"条,共 \" + total + \" 条\";\r\n return \"共 \" + total + \" 条\";\r\n };\r\n }\r\n }\r\n props.onChange = function (pagination, filters, sorter, extra) {\r\n _this.onChange(_this.state.pagination, filters, sorter, extra);\r\n };\r\n if (props.clickChangeColor) {\r\n const onRowFn = props.onRow;\r\n props.onRow = function (record, index) {\r\n var custom = onRowFn ? onRowFn(record, index) : {};\r\n const onClickFn = custom.onClick;\r\n custom.onClick = (event) => {\r\n _this.setState({\r\n activeIndex: index, //获取点击行的索引\r\n });\r\n utils.callback(onClickFn, _this, [event]);\r\n };\r\n return custom;\r\n };\r\n props.rowClassName = function (record, index) {\r\n return index === _this.state.activeIndex\r\n ? \"nsc-table-clickRowStyle\"\r\n : \"\";\r\n };\r\n }\r\n let newDataSource = [];\r\n if (searchText) {\r\n const data = treeUtils.getSearchMenuDatas(\r\n this,\r\n searchText,\r\n fieldOption,\r\n searchColor\r\n );\r\n newDataSource = data.treeDatas;\r\n props.expandedRowKeys = data.openKeys;\r\n } else {\r\n newDataSource = dataSource;\r\n }\r\n props.store = props.store || {};\r\n props.store.autoLoad = props.store.autoLoad === false ? false : true;\r\n const { dragable } = _this.props;\r\n const dragableProps =\r\n dragable === true\r\n ? {\r\n components: BodyRowComponent,\r\n onRow: (record, index) => ({\r\n index,\r\n record,\r\n moveRow: this.moveRow,\r\n }),\r\n }\r\n : {};\r\n let { resizeColumn } = this.props;\r\n\r\n const resizeProps =\r\n resizeColumn === true ? { components: this.components } : null;\r\n const { tableTool } = config();\r\n let toolFlag = false;\r\n if (tableTool.show === true) {\r\n toolFlag=true;\r\n }\r\n if (this.props.toolbar && this.props.toolbar.show !== false) {\r\n toolFlag = true;\r\n }\r\n if (this.props.showRowSelection) {\r\n const { rowSelection = {} } = this.props;\r\n props = {\r\n ...props,\r\n rowSelection: {\r\n selectedRowKeys: this.state.selectedRowKeys,\r\n onSelect: this.rowSelectionOnSelect.bind(this),\r\n onSelectAll: this.rowSelectionOnSelectAll.bind(this),\r\n columnWidth: 40,\r\n ...rowSelection,\r\n },\r\n };\r\n }\r\n const { tableProps: configTableProps } = config();\r\n const DefaultTable = (\r\n <div className={getLess(styles, \"nsc-table\")}>\r\n {toolFlag && this.renderToolBar()}\r\n <Table\r\n childrenColumnName=\"childNodes\"\r\n sheitem\r\n dataSource={newDataSource}\r\n columns={this.getColumns()}\r\n loading={loading}\r\n className={cls(getLess(styles, \"nsc-table-content\"), props.className)}\r\n locale={{\r\n emptyText: (\r\n <NoData className={getLess(styles, \"nsc-table-nodata\")} />\r\n ),\r\n }}\r\n scroll={{ x: \"max-content\" }}\r\n {...configTableProps}\r\n {...resizeProps}\r\n {...props}\r\n {...dragableProps}\r\n size={tableSize}\r\n pagination={false}\r\n // style={{ height: 600 }}\r\n />\r\n {props.pagination !== false && (\r\n <div className={getLess(styles, \"nsc-table-pagination\")}>\r\n <Pagination\r\n {...props.pagination}\r\n onChange={(page, pageSize) => {\r\n const extra = this.state.extra;\r\n extra.action = \"paginate\";\r\n this.setState(({ pagination = {} }) => {\r\n return {\r\n pagination: { ...pagination, current: page, pageSize },\r\n };\r\n });\r\n this.onChange(\r\n { current: page, pageSize },\r\n this.state.filter,\r\n this.state.sorter,\r\n extra\r\n );\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n return dragable === true ? (\r\n <DndProvider backend={HTML5Backend}>{DefaultTable}</DndProvider>\r\n ) : (\r\n DefaultTable\r\n );\r\n }\r\n}\r\n\r\nexport default withZhLocale(NSCTable);\r\n"],"mappings":"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"}
@@ -58,7 +58,7 @@ class NscTree extends TreePanel {
58
58
  key = "key"
59
59
  } = fieldNames;
60
60
  const nodes = data.map(item => {
61
- var _item$config;
61
+ var _item$config, _item$attribute3, _item$attribute6;
62
62
  let props = {
63
63
  dataref: item
64
64
  };
@@ -76,9 +76,11 @@ class NscTree extends TreePanel {
76
76
  }
77
77
  let titleNode = null;
78
78
  if (typeof item.title == "string") {
79
- if (item.attribute.subtitle) {
79
+ var _item$attribute;
80
+ if ((_item$attribute = item.attribute) !== null && _item$attribute !== void 0 && _item$attribute.subtitle) {
81
+ var _item$attribute2;
80
82
  titleNode = /*#__PURE__*/React.createElement("span", {
81
- title: item.title + "(" + item.attribute.subtitle + ")"
83
+ title: item.title + "(" + ((_item$attribute2 = item.attribute) === null || _item$attribute2 === void 0 ? void 0 : _item$attribute2.subtitle) + ")"
82
84
  }, /*#__PURE__*/React.createElement("span", null, item.title), /*#__PURE__*/React.createElement("span", {
83
85
  style: {
84
86
  color: "rgba(0,0,0,.45)"
@@ -92,15 +94,16 @@ class NscTree extends TreePanel {
92
94
  } else {
93
95
  titleNode = item.title;
94
96
  }
95
- if (item[children] || item !== null && item !== void 0 && item.attribute[children]) {
97
+ if (item[children] || item !== null && item !== void 0 && (_item$attribute3 = item.attribute) !== null && _item$attribute3 !== void 0 && _item$attribute3[children]) {
98
+ var _item$attribute4, _item$attribute5;
96
99
  return /*#__PURE__*/React.createElement(TreeNode, _extends({}, props, {
97
- key: item.attribute.key || item[key],
100
+ key: item[key] || ((_item$attribute4 = item.attribute) === null || _item$attribute4 === void 0 ? void 0 : _item$attribute4[key]),
98
101
  title: titleNode,
99
102
  icon: this.props.icon
100
- }), this.renderTreeNodes(item[children] || item.attribute[children], renderFn));
103
+ }), this.renderTreeNodes(item[children] || ((_item$attribute5 = item.attribute) === null || _item$attribute5 === void 0 ? void 0 : _item$attribute5[children]), renderFn));
101
104
  }
102
105
  return /*#__PURE__*/React.createElement(TreeNode, _extends({}, props, {
103
- key: item.attribute.key,
106
+ key: item[key] || ((_item$attribute6 = item.attribute) === null || _item$attribute6 === void 0 ? void 0 : _item$attribute6[key]),
104
107
  title: titleNode,
105
108
  icon: this.props.icon
106
109
  }));
@@ -246,4 +249,4 @@ _defineProperty(NscTree, "defaultProps", {
246
249
  store: {}
247
250
  });
248
251
  export default NscTree;
249
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRyZWVQYW5lbCIsInV0aWxzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJUcmVlU2VhcmNoIiwic3R5bGVzIiwiVHJlZU5vZGUiLCJfVHJlZSIsIk5zY1RyZWUiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibm9kZSIsImhhbmRsZUFkZCIsImhhbmRsZUVkaXQiLCJoYW5kbGVEZWxldGUiLCJ0cmVlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiX3RoaXMiLCJkYXRhcmVmIiwic3RvcmUiLCJsYXp5TG9hZCIsImZvcmNlVXBkYXRlIiwiZGF0YSIsInJlbmRlckZuIiwibm9kZVByb3BzIiwia2V5Iiwibm9kZUtleSIsInJlc3ROb2RlUHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJmaWVsZE5hbWVzIiwiY2hpbGRyZW4iLCJub2RlcyIsIm1hcCIsIml0ZW0iLCJfaXRlbSRjb25maWciLCJjb25maWciLCJmaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJuYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwiY2FsbGJhY2siLCJ0aXRsZU5vZGUiLCJ0aXRsZSIsImF0dHJpYnV0ZSIsInN1YnRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiY29sb3IiLCJjb25jYXQiLCJfZXh0ZW5kcyIsImljb24iLCJyZW5kZXJUcmVlTm9kZXMiLCJyZW5kZXJUZW1wbGF0ZSIsImJpbmQiLCJfZGF0YVRvQ2hlY2tlZEtleXMiLCJtb2RlbERhdGEiLCJjaGVja2VkS2V5cyIsImNoZWNrZWQiLCJoYWxmQ2hlY2tlZCIsImZvckVhY2hUcmVlIiwicHVzaCIsImdldENoZWNrZWRLZXlzIiwibnNjVHJlZVJlZiIsImN1cnJlbnQiLCJnZXRDaGVja2VkTm9kZXMiLCJrZXlFbnRpdGllcyIsInN0YXRlIiwiZ2V0Q2hlY2tlZEFsbEtleXMiLCJoYWxmQ2hlY2tlZEtleXMiLCJnZXRDaGVja2VkQWxsTm9kZXMiLCJjaGVja2VkS2V5c0FsbCIsInRyZWVQcm9wcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm5ld01lbnVEYXRhcyIsInRyZWVEYXRhIiwib3BlbktleXMiLCJfZXhjbHVkZWQyIiwiY2hlY2tQcm9wYWdhdGlvbiIsImNoZWNrU3RyaWN0bHkiLCJzaG93SWNvbiIsImxhenlsb2FkIiwibG9hZERhdGEiLCJfb25Mb2FkRGF0YSIsIm9uQ2hlY2tGbiIsIm9uQ2hlY2siLCJlIiwic2V0U3RhdGUiLCJvblNlbGVjdEZuIiwib25TZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJub2RlSW5mbyIsInNlbGVjdE5vZGUiLCJzZWxlY3RlZCIsInNlbGVjdGVkTm9kZXMiLCJleHBhbmRlZEtleXMiLCJfU3BpbiIsInNwaW5uaW5nIiwibG9hZGluZyIsImNsYXNzTmFtZSIsImVkaXRhYmxlIiwic2VhcmNoYWJsZSIsInRyZWVJbnN0YW5jZSIsImhhbmRsZUFkZE1vZHVsZSIsImhhbmRsZUVkaXRNb2R1bGUiLCJoYW5kbGVEZWxldGVNb2R1bGUiLCJBcnJheSIsImlzQXJyYXkiLCJyZWYiLCJjaGVja2FibGUiLCJyZW5kZXJUcmVlTm9kZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdHJlZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUcmVlLCBUcmVlUHJvcHMsIFNwaW4sIFRyZWVOb2RlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgVHJlZVBhbmVsLCB7XHJcbiAgSVRyZWVQYW5lbFByb3BzLFxyXG4gIFRyZWVDb21tb25Qcm9wcyxcclxufSBmcm9tIFwiLi4vY29tbW9uL1RyZWVQYW5lbFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IFJjVHJlZSBmcm9tIFwicmMtdHJlZVwiO1xyXG5pbXBvcnQgeyBEYXRhTm9kZSwgRXZlbnREYXRhTm9kZSB9IGZyb20gXCJyYy10cmVlL2xpYi9pbnRlcmZhY2VcIjtcclxuZXhwb3J0IHsgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgVHJlZVNlYXJjaCBmcm9tIFwiLi9UcmVlU2VhcmNoXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5jb25zdCB7IFRyZWVOb2RlIH0gPSBUcmVlO1xyXG4vLyBpbXBvcnQgVHJlZU5vZGUgZnJvbSBcIi4vTnNjVHJlZU5vZGVcIjtcclxudHlwZSBOc2NEYXRhTm9kZVByb3BzID0gRGF0YU5vZGUgJiB7IHByb3BzOiB7IGRhdGFyZWY6IGFueSB9IH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY1RyZWVQcm9wcyBleHRlbmRzIElUcmVlUGFuZWxQcm9wcyB7XHJcbiAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gIHRyZWVEYXRhPzogYW55W107XHJcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XHJcbiAgbm9kZVByb3BzPzogVHJlZU5vZGVQcm9wcztcclxuICBmaWVsZE5hbWVzPzoge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBjaGlsZHJlbjogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmNsYXNzIE5zY1RyZWUgZXh0ZW5kcyBUcmVlUGFuZWw8TnNjVHJlZVByb3BzICYgVHJlZUNvbW1vblByb3BzPiB7XHJcbiAgbnNjVHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxSY1RyZWUgJiBUcmVlUHJvcHM+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnJlbmRlclRlbXBsYXRlID0gdGhpcy5yZW5kZXJUZW1wbGF0ZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBzdG9yZToge30gfSA9IHsgc3RvcmU6IHt9IH07XHJcblxyXG4gIF9kYXRhVG9DaGVja2VkS2V5cyhtb2RlbERhdGEpOiBhbnkge1xyXG4gICAgbGV0IGNoZWNrZWRLZXlzID0geyBjaGVja2VkOiBbXSwgaGFsZkNoZWNrZWQ6IFtdIH07XHJcbiAgICB1dGlscy5mb3JFYWNoVHJlZShtb2RlbERhdGEsIGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgIGlmIChub2RlLmNoZWNrZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIGNoZWNrZWRLZXlzLmNoZWNrZWQucHVzaChub2RlLmF0dHJpYnV0ZS5rZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjaGVja2VkS2V5cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagkeaQnOe0olxyXG4gICAqL1xyXG4gIC8vIGhhbmRsZVNlYXJjaCA9ICh2YWx1ZSkgPT4ge1xyXG4gIC8vICAgdGhpcy5zZXRTdGF0ZSh7IHNlYXJjaFRleHQ6IHZhbHVlIH0pO1xyXG4gIC8vIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlumAieS4reiKgueCuUlE5pWw57uEXHJcbiAgICogQHJldHVybiBTdHJpbmdbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRLZXlzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQ7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bpgInkuK3oioLngrnlr7nosaHmlbDnu4RcclxuICAgKiBAcmV0dXJuIG5vZGVbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWROb2RlcygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGtleUVudGl0aWVzIH0gPSB0aGlzLm5zY1RyZWVSZWYuY3VycmVudC5zdGF0ZTtcclxuICAgIGxldCBub2RlcyA9IFtdIGFzIE5zY0RhdGFOb2RlUHJvcHNbXTtcclxuICAgIGNoZWNrZWRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIC8vIG5vZGVzLnB1c2goa2V5RW50aXRpZXNba2V5XS5ub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgICBjb25zdCBub2RlID0ga2V5RW50aXRpZXNba2V5XS5ub2RlIGFzIE5zY0RhdGFOb2RlUHJvcHM7XHJcbiAgICAgIG5vZGVzLnB1c2gobm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5YWo6YOo6YCJ5Lit6IqC54K5SUTvvIzljIXlkKvljYrpgInkuK3oioLngrlJRFxyXG4gICAqIEByZXR1cm4gU3RyaW5nW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkQWxsS2V5cygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXMuY29uY2F0KGhhbGZDaGVja2VkS2V5cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blhajpg6jpgInkuK3oioLngrlOb2Rl5a+56LGh77yM5YyF5ZCr5Y2K6YCJ5Lit6IqC54K5Tm9kZeWvueixoVxyXG4gICAqIEByZXR1cm4gbm9kZVtdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEFsbE5vZGVzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzLCBrZXlFbnRpdGllcyB9ID1cclxuICAgICAgdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICBsZXQgY2hlY2tlZEtleXNBbGwgPSBjaGVja2VkS2V5cy5jb25jYXQoaGFsZkNoZWNrZWRLZXlzKTtcclxuICAgIGxldCBub2RlcyA9IFtdO1xyXG4gICAgY2hlY2tlZEtleXNBbGwubWFwKChrZXkpID0+IHtcclxuICAgICAgY29uc3Qgbm9kZSA9IGtleUVudGl0aWVzW2tleV0ubm9kZSBhcyBOc2NEYXRhTm9kZVByb3BzO1xyXG4gICAgICBub2Rlcy5wdXNoKG5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIC8vIOa3u+WKoOaooeWdl1xyXG4gIGhhbmRsZUFkZE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVBZGQgPSB0aGlzLnByb3BzLmhhbmRsZUFkZDtcclxuICAgIGhhbmRsZUFkZCAmJiBoYW5kbGVBZGQobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgaGFuZGxlRWRpdE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVFZGl0ID0gdGhpcy5wcm9wcy5oYW5kbGVFZGl0O1xyXG4gICAgaGFuZGxlRWRpdCAmJiBoYW5kbGVFZGl0KG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZURlbGV0ZU1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVEZWxldGUgPSB0aGlzLnByb3BzLmhhbmRsZURlbGV0ZTtcclxuICAgIGhhbmRsZURlbGV0ZSAmJiBoYW5kbGVEZWxldGUobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgX29uTG9hZERhdGEgPSAodHJlZU5vZGU6IEV2ZW50RGF0YU5vZGU8YW55PiAmIHsgcHJvcHM6IHsgZGF0YXJlZiB9IH0pID0+XHJcbiAgICBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCBfdGhpcyA9IHRoaXMsXHJcbiAgICAgICAgbm9kZSA9IHRyZWVOb2RlLnByb3BzLmRhdGFyZWY7XHJcbiAgICAgIHRoaXMuc3RvcmUubGF6eUxvYWQobm9kZSwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJlc29sdmUobm9kZSk7XHJcbiAgICAgICAgX3RoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgcmVuZGVyVGVtcGxhdGUodHJlZVByb3BzID0ge30gYXMgSVRyZWVQYW5lbFByb3BzLCBuZXdNZW51RGF0YXMgPSBbXSkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgb3BlbktleXMsIC4uLnByb3BzIH0gPSB0cmVlUHJvcHM7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAocHJvcHMuY2hlY2tQcm9wYWdhdGlvbikge1xyXG4gICAgICBwcm9wcy5jaGVja1N0cmljdGx5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5zaG93SWNvbiA9PSBudWxsKSB7XHJcbiAgICAgIHByb3BzLnNob3dJY29uID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgeyBsYXp5bG9hZCB9ID0gdGhpcy5zdG9yZS5jb25maWc7XHJcbiAgICBpZiAobGF6eWxvYWQpIHtcclxuICAgICAgcHJvcHMubG9hZERhdGEgPSB0aGlzLl9vbkxvYWREYXRhO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb25DaGVja0ZuID0gcHJvcHMub25DaGVjaztcclxuICAgIHByb3BzLm9uQ2hlY2sgPSBmdW5jdGlvbiAoY2hlY2tlZEtleXMsIGUpIHtcclxuICAgICAgX3RoaXMuc2V0U3RhdGUoeyBjaGVja2VkS2V5czogY2hlY2tlZEtleXMgfSk7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2hlY2tGbiwgX3RoaXMsIFtjaGVja2VkS2V5cywgZV0pO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IG9uU2VsZWN0Rm4gPSBwcm9wcy5vblNlbGVjdDtcclxuICAgIHByb3BzLm9uU2VsZWN0ID0gKHNlbGVjdGVkS2V5cywgbm9kZUluZm8pID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25TZWxlY3RGbiwgX3RoaXMsIFtzZWxlY3RlZEtleXMsIG5vZGVJbmZvXSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHNlbGVjdE5vZGU6IG5vZGVJbmZvLnNlbGVjdGVkID8gbm9kZUluZm8uc2VsZWN0ZWROb2Rlc1swXSA6IG51bGwsXHJcbiAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wZW5LZXlzKSB7XHJcbiAgICAgIHByb3BzLmV4cGFuZGVkS2V5cyA9IG9wZW5LZXlzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFNwaW4gc3Bpbm5pbmc9e3RoaXMuc3RhdGUubG9hZGluZ30+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcIm5zYy10cmVlLWJveFwiXX0+XHJcbiAgICAgICAgICB7KF90aGlzLnByb3BzLmVkaXRhYmxlIHx8IF90aGlzLnByb3BzLnNlYXJjaGFibGUpICYmIChcclxuICAgICAgICAgICAgPFRyZWVTZWFyY2hcclxuICAgICAgICAgICAgICB0cmVlSW5zdGFuY2U9e3RoaXN9XHJcbiAgICAgICAgICAgICAgaGFuZGxlQWRkTW9kdWxlPXt0aGlzLmhhbmRsZUFkZE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVFZGl0TW9kdWxlPXt0aGlzLmhhbmRsZUVkaXRNb2R1bGV9XHJcbiAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlTW9kdWxlPXt0aGlzLmhhbmRsZURlbGV0ZU1vZHVsZX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7QXJyYXkuaXNBcnJheShuZXdNZW51RGF0YXMpICYmIG5ld01lbnVEYXRhcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgPFRyZWUgcmVmPXt0aGlzLm5zY1RyZWVSZWZ9IGNoZWNrYWJsZSB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhuZXdNZW51RGF0YXMsIHByb3BzLnJlbmRlclRyZWVOb2RlKX1cclxuICAgICAgICAgICAgPC9UcmVlPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9TcGluPlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRyZWVOb2RlcyA9IChkYXRhLCByZW5kZXJGbikgPT4ge1xyXG4gICAgY29uc3Qgbm9kZVByb3BzID0gdGhpcy5wcm9wcy5ub2RlUHJvcHMgfHwge307XHJcbiAgICBjb25zdCB7IGtleTogbm9kZUtleSwgLi4ucmVzdE5vZGVQcm9wcyB9ID0gbm9kZVByb3BzO1xyXG4gICAgY29uc3QgeyBmaWVsZE5hbWVzID0ge30gYXMgYW55IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiA9IFwiY2hpbGROb2Rlc1wiLCBrZXkgPSBcImtleVwiIH0gPSBmaWVsZE5hbWVzO1xyXG4gICAgY29uc3Qgbm9kZXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBsZXQgcHJvcHMgPSB7IGRhdGFyZWY6IGl0ZW0gfSBhcyBUcmVlTm9kZVByb3BzO1xyXG4gICAgICBpdGVtPy5jb25maWc/LmZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoZmllbGQubmFtZSA9PT0gXCJrZXlcIiAmJiBub2RlS2V5KSB7XHJcbiAgICAgICAgICBwcm9wcy5rZXkgPSBpdGVtW25vZGVLZXldO1xyXG4gICAgICAgICAgaXRlbS5rZXkgPSBpdGVtW25vZGVLZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcm9wc1tmaWVsZC5uYW1lXSA9IGl0ZW1bZmllbGQubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmFzc2lnbihwcm9wcywgcmVzdE5vZGVQcm9wcyk7XHJcbiAgICAgIGlmIChyZW5kZXJGbikge1xyXG4gICAgICAgIHByb3BzID0gdXRpbHMuY2FsbGJhY2socmVuZGVyRm4sIHRoaXMsIFtwcm9wcywgaXRlbV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgdGl0bGVOb2RlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtLnRpdGxlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBpZiAoaXRlbS5hdHRyaWJ1dGUuc3VidGl0bGUpIHtcclxuICAgICAgICAgIHRpdGxlTm9kZSA9IChcclxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGUgKyBcIu+8iFwiICsgaXRlbS5hdHRyaWJ1dGUuc3VidGl0bGUgKyBcIu+8iVwifT5cclxuICAgICAgICAgICAgICA8c3Bhbj57aXRlbS50aXRsZX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgICAgPntg77yIJHtpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZX3vvIlgfTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGl0bGVOb2RlID0gPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGV9PntpdGVtLnRpdGxlfTwvc3Bhbj47XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRpdGxlTm9kZSA9IGl0ZW0udGl0bGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW1bY2hpbGRyZW5dIHx8IGl0ZW0/LmF0dHJpYnV0ZVtjaGlsZHJlbl0pIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPFRyZWVOb2RlXHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAga2V5PXtpdGVtLmF0dHJpYnV0ZS5rZXkgfHwgaXRlbVtrZXldfVxyXG4gICAgICAgICAgICB0aXRsZT17dGl0bGVOb2RlfVxyXG4gICAgICAgICAgICBpY29uPXt0aGlzLnByb3BzLmljb259XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhpdGVtW2NoaWxkcmVuXSB8fCBpdGVtLmF0dHJpYnV0ZVtjaGlsZHJlbl0sIHJlbmRlckZuKX1cclxuICAgICAgICAgIDwvVHJlZU5vZGU+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8VHJlZU5vZGVcclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGtleT17aXRlbS5hdHRyaWJ1dGUua2V5fVxyXG4gICAgICAgICAgdGl0bGU9e3RpdGxlTm9kZX1cclxuICAgICAgICAgIGljb249e3RoaXMucHJvcHMuaWNvbn1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5zY1RyZWU7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBRXpCLE9BQU9DLFNBQVMsTUFHVCxxQkFBcUI7QUFDNUIsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUc3QyxTQUFTQyxLQUFLLEVBQUVDLGVBQWUsUUFBUSxhQUFhO0FBQ3BELE9BQU9DLFVBQVUsTUFBTSxjQUFjO0FBQ3JDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE1BQU07RUFBRUM7QUFBUyxDQUFDLEdBQUFDLEtBQU87QUFDekI7O0FBY0EsTUFBTUMsT0FBTyxTQUFTUixTQUFTLENBQWlDO0VBRzlEUyxXQUFXQSxDQUFDQyxNQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxNQUFLLENBQUM7SUFBQ0MsZUFBQSxrQ0FIRlosS0FBSyxDQUFDYSxTQUFTLENBQXFCLENBQUM7SUEyRWxEO0lBQUFELGVBQUEsMEJBQ21CRSxJQUFJLElBQUs7TUFDMUIsTUFBTUMsU0FBUyxHQUFHLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxTQUFTO01BQ3RDQSxTQUFTLElBQUlBLFNBQVMsQ0FBQ0QsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFBQUYsZUFBQSwyQkFFbUJFLElBQUksSUFBSztNQUMzQixNQUFNRSxV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
252
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRyZWVQYW5lbCIsInV0aWxzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJUcmVlU2VhcmNoIiwic3R5bGVzIiwiVHJlZU5vZGUiLCJfVHJlZSIsIk5zY1RyZWUiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibm9kZSIsImhhbmRsZUFkZCIsImhhbmRsZUVkaXQiLCJoYW5kbGVEZWxldGUiLCJ0cmVlTm9kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiX3RoaXMiLCJkYXRhcmVmIiwic3RvcmUiLCJsYXp5TG9hZCIsImZvcmNlVXBkYXRlIiwiZGF0YSIsInJlbmRlckZuIiwibm9kZVByb3BzIiwia2V5Iiwibm9kZUtleSIsInJlc3ROb2RlUHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJmaWVsZE5hbWVzIiwiY2hpbGRyZW4iLCJub2RlcyIsIm1hcCIsIml0ZW0iLCJfaXRlbSRjb25maWciLCJfaXRlbSRhdHRyaWJ1dGUzIiwiX2l0ZW0kYXR0cmlidXRlNiIsImNvbmZpZyIsImZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsIm5hbWUiLCJPYmplY3QiLCJhc3NpZ24iLCJjYWxsYmFjayIsInRpdGxlTm9kZSIsInRpdGxlIiwiX2l0ZW0kYXR0cmlidXRlIiwiYXR0cmlidXRlIiwic3VidGl0bGUiLCJfaXRlbSRhdHRyaWJ1dGUyIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiY29sb3IiLCJjb25jYXQiLCJfaXRlbSRhdHRyaWJ1dGU0IiwiX2l0ZW0kYXR0cmlidXRlNSIsIl9leHRlbmRzIiwiaWNvbiIsInJlbmRlclRyZWVOb2RlcyIsInJlbmRlclRlbXBsYXRlIiwiYmluZCIsIl9kYXRhVG9DaGVja2VkS2V5cyIsIm1vZGVsRGF0YSIsImNoZWNrZWRLZXlzIiwiY2hlY2tlZCIsImhhbGZDaGVja2VkIiwiZm9yRWFjaFRyZWUiLCJwdXNoIiwiZ2V0Q2hlY2tlZEtleXMiLCJuc2NUcmVlUmVmIiwiY3VycmVudCIsImdldENoZWNrZWROb2RlcyIsImtleUVudGl0aWVzIiwic3RhdGUiLCJnZXRDaGVja2VkQWxsS2V5cyIsImhhbGZDaGVja2VkS2V5cyIsImdldENoZWNrZWRBbGxOb2RlcyIsImNoZWNrZWRLZXlzQWxsIiwidHJlZVByb3BzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwibmV3TWVudURhdGFzIiwidHJlZURhdGEiLCJvcGVuS2V5cyIsIl9leGNsdWRlZDIiLCJjaGVja1Byb3BhZ2F0aW9uIiwiY2hlY2tTdHJpY3RseSIsInNob3dJY29uIiwibGF6eWxvYWQiLCJsb2FkRGF0YSIsIl9vbkxvYWREYXRhIiwib25DaGVja0ZuIiwib25DaGVjayIsImUiLCJzZXRTdGF0ZSIsIm9uU2VsZWN0Rm4iLCJvblNlbGVjdCIsInNlbGVjdGVkS2V5cyIsIm5vZGVJbmZvIiwic2VsZWN0Tm9kZSIsInNlbGVjdGVkIiwic2VsZWN0ZWROb2RlcyIsImV4cGFuZGVkS2V5cyIsIl9TcGluIiwic3Bpbm5pbmciLCJsb2FkaW5nIiwiY2xhc3NOYW1lIiwiZWRpdGFibGUiLCJzZWFyY2hhYmxlIiwidHJlZUluc3RhbmNlIiwiaGFuZGxlQWRkTW9kdWxlIiwiaGFuZGxlRWRpdE1vZHVsZSIsImhhbmRsZURlbGV0ZU1vZHVsZSIsIkFycmF5IiwiaXNBcnJheSIsInJlZiIsImNoZWNrYWJsZSIsInJlbmRlclRyZWVOb2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS90cmVlL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFRyZWUsIFRyZWVQcm9wcywgU3BpbiwgVHJlZU5vZGVQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBUcmVlUGFuZWwsIHtcclxuICBJVHJlZVBhbmVsUHJvcHMsXHJcbiAgVHJlZUNvbW1vblByb3BzLFxyXG59IGZyb20gXCIuLi9jb21tb24vVHJlZVBhbmVsXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgUmNUcmVlIGZyb20gXCJyYy10cmVlXCI7XHJcbmltcG9ydCB7IERhdGFOb2RlLCBFdmVudERhdGFOb2RlIH0gZnJvbSBcInJjLXRyZWUvbGliL2ludGVyZmFjZVwiO1xyXG5leHBvcnQgeyBTdG9yZSwgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBUcmVlU2VhcmNoIGZyb20gXCIuL1RyZWVTZWFyY2hcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmNvbnN0IHsgVHJlZU5vZGUgfSA9IFRyZWU7XHJcbi8vIGltcG9ydCBUcmVlTm9kZSBmcm9tIFwiLi9Oc2NUcmVlTm9kZVwiO1xyXG50eXBlIE5zY0RhdGFOb2RlUHJvcHMgPSBEYXRhTm9kZSAmIHsgcHJvcHM6IHsgZGF0YXJlZjogYW55IH0gfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjVHJlZVByb3BzIGV4dGVuZHMgSVRyZWVQYW5lbFByb3BzIHtcclxuICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgdHJlZURhdGE/OiBhbnlbXTtcclxuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcclxuICBub2RlUHJvcHM/OiBUcmVlTm9kZVByb3BzO1xyXG4gIGZpZWxkTmFtZXM/OiB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIGNoaWxkcmVuOiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgTnNjVHJlZSBleHRlbmRzIFRyZWVQYW5lbDxOc2NUcmVlUHJvcHMgJiBUcmVlQ29tbW9uUHJvcHM+IHtcclxuICBuc2NUcmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPFJjVHJlZSAmIFRyZWVQcm9wcz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMucmVuZGVyVGVtcGxhdGUgPSB0aGlzLnJlbmRlclRlbXBsYXRlLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGVmYXVsdFByb3BzOiB7IHN0b3JlOiB7fSB9ID0geyBzdG9yZToge30gfTtcclxuXHJcbiAgX2RhdGFUb0NoZWNrZWRLZXlzKG1vZGVsRGF0YSk6IGFueSB7XHJcbiAgICBsZXQgY2hlY2tlZEtleXMgPSB7IGNoZWNrZWQ6IFtdLCBoYWxmQ2hlY2tlZDogW10gfTtcclxuICAgIHV0aWxzLmZvckVhY2hUcmVlKG1vZGVsRGF0YSwgZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgICAgaWYgKG5vZGUuY2hlY2tlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgY2hlY2tlZEtleXMuY2hlY2tlZC5wdXNoKG5vZGUuYXR0cmlidXRlLmtleSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNoZWNrZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qCR5pCc57SiXHJcbiAgICovXHJcbiAgLy8gaGFuZGxlU2VhcmNoID0gKHZhbHVlKSA9PiB7XHJcbiAgLy8gICB0aGlzLnNldFN0YXRlKHsgc2VhcmNoVGV4dDogdmFsdWUgfSk7XHJcbiAgLy8gfTtcclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W6YCJ5Lit6IqC54K5SUTmlbDnu4RcclxuICAgKiBAcmV0dXJuIFN0cmluZ1tdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEtleXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzIH0gPSB0aGlzLm5zY1RyZWVSZWYuY3VycmVudDtcclxuICAgIHJldHVybiBjaGVja2VkS2V5cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlumAieS4reiKgueCueWvueixoeaVsOe7hFxyXG4gICAqIEByZXR1cm4gbm9kZVtdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZE5vZGVzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cywga2V5RW50aXRpZXMgfSA9IHRoaXMubnNjVHJlZVJlZi5jdXJyZW50LnN0YXRlO1xyXG4gICAgbGV0IG5vZGVzID0gW10gYXMgTnNjRGF0YU5vZGVQcm9wc1tdO1xyXG4gICAgY2hlY2tlZEtleXMubWFwKChrZXkpID0+IHtcclxuICAgICAgLy8gbm9kZXMucHVzaChrZXlFbnRpdGllc1trZXldLm5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBrZXlFbnRpdGllc1trZXldLm5vZGUgYXMgTnNjRGF0YU5vZGVQcm9wcztcclxuICAgICAgbm9kZXMucHVzaChub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbm9kZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blhajpg6jpgInkuK3oioLngrlJRO+8jOWMheWQq+WNiumAieS4reiKgueCuUlEXHJcbiAgICogQHJldHVybiBTdHJpbmdbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRBbGxLZXlzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzIH0gPSB0aGlzLm5zY1RyZWVSZWYuY3VycmVudC5zdGF0ZTtcclxuICAgIHJldHVybiBjaGVja2VkS2V5cy5jb25jYXQoaGFsZkNoZWNrZWRLZXlzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWFqOmDqOmAieS4reiKgueCuU5vZGXlr7nosaHvvIzljIXlkKvljYrpgInkuK3oioLngrlOb2Rl5a+56LGhXHJcbiAgICogQHJldHVybiBub2RlW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkQWxsTm9kZXMoKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMsIGtleUVudGl0aWVzIH0gPVxyXG4gICAgICB0aGlzLm5zY1RyZWVSZWYuY3VycmVudC5zdGF0ZTtcclxuICAgIGxldCBjaGVja2VkS2V5c0FsbCA9IGNoZWNrZWRLZXlzLmNvbmNhdChoYWxmQ2hlY2tlZEtleXMpO1xyXG4gICAgbGV0IG5vZGVzID0gW107XHJcbiAgICBjaGVja2VkS2V5c0FsbC5tYXAoKGtleSkgPT4ge1xyXG4gICAgICBjb25zdCBub2RlID0ga2V5RW50aXRpZXNba2V5XS5ub2RlIGFzIE5zY0RhdGFOb2RlUHJvcHM7XHJcbiAgICAgIG5vZGVzLnB1c2gobm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH1cclxuXHJcbiAgLy8g5re75Yqg5qih5Z2XXHJcbiAgaGFuZGxlQWRkTW9kdWxlID0gKG5vZGUpID0+IHtcclxuICAgIGNvbnN0IGhhbmRsZUFkZCA9IHRoaXMucHJvcHMuaGFuZGxlQWRkO1xyXG4gICAgaGFuZGxlQWRkICYmIGhhbmRsZUFkZChub2RlKTtcclxuICB9O1xyXG5cclxuICBoYW5kbGVFZGl0TW9kdWxlID0gKG5vZGUpID0+IHtcclxuICAgIGNvbnN0IGhhbmRsZUVkaXQgPSB0aGlzLnByb3BzLmhhbmRsZUVkaXQ7XHJcbiAgICBoYW5kbGVFZGl0ICYmIGhhbmRsZUVkaXQobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgaGFuZGxlRGVsZXRlTW9kdWxlID0gKG5vZGUpID0+IHtcclxuICAgIGNvbnN0IGhhbmRsZURlbGV0ZSA9IHRoaXMucHJvcHMuaGFuZGxlRGVsZXRlO1xyXG4gICAgaGFuZGxlRGVsZXRlICYmIGhhbmRsZURlbGV0ZShub2RlKTtcclxuICB9O1xyXG5cclxuICBfb25Mb2FkRGF0YSA9ICh0cmVlTm9kZTogRXZlbnREYXRhTm9kZTxhbnk+ICYgeyBwcm9wczogeyBkYXRhcmVmIH0gfSkgPT5cclxuICAgIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGNvbnN0IF90aGlzID0gdGhpcyxcclxuICAgICAgICBub2RlID0gdHJlZU5vZGUucHJvcHMuZGF0YXJlZjtcclxuICAgICAgdGhpcy5zdG9yZS5sYXp5TG9hZChub2RlLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmVzb2x2ZShub2RlKTtcclxuICAgICAgICBfdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICByZW5kZXJUZW1wbGF0ZSh0cmVlUHJvcHMgPSB7fSBhcyBJVHJlZVBhbmVsUHJvcHMsIG5ld01lbnVEYXRhcyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBvcGVuS2V5cywgLi4ucHJvcHMgfSA9IHRyZWVQcm9wcztcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChwcm9wcy5jaGVja1Byb3BhZ2F0aW9uKSB7XHJcbiAgICAgIHByb3BzLmNoZWNrU3RyaWN0bHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLnNob3dJY29uID09IG51bGwpIHtcclxuICAgICAgcHJvcHMuc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7IGxhenlsb2FkIH0gPSB0aGlzLnN0b3JlLmNvbmZpZztcclxuICAgIGlmIChsYXp5bG9hZCkge1xyXG4gICAgICBwcm9wcy5sb2FkRGF0YSA9IHRoaXMuX29uTG9hZERhdGE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbkNoZWNrRm4gPSBwcm9wcy5vbkNoZWNrO1xyXG4gICAgcHJvcHMub25DaGVjayA9IGZ1bmN0aW9uIChjaGVja2VkS2V5cywgZSkge1xyXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7IGNoZWNrZWRLZXlzOiBjaGVja2VkS2V5cyB9KTtcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DaGVja0ZuLCBfdGhpcywgW2NoZWNrZWRLZXlzLCBlXSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgb25TZWxlY3RGbiA9IHByb3BzLm9uU2VsZWN0O1xyXG4gICAgcHJvcHMub25TZWxlY3QgPSAoc2VsZWN0ZWRLZXlzLCBub2RlSW5mbykgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvblNlbGVjdEZuLCBfdGhpcywgW3NlbGVjdGVkS2V5cywgbm9kZUluZm9dKTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc2VsZWN0Tm9kZTogbm9kZUluZm8uc2VsZWN0ZWQgPyBub2RlSW5mby5zZWxlY3RlZE5vZGVzWzBdIDogbnVsbCxcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3BlbktleXMpIHtcclxuICAgICAgcHJvcHMuZXhwYW5kZWRLZXlzID0gb3BlbktleXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8U3BpbiBzcGlubmluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRyZWUtYm94XCJdfT5cclxuICAgICAgICAgIHsoX3RoaXMucHJvcHMuZWRpdGFibGUgfHwgX3RoaXMucHJvcHMuc2VhcmNoYWJsZSkgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZVNlYXJjaFxyXG4gICAgICAgICAgICAgIHRyZWVJbnN0YW5jZT17dGhpc31cclxuICAgICAgICAgICAgICBoYW5kbGVBZGRNb2R1bGU9e3RoaXMuaGFuZGxlQWRkTW9kdWxlfVxyXG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRNb2R1bGU9e3RoaXMuaGFuZGxlRWRpdE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVEZWxldGVNb2R1bGU9e3RoaXMuaGFuZGxlRGVsZXRlTW9kdWxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KG5ld01lbnVEYXRhcykgJiYgbmV3TWVudURhdGFzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZSByZWY9e3RoaXMubnNjVHJlZVJlZn0gY2hlY2thYmxlIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyVHJlZU5vZGVzKG5ld01lbnVEYXRhcywgcHJvcHMucmVuZGVyVHJlZU5vZGUpfVxyXG4gICAgICAgICAgICA8L1RyZWU+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1NwaW4+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVHJlZU5vZGVzID0gKGRhdGEsIHJlbmRlckZuKSA9PiB7XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSB0aGlzLnByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGNvbnN0IHsga2V5OiBub2RlS2V5LCAuLi5yZXN0Tm9kZVByb3BzIH0gPSBub2RlUHJvcHM7XHJcbiAgICBjb25zdCB7IGZpZWxkTmFtZXMgPSB7fSBhcyBhbnkgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuID0gXCJjaGlsZE5vZGVzXCIsIGtleSA9IFwia2V5XCIgfSA9IGZpZWxkTmFtZXM7XHJcbiAgICBjb25zdCBub2RlcyA9IGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBwcm9wcyA9IHsgZGF0YXJlZjogaXRlbSB9IGFzIFRyZWVOb2RlUHJvcHM7XHJcbiAgICAgIGl0ZW0/LmNvbmZpZz8uZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBcImtleVwiICYmIG5vZGVLZXkpIHtcclxuICAgICAgICAgIHByb3BzLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgICBpdGVtLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHByb3BzW2ZpZWxkLm5hbWVdID0gaXRlbVtmaWVsZC5uYW1lXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHByb3BzLCByZXN0Tm9kZVByb3BzKTtcclxuICAgICAgaWYgKHJlbmRlckZuKSB7XHJcbiAgICAgICAgcHJvcHMgPSB1dGlscy5jYWxsYmFjayhyZW5kZXJGbiwgdGhpcywgW3Byb3BzLCBpdGVtXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB0aXRsZU5vZGUgPSBudWxsO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0udGl0bGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGlmIChpdGVtLmF0dHJpYnV0ZT8uc3VidGl0bGUpIHtcclxuICAgICAgICAgIHRpdGxlTm9kZSA9IChcclxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGUgKyBcIu+8iFwiICsgaXRlbS5hdHRyaWJ1dGU/LnN1YnRpdGxlICsgXCLvvIlcIn0+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e2l0ZW0udGl0bGV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogXCJyZ2JhKDAsMCwwLC40NSlcIiB9fVxyXG4gICAgICAgICAgICAgID57YO+8iCR7aXRlbS5hdHRyaWJ1dGUuc3VidGl0bGV977yJYH08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRpdGxlTm9kZSA9IDxzcGFuIHRpdGxlPXtpdGVtLnRpdGxlfT57aXRlbS50aXRsZX08L3NwYW4+O1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZU5vZGUgPSBpdGVtLnRpdGxlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtW2NoaWxkcmVuXSB8fCBpdGVtPy5hdHRyaWJ1dGU/LltjaGlsZHJlbl0pIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPFRyZWVOb2RlXHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAga2V5PXtpdGVtW2tleV18fGl0ZW0uYXR0cmlidXRlPy5ba2V5XX1cclxuICAgICAgICAgICAgdGl0bGU9e3RpdGxlTm9kZX1cclxuICAgICAgICAgICAgaWNvbj17dGhpcy5wcm9wcy5pY29ufVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJUcmVlTm9kZXMoaXRlbVtjaGlsZHJlbl0gfHwgaXRlbS5hdHRyaWJ1dGU/LltjaGlsZHJlbl0sIHJlbmRlckZuKX1cclxuICAgICAgICAgIDwvVHJlZU5vZGU+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8VHJlZU5vZGVcclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGtleT17aXRlbVtrZXldfHxpdGVtLmF0dHJpYnV0ZT8uW2tleV19XHJcbiAgICAgICAgICB0aXRsZT17dGl0bGVOb2RlfVxyXG4gICAgICAgICAgaWNvbj17dGhpcy5wcm9wcy5pY29ufVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NUcmVlO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUV6QixPQUFPQyxTQUFTLE1BR1QscUJBQXFCO0FBQzVCLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFHN0MsU0FBU0MsS0FBSyxFQUFFQyxlQUFlLFFBQVEsYUFBYTtBQUNwRCxPQUFPQyxVQUFVLE1BQU0sY0FBYztBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxNQUFNO0VBQUVDO0FBQVMsQ0FBQyxHQUFBQyxLQUFPO0FBQ3pCOztBQWNBLE1BQU1DLE9BQU8sU0FBU1IsU0FBUyxDQUFpQztFQUc5RFMsV0FBV0EsQ0FBQ0MsTUFBSyxFQUFFO0lBQ2pCLEtBQUssQ0FBQ0EsTUFBSyxDQUFDO0lBQUNDLGVBQUEsa0NBSEZaLEtBQUssQ0FBQ2EsU0FBUyxDQUFxQixDQUFDO0lBMkVsRDtJQUFBRCxlQUFBLDBCQUNtQkUsSUFBSSxJQUFLO01BQzFC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