nsc-react-component 3.2.6 → 3.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/base/table/index.d.ts +2 -0
- package/lib/base/table/index.js +11 -1
- package/lib/base/table/index.js.map +1 -1
- package/lib/page/BasePage/Form.d.ts +1 -0
- package/lib/page/BasePage/Form.js +36 -31
- package/lib/page/BasePage/Form.js.map +1 -1
- package/lib/page/BasePage/index.d.ts +3 -0
- package/lib/page/BasePage/index.js +26 -13
- package/lib/page/BasePage/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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","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","getColumns","sortFields","defaultShowCols","ellipsis","render","showTitle","text","title","className","style","indexOf","sortOrder","multiple","item","filterProps","obj","searchKey","Div","placeholder","concat","ref","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","DefaultTable","_Table","_extends","childrenColumnName","sheitem","locale","emptyText","scroll","x","_Pagination","page","action","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 } 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\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 } 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 cols: nextColumns,\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 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({ cols: this.props.columns });\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\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\r\n getColumns() {\r\n const { columns, sortType, sortInfo } = this.state;\r\n const { sortFields = [] } = this.props;\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n const cols = defaultShowCols.map((col, index) => {\r\n if (col.ellipsis && !col.render) {\r\n col.ellipsis = {\r\n showTitle: false,\r\n };\r\n col.render = (text) => {\r\n return (\r\n <div\r\n title={text}\r\n className={getLess(styles, \"nsc-table-text\")}\r\n style={{ width: col.width || \"100%\" }}\r\n >\r\n {text}\r\n </div>\r\n );\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 = toolbar.onToolClick\r\n ? toolbar.onToolClick\r\n : [\"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 ],\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 ...props.pagination,\r\n ...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 ? `${styles[\"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 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 {...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({\r\n pagination: { current: page, pageSize },\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","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","getColumns","sortFields","defaultShowCols","ellipsis","render","showTitle","text","title","className","style","indexOf","sortOrder","multiple","item","filterProps","obj","searchKey","Div","placeholder","concat","ref","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","DefaultTable","_Table","_extends","childrenColumnName","sheitem","locale","emptyText","scroll","x","_Pagination","page","action","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 } 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\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 } 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 cols: nextColumns,\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 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({ cols: this.props.columns });\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\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 = [] } = this.props;\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n const cols = defaultShowCols.map((col, index) => {\r\n if (col.ellipsis && !col.render) {\r\n col.ellipsis = {\r\n showTitle: false,\r\n };\r\n col.render = (text) => {\r\n return (\r\n <div\r\n title={text}\r\n className={getLess(styles, \"nsc-table-text\")}\r\n style={{ width: col.width || \"100%\" }}\r\n >\r\n {text}\r\n </div>\r\n );\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 = toolbar.onToolClick\r\n ? toolbar.onToolClick\r\n : [\"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 ],\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 ...props.pagination,\r\n ...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 ? `${styles[\"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 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 {...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({\r\n pagination: { current: page, pageSize },\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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"}
|
|
@@ -17,6 +17,7 @@ declare class EditorForm extends PureComponent<any> {
|
|
|
17
17
|
setLoading(loading: boolean): void;
|
|
18
18
|
setFieldsValue(values: any): void;
|
|
19
19
|
getFieldsValue(): any;
|
|
20
|
+
doSubmit(data: any, label: any): void;
|
|
20
21
|
onSubmit(): void;
|
|
21
22
|
valueChange({ type, dictName }: {
|
|
22
23
|
type: any;
|
|
@@ -104,23 +104,49 @@ class EditorForm extends PureComponent {
|
|
|
104
104
|
var _this$formRef$current6;
|
|
105
105
|
return (_this$formRef$current6 = this.formRef.current) === null || _this$formRef$current6 === void 0 ? void 0 : _this$formRef$current6.getFieldsValue();
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
var _this$formRef$current7
|
|
107
|
+
doSubmit(data, label) {
|
|
108
|
+
var _this$formRef$current7;
|
|
109
109
|
const {
|
|
110
|
-
submitUrl
|
|
111
|
-
submitParams
|
|
112
|
-
onSubmit,
|
|
110
|
+
submitUrl,
|
|
111
|
+
submitParams,
|
|
113
112
|
callBack
|
|
114
113
|
} = this.props;
|
|
114
|
+
if (!submitUrl) {
|
|
115
|
+
throw new Error("url不能为空!");
|
|
116
|
+
}
|
|
117
|
+
(_this$formRef$current7 = this.formRef.current) === null || _this$formRef$current7 === void 0 || _this$formRef$current7.onSubmit(submitUrl, {
|
|
118
|
+
data: _objectSpread({}, data),
|
|
119
|
+
noUndefined: label == "编辑",
|
|
120
|
+
submitParams
|
|
121
|
+
}, res => {
|
|
122
|
+
const {
|
|
123
|
+
code
|
|
124
|
+
} = res;
|
|
125
|
+
this.setState({
|
|
126
|
+
loading: false
|
|
127
|
+
});
|
|
128
|
+
if (code === 200) {
|
|
129
|
+
message.success(label + "成功");
|
|
130
|
+
this.hide(true);
|
|
131
|
+
callBack && callBack();
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
this.hide(false);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
onSubmit() {
|
|
138
|
+
var _this$formRef$current8, _this$formRef$current9;
|
|
139
|
+
const {
|
|
140
|
+
onSubmit
|
|
141
|
+
} = this.props;
|
|
115
142
|
const {
|
|
116
143
|
label,
|
|
117
144
|
value,
|
|
118
145
|
dictNames
|
|
119
146
|
} = this.state;
|
|
120
|
-
const formValue = (_this$formRef$
|
|
147
|
+
const formValue = (_this$formRef$current8 = this.formRef.current) === null || _this$formRef$current8 === void 0 ? void 0 : _this$formRef$current8.getFieldsValue();
|
|
121
148
|
let valid = this.valid;
|
|
122
|
-
(_this$formRef$
|
|
123
|
-
var _this$formRef$current9;
|
|
149
|
+
(_this$formRef$current9 = this.formRef.current) === null || _this$formRef$current9 === void 0 || _this$formRef$current9.validateFields(valid).then(() => {
|
|
124
150
|
this.setState({
|
|
125
151
|
loading: true
|
|
126
152
|
});
|
|
@@ -144,28 +170,7 @@ class EditorForm extends PureComponent {
|
|
|
144
170
|
onSubmit && onSubmit(data, label);
|
|
145
171
|
return;
|
|
146
172
|
}
|
|
147
|
-
|
|
148
|
-
throw new Error("url不能为空!");
|
|
149
|
-
}
|
|
150
|
-
(_this$formRef$current9 = this.formRef.current) === null || _this$formRef$current9 === void 0 || _this$formRef$current9.onSubmit(submitUrl, {
|
|
151
|
-
data: _objectSpread({}, data),
|
|
152
|
-
noUndefined: label == "编辑",
|
|
153
|
-
submitParams
|
|
154
|
-
}, res => {
|
|
155
|
-
const {
|
|
156
|
-
code
|
|
157
|
-
} = res;
|
|
158
|
-
this.setState({
|
|
159
|
-
loading: false
|
|
160
|
-
});
|
|
161
|
-
if (code === 200) {
|
|
162
|
-
message.success(label + "成功");
|
|
163
|
-
this.hide(true);
|
|
164
|
-
callBack && callBack();
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
this.hide(false);
|
|
168
|
-
});
|
|
173
|
+
this.doSubmit(data, label);
|
|
169
174
|
}).catch(errorInfo => {});
|
|
170
175
|
}
|
|
171
176
|
valueChange(_ref, props, value, valueOption, data) {
|
|
@@ -289,4 +294,4 @@ class EditorForm extends PureComponent {
|
|
|
289
294
|
}
|
|
290
295
|
}
|
|
291
296
|
export default EditorForm;
|
|
292
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsImRheWpzIiwic3R5bGVzIiwibG9kYXNoIiwiRWRpdG9yRm9ybSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNldFN0YXRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50IiwiY2xvbmVEZWVwIiwiZGF0ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsInByb3BzIiwiZGVmYXVsdFZhbHVlIiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0Iiwic2V0TG9hZGluZyIsInNldEZpZWxkc1ZhbHVlIiwidmFsdWVzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NSIsImdldEZpZWxkc1ZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsIm9uU3VibWl0IiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NyIsIl90aGlzJGZvcm1SZWYkY3VycmVudDgiLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJjYWxsQmFjayIsInN0YXRlIiwiZm9ybVZhbHVlIiwidmFsaWQiLCJ2YWxpZGF0ZUZpZWxkcyIsInRoZW4iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ5IiwiZGF0YSIsIl9vYmplY3RTcHJlYWQiLCJkYXRlVmFsdWVGb3JtYXQiLCJmb3JtYXQiLCJpZCIsIkVycm9yIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwidmFsdWVDaGFuZ2UiLCJfcmVmIiwidmFsdWVPcHRpb24iLCJ0eXBlIiwiZGljdE5hbWUiLCJuZXdOYW1lcyIsIm9uQ2hhbmdlIiwicmVuZGVyIiwiZm9ybVByb3BzIiwib3RoZXJQcm9wcyIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsIm9uT2siLCJiaW5kIiwib25DYW5jZWwiLCJva0J1dHRvblByb3BzIiwiY2VudGVyZWQiLCJ3aWR0aCIsIm5ld1ZhbGlkIiwiZHJhd2VyUHJvcHMiLCJvbkNsb3NlIiwiZm9vdGVyIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwicmVmIiwic2hvd01vZGVsIiwiZm9ybVR5cGUiLCJsYWJlbENvbCIsImZsZXgiLCJ3cmFwcGVyQ29sIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJndXR0ZXIiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJhbGxvd0NoYXJzIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJzaG93Q291bnQiLCJkaXNhYmxlZCIsInJ1bGVzIiwicHVzaCIsInNwYW4iLCJJdGVtIiwiY29tcG9uZW50TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvRm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBsb2Rhc2ggZnJvbSBcImxvZGFzaFwiO1xyXG5jbGFzcyBFZGl0b3JGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxhbnk+IHtcclxuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgbGFiZWw6IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XHJcbiAgICBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcclxuICAgIH0gZWxzZSBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImRldGFpbFwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcclxuICAgIH1cclxuICAgIGlmIChvcmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcmdWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IGxvZGFzaC5jbG9uZURlZXAob3JnVmFsdWUpO1xyXG4gICAgICAgICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVba2V5XTtcclxuICAgICAgICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdmFsdWVba2V5XSA9IGRheWpzKG9sZGRhdGEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwidmFsdWVcIiwgdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlKGhpZGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCB7IG9uSGlkZUZvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25IaWRlRm9ybSkge1xyXG4gICAgICBvbkhpZGVGb3JtICYmIG9uSGlkZUZvcm0oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RmllbGRzVmFsdWUodmFsdWVzKSB7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWVzKTtcclxuICB9XHJcbiAgZ2V0RmllbGRzVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIG9uU3VibWl0LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50XHJcbiAgICAgID8udmFsaWRhdGVGaWVsZHModmFsaWQpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlLCAuLi5kaWN0TmFtZXMgfTtcclxuICAgICAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgbGV0IG9sZGRhdGEgPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZGF0YVtrZXldID0gZGF5anMob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXN1Ym1pdFVybCkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgICAgICBzdWJtaXRVcmwsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGRhdGE6IHsgLi4uZGF0YSB9LFxyXG4gICAgICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAgICAgc3VibWl0UGFyYW1zLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZShmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZvcm1Qcm9wcyA9IFtdLCBvdGhlclByb3BzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgY29uc3QgbmV3VmFsaWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICBtb2RhbFByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICAgIGRyYXdlclByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0ID0ge307XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGV9XHJcbiAgICAgICAgbW9kYWxQcm9wcz17eyAuLi5tb2RhbFByb3BzIH19XHJcbiAgICAgICAgZHJhd2VyUHJvcHM9e3sgLi4uZHJhd2VyUHJvcHMgfX1cclxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cclxuICAgICAgICB3cmFwcGVyQ29sPXt7IGZsZXg6IFwiMTV2d1wiIH19XHJcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2U9eyhjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgb25Gb3JtQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgb25Gb3JtQ2hhbmdlICYmIG9uRm9ybUNoYW5nZShjaGFuZ2VkVmFsdWVzLCBhbGxWYWx1ZXMpO1xyXG4gICAgICAgIH19XHJcbiAgICAgICAgY2hhbmdlVmFsaWQ9e3RoaXMucHJvcHMuY2hhbmdlVmFsaWR9XHJcbiAgICAgICAgey4uLm90aGVyUHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICB7LyogPGRpdj4gKi99XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZvcm1cIil9PlxyXG4gICAgICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICAgICAge2Zvcm1Qcm9wcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdFtpdGVtLm5hbWVdID1cclxuICAgICAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbS5wcm9wcy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcblxyXG4gICAgICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLmJpbmQoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgLi4uaXRlbS5wcm9wcyB9XHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgaWYgKCFpdGVtLnR5cGUgfHwgaXRlbS50eXBlID09IFwiSW5wdXRcIikge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5zaG93Q291bnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBkZWxldGUgcHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1Qcm9wcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWQgPSBuZXdWYWxpZDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA8L1Jvdz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUM1QyxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQVNDLE9BQU8sRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFB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
|
|
297
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsImRheWpzIiwic3R5bGVzIiwibG9kYXNoIiwiRWRpdG9yRm9ybSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNldFN0YXRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50IiwiY2xvbmVEZWVwIiwiZGF0ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsInByb3BzIiwiZGVmYXVsdFZhbHVlIiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0Iiwic2V0TG9hZGluZyIsInNldEZpZWxkc1ZhbHVlIiwidmFsdWVzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NSIsImdldEZpZWxkc1ZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsImRvU3VibWl0IiwiZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJjYWxsQmFjayIsIkVycm9yIiwib25TdWJtaXQiLCJfb2JqZWN0U3ByZWFkIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsIl90aGlzJGZvcm1SZWYkY3VycmVudDgiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ5Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGVWYWx1ZUZvcm1hdCIsImZvcm1hdCIsImlkIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsInR5cGUiLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJyZW5kZXIiLCJmb3JtUHJvcHMiLCJvdGhlclByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib25PayIsImJpbmQiLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwibmV3VmFsaWQiLCJkcmF3ZXJQcm9wcyIsIm9uQ2xvc2UiLCJmb290ZXIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzaG93TW9kZWwiLCJmb3JtVHlwZSIsImxhYmVsQ29sIiwiZmxleCIsIndyYXBwZXJDb2wiLCJvblZhbHVlc0NoYW5nZSIsImNoYW5nZWRWYWx1ZXMiLCJhbGxWYWx1ZXMiLCJvbkZvcm1DaGFuZ2UiLCJjaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsImd1dHRlciIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsInNob3dDb3VudCIsImRpc2FibGVkIiwicnVsZXMiLCJwdXNoIiwic3BhbiIsIkl0ZW0iLCJjb21wb25lbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9CYXNlUGFnZS9Gb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgfTtcclxuICB2YWxpZDogYW55ID0gW107XHJcbiAgZGF0ZVZhbHVlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgLy/ooajljZXmmL7npLpcclxuICBzaG93KG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIikge1xyXG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcclxuICAgIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZWRpdG9yXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xyXG4gICAgfSBlbHNlIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIuafpeeci1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG9yZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IG9yZ1ZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gbG9kYXNoLmNsb25lRGVlcChvcmdWYWx1ZSk7XHJcbiAgICAgICAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ2YWx1ZVwiLCB2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBsb2FkaW5nIH0pO1xyXG4gIH1cclxuICBzZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpO1xyXG4gIH1cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGRvU3VibWl0KGRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7IHN1Ym1pdFVybCwgc3VibWl0UGFyYW1zLCBjYWxsQmFjayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghc3VibWl0VXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgc3VibWl0VXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogeyAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgc3VibWl0UGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGxldCBkYXRhID0geyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9O1xyXG4gICAgICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVWYWx1ZUZvcm1hdCkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG9TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10sIG90aGVyUHJvcHMgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIHsvKiA8ZGl2PiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZm9ybVwiKX0+XHJcbiAgICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzLmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuXHJcbiAgICAgICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5hbGxvd0NoYXJzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNob3dDb3VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvUm93PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBUSxPQUFPO0FBQzVDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJB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
|