nsc-react-component 3.2.16 → 3.2.17
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.js +1 -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 +40 -12
- package/lib/page/BasePage/Form.js.map +1 -1
- package/lib/page/BasePage/index.d.ts +1 -0
- package/lib/page/BasePage/index.js +12 -4
- package/lib/page/BasePage/index.js.map +1 -1
- package/package.json +101 -100
|
@@ -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","setSelectedRowKeys","setSelectedRowDatas","getColumns","sortFields","defaultShowCols","ellipsis","render","showTitle","text","style","display","title","className","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 style={{ display: \"inline-table\" }}>\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 </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","style","display","title","className","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 style={{ display: \"inline-table\" }}>\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 </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 \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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"}
|
|
@@ -14,6 +14,8 @@ import { isEmptyObj } from "@bj-nsc/functions";
|
|
|
14
14
|
import dayjs from "dayjs";
|
|
15
15
|
import styles from "./index.module.less";
|
|
16
16
|
import lodash from "lodash";
|
|
17
|
+
import Button from "../../base/button";
|
|
18
|
+
import Upload from '../../base/upload';
|
|
17
19
|
class EditorForm extends PureComponent {
|
|
18
20
|
constructor() {
|
|
19
21
|
super(...arguments);
|
|
@@ -23,7 +25,8 @@ class EditorForm extends PureComponent {
|
|
|
23
25
|
label: "",
|
|
24
26
|
editorFlag: true,
|
|
25
27
|
value: {},
|
|
26
|
-
dictNames: {}
|
|
28
|
+
dictNames: {},
|
|
29
|
+
fileList: {}
|
|
27
30
|
});
|
|
28
31
|
_defineProperty(this, "valid", []);
|
|
29
32
|
_defineProperty(this, "dateValueFormat", {});
|
|
@@ -280,18 +283,43 @@ class EditorForm extends PureComponent {
|
|
|
280
283
|
if (index + 1 === formProps.length) {
|
|
281
284
|
this.valid = newValid;
|
|
282
285
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
286
|
+
if (item.type !== 'Upload') {
|
|
287
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
288
|
+
span: item.span || 12,
|
|
289
|
+
key: index
|
|
290
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
291
|
+
label: item.label,
|
|
292
|
+
name: item.name,
|
|
293
|
+
rules: item.rules,
|
|
294
|
+
allowChars: allowChars,
|
|
295
|
+
componentName: item.type ? item.type : "Input"
|
|
296
|
+
}, getNode(item.type, _objectSpread({}, props))));
|
|
297
|
+
} else {
|
|
298
|
+
return /*#__PURE__*/React.createElement(Col, {
|
|
299
|
+
span: item.span || 12,
|
|
300
|
+
key: index
|
|
301
|
+
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
302
|
+
label: item.label,
|
|
303
|
+
name: item.name,
|
|
304
|
+
rules: item.rules,
|
|
305
|
+
allowChars: allowChars,
|
|
306
|
+
componentName: item.type ? item.type : "Input"
|
|
307
|
+
}, /*#__PURE__*/React.createElement(Upload, _extends({
|
|
308
|
+
fileList: this.state.fileList[item.name] || [],
|
|
309
|
+
onListChange: list => {
|
|
310
|
+
const {
|
|
311
|
+
fileList
|
|
312
|
+
} = this.state;
|
|
313
|
+
this.setState({
|
|
314
|
+
fileList: _objectSpread(_objectSpread({}, fileList), {}, {
|
|
315
|
+
[item.name]: list
|
|
316
|
+
})
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}, props), /*#__PURE__*/React.createElement(Button, null, "\u4E0A\u4F20\u6587\u4EF6"))));
|
|
320
|
+
}
|
|
293
321
|
}))));
|
|
294
322
|
}
|
|
295
323
|
}
|
|
296
324
|
export default EditorForm;
|
|
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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
|
|
325
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJtZXNzYWdlIiwiQ29sIiwiUm93IiwiaXNFbXB0eU9iaiIsImRheWpzIiwic3R5bGVzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiRWRpdG9yRm9ybSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic2V0U3RhdGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQiLCJjbG9uZURlZXAiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQyIiwicHJvcHMiLCJkZWZhdWx0VmFsdWUiLCJoaWRlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsIm9uSGlkZUZvcm0iLCJoaWRlRm9ybSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDQiLCJzZXRMb2FkaW5nIiwic2V0RmllbGRzVmFsdWUiLCJ2YWx1ZXMiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1IiwiZ2V0RmllbGRzVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2IiwiZG9TdWJtaXQiLCJkYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NyIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsImNhbGxCYWNrIiwiRXJyb3IiLCJvblN1Ym1pdCIsIl9vYmplY3RTcHJlYWQiLCJub1VuZGVmaW5lZCIsInJlcyIsImNvZGUiLCJzdWNjZXNzIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OCIsIl90aGlzJGZvcm1SZWYkY3VycmVudDkiLCJzdGF0ZSIsImZvcm1WYWx1ZSIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJ0aGVuIiwiZGF0ZVZhbHVlRm9ybWF0IiwiZm9ybWF0IiwiaWQiLCJjYXRjaCIsImVycm9ySW5mbyIsInZhbHVlQ2hhbmdlIiwiX3JlZiIsInZhbHVlT3B0aW9uIiwidHlwZSIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsInJlbmRlciIsImZvcm1Qcm9wcyIsIm90aGVyUHJvcHMiLCJtb2RhbFByb3BzIiwidGl0bGUiLCJvbk9rIiwiYmluZCIsIm9uQ2FuY2VsIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImRyYXdlclByb3BzIiwib25DbG9zZSIsImZvb3RlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsInJlZiIsInNob3dNb2RlbCIsImZvcm1UeXBlIiwibGFiZWxDb2wiLCJmbGV4Iiwid3JhcHBlckNvbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiZ3V0dGVyIiwibWFwIiwiaXRlbSIsImluZGV4IiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwiYWxsb3dDaGFycyIsInBsYWNlaG9sZGVyIiwiY29uY2F0Iiwic2hvd0NvdW50IiwiZGlzYWJsZWQiLCJydWxlcyIsInB1c2giLCJzcGFuIiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJvbkxpc3RDaGFuZ2UiLCJsaXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9CYXNlUGFnZS9Gb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSAnLi4vLi4vYmFzZS91cGxvYWQnXHJcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgICBmaWxlTGlzdDoge30gYXMgYW55XHJcbiAgfTtcclxuICB2YWxpZDogYW55ID0gW107XHJcbiAgZGF0ZVZhbHVlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgLy/ooajljZXmmL7npLpcclxuICBzaG93KG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIikge1xyXG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcclxuICAgIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZWRpdG9yXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xyXG4gICAgfSBlbHNlIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIuafpeeci1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG9yZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IG9yZ1ZhbHVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gbG9kYXNoLmNsb25lRGVlcChvcmdWYWx1ZSk7XHJcbiAgICAgICAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ2YWx1ZVwiLCB2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBsb2FkaW5nIH0pO1xyXG4gIH1cclxuICBzZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpIHtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZSh2YWx1ZXMpO1xyXG4gIH1cclxuICBnZXRGaWVsZHNWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGRvU3VibWl0KGRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7IHN1Ym1pdFVybCwgc3VibWl0UGFyYW1zLCBjYWxsQmFjayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghc3VibWl0VXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgc3VibWl0VXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogeyAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgc3VibWl0UGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGxldCBkYXRhID0geyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9O1xyXG4gICAgICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVWYWx1ZUZvcm1hdCkpIHtcclxuICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG9TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10sIG90aGVyUHJvcHMgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbW9kYWxQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuXHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIHsvKiA8ZGl2PiAqL31cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZm9ybVwiKX0+XHJcbiAgICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzLmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuXHJcbiAgICAgICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5hbGxvd0NoYXJzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNob3dDb3VudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlICE9PSAnVXBsb2FkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8VXBsb2FkIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdFtpdGVtLm5hbWVdIHx8IFtdfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L1VwbG9hZD5cclxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA8L1Jvdz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQVEsT0FBTztBQUM1QyxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQVNDLE9BQU8sRUFBRUMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUU5QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxNQUFNLE1BQU0scUJBQXFCO0FBRXhDLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxNQUFNQyxVQUFVLFNBQVNiLGFBQWEsQ0FBTTtFQUFBYyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUNoQ2pCLEtBQUssQ0FBQ2tCLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEsZ0JBQ3hCO01BQ05FLE9BQU8sRUFBRSxLQUFLO01BQ2RDLEtBQUssRUFBRSxFQUFFO01BQ1RDLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxLQUFLLEVBQUUsQ0FBQyxDQUFRO01BQ2hCQyxTQUFTLEVBQUUsQ0FBQyxDQUFRO01BQ3BCQyxRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFBQVAsZUFBQSxnQkFDWSxFQUFFO0lBQUFBLGVBQUEsMEJBQ0csQ0FBQyxDQUFDO0lBQUFBLGVBQUEscUJBQ1As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
|