nsc-react-component 4.4.0 → 4.4.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_old.js","names":["AppstoreOutlined","CheckOutlined","ColumnHeightOutlined","SearchOutlined","SortAscendingOutlined","SortDescendingOutlined","RedoOutlined","isEmptyObj","Store","PageStore","utils","React","DndProvider","BodyRow","DndContextType","IBodyRowProps","treeUtils","BodyRowComponent","HTML5Backend","withZhLocale","Resizable","getLess","getNode","NoData","getStorage","config","cls","styles","ResizeableTitle","props","onResize","width","restProps","_objectWithoutProperties","_excluded","createElement","height","draggableOpts","enableUserSelectHack","NSCTable","Component","constructor","_autoType","_defineProperty","createRef","onBeforeLoad","load","header","cell","index","e","_ref","size","cols","state","nextColumns","_objectSpread","setState","getColumns","ev","data","JSON","parse","_this","eventType","payload","tableSize","dragIndex","hoverIndex","drag","target","dragNode","record","targetNode","moveArray","ids","parentNode","getChildNodeIds","params","id","parentId","attribute","moveRow","store","reload","modal","type","storePrefix","autoType","content","dataSource","columns","loading","pagination","activeIndex","searchText","fieldOption","searchColor","sorts","filterParams","sortType","sorter","sortInfo","defaultSort","checkColumn","defaultCheck","selectedRowKeys","selectedRowDatas","filter","extra","_ref2","listeners","listenersProps","restStore","_excluded2","storeProps","model","component","options","callback","dataChanged","modelData","paging","getPagination","onErrorLoad","err","response","autoLoad","Object","assign","current","componentDidMount","resizeColumn","setData","window","addEventListener","listenMessage","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","preState","resetColumn","newCols","colss","map","col","temp","onHeaderCell","column","handleResize","push","clearSelectColor","getPaginationByStore","onChange","filters","autoOnChange","autoSort","autoPagination","isMultiple","Array","isArray","handlePagination","p","currentKey","pageSizeKey","pageSize","ascParams","getSortParam","onChangeFn","getStore","getModel","handleSearch","val","filterColumn","checkedValue","length","_message","warning","filterColumns","newCol","includes","dataIndex","initShow","sortState","arguments","undefined","sortSearch","orderItems","field","asc","order","forEach","v","stringify","isBeyond","event","textRange","el","textContent","targetW","getBoundingClientRect","range","document","createRange","setStart","setEnd","childNodes","rangeWidth","setSelectedRowKeys","setSelectedRowDatas","sortFields","defaultShowCols","ellipsis","render","showTitle","text","_this$state$cols","currentCol","find","c","actualWidth","colWidth","colWidthObj","small","middle","default","large","paddingWidth","style","display","ref","removeAttribute","scrollWidth","clientWidth","setAttribute","className","overflow","textOverflow","whiteSpace","indexOf","sortOrder","multiple","item","filterProps","obj","searchKey","Div","title","placeholder","concat","tableSearchRef","filterDropdown","_ref3","setSelectedKeys","selectedKeys","confirm","clearFilters","_Space","_Button","onClick","_this$tableSearchRef$","newFilterParams","key","getValue","sortParam","filterIcon","renderToolBar","colLists","toolbar","tableTool","storeRequestConfig","tools","toolsClick","onToolClick","sizeItem","sortItem","sortContent","Fragment","cursor","color","sizeContent","_Checkbox","Group","bind","label","value","disabled","fontSize","_Popover","placement","trigger","overlayStyle","minWidth","maxWidth","marginRight","onRefresh","getSelectedRowKeys","getSelectedRowDatas","resetSelectedRowKeys","rowSelectionOnSelect","selected","rowKey","newSelectedRowKeys","newSelectedRowDatas","splice","rowSelectionOnSelectAll","selectedRows","changeRows","newids","newdatas","changeIds","omit","clickChangeColor","position","showSizeChanger","showQuickJumper","showTotal","total","_ref4","from","to","onRowFn","onRow","custom","onClickFn","rowClassName","newDataSource","getSearchMenuDatas","treeDatas","expandedRowKeys","openKeys","dragable","dragableProps","components","resizeProps","toolFlag","show","showRowSelection","rowSelection","onSelect","onSelectAll","columnWidth","tableProps","configTableProps","DefaultTable","_Table","_extends","childrenColumnName","sheitem","locale","emptyText","scroll","x","_Pagination","page","action","_ref5","backend","dragUrl"],"sources":["../../../src/components/base/table/index_old.tsx"],"sourcesContent":["/*\r\n * @Descripttion:\r\n * @version:\r\n * @Author: rxzhu\r\n * @Date: 2021-03-23 08:46:20\r\n * @LastEditors: rxzhu\r\n * @LastEditTime: 2021-03-23 10:30:42\r\n */\r\nimport {\r\n AppstoreOutlined,\r\n CheckOutlined,\r\n ColumnHeightOutlined,\r\n SearchOutlined,\r\n SortAscendingOutlined,\r\n SortDescendingOutlined,\r\n RedoOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport Store, { PageStore, StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport {\r\n Button,\r\n Checkbox,\r\n CheckboxOptionType,\r\n Menu,\r\n message,\r\n Pagination,\r\n Popover,\r\n Space,\r\n Table,\r\n TableProps,\r\n Tooltip,\r\n} from \"antd\";\r\nimport { ColumnType, TablePaginationConfig } from \"antd/lib/table\";\r\nimport * as React from \"react\";\r\nimport { DndProvider } from \"react-dnd\";\r\nimport BodyRow, { DndContextType, IBodyRowProps } from \"../common/BodyRow\";\r\nimport treeUtils from \"../../treeUtils\";\r\nimport \"./index.module.less\";\r\nconst { BodyRowComponent, HTML5Backend } = BodyRow;\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport { Resizable } from \"react-resizable\";\r\nimport \"./resize.module.less\";\r\nimport { getLess, getNode, simplifyColumns } from \"../../utils\";\r\nimport NoData from \"../common/NoData\";\r\nimport { getStorage } from \"@bj-nsc/functions\";\r\nimport config from \"../../config\";\r\nimport EllipseCell from \"../common/EllipseCell\";\r\nimport cls from \"classnames\";\r\nimport isEqual from \"lodash/isEqual\";\r\nconst styles = null;\r\ninterface IDragParams {\r\n id: string | number;\r\n ids: Array<string | number>;\r\n parentId: string | number;\r\n}\r\n// interface StoreProps {}\r\n\r\nexport type StoreType = \"PageStore\" | \"TreeStore\" | \"BaseStore\";\r\n\r\ninterface NSCTablePagination extends TablePaginationConfig {\r\n totalKey?: string;\r\n pageSizeKey?: string;\r\n currentKey?: string;\r\n}\r\n\r\ninterface ToolBarProps {\r\n show: boolean;\r\n tools?: Array<string>;\r\n onToolClick?: { onRefresh?: any; onSort?: any };\r\n}\r\ninterface NSCTableProps extends TableProps<any> {\r\n store?: StoreProps;\r\n showTotal?: boolean; // 是否显示总条数信息,默认true\r\n dragable?: boolean; // 是否可拖动, 默认false\r\n filterColumn?: boolean; // 是否支持过滤显示表格列, 默认true\r\n moveRow?: (params: IDragParams) => void; // 拖拽完成后的回调\r\n dragUrl?: string; // 保存拖拽排序的接口\r\n pagination?: false | NSCTablePagination;\r\n autoPagination?: boolean; // 组件是否自动处理分页\r\n autoSort?: boolean; //组件是否自动处理排序\r\n autoOnChange?: boolean; // 组件是否自动onChange, false则不做任何处理全部交给调用方\r\n resizeColumn?: boolean;\r\n sortFields?: Array<string>; //需要排序的字段Index\r\n toolbar?: ToolBarProps | boolean;\r\n autoSize?: boolean;\r\n sortSearch?: boolean; //是否添加排序查询,默认true\r\n showRowSelection?: boolean;\r\n rowKey?: string;\r\n [propsName: string]: any;\r\n}\r\n\r\nexport type INSCTableProps = typeof NSCTable.defaultProps & NSCTableProps;\r\nexport { DndContextType, IBodyRowProps };\r\n\r\nconst ResizeableTitle = (props: any) => {\r\n const { onResize, width, ...restProps } = props;\r\n return (\r\n <Resizable\r\n width={width || 150}\r\n height={0}\r\n onResize={onResize}\r\n draggableOpts={{ enableUserSelectHack: false }}\r\n >\r\n <th {...restProps} />\r\n </Resizable>\r\n );\r\n};\r\nclass NSCTable extends React.Component<INSCTableProps, any> {\r\n static defaultProps = {\r\n dragable: false,\r\n showTotal: true,\r\n filterColumn: true,\r\n dragUrl: \"\",\r\n autoPagination: true,\r\n autoSort: true,\r\n autoOnChange: true,\r\n resizeColumn: true,\r\n toolbar: {\r\n show: false,\r\n onToolClick: {} as any,\r\n tools: [] as any,\r\n } as any,\r\n };\r\n\r\n store = {} as StoreProps;\r\n thIconRef = React.createRef<HTMLDivElement>();\r\n tableSearchRef = React.createRef<any>();\r\n\r\n listeners = {\r\n onBeforeLoad: null,\r\n load: null,\r\n };\r\n\r\n components = {\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n let modal = props.type || \"auto\";\r\n let storePrefix = getStorage(\"store-pre-key\");\r\n let autoType = getStorage(\r\n storePrefix ? storePrefix + \"tableSize\" : \"tableSize\"\r\n );\r\n autoType = autoType?.content;\r\n this.state = {\r\n dataSource: [],\r\n columns: [],\r\n loading: false,\r\n pagination: {},\r\n activeIndex: -1,\r\n //搜索文本\r\n searchText: null,\r\n fieldOption: null,\r\n searchColor: null,\r\n cols: [],\r\n sorts: [],\r\n filterParams: {},\r\n tableSize: this.props.size || autoType || \"default\",\r\n sortType: \"single\",\r\n sorter: [], //记录当前排序字段\r\n sortInfo: {},\r\n defaultSort: true,\r\n checkColumn: [],\r\n defaultCheck: true,\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n filter: [],\r\n extra: {},\r\n };\r\n if (props.store instanceof Store) {\r\n this.store = props.store;\r\n } else {\r\n const { listeners: listenersProps = {}, ...restStore } =\r\n props.store || {};\r\n const storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: (store, options) => {\r\n this.setState({ loading: true });\r\n utils.callback(listenersProps.onBeforeLoad, this, [store, options]);\r\n },\r\n dataChanged: (data, modelData, store) => {\r\n let paging = !(this.props.pagination === false);\r\n if (paging && !this.props.dataSource) {\r\n this.setState({\r\n dataSource: modelData,\r\n pagination: store.getPagination(),\r\n loading: false,\r\n activeIndex: -1,\r\n });\r\n } else {\r\n this.setState({ dataSource: modelData, loading: false });\r\n }\r\n\r\n utils.callback(listenersProps.dataChanged, this, [\r\n data,\r\n modelData,\r\n store,\r\n paging,\r\n ]);\r\n },\r\n load: (data, modelData, store) => {\r\n utils.callback(listenersProps.load, this, [data, modelData, store]);\r\n },\r\n onErrorLoad: (err, response) => {\r\n this.setState({ loading: false });\r\n utils.callback(listenersProps.onErrorLoad, this, [err, response]);\r\n },\r\n },\r\n data: restStore.data\r\n ? restStore.data\r\n : props.dataSource\r\n ? props.dataSource\r\n : null,\r\n ...restStore,\r\n autoLoad: restStore.autoLoad === false ? false : true,\r\n };\r\n this.store = new PageStore(\r\n Object.assign({}, storeProps, {\r\n pagination: { current: 1, ...this.props.pagination },\r\n })\r\n );\r\n }\r\n }\r\n\r\n handleResize =\r\n (index: any) =>\r\n (e: any, { size }: any) => {\r\n const { cols } = this.state;\r\n const nextColumns = [...cols];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n this.setState(\r\n {\r\n cols: nextColumns,\r\n },\r\n () => {\r\n // 在状态更新后重新获取列配置\r\n this.getColumns();\r\n }\r\n );\r\n };\r\n\r\n componentDidMount() {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({ columns: [...this.props.columns] });\r\n } else {\r\n this.setState({ cols: [...this.props.columns] });\r\n }\r\n const store = this.props.store;\r\n if (store && store.data) {\r\n this.store.setData(store.data);\r\n }\r\n window.addEventListener(\"message\", this.listenMessage);\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"message\", this.listenMessage);\r\n }\r\n listenMessage = (ev) => {\r\n const data = typeof ev.data === \"string\" ? JSON.parse(ev.data) : ev.data;\r\n let _this = this;\r\n if (data.eventType == \"changeTableSize\") {\r\n const { payload } = data;\r\n if (\r\n payload.size == \"default\" ||\r\n payload.size == \"small\" ||\r\n payload.size == \"middle\"\r\n ) {\r\n _this.setState({ tableSize: payload.size });\r\n }\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, preState) {\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({ columns: this.props.columns });\r\n }\r\n } else {\r\n if (preState.cols !== this.state.cols) {\r\n this.resetColumn();\r\n }\r\n if (this.props.columns !== prevProps.columns) {\r\n this.setState({\r\n cols: this.props.columns,\r\n columns: this.props.columns,\r\n });\r\n }\r\n if (prevProps.size !== this.props.size) {\r\n this.setState({ tableSize: this.props.size });\r\n }\r\n }\r\n }\r\n resetColumn() {\r\n const { cols } = this.state;\r\n const newCols: any = [];\r\n let colss = cols || [];\r\n colss.map((col: any, index: any) => {\r\n let temp = {\r\n ...col,\r\n onHeaderCell: (column: { width: any }) => ({\r\n width: column.width,\r\n onResize: this.handleResize(index),\r\n }),\r\n };\r\n newCols.push(temp);\r\n });\r\n this.setState({\r\n columns: newCols,\r\n });\r\n }\r\n\r\n /**\r\n * 清除选中颜色\r\n */\r\n clearSelectColor() {\r\n this.setState({ activeIndex: -1 });\r\n return this;\r\n }\r\n\r\n getPaginationByStore() {\r\n return this.store.getPagination();\r\n }\r\n\r\n onChange(pagination, filters, sorter, extra) {\r\n const {\r\n autoOnChange = true,\r\n autoSort,\r\n autoPagination,\r\n onChange,\r\n store,\r\n } = this.props;\r\n const { filterParams } = this.state;\r\n const isMultiple = Array.isArray(sorter);\r\n if (autoOnChange === false || !store) {\r\n onChange && onChange(pagination, filters, sorter, extra);\r\n return;\r\n }\r\n const handlePagination = () => {\r\n let params = {} as {\r\n size?: string;\r\n pageSize?: string;\r\n ascs?: string;\r\n descs?: string;\r\n [propName: string]: string;\r\n };\r\n const paging = this.getPaginationByStore() || {};\r\n if (!isEmptyObj(pagination)) {\r\n const p = {\r\n [paging.currentKey || \"current\"]: pagination.current,\r\n [paging.pageSizeKey || \"size\"]: pagination.pageSize,\r\n };\r\n Object.assign(params, p);\r\n }\r\n let ascParams = this.getSortParam(sorter, true);\r\n if (isMultiple) {\r\n this.setState({ sorter });\r\n } else if (!isMultiple && !isEmptyObj(sorter)) {\r\n sorter.column &&\r\n this.setState({ sorter: [sorter], defaultSort: false });\r\n } else {\r\n this.setState({ sorter: [] });\r\n }\r\n this.setState({\r\n filters,\r\n extra,\r\n });\r\n params = { ...filterParams, ...params, ...ascParams };\r\n autoSort && this.store.reload({ params });\r\n };\r\n\r\n const onChangeFn = this.props.onChange;\r\n\r\n autoPagination && handlePagination();\r\n // 用户传了onChange保留用户自主处理表格变化的权力\r\n if (onChangeFn) {\r\n utils.callback(onChangeFn, this, [pagination, filters, sorter, extra]);\r\n }\r\n }\r\n\r\n getStore() {\r\n return this.store;\r\n }\r\n\r\n /**\r\n * 获取数据模型对象\r\n */\r\n getModel() {\r\n return this.store.getModel();\r\n }\r\n\r\n /**\r\n * 菜单搜索过滤显示\r\n * @param {String} val\r\n */\r\n handleSearch(val, fieldOption, searchColor) {\r\n this.setState({\r\n searchText: val,\r\n fieldOption: fieldOption,\r\n searchColor: searchColor,\r\n });\r\n }\r\n\r\n /**\r\n * 模块列表移动排序\r\n */\r\n moveRow = (dragIndex, hoverIndex, drag, target) => {\r\n const _this = this;\r\n let dragNode = drag.record;\r\n let targetNode = target.record;\r\n dragNode.moveArray(dragNode, targetNode);\r\n let ids = dragNode.parentNode.getChildNodeIds();\r\n let params = {\r\n id: dragNode.id,\r\n parentId: dragNode.attribute.parentId,\r\n ids: ids,\r\n };\r\n\r\n if (this.props.moveRow) {\r\n this.props.moveRow(params);\r\n } else {\r\n this.store.reload();\r\n }\r\n };\r\n\r\n filterColumn(checkedValue) {\r\n if (checkedValue.length == 0) {\r\n message.warning(\"至少显示一列!\");\r\n return;\r\n }\r\n const filterColumns = this.props.columns.map((col: ColumnType<{}>) => {\r\n const newCol = { ...col } as ColumnType<{}> & { initShow: boolean };\r\n if (checkedValue.includes(col.dataIndex)) {\r\n newCol.initShow = true;\r\n } else {\r\n newCol.initShow = false;\r\n }\r\n return newCol;\r\n });\r\n const { resizeColumn } = this.props;\r\n if (!resizeColumn) {\r\n this.setState({\r\n columns: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n } else {\r\n this.setState({\r\n cols: filterColumns,\r\n checkColumn: checkedValue,\r\n defaultCheck: false,\r\n });\r\n }\r\n }\r\n getSortParam(sorter, sortState = false) {\r\n const isMultiple = Array.isArray(sorter);\r\n const { sortSearch = true } = this.props;\r\n if (!sortSearch) {\r\n return {};\r\n }\r\n let sortInfo = {};\r\n let orderItems = [];\r\n if (!isEmptyObj(sorter) && !isMultiple && sorter.column) {\r\n orderItems = [\r\n {\r\n column: sorter.column.field || sorter.column.dataIndex,\r\n asc: sorter.order == \"ascend\",\r\n },\r\n ];\r\n if (sorter.column) sortInfo[sorter.column.dataIndex] = sorter.order;\r\n } else if (isMultiple) {\r\n sorter.forEach((v) => {\r\n sortInfo[v.column.dataIndex] = v.order;\r\n let field = v.column.field || v.column.dataIndex;\r\n orderItems.push({\r\n column: field,\r\n asc: v.order == \"ascend\",\r\n });\r\n });\r\n }\r\n if (sortState) {\r\n this.setState({\r\n sortInfo: sortInfo,\r\n });\r\n }\r\n return { orderItems: JSON.stringify(orderItems) };\r\n }\r\n isBeyond(e) {\r\n const ev = window.event || e; // 浏览器兼容,最好写一下\r\n const textRange = (el) => {\r\n const textContent = el;\r\n const targetW = textContent.getBoundingClientRect().width;\r\n const range = document.createRange();\r\n range.setStart(textContent, 0);\r\n range.setEnd(textContent, textContent.childNodes.length);\r\n const rangeWidth = range.getBoundingClientRect().width;\r\n return rangeWidth > targetW;\r\n };\r\n return !textRange(ev.target); // target可以保证当前划过的dom节点一直保持是:el-tooltip__trigger\r\n }\r\n setSelectedRowKeys(data: Array<String | Number>) {\r\n this.setState({\r\n selectedRowKeys: data,\r\n });\r\n }\r\n setSelectedRowDatas(data: Array<Object>) {\r\n this.setState({\r\n selectedRowDatas: data,\r\n });\r\n }\r\n getColumns() {\r\n const { columns, sortType, sortInfo } = this.state;\r\n const { sortFields = [], size = \"large\" } = this.props;\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n const cols = defaultShowCols.map((col, index) => {\r\n // 替换 getColumns 方法中原来的 ellipsis 处理部分\r\n if (col.ellipsis && !col.render) {\r\n col.ellipsis = {\r\n showTitle: false,\r\n };\r\n col.render = (text, record, index) => {\r\n // 获取当前列的实时宽度\r\n const currentCol = this.state.cols?.find((c) => {\r\n // 处理 dataIndex 可能是字符串或数组的情况\r\n if (Array.isArray(c.dataIndex) && Array.isArray(col.dataIndex)) {\r\n return (\r\n JSON.stringify(c.dataIndex) === JSON.stringify(col.dataIndex)\r\n );\r\n }\r\n return c.dataIndex === col.dataIndex;\r\n });\r\n\r\n const actualWidth = currentCol?.width || col.width;\r\n let colWidth: any = \"100%\";\r\n\r\n if (actualWidth) {\r\n const size = this.state.tableSize || this.props.size || \"default\";\r\n const colWidthObj = {\r\n small: 16,\r\n middle: 16,\r\n default: 16,\r\n large: 32,\r\n };\r\n const paddingWidth = colWidthObj[size] || 16;\r\n\r\n if (actualWidth > paddingWidth) {\r\n colWidth = actualWidth - paddingWidth;\r\n } else {\r\n colWidth = actualWidth;\r\n }\r\n }\r\n\r\n return (\r\n <div style={{ display: \"inline-table\", width: \"100%\" }}>\r\n <div\r\n ref={(el) => {\r\n if (el) {\r\n // 清除之前的title\r\n el.removeAttribute(\"title\");\r\n\r\n // 检查文本是否溢出\r\n if (el.scrollWidth > el.clientWidth) {\r\n el.setAttribute(\"title\", text);\r\n }\r\n }\r\n }}\r\n className={getLess(styles, \"nsc-table-text\")}\r\n style={{\r\n width: colWidth,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {text}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n if (sortFields.indexOf(col.dataIndex) > -1) {\r\n if (sortType == \"single\") {\r\n col.sorter = true;\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n } else if (sortType == \"multiple\") {\r\n col.sorter = { multiple: index };\r\n col.sortOrder = sortInfo[col.dataIndex]\r\n ? sortInfo[col.dataIndex]\r\n : null;\r\n }\r\n }\r\n return col;\r\n });\r\n cols.map((item, index) => {\r\n if (!isEmptyObj(item.filterProps)) {\r\n let obj = { ...item };\r\n const { type, props, searchKey } = item.filterProps;\r\n let Div = null;\r\n let text = item.title;\r\n Div = getNode(type, {\r\n placeholder: `搜索${text}`,\r\n ...props,\r\n ref: this.tableSearchRef,\r\n });\r\n obj = {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }) => {\r\n return (\r\n <div className={getLess(styles, \"nsc-table-search\")}>\r\n <div className={getLess(styles, \"nsc-table-search-space\")}>\r\n {Div}\r\n </div>\r\n <Space>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n confirm();\r\n const { filterParams } = this.state;\r\n let newFilterParams = { ...filterParams };\r\n let key = item.field || item.dataIndex;\r\n newFilterParams[key] =\r\n this.tableSearchRef.current?.getValue();\r\n this.setState({\r\n filterParams: { ...newFilterParams },\r\n });\r\n const sortParam = this.getSortParam(this.state.sorter);\r\n this.store.load({\r\n params: { ...newFilterParams, ...sortParam },\r\n });\r\n }}\r\n size=\"small\"\r\n className={getLess(styles, \"nsc-table-search-button\")}\r\n >\r\n 查询\r\n </Button>\r\n </Space>\r\n </div>\r\n );\r\n },\r\n filterIcon: () => {\r\n return <SearchOutlined />;\r\n },\r\n ...obj,\r\n };\r\n cols[index] = obj;\r\n }\r\n });\r\n return cols;\r\n }\r\n renderToolBar() {\r\n let { tableSize, columns, sortType } = this.state;\r\n let { filterColumn, columns: colLists, toolbar } = this.props;\r\n const { tableTool, storeRequestConfig = {} } = config();\r\n let tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n let toolsClick = {} as any;\r\n if (toolbar == true) {\r\n tools = [\"refresh\", \"size\", \"sort\", \"column\"];\r\n } else {\r\n tools = toolbar.tools\r\n ? toolbar.tools\r\n : tableTool.tools\r\n ? tableTool.tools\r\n : tools;\r\n toolsClick = toolbar.onToolClick ? toolbar.onToolClick : {};\r\n }\r\n const sizeItem = [\r\n { title: \"宽松\", key: \"default\" },\r\n { title: \"中等\", key: \"middle\" },\r\n { title: \"紧凑\", key: \"small\" },\r\n ];\r\n const sortItem = [\r\n { title: \"单字段排序\", key: \"single\" },\r\n { title: \"多字段排序\", key: \"multiple\" },\r\n ];\r\n const sortContent = (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{\r\n cursor: this.state.defaultSort ? \"not-allowed\" : \"pointer\",\r\n color: this.state.defaultSort && \"rgba(0,0,0,.45)\",\r\n }}\r\n onClick={() => {\r\n if (this.state.defaultSort) {\r\n return;\r\n }\r\n this.setState({ sorter: [], sortInfo: {}, defaultSort: true });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n 恢复默认排序\r\n </div>\r\n {sortItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n sorter: [],\r\n sortInfo: {},\r\n sortType: item.key,\r\n defaultSort: false,\r\n });\r\n const params = { ...this.state.filterParams };\r\n this.store.reload({ params });\r\n }}\r\n >\r\n {sortType == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {sortType == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n {this.state.sorter.length > 0 && (\r\n <>\r\n <div\r\n className={getLess(styles, \"nsc-table-cotent-title\")}\r\n style={{ color: \"rgba(0,0,0,.45)\" }}\r\n >\r\n 当前排序\r\n </div>\r\n {this.state.sorter.map((item, index) => {\r\n return (\r\n <div\r\n className={getLess(styles, \"nsc-table-content-tiem\")}\r\n key={index}\r\n >\r\n <div style={{ width: 20 }}>\r\n {item.order == \"ascend\" ? (\r\n <SortAscendingOutlined />\r\n ) : (\r\n <SortDescendingOutlined />\r\n )}\r\n </div>\r\n <div> {item.column.title}</div>\r\n </div>\r\n );\r\n })}\r\n </>\r\n )}\r\n </>\r\n );\r\n const sizeContent = (\r\n <>\r\n <div className={getLess(styles, \"nsc-table-cotent-title\")}>\r\n 表格密度\r\n </div>\r\n {sizeItem.map((item, index) => {\r\n return (\r\n <div\r\n key={item.key}\r\n onClick={() => {\r\n this.setState({\r\n tableSize: item.key,\r\n });\r\n }}\r\n >\r\n {tableSize == item.key ? (\r\n <a>\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}>\r\n {tableSize == item.key && <CheckOutlined />}\r\n </div>\r\n <div> {item.title}</div>\r\n </div>\r\n </a>\r\n ) : (\r\n <div className={getLess(styles, \"nsc-table-content-tiem\")}>\r\n <div style={{ width: 20 }}></div>\r\n <div> {item.title}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </>\r\n );\r\n\r\n const defaultShowCols = columns.filter((cols) => cols.initShow !== false);\r\n\r\n const content = (\r\n <Checkbox.Group\r\n onChange={this.filterColumn.bind(this)}\r\n options={colLists.map(\r\n (col: ColumnType<{}> & { filterColumn: boolean; dataIndex: any }) => {\r\n if (!col.dataIndex) {\r\n col.dataIndex = col.title;\r\n }\r\n return {\r\n label: col.title,\r\n value: col.dataIndex,\r\n disabled: col.filterColumn === false,\r\n } as CheckboxOptionType;\r\n }\r\n )}\r\n // defaultValue={defaultShowCols.map((col) => col.dataIndex)}\r\n value={\r\n this.state.defaultCheck\r\n ? defaultShowCols.map((col) => col.dataIndex)\r\n : this.state.checkColumn\r\n }\r\n ></Checkbox.Group>\r\n );\r\n return (\r\n <div className={getLess(styles, \"nsc-table-tool-bar\")}>\r\n {tools.indexOf(\"column\") > -1 && (\r\n <div style={{ fontSize: 14 }}>\r\n <Popover\r\n title=\"选择显示的列\"\r\n content={content}\r\n placement=\"bottomRight\"\r\n trigger=\"click\"\r\n overlayStyle={{ minWidth: 410, maxWidth: 450 }}\r\n >\r\n <AppstoreOutlined\r\n className={getLess(styles, \"nsc-table-th-app-store-icon\")}\r\n />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"sort\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sortContent} trigger=\"click\">\r\n <SortAscendingOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"size\") > -1 && (\r\n <div style={{ marginRight: 8, fontSize: 14 }}>\r\n <Popover placement=\"bottom\" content={sizeContent} trigger=\"click\">\r\n <ColumnHeightOutlined />\r\n </Popover>\r\n </div>\r\n )}\r\n {tools.indexOf(\"refresh\") > -1 && (\r\n <div\r\n style={{ marginRight: 8, fontSize: 14, cursor: \"pointer\" }}\r\n onClick={() => {\r\n const params = { ...this.state.filterParams };\r\n if (toolsClick.onRefresh) {\r\n toolsClick.onRefresh();\r\n } else {\r\n this.store.load({ params });\r\n }\r\n }}\r\n >\r\n <RedoOutlined />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n getSelectedRowKeys() {\r\n return this.state.selectedRowKeys;\r\n }\r\n getSelectedRowDatas() {\r\n return this.state.selectedRowDatas;\r\n }\r\n resetSelectedRowKeys() {\r\n this.setState({\r\n selectedRowKeys: [],\r\n selectedRowDatas: [],\r\n });\r\n }\r\n rowSelectionOnSelect(record: any, selected: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n let { rowKey = \"id\" } = this.props;\r\n let newSelectedRowKeys = [...selectedRowKeys];\r\n let newSelectedRowDatas = [...selectedRowDatas];\r\n if (selected) {\r\n newSelectedRowKeys = [...newSelectedRowKeys, record[rowKey]];\r\n newSelectedRowDatas = [...newSelectedRowDatas, record];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (item === record[rowKey]) {\r\n newSelectedRowKeys.splice(index, 1);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (item[rowKey] === record[rowKey]) {\r\n newSelectedRowDatas.splice(index, 1);\r\n }\r\n });\r\n }\r\n this.setState({\r\n selectedRowKeys: newSelectedRowKeys,\r\n selectedRowDatas: newSelectedRowDatas,\r\n });\r\n }\r\n rowSelectionOnSelectAll(selected: any, selectedRows: any, changeRows: any) {\r\n const { selectedRowKeys, selectedRowDatas } = this.state;\r\n const { rowKey = \"id\" } = this.props;\r\n let newids: any = [];\r\n let newdatas: any = [];\r\n if (changeRows.length > 0) {\r\n let changeIds = changeRows.map((item: any) => item[rowKey]);\r\n if (selected) {\r\n newids = [...selectedRowKeys, ...changeIds];\r\n newdatas = [...selectedRowDatas, ...changeRows];\r\n } else {\r\n selectedRowKeys.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item) == -1) {\r\n newids.push(item);\r\n }\r\n });\r\n selectedRowDatas.map((item: any, index: any) => {\r\n if (changeIds.indexOf(item[rowKey]) == -1) {\r\n newdatas.push(item);\r\n }\r\n });\r\n }\r\n } else {\r\n newids = [...selectedRowKeys];\r\n newdatas = [...selectedRowDatas];\r\n }\r\n this.setState({\r\n selectedRowKeys: [...newids],\r\n selectedRowDatas: [...newdatas],\r\n });\r\n }\r\n render() {\r\n let _this = this,\r\n {\r\n loading,\r\n dataSource,\r\n pagination = {},\r\n searchText,\r\n fieldOption,\r\n searchColor,\r\n tableSize,\r\n } = this.state,\r\n props = utils.omit(\r\n this.props,\r\n [\r\n \"store\",\r\n \"onChange\",\r\n \"columns\",\r\n \"resetColumn\",\r\n \"toolbar\",\r\n \"sortFields\",\r\n \"filterColumn\",\r\n \"sortSearch\",\r\n \"showRowSelection\",\r\n \"pageType\",\r\n ],\r\n {\r\n rowKey: \"id\",\r\n clickChangeColor: false,\r\n }\r\n );\r\n if (props.pagination !== false) {\r\n props.pagination = {\r\n position: [\"bottomRight\"],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n ...pagination,\r\n ...props.pagination,\r\n };\r\n if (props.showTotal == true) {\r\n props.pagination.showTotal = function (total, [from, to]) {\r\n // return \"显示 \" + from + \" - \" + to + \"条,共 \" + total + \" 条\";\r\n return \"共 \" + total + \" 条\";\r\n };\r\n }\r\n }\r\n props.onChange = function (pagination, filters, sorter, extra) {\r\n _this.onChange(_this.state.pagination, filters, sorter, extra);\r\n };\r\n if (props.clickChangeColor) {\r\n const onRowFn = props.onRow;\r\n props.onRow = function (record, index) {\r\n var custom = onRowFn ? onRowFn(record, index) : {};\r\n const onClickFn = custom.onClick;\r\n custom.onClick = (event) => {\r\n _this.setState({\r\n activeIndex: index, //获取点击行的索引\r\n });\r\n utils.callback(onClickFn, _this, [event]);\r\n };\r\n return custom;\r\n };\r\n props.rowClassName = function (record, index) {\r\n return index === _this.state.activeIndex\r\n ? \"nsc-table-clickRowStyle\"\r\n : \"\";\r\n };\r\n }\r\n let newDataSource = [];\r\n if (searchText) {\r\n const data = treeUtils.getSearchMenuDatas(\r\n this,\r\n searchText,\r\n fieldOption,\r\n searchColor\r\n );\r\n newDataSource = data.treeDatas;\r\n props.expandedRowKeys = data.openKeys;\r\n } else {\r\n newDataSource = dataSource;\r\n }\r\n props.store = props.store || {};\r\n props.store.autoLoad = props.store.autoLoad === false ? false : true;\r\n const { dragable } = _this.props;\r\n const dragableProps =\r\n dragable === true\r\n ? {\r\n components: BodyRowComponent,\r\n onRow: (record, index) => ({\r\n index,\r\n record,\r\n moveRow: this.moveRow,\r\n }),\r\n }\r\n : {};\r\n let { resizeColumn } = this.props;\r\n\r\n const resizeProps =\r\n resizeColumn === true ? { components: this.components } : null;\r\n const { tableTool } = config();\r\n let toolFlag = false;\r\n // console.log('tableTool',tableTool)\r\n\r\n if (tableTool.show === true) {\r\n toolFlag=true;\r\n }\r\n if (this.props.toolbar && this.props.toolbar.show === true) {\r\n toolFlag = true;\r\n }\r\n if (this.props.showRowSelection) {\r\n const { rowSelection = {} } = this.props;\r\n props = {\r\n ...props,\r\n rowSelection: {\r\n selectedRowKeys: this.state.selectedRowKeys,\r\n onSelect: this.rowSelectionOnSelect.bind(this),\r\n onSelectAll: this.rowSelectionOnSelectAll.bind(this),\r\n columnWidth: 40,\r\n ...rowSelection,\r\n },\r\n };\r\n }\r\n const { tableProps: configTableProps } = config();\r\n const DefaultTable = (\r\n <div className={getLess(styles, \"nsc-table\")}>\r\n {toolFlag && this.renderToolBar()}\r\n <Table\r\n childrenColumnName=\"childNodes\"\r\n sheitem\r\n dataSource={newDataSource}\r\n columns={this.getColumns()}\r\n loading={loading}\r\n className={cls(getLess(styles, \"nsc-table-content\"), props.className)}\r\n locale={{\r\n emptyText: (\r\n <NoData className={getLess(styles, \"nsc-table-nodata\")} />\r\n ),\r\n }}\r\n scroll={{ x: \"max-content\" }}\r\n {...configTableProps}\r\n {...resizeProps}\r\n {...props}\r\n {...dragableProps}\r\n size={tableSize}\r\n pagination={false}\r\n // style={{ height: 600 }}\r\n />\r\n {props.pagination !== false && (\r\n <div className={getLess(styles, \"nsc-table-pagination\")}>\r\n <Pagination\r\n {...props.pagination}\r\n onChange={(page, pageSize) => {\r\n const extra = this.state.extra;\r\n extra.action = \"paginate\";\r\n this.setState(({ pagination = {} }) => {\r\n return {\r\n pagination: { ...pagination, current: page, pageSize },\r\n };\r\n });\r\n this.onChange(\r\n { current: page, pageSize },\r\n this.state.filter,\r\n this.state.sorter,\r\n extra\r\n );\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n return dragable === true ? (\r\n <DndProvider backend={HTML5Backend}>{DefaultTable}</DndProvider>\r\n ) : (\r\n DefaultTable\r\n );\r\n }\r\n}\r\n\r\nexport default withZhLocale(NSCTable);\r\n"],"mappings":"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"}
@@ -19,6 +19,7 @@ export default class NscTreeSelect extends React.PureComponent<ITreeSelectProps,
19
19
  store: StoreProps;
20
20
  constructor(props: any);
21
21
  componentDidMount(): void;
22
+ onSearch(value: any): void;
22
23
  componentDidUpdate(newProps: any, newState: any, Snapshot: any): void;
23
24
  render(): React.ReactNode;
24
25
  }
@@ -11,6 +11,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
11
11
  import * as React from "react";
12
12
  import Store from "@bj-nsc/msn";
13
13
  import { utils } from "@bj-nsc/msn/lib/utils";
14
+ import PinyinMatch from "pinyin-match";
14
15
  export default class NscTreeSelect extends React.PureComponent {
15
16
  constructor(props) {
16
17
  super(props);
@@ -91,6 +92,96 @@ export default class NscTreeSelect extends React.PureComponent {
91
92
  });
92
93
  }
93
94
  }
95
+ onSearch(value) {
96
+ const {
97
+ allDataSource
98
+ } = this.state;
99
+ let {
100
+ labelField = "label"
101
+ } = this.props;
102
+
103
+ // 深度优先搜索匹配节点及其关联节点
104
+ const searchTreeData = (data, searchValue) => {
105
+ if (!searchValue || !data || data.length === 0) {
106
+ return data;
107
+ }
108
+
109
+ // 检查节点是否匹配搜索值(支持汉字和拼音)
110
+ const isNodeMatch = node => {
111
+ // 构造节点标签
112
+ let label = "";
113
+ if (labelField.split(",").length == 1) {
114
+ label = node[labelField] || "";
115
+ } else {
116
+ const labelFields = labelField.split(",");
117
+ labelFields.forEach((l, index) => {
118
+ label = index == 0 ? node[l] || "" : label + "-" + (node[l] || "");
119
+ });
120
+ }
121
+
122
+ // 如果没有标签,返回false
123
+ if (!label) return false;
124
+
125
+ // 直接包含检查(汉字匹配)
126
+ if (label.includes(searchValue)) {
127
+ return true;
128
+ }
129
+
130
+ // 拼音匹配检查
131
+ try {
132
+ return PinyinMatch.match(label, searchValue) || false;
133
+ } catch (e) {
134
+ return false;
135
+ }
136
+ };
137
+
138
+ // 递归查找匹配的节点
139
+ const findMatchingNodes = node => {
140
+ // 检查当前节点是否匹配
141
+ const currentNodeMatch = isNodeMatch(node);
142
+
143
+ // 如果当前节点匹配,返回该节点及其所有子节点
144
+ if (currentNodeMatch) {
145
+ return _objectSpread({}, node);
146
+ }
147
+
148
+ // 如果当前节点不匹配,检查子节点
149
+ let matchedChildren = [];
150
+ if (node.children && node.children.length > 0) {
151
+ node.children.forEach(child => {
152
+ const matched = findMatchingNodes(child);
153
+ if (matched) {
154
+ matchedChildren.push(matched);
155
+ }
156
+ });
157
+ }
158
+
159
+ // 如果有匹配的子节点,则返回该节点(作为容器)及其匹配的子节点
160
+ if (matchedChildren.length > 0) {
161
+ return _objectSpread(_objectSpread({}, node), {}, {
162
+ children: matchedChildren
163
+ });
164
+ }
165
+
166
+ // 如果当前节点和子节点都不匹配,返回null
167
+ return null;
168
+ };
169
+
170
+ // 对所有顶级节点进行搜索
171
+ const result = [];
172
+ data.forEach(node => {
173
+ const matchedNode = findMatchingNodes(node);
174
+ if (matchedNode) {
175
+ result.push(matchedNode);
176
+ }
177
+ });
178
+ return result;
179
+ };
180
+ const result = value ? searchTreeData(allDataSource, value) : allDataSource;
181
+ this.setState({
182
+ dataSource: result
183
+ });
184
+ }
94
185
  componentDidUpdate(newProps, newState, Snapshot) {
95
186
  const {
96
187
  treeData,
@@ -115,14 +206,19 @@ export default class NscTreeSelect extends React.PureComponent {
115
206
  labelField = "label",
116
207
  childrenField = "children"
117
208
  } = this.props;
118
- return /*#__PURE__*/React.createElement(_TreeSelect, _extends({}, this.props, {
119
- treeData: this.state.dataSource,
209
+ return /*#__PURE__*/React.createElement(_TreeSelect, _extends({
210
+ showSearch: true,
211
+ placeholder: "\u8BF7\u9009\u62E9",
120
212
  fieldNames: {
121
213
  value: valueField,
122
214
  label: labelField,
123
215
  children: childrenField
124
216
  }
217
+ }, this.props, {
218
+ treeData: this.state.dataSource,
219
+ onSearch: this.onSearch.bind(this),
220
+ filterTreeNode: false
125
221
  }));
126
222
  }
127
223
  }
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlN0b3JlIiwidXRpbHMiLCJOc2NUcmVlU2VsZWN0IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidHJlZURhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9ucyIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50RGlkVXBkYXRlIiwibmV3UHJvcHMiLCJuZXdTdGF0ZSIsIlNuYXBzaG90Iiwic3RhdGUiLCJuZXdEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlbmRlciIsInZhbHVlRmllbGQiLCJsYWJlbEZpZWxkIiwiY2hpbGRyZW5GaWVsZCIsImNyZWF0ZUVsZW1lbnQiLCJfVHJlZVNlbGVjdCIsIl9leHRlbmRzIiwiZmllbGROYW1lcyIsInZhbHVlIiwibGFiZWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3RyZWVzZWxlY3QvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0LCBUcmVlU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBJVHJlZVNlbGVjdFByb3BzIGV4dGVuZHMgVHJlZVNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVUeXBlPzogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCI7XHJcbiAgY2hpbGRyZW5GaWVsZD86IHN0cmluZztcclxuICBvbkNoYW5nZT86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NUcmVlU2VsZWN0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxcclxuICBJVHJlZVNlbGVjdFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgICBhbGxEYXRhU291cmNlOiBbXSxcclxuICAgIGRhdGFTdG9yZTogW10sXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHRyZWVEYXRhLCBzdG9yZSA9IHt9LCBjaGlsZHJlbiwgb3B0aW9ucyB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG5cclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEodXJsIHx8IHRyZWVEYXRhKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXRyZWVEYXRhXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBuZXdEYXRhID0gX3RoaXMuZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGEsXHJcbiAgICAgICAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBkYXRhU3RvcmU6IGRhdGEsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICh1cmwgJiYgdHJlZURhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyB0cmVlRGF0YSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIHRyZWVEYXRhKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICAgIGFsbERhdGFTb3VyY2U6IHRyZWVEYXRhLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgdHJlZURhdGEpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IHRyZWVEYXRhO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgdmFsdWVGaWVsZCA9IFwidmFsdWVcIixcclxuICAgICAgbGFiZWxGaWVsZCA9IFwibGFiZWxcIixcclxuICAgICAgY2hpbGRyZW5GaWVsZCA9IFwiY2hpbGRyZW5cIixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFRyZWVTZWxlY3RcclxuICAgICAgICB7Li4udGhpcy5wcm9wc31cclxuICAgICAgICB0cmVlRGF0YT17dGhpcy5zdGF0ZS5kYXRhU291cmNlfVxyXG4gICAgICAgIGZpZWxkTmFtZXM9e3tcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkLFxyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsRmllbGQsXHJcbiAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW5GaWVsZCxcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUU5QixPQUFPQyxLQUFLLE1BQXNCLGFBQWE7QUFDL0MsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQVU3QyxlQUFlLE1BQU1DLGFBQWEsU0FBU0gsS0FBSyxDQUFDSSxhQUFhLENBRzVEO0VBUUFDLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUFDQyxlQUFBLGdCQVJQO01BQ05DLFVBQVUsRUFBRSxFQUFFO01BQ2RDLFdBQVcsRUFBRSxJQUFJO01BQ2pCQyxhQUFhLEVBQUUsRUFBRTtNQUNqQkMsU0FBUyxFQUFFO0lBQ2IsQ0FBQztJQUFBSixlQUFBLGdCQUNPLENBQUMsQ0FBQztJQUdSLElBQUk7TUFBRUssUUFBUTtNQUFFQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO01BQUVDLFFBQVE7TUFBRUM7SUFBUSxDQUFDLEdBQUdULEtBQUs7SUFDdkQsTUFBTTtRQUNKVSxHQUFHO1FBQ0hDLFNBQVMsRUFBRUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUM3QkMsTUFBTTtRQUNOQztNQUVGLENBQUMsR0FBR1AsS0FBSztNQURKUSxNQUFNLEdBQUFDLHdCQUFBLENBQ1BULEtBQUssRUFBQVUsU0FBQTtJQUVULElBQUksQ0FBQ1QsUUFBUSxFQUFFO01BQ2IsSUFBSSxFQUFFRSxHQUFHLElBQUlKLFFBQVEsQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSVksS0FBSyxDQUFDLGNBQWMsQ0FBQztNQUNqQztNQUNBLElBQUlDLEtBQUssR0FBRyxJQUFJO01BQ2hCLElBQUlDLFVBQVUsR0FBQUMsYUFBQTtRQUNaQyxLQUFLLEVBQUUsT0FBTztRQUNkQyxTQUFTLEVBQUUsSUFBSTtRQUNmWixTQUFTLEVBQUU7VUFDVGEs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
224
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlN0b3JlIiwidXRpbHMiLCJQaW55aW5NYXRjaCIsIk5zY1RyZWVTZWxlY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJkYXRhU3RvcmUiLCJ0cmVlRGF0YSIsInN0b3JlIiwiY2hpbGRyZW4iLCJvcHRpb25zIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsImNhY2hlZCIsImNhY2hlS2V5Iiwic3RvcmVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiRXJyb3IiLCJfdGhpcyIsInN0b3JlUHJvcHMiLCJfb2JqZWN0U3ByZWFkIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJkYXRhIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwiY29tcG9uZW50RGlkTW91bnQiLCJvblNlYXJjaCIsInZhbHVlIiwic3RhdGUiLCJsYWJlbEZpZWxkIiwic2VhcmNoVHJlZURhdGEiLCJzZWFyY2hWYWx1ZSIsImxlbmd0aCIsImlzTm9kZU1hdGNoIiwibm9kZSIsImxhYmVsIiwic3BsaXQiLCJsYWJlbEZpZWxkcyIsImZvckVhY2giLCJsIiwiaW5kZXgiLCJpbmNsdWRlcyIsIm1hdGNoIiwiZSIsImZpbmRNYXRjaGluZ05vZGVzIiwiY3VycmVudE5vZGVNYXRjaCIsIm1hdGNoZWRDaGlsZHJlbiIsImNoaWxkIiwibWF0Y2hlZCIsInB1c2giLCJyZXN1bHQiLCJtYXRjaGVkTm9kZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIm5ld0RhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwicmVuZGVyIiwidmFsdWVGaWVsZCIsImNoaWxkcmVuRmllbGQiLCJjcmVhdGVFbGVtZW50IiwiX1RyZWVTZWxlY3QiLCJfZXh0ZW5kcyIsInNob3dTZWFyY2giLCJwbGFjZWhvbGRlciIsImZpZWxkTmFtZXMiLCJiaW5kIiwiZmlsdGVyVHJlZU5vZGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3RyZWVzZWxlY3QvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUcmVlU2VsZWN0LCBUcmVlU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IFBpbnlpbk1hdGNoIGZyb20gXCJwaW55aW4tbWF0Y2hcIjtcclxuaW50ZXJmYWNlIElUcmVlU2VsZWN0UHJvcHMgZXh0ZW5kcyBUcmVlU2VsZWN0UHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZVR5cGU/OiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIjtcclxuICBjaGlsZHJlbkZpZWxkPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlPzogYW55O1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY1RyZWVTZWxlY3QgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PFxyXG4gIElUcmVlU2VsZWN0UHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgZGF0YVN0b3JlOiBbXSxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IHsgdHJlZURhdGEsIHN0b3JlID0ge30sIGNoaWxkcmVuLCBvcHRpb25zIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgY2FjaGVkLFxyXG4gICAgICBjYWNoZUtleSxcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcblxyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoISh1cmwgfHwgdHJlZURhdGEpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdHJlZURhdGFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IG5ld0RhdGEgPSBfdGhpcy5nZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogZGF0YSxcclxuICAgICAgICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhLFxyXG4gICAgICAgICAgICAgIGRhdGFTdG9yZTogZGF0YSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiB0cmVlRGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBjYWNoZWQ6IGlzQ2FjaGVkLFxyXG4gICAgICAgICAgICBjYWNoZUtleTogaXNDYWNoZUtleSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5zdG9yZVByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBTdG9yZShzdG9yZVByb3BzKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghY2hpbGRyZW4gJiYgdHJlZURhdGEpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogdHJlZURhdGEsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogdHJlZURhdGEsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2godmFsdWUpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB7IGxhYmVsRmllbGQgPSBcImxhYmVsXCIgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgLy8g5rex5bqm5LyY5YWI5pCc57Si5Yy56YWN6IqC54K55Y+K5YW25YWz6IGU6IqC54K5XHJcbiAgICBjb25zdCBzZWFyY2hUcmVlRGF0YSA9IChkYXRhLCBzZWFyY2hWYWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoIXNlYXJjaFZhbHVlIHx8ICFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIOajgOafpeiKgueCueaYr+WQpuWMuemFjeaQnOe0ouWAvO+8iOaUr+aMgeaxieWtl+WSjOaLvOmfs++8iVxyXG4gICAgICBjb25zdCBpc05vZGVNYXRjaCA9IChub2RlKSA9PiB7XHJcbiAgICAgICAgLy8g5p6E6YCg6IqC54K55qCH562+XHJcbiAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIGxhYmVsID0gbm9kZVtsYWJlbEZpZWxkXSB8fCBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICBsYWJlbEZpZWxkcy5mb3JFYWNoKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBub2RlW2xdIHx8IFwiXCIgOiBsYWJlbCArIFwiLVwiICsgKG5vZGVbbF0gfHwgXCJcIik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOayoeacieagh+etvu+8jOi/lOWbnmZhbHNlXHJcbiAgICAgICAgaWYgKCFsYWJlbCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICAvLyDnm7TmjqXljIXlkKvmo4Dmn6XvvIjmsYnlrZfljLnphY3vvIlcclxuICAgICAgICBpZiAobGFiZWwuaW5jbHVkZXMoc2VhcmNoVmFsdWUpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOaLvOmfs+WMuemFjeajgOafpVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICByZXR1cm4gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHNlYXJjaFZhbHVlKSB8fCBmYWxzZTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8g6YCS5b2S5p+l5om+5Yy56YWN55qE6IqC54K5XHJcbiAgICAgIGNvbnN0IGZpbmRNYXRjaGluZ05vZGVzID0gKG5vZGUpID0+IHtcclxuICAgICAgICAvLyDmo4Dmn6XlvZPliY3oioLngrnmmK/lkKbljLnphY1cclxuICAgICAgICBjb25zdCBjdXJyZW50Tm9kZU1hdGNoID0gaXNOb2RlTWF0Y2gobm9kZSk7XHJcblxyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueWMuemFje+8jOi/lOWbnuivpeiKgueCueWPiuWFtuaJgOacieWtkOiKgueCuVxyXG4gICAgICAgIGlmIChjdXJyZW50Tm9kZU1hdGNoKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5ub2RlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeiKgueCueS4jeWMuemFje+8jOajgOafpeWtkOiKgueCuVxyXG4gICAgICAgIGxldCBtYXRjaGVkQ2hpbGRyZW4gPSBbXTtcclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGZpbmRNYXRjaGluZ05vZGVzKGNoaWxkKTtcclxuICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHtcclxuICAgICAgICAgICAgICBtYXRjaGVkQ2hpbGRyZW4ucHVzaChtYXRjaGVkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzmnInljLnphY3nmoTlrZDoioLngrnvvIzliJnov5Tlm57or6XoioLngrnvvIjkvZzkuLrlrrnlmajvvInlj4rlhbbljLnphY3nmoTlrZDoioLngrlcclxuICAgICAgICBpZiAobWF0Y2hlZENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLm5vZGUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBtYXRjaGVkQ2hpbGRyZW4sXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c5b2T5YmN6IqC54K55ZKM5a2Q6IqC54K56YO95LiN5Yy56YWN77yM6L+U5ZuebnVsbFxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8g5a+55omA5pyJ6aG257qn6IqC54K56L+b6KGM5pCc57SiXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBkYXRhLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgICBjb25zdCBtYXRjaGVkTm9kZSA9IGZpbmRNYXRjaGluZ05vZGVzKG5vZGUpO1xyXG4gICAgICAgIGlmIChtYXRjaGVkTm9kZSkge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2gobWF0Y2hlZE5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlID8gc2VhcmNoVHJlZURhdGEoYWxsRGF0YVNvdXJjZSwgdmFsdWUpIDogYWxsRGF0YVNvdXJjZTtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZGF0YVNvdXJjZTogcmVzdWx0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IHRyZWVEYXRhLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgdHJlZURhdGEpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IHRyZWVEYXRhO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgdmFsdWVGaWVsZCA9IFwidmFsdWVcIixcclxuICAgICAgbGFiZWxGaWVsZCA9IFwibGFiZWxcIixcclxuICAgICAgY2hpbGRyZW5GaWVsZCA9IFwiY2hpbGRyZW5cIixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFRyZWVTZWxlY3RcclxuICAgICAgICBzaG93U2VhcmNoPXt0cnVlfVxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICBmaWVsZE5hbWVzPXt7XHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWVGaWVsZCxcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbEZpZWxkLFxyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuRmllbGQsXHJcbiAgICAgICAgfX1cclxuICAgICAgICB7Li4udGhpcy5wcm9wc31cclxuICAgICAgICB0cmVlRGF0YT17dGhpcy5zdGF0ZS5kYXRhU291cmNlfVxyXG4gICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgZmlsdGVyVHJlZU5vZGU9e2ZhbHNlfVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUU5QixPQUFPQyxLQUFLLE1BQXNCLGFBQWE7QUFDL0MsU0FBU0MsS0FBSyxRQUFRLHVC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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Store","utils","NscTreeSelect","PureComponent","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","dataStore","treeData","store","children","options","url","listeners","listenersPops","cached","cacheKey","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","data","modelData","setState","dataChanged","isCached","isCacheKey","autoLoad","componentDidMount","componentDidUpdate","newProps","newState","Snapshot","state","newData","JSON","stringify","render","valueField","labelField","childrenField","createElement","_TreeSelect","_extends","fieldNames","value","label"],"sources":["../../../src/components/base/treeselect/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { TreeSelect, TreeSelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\n\r\ninterface ITreeSelectProps extends TreeSelectProps<any> {\r\n store?: StoreProps;\r\n labelField?: string;\r\n valueField?: string;\r\n valueType?: \"string\" | \"number\";\r\n childrenField?: string;\r\n onChange?: any;\r\n}\r\nexport default class NscTreeSelect extends React.PureComponent<\r\n ITreeSelectProps,\r\n any\r\n> {\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let { treeData, store = {}, children, options } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n cached,\r\n cacheKey,\r\n ...stores\r\n } = store;\r\n\r\n if (!children) {\r\n if (!(url || treeData)) {\r\n throw new Error(\"url、treeData\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && treeData == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n componentDidMount() {\r\n const { treeData, children } = this.props;\r\n if (!children && treeData) {\r\n this.setState({\r\n dataSource: treeData,\r\n allDataSource: treeData,\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { treeData, children } = this.props;\r\n const { allDataSource } = this.state;\r\n if (!children && treeData) {\r\n const newData = treeData;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n }\r\n }\r\n render(): React.ReactNode {\r\n const {\r\n valueField = \"value\",\r\n labelField = \"label\",\r\n childrenField = \"children\",\r\n } = this.props;\r\n return (\r\n <TreeSelect\r\n {...this.props}\r\n treeData={this.state.dataSource}\r\n fieldNames={{\r\n value: valueField,\r\n label: labelField,\r\n children: childrenField,\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","Store","utils","PinyinMatch","NscTreeSelect","PureComponent","constructor","props","_defineProperty","dataSource","selectValue","allDataSource","dataStore","treeData","store","children","options","url","listeners","listenersPops","cached","cacheKey","stores","_objectWithoutProperties","_excluded","Error","_this","storeProps","_objectSpread","model","component","onBeforeLoad","callback","load","data","modelData","setState","dataChanged","isCached","isCacheKey","autoLoad","componentDidMount","onSearch","value","state","labelField","searchTreeData","searchValue","length","isNodeMatch","node","label","split","labelFields","forEach","l","index","includes","match","e","findMatchingNodes","currentNodeMatch","matchedChildren","child","matched","push","result","matchedNode","componentDidUpdate","newProps","newState","Snapshot","newData","JSON","stringify","render","valueField","childrenField","createElement","_TreeSelect","_extends","showSearch","placeholder","fieldNames","bind","filterTreeNode"],"sources":["../../../src/components/base/treeselect/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { TreeSelect, TreeSelectProps } from \"antd\";\r\nimport Store, { StoreProps } from \"@bj-nsc/msn\";\r\nimport { utils } from \"@bj-nsc/msn/lib/utils\";\r\nimport PinyinMatch from \"pinyin-match\";\r\ninterface ITreeSelectProps extends TreeSelectProps<any> {\r\n store?: StoreProps;\r\n labelField?: string;\r\n valueField?: string;\r\n valueType?: \"string\" | \"number\";\r\n childrenField?: string;\r\n onChange?: any;\r\n}\r\nexport default class NscTreeSelect extends React.PureComponent<\r\n ITreeSelectProps,\r\n any\r\n> {\r\n state = {\r\n dataSource: [],\r\n selectValue: null,\r\n allDataSource: [],\r\n dataStore: [],\r\n };\r\n store = {} as StoreProps;\r\n constructor(props) {\r\n super(props);\r\n let { treeData, store = {}, children, options } = props;\r\n const {\r\n url,\r\n listeners: listenersPops = {},\r\n cached,\r\n cacheKey,\r\n ...stores\r\n } = store;\r\n\r\n if (!children) {\r\n if (!(url || treeData)) {\r\n throw new Error(\"url、treeData\");\r\n }\r\n let _this = this;\r\n let storeProps = {\r\n model: \"model\",\r\n component: this,\r\n listeners: {\r\n onBeforeLoad: function (store, options) {\r\n utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);\r\n },\r\n load: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.load, _this, [data, modelData, store]);\r\n },\r\n dataChanged: function (data, modelData, store) {\r\n // const newData = _this.getAllData(data);\r\n _this.setState({\r\n dataSource: data,\r\n allDataSource: data,\r\n dataStore: data,\r\n });\r\n utils.callback(listenersPops.dataChanged, _this, [\r\n data,\r\n modelData,\r\n store,\r\n ]);\r\n },\r\n },\r\n ...stores,\r\n };\r\n if (url && treeData == null) {\r\n let isCached = cached;\r\n let isCacheKey = cacheKey;\r\n storeProps = {\r\n ...{\r\n autoLoad: true,\r\n url: url,\r\n cached: isCached,\r\n cacheKey: isCacheKey,\r\n },\r\n ...storeProps,\r\n };\r\n }\r\n this.store = new Store(storeProps);\r\n }\r\n }\r\n componentDidMount() {\r\n const { treeData, children } = this.props;\r\n if (!children && treeData) {\r\n this.setState({\r\n dataSource: treeData,\r\n allDataSource: treeData,\r\n });\r\n }\r\n }\r\n\r\n onSearch(value) {\r\n const { allDataSource } = this.state;\r\n let { labelField = \"label\" } = this.props;\r\n\r\n // 深度优先搜索匹配节点及其关联节点\r\n const searchTreeData = (data, searchValue) => {\r\n if (!searchValue || !data || data.length === 0) {\r\n return data;\r\n }\r\n\r\n // 检查节点是否匹配搜索值(支持汉字和拼音)\r\n const isNodeMatch = (node) => {\r\n // 构造节点标签\r\n let label = \"\";\r\n if (labelField.split(\",\").length == 1) {\r\n label = node[labelField] || \"\";\r\n } else {\r\n const labelFields: any = labelField.split(\",\");\r\n labelFields.forEach((l, index) => {\r\n label = index == 0 ? node[l] || \"\" : label + \"-\" + (node[l] || \"\");\r\n });\r\n }\r\n\r\n // 如果没有标签,返回false\r\n if (!label) return false;\r\n\r\n // 直接包含检查(汉字匹配)\r\n if (label.includes(searchValue)) {\r\n return true;\r\n }\r\n\r\n // 拼音匹配检查\r\n try {\r\n return PinyinMatch.match(label, searchValue) || false;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n // 递归查找匹配的节点\r\n const findMatchingNodes = (node) => {\r\n // 检查当前节点是否匹配\r\n const currentNodeMatch = isNodeMatch(node);\r\n\r\n // 如果当前节点匹配,返回该节点及其所有子节点\r\n if (currentNodeMatch) {\r\n return {\r\n ...node,\r\n };\r\n }\r\n\r\n // 如果当前节点不匹配,检查子节点\r\n let matchedChildren = [];\r\n if (node.children && node.children.length > 0) {\r\n node.children.forEach((child) => {\r\n const matched = findMatchingNodes(child);\r\n if (matched) {\r\n matchedChildren.push(matched);\r\n }\r\n });\r\n }\r\n\r\n // 如果有匹配的子节点,则返回该节点(作为容器)及其匹配的子节点\r\n if (matchedChildren.length > 0) {\r\n return {\r\n ...node,\r\n children: matchedChildren,\r\n };\r\n }\r\n\r\n // 如果当前节点和子节点都不匹配,返回null\r\n return null;\r\n };\r\n\r\n // 对所有顶级节点进行搜索\r\n const result = [];\r\n data.forEach((node) => {\r\n const matchedNode = findMatchingNodes(node);\r\n if (matchedNode) {\r\n result.push(matchedNode);\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n const result = value ? searchTreeData(allDataSource, value) : allDataSource;\r\n\r\n this.setState({\r\n dataSource: result,\r\n });\r\n }\r\n componentDidUpdate(newProps, newState, Snapshot) {\r\n const { treeData, children } = this.props;\r\n const { allDataSource } = this.state;\r\n if (!children && treeData) {\r\n const newData = treeData;\r\n if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {\r\n this.setState({\r\n dataSource: newData,\r\n allDataSource: newData,\r\n });\r\n }\r\n }\r\n }\r\n render(): React.ReactNode {\r\n const {\r\n valueField = \"value\",\r\n labelField = \"label\",\r\n childrenField = \"children\",\r\n } = this.props;\r\n return (\r\n <TreeSelect\r\n showSearch={true}\r\n placeholder=\"请选择\"\r\n fieldNames={{\r\n value: valueField,\r\n label: labelField,\r\n children: childrenField,\r\n }}\r\n {...this.props}\r\n treeData={this.state.dataSource}\r\n onSearch={this.onSearch.bind(this)}\r\n filterTreeNode={false}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}