nsc-react-component 4.3.2 → 4.3.3
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 +47 -16
- package/lib/base/table/index.js.map +1 -1
- package/lib/base/tree/index.js +5 -4
- package/lib/base/tree/index.js.map +1 -1
- package/lib/page/FormPage/index.js +16 -11
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/SettingForm/index.d.ts +8 -0
- package/lib/page/SettingForm/index.js +57 -78
- package/lib/page/SettingForm/index.js.map +1 -1
- package/lib/page/SettingTable/index.js +5 -3
- package/lib/page/SettingTable/index.js.map +1 -1
- package/lib/page/SettingUtil/utils.js +3 -3
- package/lib/page/SettingUtil/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","getLocalStore","dayjs","lodash","Button","Upload","cls","NscRequest","convertStringToObj","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","props","editType","editorFlag","value","dictNames","fileList","width","editId","ev","data","JSON","parse","_this","eventType","payload","close","setState","componentDidMount","window","addEventListener","listenMessage","formType","requestObject","detailUrl","get","params","id","state","xssFilter","autoPrefix","then","res","code","_this$formRef$current","formRef","current","setFieldsValue","_objectSpread","defaultValue","_this$formRef$current2","convertDefaultValue","componentWillUnmount","removeEventListener","Utils","funcs","pageRef","show","orgValue","editorflag","length","undefined","callBack","_this$formRef$current3","convertValue","showForm","afterRender","_this$formRef$current4","hide","_this$formRef$current5","onHideForm","hideForm","_this$formRef$current6","setLoading","setEditType","type","setEditId","getFormValue","_this$formRef$current7","formValue","getFieldsValue","cloneDeep","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","newData","stringify","values","forEach","fileKey","value1","value2","setFormValue","_this$formRef$current8","newValue","doSubmit","formdata","_this$formRef$current9","submitUrl","submitParams","requestConfig","addUrl","editorUrl","addParams","editorParams","url","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","msg","success","setTimeout","obj","fileId","fileName","status","push","_this$formRef$current10","valid","validateFields","returnData","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","onOk","onCancel","okButtonProps","centered","footerButton","onClose","newFormsObj","formGroups","otherGrups","groupName","indexOf","groupForms","form","PaneWithoutPageType","Pane","cleanProps","_excluded2","showModel","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj, getLocalStore } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nimport NscRequest from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport CompoundedSpace from \"antd/es/space\";\r\nimport { convertStringToObj } from \"../SettingUtil/utils\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n detailUrl?: string;\r\n };\r\n requestConfig?: any;\r\n footerWidth?: boolean;\r\n editType?: \"新增\" | \"编辑\" | \"查看\";\r\n title?: string;\r\n editId?: string;\r\n modalProps?:any\r\n drawerProps?:any\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: this.props.editType || \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n width: getLocalStore(\"nsc-home-menuCollsape\") || false,\r\n editId: this.props.editId || \"\",\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n componentDidMount(): void {\r\n window.addEventListener(\"message\", this.listenMessage);\r\n const {\r\n formType = \"page\",\r\n requestObject = {},\r\n editType = \"新增\",\r\n } = this.props;\r\n if (formType == \"page\") {\r\n if (requestObject.detailUrl && editType !== \"新增\") {\r\n NscRequest.get(requestObject.detailUrl, {\r\n params: { id: this.state.editId },\r\n xssFilter: false,\r\n autoPrefix: true,\r\n }).then((res) => {\r\n if (res.code == 200) {\r\n this.formRef.current?.setFieldsValue({ ...res.data });\r\n }\r\n });\r\n } else if (editType == \"新增\") {\r\n if (this.props.defaultValue) {\r\n let defaultValue = this.convertDefaultValue();\r\n this.formRef.current?.setFieldsValue(defaultValue || {});\r\n }\r\n }\r\n }\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 == \"menuCollsape\") {\r\n const { payload } = data;\r\n if (payload.close === true || payload.close === false) {\r\n _this.setState({ width: payload.close });\r\n }\r\n }\r\n };\r\n convertDefaultValue() {\r\n const { defaultValue } = this.props;\r\n return convertStringToObj(defaultValue, this.props.Utils || {}, {\r\n funcs: this.props.funcs,\r\n pageRef: this.props.pageRef,\r\n });\r\n }\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n editId: orgValue.id,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n let defaultValue = this.props.defaultValue\r\n ? this.convertDefaultValue()\r\n : {};\r\n this.formRef.current?.showForm(defaultValue || {}, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n setEditType(type) {\r\n this.setState({\r\n label: type,\r\n });\r\n }\r\n setEditId(id) {\r\n this.setState({\r\n editId: id,\r\n });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = lodash.cloneDeep({ ...formValue, ...dictNames });\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id || this.state.editId };\r\n }\r\n let newData = JSON.parse(JSON.stringify(data));\r\n return newData;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.forEach((fileKey) => {\r\n let olddata = values[fileKey];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[fileKey] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[fileKey] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n } else {\r\n if (this.rangerDate[key]) {\r\n let value1 = values[this.rangerDate[key][0]];\r\n let value2 = values[this.rangerDate[key][1]];\r\n if (value1 && value2) {\r\n values[key] = [\r\n dayjs(value1, this.dateFormat[key]),\r\n dayjs(value2, this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type = \"查看\") {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = submitUrl;\r\n let params: any = {};\r\n if (!label || label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code, msg } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n setTimeout(() => {\r\n this.hide(true);\r\n callBack && callBack();\r\n }, 500);\r\n\r\n return;\r\n }\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields()\r\n .then(() => {\r\n let data = this.getFormValue();\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n let returnData = lodash.cloneDeep(data);\r\n onSubmit && onSubmit(returnData, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const {\r\n forms = [],\r\n props = {},\r\n footer = true,\r\n children,\r\n formType = \"page\",\r\n title = \"\",\r\n modalProps:defaultModalProps={},\r\n drawerProps:defaultDrawerProps\r\n } = this.props;\r\n const { loading, label } = this.state;\r\n let selfButtons = [] as any;\r\n let selfPanes = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(child);\r\n }\r\n });\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"formPane\") {\r\n typeof children == \"object\" && selfPanes.push(children);\r\n } else {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n }\r\n let modalProps = {\r\n title: label + title,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultModalProps\r\n } as any;\r\n\r\n let drawerProps = {\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultDrawerProps\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n forms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n if (otherGrups.length > 0) {\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n }\r\n const PaneWithoutPageType = (Pane, props) => {\r\n const { pageType, ...cleanProps } = props;\r\n return React.createElement(Pane.type, cleanProps);\r\n };\r\n //自定义按钮\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType == \"page\" ? null : this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n // labelCol={{ flex: \"100px\" }}\r\n // wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType !== \"page\" ? (\r\n this.renderForm(forms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(forms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n {selfPanes.length > 0 &&\r\n selfPanes.map((Pane, index) => {\r\n return (\r\n <div className=\"nsc-form-pane\" key={index}>\r\n {PaneWithoutPageType(Pane, { ...Pane.props })}\r\n </div>\r\n );\r\n })}\r\n {formType === \"page\" && footer == true && (\r\n <div\r\n className={cls(\r\n \"nsc-form-page-footer\",\r\n [this.state.width ? \"nsc-form-page-footer-width\" : \"\"],\r\n this.props.footerClassName\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {formType === \"page\" && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","getLocalStore","dayjs","lodash","Button","Upload","cls","NscRequest","convertStringToObj","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","props","editType","editorFlag","value","dictNames","fileList","width","editId","ev","data","JSON","parse","_this","eventType","payload","close","setState","componentDidMount","window","addEventListener","listenMessage","formType","requestObject","detailUrl","get","params","id","state","xssFilter","autoPrefix","then","res","code","_this$formRef$current","formRef","current","setFieldsValue","_objectSpread","defaultValue","_this$formRef$current2","convertDefaultValue","componentWillUnmount","removeEventListener","Utils","funcs","pageRef","show","orgValue","editorflag","length","undefined","callBack","_this$formRef$current3","convertValue","showForm","afterRender","_this$formRef$current4","hide","_this$formRef$current5","onHideForm","hideForm","_this$formRef$current6","setLoading","setEditType","type","setEditId","getFormValue","_this$formRef$current7","formValue","getFieldsValue","cloneDeep","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","newData","stringify","values","forEach","fileKey","value1","value2","setFormValue","_this$formRef$current8","newValue","doSubmit","formdata","_this$formRef$current9","submitUrl","submitParams","requestConfig","addUrl","editorUrl","addParams","editorParams","url","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","msg","success","setTimeout","obj","fileId","fileName","status","push","_this$formRef$current10","valid","validateFields","returnData","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","onOk","onCancel","okButtonProps","centered","footerButton","onClose","newFormsObj","formGroups","otherGrups","showForms","groupName","indexOf","groupForms","form","PaneWithoutPageType","Pane","cleanProps","_excluded2","showModel","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj, getLocalStore } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nimport NscRequest from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport CompoundedSpace from \"antd/es/space\";\r\nimport { convertStringToObj } from \"../SettingUtil/utils\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n detailUrl?: string;\r\n };\r\n requestConfig?: any;\r\n footerWidth?: boolean;\r\n editType?: \"新增\" | \"编辑\" | \"查看\";\r\n title?: string;\r\n editId?: string;\r\n modalProps?: any;\r\n drawerProps?: any;\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: this.props.editType || \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n width: getLocalStore(\"nsc-home-menuCollsape\") || false,\r\n editId: this.props.editId || \"\",\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n componentDidMount(): void {\r\n window.addEventListener(\"message\", this.listenMessage);\r\n const {\r\n formType = \"page\",\r\n requestObject = {},\r\n editType = \"新增\",\r\n } = this.props;\r\n if (formType == \"page\") {\r\n if (requestObject.detailUrl && editType !== \"新增\") {\r\n NscRequest.get(requestObject.detailUrl, {\r\n params: { id: this.state.editId },\r\n xssFilter: false,\r\n autoPrefix: true,\r\n }).then((res) => {\r\n if (res.code == 200) {\r\n this.formRef.current?.setFieldsValue({ ...res.data });\r\n }\r\n });\r\n } else if (editType == \"新增\") {\r\n if (this.props.defaultValue) {\r\n let defaultValue = this.convertDefaultValue();\r\n this.formRef.current?.setFieldsValue(defaultValue || {});\r\n }\r\n }\r\n }\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 == \"menuCollsape\") {\r\n const { payload } = data;\r\n if (payload.close === true || payload.close === false) {\r\n _this.setState({ width: payload.close });\r\n }\r\n }\r\n };\r\n convertDefaultValue() {\r\n const { defaultValue } = this.props;\r\n return convertStringToObj(defaultValue, this.props.Utils || {}, {\r\n funcs: this.props.funcs,\r\n pageRef: this.props.pageRef,\r\n formRef: this.formRef,\r\n });\r\n }\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n editId: orgValue.id,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n let defaultValue = this.props.defaultValue\r\n ? this.convertDefaultValue()\r\n : {};\r\n this.formRef.current?.showForm(defaultValue || {}, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n setEditType(type) {\r\n this.setState({\r\n label: type,\r\n });\r\n }\r\n setEditId(id) {\r\n this.setState({\r\n editId: id,\r\n });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = lodash.cloneDeep({ ...formValue, ...dictNames });\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id || this.state.editId };\r\n }\r\n let newData = JSON.parse(JSON.stringify(data));\r\n return newData;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.forEach((fileKey) => {\r\n let olddata = values[fileKey];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[fileKey] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[fileKey] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n } else {\r\n if (this.rangerDate[key]) {\r\n let value1 = values[this.rangerDate[key][0]];\r\n let value2 = values[this.rangerDate[key][1]];\r\n if (value1 && value2) {\r\n values[key] = [\r\n dayjs(value1, this.dateFormat[key]),\r\n dayjs(value2, this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type = \"查看\") {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = submitUrl;\r\n let params: any = {};\r\n if (!label || label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code, msg } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n setTimeout(() => {\r\n this.hide(true);\r\n callBack && callBack();\r\n }, 500);\r\n\r\n return;\r\n }\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields()\r\n .then(() => {\r\n let data = this.getFormValue();\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n let returnData = lodash.cloneDeep(data);\r\n onSubmit && onSubmit(returnData, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n pageRef:this.props.pageRef\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const {\r\n forms = [],\r\n props = {},\r\n footer = true,\r\n children,\r\n formType = \"page\",\r\n title = \"\",\r\n modalProps: defaultModalProps = {},\r\n drawerProps: defaultDrawerProps,\r\n } = this.props;\r\n const { loading, label } = this.state;\r\n let selfButtons = [] as any;\r\n let selfPanes = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(child);\r\n }\r\n });\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"formPane\") {\r\n typeof children == \"object\" && selfPanes.push(children);\r\n } else {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n }\r\n let modalProps = {\r\n title: label + title,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultModalProps,\r\n } as any;\r\n\r\n let drawerProps = {\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultDrawerProps,\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n let showForms = [] as any;\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.show !== false) {\r\n showForms.push(item);\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n showForms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n if (otherGrups.length > 0) {\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n }\r\n const PaneWithoutPageType = (Pane, props) => {\r\n const { pageType, ...cleanProps } = props;\r\n return React.createElement(Pane.type, cleanProps);\r\n };\r\n //自定义按钮\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType == \"page\" ? null : this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n // labelCol={{ flex: \"100px\" }}\r\n // wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType !== \"page\" ? (\r\n this.renderForm(showForms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(showForms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n {selfPanes.length > 0 &&\r\n selfPanes.map((Pane, index) => {\r\n return (\r\n <div className=\"nsc-form-pane\" key={index}>\r\n {PaneWithoutPageType(Pane, { ...Pane.props })}\r\n </div>\r\n );\r\n })}\r\n {formType === \"page\" && footer == true && (\r\n <div\r\n className={cls(\r\n \"nsc-form-page-footer\",\r\n [this.state.width ? \"nsc-form-page-footer-width\" : \"\"],\r\n this.props.footerClassName\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {formType === \"page\" && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "./index.less";
|
|
2
2
|
import React from "react";
|
|
3
|
+
export declare const getPageData: (params: any, settingSource: any) => any;
|
|
3
4
|
interface IProps {
|
|
4
5
|
formCode: string;
|
|
5
6
|
className?: any;
|
|
@@ -20,6 +21,13 @@ interface IProps {
|
|
|
20
21
|
children?: any;
|
|
21
22
|
[propName: string]: any;
|
|
22
23
|
}
|
|
24
|
+
export declare const getFormSetting: (data: any) => {
|
|
25
|
+
formType: any;
|
|
26
|
+
selfButton: any;
|
|
27
|
+
props: any;
|
|
28
|
+
otherProps: any;
|
|
29
|
+
forms: any;
|
|
30
|
+
};
|
|
23
31
|
export default class SettingForm extends React.Component<IProps, any> {
|
|
24
32
|
state: {
|
|
25
33
|
formType: string;
|
|
@@ -15,42 +15,7 @@ import NscRequest from "nsc-request";
|
|
|
15
15
|
import cls from "classnames";
|
|
16
16
|
import FormPage from "../FormPage";
|
|
17
17
|
import { defaultComFuncs, defaultUtil, renderSelfToolButton } from "../SettingUtil/utils";
|
|
18
|
-
|
|
19
|
-
// import { getConfigData } from '../services';
|
|
20
|
-
|
|
21
|
-
// const defaulUtil = {
|
|
22
|
-
// NscCom,
|
|
23
|
-
// NscFile,
|
|
24
|
-
// NscRequest,
|
|
25
|
-
// NscUtils,
|
|
26
|
-
// dayjs,
|
|
27
|
-
// createElement: React.createElement,
|
|
28
|
-
// } as any;
|
|
29
|
-
// const renderSelfToolButton = ({ selfButton, pageRef, funcs, loading }) => {
|
|
30
|
-
// if (selfButton.length == 0) {
|
|
31
|
-
// return null;
|
|
32
|
-
// } else {
|
|
33
|
-
// return selfButton.map((item: any, index: number) => {
|
|
34
|
-
// return (
|
|
35
|
-
// <Button
|
|
36
|
-
// key={index}
|
|
37
|
-
// type={item.type}
|
|
38
|
-
// onClick={() => {
|
|
39
|
-
// let eventOption = { pageRef: pageRef, funcs: funcs };
|
|
40
|
-
// const func = new Function("Utils,eventOption", item.onClick);
|
|
41
|
-
// func(defaulUtil, eventOption);
|
|
42
|
-
// }}
|
|
43
|
-
// code={item.code}
|
|
44
|
-
// loading={loading[item.code] === true ? true : false}
|
|
45
|
-
// >
|
|
46
|
-
// {item.name}
|
|
47
|
-
// </Button>
|
|
48
|
-
// );
|
|
49
|
-
// });
|
|
50
|
-
// }
|
|
51
|
-
// };
|
|
52
|
-
|
|
53
|
-
const getPageData = (params, settingSource) => {
|
|
18
|
+
export const getPageData = (params, settingSource) => {
|
|
54
19
|
let url = settingSource == "table" ? "/jquick-setting/setting/table/info/" : "/jquick-setting/setting/form/info";
|
|
55
20
|
return NscRequest.get(url, {
|
|
56
21
|
params,
|
|
@@ -65,7 +30,7 @@ const setFieldDisabled = (data, key, disabled) => {
|
|
|
65
30
|
let newForms = [];
|
|
66
31
|
foms.map(item => {
|
|
67
32
|
let obj = _objectSpread({}, item);
|
|
68
|
-
if (item.
|
|
33
|
+
if (item.name == key || key.indexOf(item.name) > -1) {
|
|
69
34
|
let props = obj.props ? _objectSpread({}, obj.props) : {};
|
|
70
35
|
props.disabled = disabled;
|
|
71
36
|
obj.props = props;
|
|
@@ -80,8 +45,8 @@ const setFieldVisible = (data, key, visible) => {
|
|
|
80
45
|
let newForms = [];
|
|
81
46
|
foms.map(item => {
|
|
82
47
|
let obj = _objectSpread({}, item);
|
|
83
|
-
if (item.
|
|
84
|
-
obj.
|
|
48
|
+
if (item.name == key || key.indexOf(item.name) > -1) {
|
|
49
|
+
obj.show = visible;
|
|
85
50
|
}
|
|
86
51
|
newForms.push(obj);
|
|
87
52
|
});
|
|
@@ -110,6 +75,21 @@ const defaultStateValue = {
|
|
|
110
75
|
forms: [],
|
|
111
76
|
buttonLoading: {}
|
|
112
77
|
};
|
|
78
|
+
export const getFormSetting = data => {
|
|
79
|
+
let forms = JSON.parse(data.forms || "[]") || [];
|
|
80
|
+
let selfFormButton = JSON.parse(data.selfButton || "[]") || [];
|
|
81
|
+
let otherProps = JSON.parse(data.otherProps || "{}") || {};
|
|
82
|
+
let formType = data.formType;
|
|
83
|
+
let props = JSON.parse(data.props || "{}") || {};
|
|
84
|
+
let formSetting = {
|
|
85
|
+
formType: formType,
|
|
86
|
+
selfButton: selfFormButton,
|
|
87
|
+
props: props,
|
|
88
|
+
otherProps: otherProps,
|
|
89
|
+
forms: forms
|
|
90
|
+
};
|
|
91
|
+
return formSetting;
|
|
92
|
+
};
|
|
113
93
|
export default class SettingForm extends React.Component {
|
|
114
94
|
constructor() {
|
|
115
95
|
super(...arguments);
|
|
@@ -161,18 +141,10 @@ export default class SettingForm extends React.Component {
|
|
|
161
141
|
});
|
|
162
142
|
});
|
|
163
143
|
} else {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
let props = JSON.parse(res.data.props || "{}") || {};
|
|
169
|
-
this.setState({
|
|
170
|
-
formType: this.props.formType || formType,
|
|
171
|
-
selfButton: selfFormButton,
|
|
172
|
-
props: props,
|
|
173
|
-
otherProps: otherProps,
|
|
174
|
-
forms: forms
|
|
175
|
-
}, () => {
|
|
144
|
+
const formSetting = getFormSetting(res.data) || {};
|
|
145
|
+
this.setState(_objectSpread(_objectSpread({}, formSetting), {}, {
|
|
146
|
+
formType: this.props.formType || formSetting.formType
|
|
147
|
+
}), () => {
|
|
176
148
|
this.setState({
|
|
177
149
|
pageLoading: false
|
|
178
150
|
});
|
|
@@ -269,32 +241,39 @@ export default class SettingForm extends React.Component {
|
|
|
269
241
|
} else if (children) {
|
|
270
242
|
codeFormButtons.push(children);
|
|
271
243
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
244
|
+
const renderForm = () => {
|
|
245
|
+
return /*#__PURE__*/React.createElement(FormPage, _extends({
|
|
246
|
+
formType: formType,
|
|
247
|
+
forms: forms,
|
|
248
|
+
requestObject: requestObject,
|
|
249
|
+
Utils: defaultUtil,
|
|
250
|
+
funcs: _objectSpread(_objectSpread({}, deaultFuncs), funcs),
|
|
251
|
+
ref: this.pageRef,
|
|
252
|
+
pageRef: this.pageRef,
|
|
253
|
+
props: props,
|
|
254
|
+
editType: this.props.editType
|
|
255
|
+
}, otherProps, params), renderSelfToolButton({
|
|
256
|
+
selfButton,
|
|
257
|
+
pageRef: this.pageRef,
|
|
258
|
+
funcs,
|
|
259
|
+
loading: this.state.buttonLoading,
|
|
260
|
+
type: "formButton"
|
|
261
|
+
}));
|
|
262
|
+
};
|
|
263
|
+
if (this.props.formType == "page") {
|
|
264
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
265
|
+
className: cls("nsc-framework-formpage", className)
|
|
266
|
+
}, pageLoading ? /*#__PURE__*/React.createElement("div", {
|
|
267
|
+
style: {
|
|
268
|
+
width: "100%",
|
|
269
|
+
height: "100%"
|
|
270
|
+
}
|
|
271
|
+
}, /*#__PURE__*/React.createElement(Spin, {
|
|
272
|
+
spinning: pageLoading
|
|
273
|
+
})) : renderForm());
|
|
274
|
+
} else {
|
|
275
|
+
return renderForm();
|
|
276
|
+
}
|
|
298
277
|
}
|
|
299
278
|
}
|
|
300
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTcGluIiwiUmVhY3QiLCJOc2NSZXF1ZXN0IiwiY2xzIiwiRm9ybVBhZ2UiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJzZXR0aW5nU291cmNlIiwidXJsIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJmb21zIiwibmV3Rm9ybXMiLCJtYXAiLCJpdGVtIiwib2JqIiwiX29iamVjdFNwcmVhZCIsImRhdGFJbmRleCIsImluZGV4T2YiLCJwcm9wcyIsInB1c2giLCJzZXRGaWVsZFZpc2libGUiLCJ2aXNpYmxlIiwiZWRpdG9yIiwic2V0RmllbGRQcm9wc0RhdGEiLCJwcm9wc0RhdGEiLCJmb3JtcyIsImRlZmF1bHRTdGF0ZVZhbHVlIiwiZm9ybVR5cGUiLCJwYWdlTG9hZGluZyIsInNlbGZCdXR0b24iLCJvdGhlclByb3BzIiwiYnV0dG9uTG9hZGluZyIsIlNldHRpbmdGb3JtIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJyZXMiLCJjb21wb25lbnREaWRNb3VudCIsImdldERhdGEiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsImZvcm1Db2RlIiwic2V0U3RhdGUiLCJwdWJsaXNoZWQiLCJtZW51Q29kZSIsImNvZGUiLCJpc1B1Ymxpc2hlZCIsInRoZW4iLCJmb3JtUHJvcHMiLCJKU09OIiwicGFyc2UiLCJzZWxmRm9ybUJ1dHRvbiIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzaG93Rm9ybSIsInZhbHVlIiwiZWRpdG9yZmxhZyIsImNhbGxCYWNrIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwicGFnZVJlZiIsImN1cnJlbnQiLCJoaWRlRm9ybSIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsYXNzTmFtZSIsImZ1bmNzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic3RhdGUiLCJyZXF1ZXN0T2JqZWN0IiwiX3RoaXMiLCJkZWF1bHRGdW5jcyIsIm5ld0RhdGEiLCJzZXRCdXR0b25Mb2FkaW5nIiwibG9hZGluZyIsImNoaWxkcmVuIiwiY29kZUZvcm1CdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJ3aWR0aCIsImhlaWdodCIsInNwaW5uaW5nIiwiX2V4dGVuZHMiLCJVdGlscyIsInJlZiIsImVkaXRUeXBlIiwidHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvU2V0dGluZ0Zvcm0vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUVmZmVjdCwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEJhc2VQYWdlLCB7IE5TQ0Jhc2VCYWdlUHJvcHMgfSBmcm9tIFwiLi4vQmFzZVBhZ2VcIjtcclxuaW1wb3J0IFNwaW4gZnJvbSBcIi4uLy4uL2Jhc2Uvc3BpblwiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgeyBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IEZvcm1QYWdlIGZyb20gXCIuLi9Gb3JtUGFnZVwiO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRDb21GdW5jcyxcclxuICBkZWZhdWx0VXRpbCxcclxuICByZW5kZXJTZWxmVG9vbEJ1dHRvbixcclxufSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuLy8gaW1wb3J0IHsgaGlzdG9yeSB9IGZyb20gJ3VtaSdcclxuLy8gaW1wb3J0IHsgZ2V0Q29uZmlnRGF0YSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbi8vIGNvbnN0IGRlZmF1bFV0aWwgPSB7XHJcbi8vICAgTnNjQ29tLFxyXG4vLyAgIE5zY0ZpbGUsXHJcbi8vICAgTnNjUmVxdWVzdCxcclxuLy8gICBOc2NVdGlscyxcclxuLy8gICBkYXlqcyxcclxuLy8gICBjcmVhdGVFbGVtZW50OiBSZWFjdC5jcmVhdGVFbGVtZW50LFxyXG4vLyB9IGFzIGFueTtcclxuLy8gY29uc3QgcmVuZGVyU2VsZlRvb2xCdXR0b24gPSAoeyBzZWxmQnV0dG9uLCBwYWdlUmVmLCBmdW5jcywgbG9hZGluZyB9KSA9PiB7XHJcbi8vICAgaWYgKHNlbGZCdXR0b24ubGVuZ3RoID09IDApIHtcclxuLy8gICAgIHJldHVybiBudWxsO1xyXG4vLyAgIH0gZWxzZSB7XHJcbi8vICAgICByZXR1cm4gc2VsZkJ1dHRvbi5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4vLyAgICAgICByZXR1cm4gKFxyXG4vLyAgICAgICAgIDxCdXR0b25cclxuLy8gICAgICAgICAgIGtleT17aW5kZXh9XHJcbi8vICAgICAgICAgICB0eXBlPXtpdGVtLnR5cGV9XHJcbi8vICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbi8vICAgICAgICAgICAgIGxldCBldmVudE9wdGlvbiA9IHsgcGFnZVJlZjogcGFnZVJlZiwgZnVuY3M6IGZ1bmNzIH07XHJcbi8vICAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlscyxldmVudE9wdGlvblwiLCBpdGVtLm9uQ2xpY2spO1xyXG4vLyAgICAgICAgICAgICBmdW5jKGRlZmF1bFV0aWwsIGV2ZW50T3B0aW9uKTtcclxuLy8gICAgICAgICAgIH19XHJcbi8vICAgICAgICAgICBjb2RlPXtpdGVtLmNvZGV9XHJcbi8vICAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nW2l0ZW0uY29kZV0gPT09IHRydWUgPyB0cnVlIDogZmFsc2V9XHJcbi8vICAgICAgICAgPlxyXG4vLyAgICAgICAgICAge2l0ZW0ubmFtZX1cclxuLy8gICAgICAgICA8L0J1dHRvbj5cclxuLy8gICAgICAgKTtcclxuLy8gICAgIH0pO1xyXG4vLyAgIH1cclxuLy8gfTtcclxuXHJcbmNvbnN0IGdldFBhZ2VEYXRhID0gKHBhcmFtczogYW55LCBzZXR0aW5nU291cmNlKSA9PiB7XHJcbiAgbGV0IHVybCA9XHJcbiAgICBzZXR0aW5nU291cmNlID09IFwidGFibGVcIlxyXG4gICAgICA/IFwiL2pxdWljay1zZXR0aW5nL3NldHRpbmcvdGFibGUvaW5mby9cIlxyXG4gICAgICA6IFwiL2pxdWljay1zZXR0aW5nL3NldHRpbmcvZm9ybS9pbmZvXCI7XHJcbiAgcmV0dXJuIE5zY1JlcXVlc3QuZ2V0KHVybCwge1xyXG4gICAgcGFyYW1zLFxyXG4gICAgeHNzRmlsdGVyOiBmYWxzZSxcclxuICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vL+iuvue9ruihqOWNleWtl+auteWPquivu1xyXG5jb25zdCBzZXRGaWVsZERpc2FibGVkID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgZGlzYWJsZWQpID0+IHtcclxuICBjb25zdCBmb21zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb21zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Rm9ybXMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdGb3JtcztcclxufTtcclxuLy/orr7nva7ooajljZXlrZfmrrXpmpDol49cclxuY29uc3Qgc2V0RmllbGRWaXNpYmxlID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgdmlzaWJsZSkgPT4ge1xyXG4gIGNvbnN0IGZvbXMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0Zvcm1zID0gW10gYXMgYW55O1xyXG4gIGZvbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5IHx8IGtleS5pbmRleE9mKGl0ZW0uZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgIG9iai5lZGl0b3IgPSB2aXNpYmxlO1xyXG4gICAgfVxyXG4gICAgbmV3Rm9ybXMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdGb3JtcztcclxufTtcclxuXHJcbmNvbnN0IHNldEZpZWxkUHJvcHNEYXRhID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgcHJvcHNEYXRhKSA9PiB7XHJcbiAgY29uc3QgZm9ybXMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0Zvcm1zID0gW10gYXMgYW55O1xyXG4gIGZvcm1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRhdGEgPSBwcm9wc0RhdGE7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Rm9ybXMucHVzaChvYmopO1xyXG4gIH0pO1xyXG4gIHJldHVybiBuZXdGb3JtcztcclxufTtcclxuaW50ZXJmYWNlIElQcm9wcyB7XHJcbiAgZm9ybUNvZGU6IHN0cmluZztcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgbWVudUNvZGU/OiBzdHJpbmc7XHJcbiAgZnVuY3M/OiBhbnk7XHJcbiAgcHVibGlzaGVkPzogYm9vbGVhbjtcclxuICBpbnN0YW5jZVJlZj86IGFueTtcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTsgLy/moJHngrnlh7vmn6Xor6LlkI7lm57osINcclxuICAgIG9uUXVlcnlDYWxsQmFjaz86IGFueTsgLy/mn6Xor6Llm57osIPvvIzmn6Xor6LmlbDmja7lkI7lm57osINcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7IC8v5L+d5a2Y5Zue6LCD77yM5L+d5a2Y5pWw5o2u5oiQ5Yqf5ZCO5Zue6LCDXHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55OyAvL+WIoOmZpOaMiemSruWbnuiwg++8jOWIoOmZpOaVsOaNruWQjuaJp+ihjFxyXG4gICAgb25FZGl0b3JDYWxsQmFjaz86IGFueTsgLy/nvJbovpHmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICAgIG9uQWRkQ2FsbEJhY2s/OiBhbnk7IC8v5re75Yqg5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvblNlYXJjaENhbGxCYWNrPzogYW55OyAvL+WIl+ihqOafpeivouaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gIH07XHJcbiAgZm9ybVByb3BzPzogYW55O1xyXG4gIGNoaWxkcmVuPzogYW55O1xyXG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmNvbnN0IGRlZmF1bHRTdGF0ZVZhbHVlID0ge1xyXG4gIGZvcm1UeXBlOiBcIm1vZGFsXCIsXHJcbiAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gIHNlbGZCdXR0b246IFtdIGFzIGFueSxcclxuICBwcm9wczoge30gYXMgYW55LFxyXG4gIG90aGVyUHJvcHM6IHt9IGFzIGFueSxcclxuICBmb3JtczogW10gYXMgYW55LFxyXG4gIGJ1dHRvbkxvYWRpbmc6IHt9IGFzIGFueSxcclxufTtcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ0Zvcm0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzLCBhbnk+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIC4uLmRlZmF1bHRTdGF0ZVZhbHVlLFxyXG4gIH07XHJcbiAgcGFnZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PElQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHByZXZQcm9wcy5mb3JtQ29kZSAhPSB0aGlzLnByb3BzLmZvcm1Db2RlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0RGF0YSA9IChyZXM6IGFueSkgPT4ge307XHJcbiAgLy8g6I635Y+W5pWw5o2uXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIC8vIOS7jnByb3Bz5Lit6I635Y+WdGFibGVDb2Rl44CBcHVibGlzaGVk44CBbWVudUNvZGVcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBwYWdlTG9hZGluZzogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBmb3JtQ29kZSxcclxuICAgICAgcHVibGlzaGVkID0gdHJ1ZSxcclxuICAgICAgbWVudUNvZGUsXHJcbiAgICAgIHNldHRpbmdTb3VyY2UgPSBcImZvcm1cIixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8g5aaC5p6cdGFibGVDb2Rl5a2Y5ZyoXHJcbiAgICBpZiAoZm9ybUNvZGUpIHtcclxuICAgICAgLy8g5a6a5LmJ5Y+C5pWwXHJcbiAgICAgIGxldCBwYXJhbXMgPSB7IGNvZGU6IGZvcm1Db2RlIH0gYXMgYW55O1xyXG4gICAgICAvLyDlpoLmnpxwdWJsaXNoZWTkuLp0cnVlXHJcbiAgICAgIGlmIChwdWJsaXNoZWQpIHtcclxuICAgICAgICAvLyDorr7nva7lj4LmlbBpc1B1Ymxpc2hlZOS4ujFcclxuICAgICAgICBwYXJhbXMuaXNQdWJsaXNoZWQgPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOiwg+eUqGdldFBhZ2VEYXRh5pa55rOV6I635Y+W5pWw5o2uXHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0sIHNldHRpbmdTb3VyY2UpLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSkge1xyXG4gICAgICAgICAgaWYgKHNldHRpbmdTb3VyY2UgPT0gXCJ0YWJsZVwiKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3JtUHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLmZvcm1Qcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC4uLmZvcm1Qcm9wcyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZm9ybXMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLmZvcm1zIHx8IFwiW11cIikgfHwgW107XHJcbiAgICAgICAgICAgIGxldCBzZWxmRm9ybUJ1dHRvbiA9IEpTT04ucGFyc2UocmVzLmRhdGEuc2VsZkJ1dHRvbiB8fCBcIltdXCIpIHx8IFtdO1xyXG4gICAgICAgICAgICBsZXQgb3RoZXJQcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEub3RoZXJQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gICAgICAgICAgICBsZXQgZm9ybVR5cGUgPSByZXMuZGF0YS5mb3JtVHlwZTtcclxuICAgICAgICAgICAgbGV0IHByb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS5wcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGZvcm1UeXBlOiB0aGlzLnByb3BzLmZvcm1UeXBlIHx8IGZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgc2VsZkJ1dHRvbjogc2VsZkZvcm1CdXR0b24sXHJcbiAgICAgICAgICAgICAgICBwcm9wczogcHJvcHMsXHJcbiAgICAgICAgICAgICAgICBvdGhlclByb3BzOiBvdGhlclByb3BzLFxyXG4gICAgICAgICAgICAgICAgZm9ybXM6IGZvcm1zLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5pyq5om+5Yiw6YWN572u5L+h5oGv77yBXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIG9uU2VhcmNoKCkge31cclxuXHJcbiAgc2hvd0Zvcm0odmFsdWU6IGFueSwgZWRpdG9yZmxhZywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMucGFnZVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZSxlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgZnVuY3MgPSB7fSwgLi4ucGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBwYWdlTG9hZGluZyxcclxuICAgICAgZm9ybVR5cGUsXHJcbiAgICAgIHNlbGZCdXR0b24sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIG90aGVyUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybXMsXHJcbiAgICAgIGJ1dHRvbkxvYWRpbmcsXHJcbiAgICB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgcmVxdWVzdE9iamVjdCA9IHt9IH0gPSBvdGhlclByb3BzO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IGRlYXVsdEZ1bmNzID0ge1xyXG4gICAgICBzZXRGaWVsZERpc2FibGVkOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKGZvcm1zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFZpc2libGU6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkVmlzaWJsZShmb3Jtcywga2V5LCBkaXNhYmxlZCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBmb3JtczogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgc2V0RmllbGRQcm9wc0RhdGE6IChrZXksIGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRQcm9wc0RhdGEoZm9ybXMsIGtleSwgZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBmb3JtczogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgc2V0QnV0dG9uTG9hZGluZyhjb2RlLCBsb2FkaW5nKSB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgYnV0dG9uTG9hZGluZzogeyAuLi5idXR0b25Mb2FkaW5nLCBbY29kZV06IGxvYWRpbmcgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLi4uZGVmYXVsdENvbUZ1bmNzLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgbGV0IGNvZGVGb3JtQnV0dG9ucyA9IFtdO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29kZUZvcm1CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29kZUZvcm1CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhcIm5zYy1mcmFtZXdvcmstZm9ybXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxGb3JtUGFnZVxyXG4gICAgICAgICAgICBmb3JtVHlwZT17Zm9ybVR5cGV9XHJcbiAgICAgICAgICAgIGZvcm1zPXtmb3Jtc31cclxuICAgICAgICAgICAgcmVxdWVzdE9iamVjdD17cmVxdWVzdE9iamVjdH1cclxuICAgICAgICAgICAgVXRpbHM9e2RlZmF1bHRVdGlsfVxyXG4gICAgICAgICAgICBmdW5jcz17eyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfX1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICAgIHBhZ2VSZWY9e3RoaXMucGFnZVJlZn1cclxuICAgICAgICAgICAgcHJvcHM9e3Byb3BzfVxyXG4gICAgICAgICAgICBlZGl0VHlwZT17dGhpcy5wcm9wcy5lZGl0VHlwZX1cclxuICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtyZW5kZXJTZWxmVG9vbEJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbixcclxuICAgICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgZnVuY3MsXHJcbiAgICAgICAgICAgICAgbG9hZGluZzogdGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFwiZm9ybUJ1dHRvblwiLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvRm9ybVBhZ2U+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSxPQUFPQSxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLE9BQU8sY0FBYztBQUNyQixPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQUNsQyxTQUNFQyxlQUFlLEVBQ2ZDLFdBQVcsRUFDWEMsb0JBQW9CLFFBQ2Ysc0JBQXNCO0FBQzdCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
|
|
279
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTcGluIiwiUmVhY3QiLCJOc2NSZXF1ZXN0IiwiY2xzIiwiRm9ybVBhZ2UiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJzZXR0aW5nU291cmNlIiwidXJsIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJmb21zIiwibmV3Rm9ybXMiLCJtYXAiLCJpdGVtIiwib2JqIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJpbmRleE9mIiwicHJvcHMiLCJwdXNoIiwic2V0RmllbGRWaXNpYmxlIiwidmlzaWJsZSIsInNob3ciLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImZvcm1zIiwiZGF0YUluZGV4IiwiZGVmYXVsdFN0YXRlVmFsdWUiLCJmb3JtVHlwZSIsInBhZ2VMb2FkaW5nIiwic2VsZkJ1dHRvbiIsIm90aGVyUHJvcHMiLCJidXR0b25Mb2FkaW5nIiwiZ2V0Rm9ybVNldHRpbmciLCJKU09OIiwicGFyc2UiLCJzZWxmRm9ybUJ1dHRvbiIsImZvcm1TZXR0aW5nIiwiU2V0dGluZ0Zvcm0iLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsInJlcyIsImNvbXBvbmVudERpZE1vdW50IiwiZ2V0RGF0YSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiZm9ybUNvZGUiLCJzZXRTdGF0ZSIsInB1Ymxpc2hlZCIsIm1lbnVDb2RlIiwiY29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsImZvcm1Qcm9wcyIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzaG93Rm9ybSIsInZhbHVlIiwiZWRpdG9yZmxhZyIsImNhbGxCYWNrIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwicGFnZVJlZiIsImN1cnJlbnQiLCJoaWRlRm9ybSIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsYXNzTmFtZSIsImZ1bmNzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic3RhdGUiLCJyZXF1ZXN0T2JqZWN0IiwiX3RoaXMiLCJkZWF1bHRGdW5jcyIsIm5ld0RhdGEiLCJzZXRCdXR0b25Mb2FkaW5nIiwibG9hZGluZyIsImNoaWxkcmVuIiwiY29kZUZvcm1CdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJyZW5kZXJGb3JtIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwiVXRpbHMiLCJyZWYiLCJlZGl0VHlwZSIsInR5cGUiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdGb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBCYXNlUGFnZSwgeyBOU0NCYXNlQmFnZVByb3BzIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IHtcclxuICBkZWZhdWx0Q29tRnVuY3MsXHJcbiAgZGVmYXVsdFV0aWwsXHJcbiAgcmVuZGVyU2VsZlRvb2xCdXR0b24sXHJcbn0gZnJvbSBcIi4uL1NldHRpbmdVdGlsL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnksIHNldHRpbmdTb3VyY2UpID0+IHtcclxuICBsZXQgdXJsID1cclxuICAgIHNldHRpbmdTb3VyY2UgPT0gXCJ0YWJsZVwiXHJcbiAgICAgID8gXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy90YWJsZS9pbmZvL1wiXHJcbiAgICAgIDogXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy9mb3JtL2luZm9cIjtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQodXJsLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuXHJcbi8v6K6+572u6KGo5Y2V5a2X5q615Y+q6K+7XHJcbmNvbnN0IHNldEZpZWxkRGlzYWJsZWQgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gIGNvbnN0IGZvbXMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0Zvcm1zID0gW10gYXMgYW55O1xyXG4gIGZvbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5uYW1lID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbi8v6K6+572u6KGo5Y2V5a2X5q616ZqQ6JePXHJcbmNvbnN0IHNldEZpZWxkVmlzaWJsZSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHZpc2libGUpID0+IHtcclxuICBjb25zdCBmb21zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb21zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0ubmFtZSA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKSB7XHJcbiAgICAgIG9iai5zaG93ID0gdmlzaWJsZTtcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcblxyXG5jb25zdCBzZXRGaWVsZFByb3BzRGF0YSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHByb3BzRGF0YSkgPT4ge1xyXG4gIGNvbnN0IGZvcm1zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb3Jtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kYXRhID0gcHJvcHNEYXRhO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIGZvcm1Db2RlOiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHB1Ymxpc2hlZD86IGJvb2xlYW47XHJcbiAgaW5zdGFuY2VSZWY/OiBhbnk7XHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICB0cmVlU2VsZWN0Q2FsbEJhY2s/OiBhbnk7IC8v5qCR54K55Ye75p+l6K+i5ZCO5Zue6LCDXHJcbiAgICBvblF1ZXJ5Q2FsbEJhY2s/OiBhbnk7IC8v5p+l6K+i5Zue6LCD77yM5p+l6K+i5pWw5o2u5ZCO5Zue6LCDXHJcbiAgICBvblN1bWJpdENhbGxCYWNrPzogYW55OyAvL+S/neWtmOWbnuiwg++8jOS/neWtmOaVsOaNruaIkOWKn+WQjuWbnuiwg1xyXG4gICAgb25EZWxldGVDYWxsQmFjaz86IGFueTsgLy/liKDpmaTmjInpkq7lm57osIPvvIzliKDpmaTmlbDmja7lkI7miafooYxcclxuICAgIG9uRWRpdG9yQ2FsbEJhY2s/OiBhbnk7IC8v57yW6L6R5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvbkFkZENhbGxCYWNrPzogYW55OyAvL+a3u+WKoOaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTsgLy/liJfooajmn6Xor6LmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICB9O1xyXG4gIGZvcm1Qcm9wcz86IGFueTtcclxuICBjaGlsZHJlbj86IGFueTtcclxuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCBkZWZhdWx0U3RhdGVWYWx1ZSA9IHtcclxuICBmb3JtVHlwZTogXCJtb2RhbFwiLFxyXG4gIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICBzZWxmQnV0dG9uOiBbXSBhcyBhbnksXHJcbiAgcHJvcHM6IHt9IGFzIGFueSxcclxuICBvdGhlclByb3BzOiB7fSBhcyBhbnksXHJcbiAgZm9ybXM6IFtdIGFzIGFueSxcclxuICBidXR0b25Mb2FkaW5nOiB7fSBhcyBhbnksXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0Rm9ybVNldHRpbmcgPSAoZGF0YSkgPT4ge1xyXG4gIGxldCBmb3JtcyA9IEpTT04ucGFyc2UoZGF0YS5mb3JtcyB8fCBcIltdXCIpIHx8IFtdO1xyXG4gIGxldCBzZWxmRm9ybUJ1dHRvbiA9IEpTT04ucGFyc2UoZGF0YS5zZWxmQnV0dG9uIHx8IFwiW11cIikgfHwgW107XHJcbiAgbGV0IG90aGVyUHJvcHMgPSBKU09OLnBhcnNlKGRhdGEub3RoZXJQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gIGxldCBmb3JtVHlwZSA9IGRhdGEuZm9ybVR5cGU7XHJcbiAgbGV0IHByb3BzID0gSlNPTi5wYXJzZShkYXRhLnByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgbGV0IGZvcm1TZXR0aW5nID0ge1xyXG4gICAgZm9ybVR5cGU6IGZvcm1UeXBlLFxyXG4gICAgc2VsZkJ1dHRvbjogc2VsZkZvcm1CdXR0b24sXHJcbiAgICBwcm9wczogcHJvcHMsXHJcbiAgICBvdGhlclByb3BzOiBvdGhlclByb3BzLFxyXG4gICAgZm9ybXM6IGZvcm1zLFxyXG4gIH07XHJcbiAgcmV0dXJuIGZvcm1TZXR0aW5nO1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5nRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgfTtcclxuICBwYWdlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8SVByb3BzPixcclxuICAgIHByZXZTdGF0ZTogUmVhZG9ubHk8YW55PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAocHJldlByb3BzLmZvcm1Db2RlICE9IHRoaXMucHJvcHMuZm9ybUNvZGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0U3RhdGVWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXREYXRhID0gKHJlczogYW55KSA9PiB7fTtcclxuICAvLyDojrflj5bmlbDmja5cclxuICBnZXREYXRhKCkge1xyXG4gICAgLy8g5LuOcHJvcHPkuK3ojrflj5Z0YWJsZUNvZGXjgIFwdWJsaXNoZWTjgIFtZW51Q29kZVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1Db2RlLFxyXG4gICAgICBwdWJsaXNoZWQgPSB0cnVlLFxyXG4gICAgICBtZW51Q29kZSxcclxuICAgICAgc2V0dGluZ1NvdXJjZSA9IFwiZm9ybVwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAvLyDlpoLmnpx0YWJsZUNvZGXlrZjlnKhcclxuICAgIGlmIChmb3JtQ29kZSkge1xyXG4gICAgICAvLyDlrprkuYnlj4LmlbBcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogZm9ybUNvZGUgfSBhcyBhbnk7XHJcbiAgICAgIC8vIOWmguaenHB1Ymxpc2hlZOS4unRydWVcclxuICAgICAgaWYgKHB1Ymxpc2hlZCkge1xyXG4gICAgICAgIC8vIOiuvue9ruWPguaVsGlzUHVibGlzaGVk5Li6MVxyXG4gICAgICAgIHBhcmFtcy5pc1B1Ymxpc2hlZCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8g6LCD55SoZ2V0UGFnZURhdGHmlrnms5Xojrflj5bmlbDmja5cclxuICAgICAgZ2V0UGFnZURhdGEoeyAuLi5wYXJhbXMgfSwgc2V0dGluZ1NvdXJjZSkudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBpZiAoc2V0dGluZ1NvdXJjZSA9PSBcInRhYmxlXCIpIHtcclxuICAgICAgICAgICAgbGV0IGZvcm1Qcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEuZm9ybVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVByb3BzLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nOiBhbnkgPSBnZXRGb3JtU2V0dGluZyhyZXMuZGF0YSkgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtVHlwZTogdGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBmb3JtU2V0dGluZy5mb3JtVHlwZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuacquaJvuWIsOmFjee9ruS/oeaBr++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBvblNlYXJjaCgpIHt9XHJcblxyXG4gIHNob3dGb3JtKHZhbHVlOiBhbnksIGVkaXRvcmZsYWcsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBmdW5jcyA9IHt9LCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHBhZ2VMb2FkaW5nLFxyXG4gICAgICBmb3JtVHlwZSxcclxuICAgICAgc2VsZkJ1dHRvbixcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgb3RoZXJQcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtcyxcclxuICAgICAgYnV0dG9uTG9hZGluZyxcclxuICAgIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyByZXF1ZXN0T2JqZWN0ID0ge30gfSA9IG90aGVyUHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgZGVhdWx0RnVuY3MgPSB7XHJcbiAgICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkRGlzYWJsZWQoZm9ybXMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZm9ybXM6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldEZpZWxkVmlzaWJsZTogKGtleSwgZGlzYWJsZWQpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKGZvcm1zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShmb3Jtcywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRCdXR0b25Mb2FkaW5nKGNvZGUsIGxvYWRpbmcpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiB7IC4uLmJ1dHRvbkxvYWRpbmcsIFtjb2RlXTogbG9hZGluZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICAuLi5kZWZhdWx0Q29tRnVuY3MsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBsZXQgY29kZUZvcm1CdXR0b25zID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvZGVGb3JtQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZW5kZXJGb3JtID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxGb3JtUGFnZVxyXG4gICAgICAgICAgZm9ybVR5cGU9e2Zvcm1UeXBlfVxyXG4gICAgICAgICAgZm9ybXM9e2Zvcm1zfVxyXG4gICAgICAgICAgcmVxdWVzdE9iamVjdD17cmVxdWVzdE9iamVjdH1cclxuICAgICAgICAgIFV0aWxzPXtkZWZhdWx0VXRpbH1cclxuICAgICAgICAgIGZ1bmNzPXt7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9fVxyXG4gICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwYWdlUmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwcm9wcz17cHJvcHN9XHJcbiAgICAgICAgICBlZGl0VHlwZT17dGhpcy5wcm9wcy5lZGl0VHlwZX1cclxuICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oe1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9uLFxyXG4gICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmcsXHJcbiAgICAgICAgICAgIHR5cGU6IFwiZm9ybUJ1dHRvblwiLFxyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9Gb3JtUGFnZT5cclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIikge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoXCJuc2MtZnJhbWV3b3JrLWZvcm1wYWdlXCIsIGNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgICAgICA8U3BpbiBzcGlubmluZz17cGFnZUxvYWRpbmd9PjwvU3Bpbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICByZW5kZXJGb3JtKClcclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcmVuZGVyRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSxPQUFPQSxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLE9BQU8sY0FBYztBQUNyQixPQUFPQyxLQUFL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
|