{"version":3,"sources":["webpack://@lemon8/web-legal/./client/components/report-form/form-design/type/form.ts","webpack://@lemon8/web-legal/./client/components/report-form/form/util.ts","webpack://@lemon8/web-legal/./client/components/report-form/form/form/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form/form-item/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormInput/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormSelect/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormRadio/index.tsx","webpack://@lemon8/web-legal/./client/utils/fetch/use-upload-image.ts","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormFile/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormCheckbox/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormButton/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-design/FormTextarea/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/form-group/index.tsx","webpack://@lemon8/web-legal/./client/components/report-form/utils/format.ts","webpack://@lemon8/web-legal/./client/components/report-form/index.tsx","webpack://@lemon8/web-legal/./client/components/simple-toast/index.tsx","webpack://@lemon8/web-legal/./client/components/report-layout/index.tsx","webpack://@lemon8/web-legal/./client/components/test-symbol/index.tsx","webpack://@lemon8/web-legal/./client/utils/fetch/use-submit-form.ts","webpack://@lemon8/web-legal/./client/utils/hooks/use-title-visible.ts","webpack://@lemon8/web-legal/./client/utils/legal-loader.ts","webpack://@lemon8/web-legal/./client/utils/logger/slardar-logger.ts","webpack://@lemon8/web-legal/./client/utils/logger/index.ts","webpack://@lemon8/web-legal/./shared/constants/policy.ts","webpack://@lemon8/web-legal/./shared/constants/loaders.ts","webpack://@lemon8/web-legal/./shared/constants/hosts.ts","webpack://@lemon8/web-legal/./shared/types/report.ts"],"names":["FormType","OBJECT_SYMBOL","STRING_SYMBOL","BOOLEAN_SYMBOL","UNDEFINED_SYMBOL","NUMBER_SYMBOL","REGEXP_SYMBOL","NULL_SYMBOL","DATE_SYMBOL","FUNCTION_SYMBOL","ARRAY_SYMBOL","getObjType","target","Object","prototype","toString","call","setObj","obj","path","value","properties","split","parentProperty","i","length","propertyName","isLastIndex","arrayIndex","isArray","matchResult","exec","substr","index","parseInt","nextProp","nextPropType","omit","eval","concat","err","logger","getObj","defaultValue","arguments","undefined","lodashGet","isEmpty","type","trim","getOwnPropertyNames","FormContext","React","state","values","errors","inputs","groups","dispatch","props","initialState","children","instance","initialProps","_objectSpread","curVersion","useRef","reducer","preState","action","name","payload","formItemInterface","group","result","name1","splice","join","array","current","merge","formInterface","getValues","getErrors","reset","submit","names","promises","map","validate","Promise","all","some","item","focus","onChange","formState","flag","reportFormSendBtn","jsx","Provider","CSS_PREFIX","FormItemElement","rules","label","tip","prefix","prompt","renderContainer","className","required","itemRequired","inputRef","_a","ele","querySelector","style","display","parentElement","scrollIntoView","behavior","block","inline","setTimeout","eventName","curErrors","isValid","Boolean","unshift","error","isBreak","trigger","rule","max","min","validator","regexp","ruleError","isGroup","ruleIsValid","checkValid","noTip","groupInputs","test","push","resolve","handleOnChange","e","forEach","fieldValue","fieldValueRef","childrenProps","childValue","childOptions","options","handleOnBlur","fieldErrors","handles","onBlur","renderChild","childProps","childComponent","jsxs","Array","tipItem","tabIndex","ref","ExclamationCircle","FormItem","FormInput","placeHolder","maxLength","disabled","useContext","setValue","useState","isFocus","setIsFocus","formInputRef","useEffect","handleInputChange","event","inputValue","handleCleanInput","handleInputFocus","handleInputBlur","cls","placeholder","onFocus","onMouseDown","XMarkCircleFill","FormSelect","inputClassName","symbol","FormRadio","handleChange","_value","RadioboxGroup","Radiobox","align","certainHeight","useFetchUploadImage","fetch","useFetch","useCallback","isInApp","base64Image","image","res","binaryString","atob","binaryData","Uint8Array","charCodeAt","blobData","Blob","File","Error","method","HttpMethod","isFormData","params","catch","message","url","data","url_list","uri","MAX_ERROR_TIMES","FormFile","buttonText","isImgFile","useAtomValue","$UserAgent","imgFileList","setImgFileList","inputFileRef","fetchUploadImage","errTimesRef","showToast","useSetAtom","$ToastAtom","checkImgType","file","handleImageUpload","fileName","list","img","fileUrl","tosURI","findIndex","handleClose","time","Date","now","content","openAlbum","JSBOpenAlbum","handleFileChange","files","slice","Button","title","variant","size","ButtonSize","icon","PlusFill","onClick","accept","XMarkFill","FormCheckbox","CheckboxGroup","Checkbox","FormButton","isLoading","isCanSubmit","status","ButtonStatus","FormTextarea","changeHeight","height","scrollHeight","rows","FormGroup","des","formList","RenderFormItem","Fragment","formatFormData","countryRegion","reportType","fileTypeMap","proofFiles","materialFiles","certificateFiles","ownerName","legalOwner","address","phone","email","relationship","contentURL","contentType","typeDescription","signature","cfGoods","goodsAndClass","infringementDescription","registrationJurisdiction","registrationNumber","recordUrl","formatFiles","fileType","console","log","language","pid","idcRegion","__BUILD_REGION__","reporterDto","Number","reporterRegion","ReportType","copyrightDto","trademarkDto","extra","ReportForm","reportGroupData","reportData","navigate","useNavigate","setIsLoading","setReportGroupData","isMobile","isiOS","region","$Locale","fetchFormSubmit","useFormSubmit","useTitleVisible","privacyPolicyHref","encodeURIComponent","form","bindForm","formData","window","sessionStorage","getItem","_formData","JSON","parse","removeItem","handleSubmit","formattedFormData","finalResult","setItem","stringify","pc","ios","Form","href","rel","SimpleToast","hydrated","setHydrated","show","setShow","timer","newTimer","clearTimeout","hide","ReportLayout","_ref","isTestEnv","setIsTestEnv","urlHost","document","domain","includes","Lemon8Host","preventScroll","isPrevent","isPC","TestSymbol","timeoutFunc","reject","FORM_PATH","race","msg","code","selector","observer","titleElement","docTitle","textContent","main","setTitleVisible","handleIntersect","entries","entry","intersectionRatio","createObserver","threshold","innerObserver","IntersectionObserver","observe","disconnect","buildLegalLoader","args","context","loaders","setRemixParams","SlardarLogger","constructor","client","commonExtra","_this","_parseExtra","tempExtra","resExtra","key","hasOwnProperty","_capture","level","_error","copy","fatal","debug","info","categories","metrics","isSSR","Slardar","PolicyPath","PRIVACY","TERMS_OF_SERVICE","SUPPLEMENTAL_TERMS_OF_USE","TERMS_OF_CREATOR_REFERRAL","TERMS_OF_HYPE_SQUAD","INTELLECTUAL_PROPERTY","ACTIVITY_NOTES","GOODS_DISCLAIMER","USER_GROUP_PRIVACY","COMMUNITY_GUIDELINE","COPYRIGHT","OPEN_SOURCE_NOTICE_ANDROID","OPEN_SOURCE_NOTICE_IOS","AMPLIFY_PROGRAM","COOKIES_POLICY","LAW_ENFORCEMENT_GUIDELINE","LAW_ENFORCEMENT_GUIDELINE_FORM","AVMSD","CONSUMER_HEALTH_DATA_PRIVACY","Loaders","Report","ReportUpload","TEST_ROW_SURFIX","TEST_VA_PREFIX","TEST_SG_PREFIX","ONLINE","FileTypeMap"],"mappings":"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","file":"vendors/807-ac761cd9b009e907ca6c-2d6f54db3f5a9dfbcf8b1590f33602f48b673c92.js","sourcesContent":["import { FormValidateRule } from '../../form/type/form-item';\n\nexport interface OptionProps {\n symbol: string;\n label: string;\n value: boolean;\n visible?: boolean;\n}\n\nexport enum FormType {\n INPUT = 'input',\n CHECKBOX = 'checkbox',\n FILE = 'file',\n RADIO = 'radio',\n SELECT = 'select',\n TEXTAREA = 'textarea',\n}\nexport interface FieldProps {\n type: FormType;\n label?: string;\n name: string;\n className?: string;\n inputClassName?: string;\n required?: boolean;\n maxLength?: number;\n placeHolder?: string;\n onChange?: any;\n tip?: string | string[];\n prefix?: string;\n prompt?: string;\n rules?: FormValidateRule[];\n options?: OptionProps[];\n subfix?: string;\n buttonText?: string;\n defaultItemCount?: number;\n showOrder?: boolean;\n showColumnHeader?: boolean;\n group?: string;\n defaultValue?: string | any[];\n disabled?: boolean;\n isImgFile?: boolean;\n}\n","/* eslint-disable no-eval */\n\nimport lodashGet from 'lodash/get';\nimport logger from '~/utils/logger';\n\nconst OBJECT_SYMBOL = '[object Object]';\nconst STRING_SYMBOL = '[object String]';\nconst BOOLEAN_SYMBOL = '[object Boolean]';\nconst UNDEFINED_SYMBOL = '[object Undefined]';\nconst NUMBER_SYMBOL = '[object Number]';\nconst REGEXP_SYMBOL = '[object RegExp]';\nconst NULL_SYMBOL = '[object Null]';\nconst DATE_SYMBOL = '[object Date]';\nconst FUNCTION_SYMBOL = '[object Function]';\nconst ARRAY_SYMBOL = '[object Array]';\n\nexport function getObjType(target: any) {\n const string = Object.prototype.toString.call(target);\n switch (string) {\n case OBJECT_SYMBOL:\n return 'object';\n case STRING_SYMBOL:\n return 'string';\n case BOOLEAN_SYMBOL:\n return 'boolean';\n case NUMBER_SYMBOL:\n return 'number';\n case REGEXP_SYMBOL:\n return 'regexp';\n case NULL_SYMBOL:\n return 'null';\n case DATE_SYMBOL:\n return 'date';\n case FUNCTION_SYMBOL:\n return 'function';\n case ARRAY_SYMBOL:\n return 'array';\n case UNDEFINED_SYMBOL:\n default:\n return 'undefined';\n }\n}\n\nexport function setObj(obj: any, path: string, value: any) {\n const properties = path.split('.');\n let parentProperty: any = obj;\n for (let i = 0; i < properties.length; i++) {\n let propertyName = properties[i];\n const isLastIndex = i === properties.length - 1;\n let arrayIndex = -1;\n let isArray = false;\n const matchResult = /\\[(\\d{1,})\\]$/.exec(propertyName);\n if (matchResult) {\n propertyName = propertyName.substr(0, matchResult.index);\n arrayIndex = parseInt(matchResult[1], 0);\n isArray = true;\n }\n let nextProp = parentProperty[propertyName];\n const nextPropType = getObjType(nextProp);\n if (!isLastIndex) {\n if (nextPropType === 'object' || nextPropType === 'array') {\n // 下一个属性是object或者array的话,可以继续走\n // eslint-disable-next-line max-depth\n if (isArray && !nextProp[arrayIndex]) {\n // parent[p][index] === undefined 如果数组的那个没有,也需要动态创建一个对象\n nextProp[arrayIndex] = {};\n }\n parentProperty = !isArray ? nextProp : nextProp[arrayIndex];\n } else if (nextPropType === 'undefined' || nextPropType === 'null') {\n // eslint-disable-next-line max-depth\n if (isArray) {\n // 自动创建array或object\n nextProp = [];\n nextProp[arrayIndex] = {};\n } else {\n // 自动创建array或object\n nextProp = {};\n }\n parentProperty[propertyName] = nextProp;\n parentProperty = !isArray ? nextProp : nextProp[arrayIndex];\n }\n } else if (isArray) {\n // obj.xxxx[1] = xxx\n // obj.xxxx is undefined\n if (!parentProperty[propertyName]) {\n parentProperty[propertyName] = [];\n }\n parentProperty[propertyName][arrayIndex] = value;\n } else {\n parentProperty[propertyName] = value;\n }\n }\n}\n\nexport function omit(obj: any, path: string) {\n try {\n eval(`delete obj.${path}`);\n } catch (err) {\n logger.error(err, `plugin report delete obj.${path} error`);\n }\n}\nexport function getObj(obj: any, path: string, defaultValue: any = '') {\n return lodashGet(obj, path, defaultValue);\n}\n\nexport function isEmpty(value: any) {\n const type = getObjType(value);\n // 判断是否为空\n if (type === 'undefined' || type === 'null') {\n // 一切null,undefined忽略掉\n return true;\n }\n if (type === 'string') {\n if (!value.trim()) {\n // trim后是空串也算空\n return true;\n }\n }\n if (type === 'array') {\n return value.length === 0;\n }\n if (type === 'object') {\n return Object.getOwnPropertyNames(value).length === 0;\n }\n return false;\n}\n","/* eslint-disable max-depth */\nimport React, { useRef } from 'react';\nimport merge from 'lodash/merge';\nimport { FormState, FormFieldAction, FormProps, FormInterface, FormItemInterface } from '../type/form';\nimport { setObj, omit, getObj } from '../util';\n\ninterface FormContextInterface {\n state: FormState;\n dispatch: React.Dispatch;\n}\n\nexport const FormContext = React.createContext({\n state: { values: {}, errors: {}, inputs: {}, groups: {} },\n dispatch: () => {\n // empty\n },\n});\n\n// eslint-disable-next-line max-lines-per-function\nconst Form: React.FC = (props) => {\n const {\n initialState = {},\n children,\n instance = () => {\n // empty\n },\n } = props;\n const initialProps: FormState = {\n values: {\n ...initialState,\n },\n errors: {},\n inputs: {},\n groups: {},\n };\n\n const curVersion = useRef(0);\n\n const reducer = (preState: FormState, action: FormFieldAction) => {\n const { type = 'change', name = '', payload = {} } = action;\n let properties: string[] = [];\n switch (type) {\n case 'error':\n setObj(preState.errors, name, payload);\n break;\n case 'bindInput':\n const formItemInterface: FormItemInterface = payload;\n if (!getObj(preState.errors, name)) {\n setObj(preState.errors, name, []);\n }\n if (!getObj(preState.values, name)) {\n setObj(preState.values, name, '');\n }\n const { group } = formItemInterface;\n if (group) {\n preState.groups[group] = preState.groups[group] || {};\n preState.groups[group][name] = formItemInterface;\n }\n preState.inputs[name] = payload;\n return preState;\n case 'unmount':\n properties = name.split('.');\n if (properties.length > 1) {\n const result = /^([a-zA-Z]{1,})\\[(\\d{1,})\\]/.exec(properties[properties.length - 2]);\n if (result) {\n // username[xxxx].xxx or username.xxxx[xxxx].xxxx\n const name1 = result[1];\n const index = parseInt(result[2], 0);\n const propertyName = properties\n .splice(0, properties.length - 2)\n .concat(name1)\n .join('.');\n const array = getObj(preState.errors, propertyName);\n if (array && array.splice) {\n array.splice(index, 1);\n if (payload) {\n delete preState.groups[payload.group];\n }\n }\n }\n }\n delete preState.inputs[name];\n omit(preState.errors, name);\n if (payload) {\n delete preState.groups[payload.group];\n }\n omit(preState.values, name);\n break;\n case 'reset':\n preState.values = {};\n preState.errors = {};\n curVersion.current += 1;\n break;\n case 'merge':\n preState.values = merge(preState.values, payload);\n curVersion.current += 1;\n\n break;\n case 'change':\n default:\n setObj(preState.values, name, payload);\n curVersion.current += 1;\n break;\n }\n return { ...preState };\n };\n\n const [state, dispatch] = React.useReducer(reducer, initialProps);\n const formInterface: FormInterface = {\n getValues() {\n return { ...state.values };\n },\n getErrors() {\n return { ...state.errors };\n },\n merge(values) {\n dispatch({ type: 'merge', payload: values, name: '' });\n },\n reset() {\n dispatch({ type: 'reset' });\n },\n async submit() {\n const { inputs } = state;\n const names = Object.getOwnPropertyNames(state.inputs);\n const promises = names.map((name) => inputs[name].validate('submit'));\n const result = await Promise.all(promises);\n if (\n result.some((item, index) => {\n if (!item) {\n inputs[names[index]].focus();\n }\n return item === false;\n })\n ) {\n return false;\n } else {\n return true;\n }\n },\n // 在每次修改时判断是否符合提交要求\n async onChange(formState) {\n const { values, inputs } = formState;\n const names = Object.getOwnPropertyNames(formState.inputs);\n const promises = names.map((name) => inputs[name].validate('isEdit'));\n const result = await Promise.all(promises);\n let flag = true;\n for (const item of result) {\n if (!item) {\n flag = false;\n break;\n }\n }\n\n if (values.reportFormSendBtn === flag) {\n return;\n }\n\n dispatch({ type: 'change', payload: flag, name: 'reportFormSendBtn' });\n },\n };\n\n React.useEffect(() => {\n if (formInterface.onChange) {\n formInterface.onChange({\n values: { ...state.values },\n inputs: { ...state.inputs },\n });\n }\n }, [curVersion.current]);\n\n instance(formInterface);\n\n return (\n \n {children}\n \n );\n};\n\nexport default Form;\n","import React from 'react';\nimport { FormItemProps } from '../type/form-item';\nimport { FormContext } from '../form';\nimport { getObj, isEmpty } from '../util';\nimport ExclamationCircle from 'icon/exclamation_circle.svg';\nimport { FormItemInterface } from '../type';\n\nimport './style.scss';\n\nconst CSS_PREFIX = 'report-form-item';\n\nconst FormItemElement: React.FC = (props: FormItemProps) => {\n const {\n name,\n rules = [],\n label = '',\n tip = '',\n prefix = '',\n prompt = '',\n renderContainer = true,\n className = '',\n required: itemRequired,\n group,\n } = props;\n const { state, dispatch } = React.useContext(FormContext);\n const inputRef = React.useRef(null);\n\n const formItemInterface: FormItemInterface = {\n group,\n focus() {\n if (inputRef.current) {\n // @ts-ignore\n const ele = inputRef.current.querySelector('input, textarea, select, checkbox, radio');\n if (ele) {\n // 因为使用了checkbox组件,在组件中设置了一个假的input以获得inputRef\n // 但是在display:none,情况下是无法进行滚动的,要滚动的话就需要滚动到他的父节点\n if (ele.style.display === 'none') {\n ele.parentElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n } else {\n ele.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n setTimeout(() => {\n ele.focus();\n }, 500);\n }\n } else {\n // @ts-ignore\n inputRef.current?.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n // @ts-ignore\n inputRef.current.focus();\n }\n }\n },\n async validate(eventName) {\n const value = getObj(state.values, name);\n const curErrors = getObj(state.errors, name, []);\n let isValid = true;\n if (itemRequired) {\n const hasRequired = rules.some((item) => Boolean(item.required));\n if (!hasRequired) {\n rules.unshift({\n required: true,\n error: 'Please fill out the required field.',\n isBreak: true,\n trigger: 'blur',\n });\n }\n }\n const errors: string[] = [];\n if (rules.length === 0) {\n isValid = true;\n } else {\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n const {\n max,\n min,\n required,\n validator,\n regexp,\n trigger = 'submit',\n isBreak = true,\n error: ruleError,\n group: isGroup,\n } = rule;\n let ruleIsValid = true;\n\n const checkValid = async (noTip = false) => {\n if (isGroup) {\n const groupInputs = getObj(state.groups, group!);\n ruleIsValid = Object.getOwnPropertyNames(groupInputs).some((propertyName) => {\n // group里只要有一个不空即可\n return !isEmpty(getObj(state.values, propertyName));\n });\n } else if (max) {\n ruleIsValid = value.length <= max;\n } else if (min) {\n ruleIsValid = value.length >= min;\n } else if (required) {\n ruleIsValid = !isEmpty(value);\n } else if (validator) {\n ruleIsValid = await validator(value);\n } else if (regexp) {\n ruleIsValid = regexp.test(value);\n }\n if (noTip) {\n return ruleIsValid;\n }\n if (ruleIsValid === false) {\n errors.push(ruleError);\n }\n return ruleIsValid;\n };\n\n if (curErrors.length > 0) {\n isValid = await checkValid();\n // eslint-disable-next-line @typescript-eslint/brace-style\n }\n // change = func > blur > submit\n else if (eventName === 'change') {\n // eslint-disable-next-line max-depth\n if (trigger === 'change') {\n isValid = await checkValid();\n } else if (typeof trigger === 'function' && trigger(value)) {\n isValid = await checkValid();\n }\n } else if (eventName === 'blur') {\n if (trigger === 'blur') {\n isValid = await checkValid();\n }\n } else if (eventName === 'isEdit') {\n isValid = await checkValid(true);\n } else {\n isValid = await checkValid();\n }\n\n if (isValid === false && isBreak) {\n // 不执行剩下的规则\n break;\n }\n }\n // 特殊情况,在编辑时期只判断是否符合要求,不提示错误\n if (eventName === 'isEdit') {\n return Promise.resolve(isValid);\n }\n // 等待下一个microTask,避免绘制时冲突\n await Promise.resolve();\n dispatch({ type: 'error', name, payload: errors });\n }\n return Promise.resolve(errors.length === 0);\n },\n };\n\n const handleOnChange = (e: any) => {\n let value = e;\n if (e.target) {\n // eslint-disable-next-line prefer-destructuring\n value = e.target.value;\n }\n dispatch({ name, type: 'change', payload: value });\n if (group) {\n const groupInputs = getObj(state.groups, group);\n Object.getOwnPropertyNames(groupInputs).forEach((propertyName) => {\n if (propertyName !== name) {\n state.groups[group][propertyName].validate('change');\n }\n });\n }\n };\n const fieldValue = getObj(state.values, name);\n const fieldValueRef = React.useRef(fieldValue);\n const { children } = props;\n const { props: childrenProps } = children;\n const childValue = childrenProps.value;\n const childOptions = childrenProps.options;\n React.useMemo(() => {\n if (fieldValue) {\n formItemInterface.validate('change');\n }\n }, [fieldValue, fieldValue.length]);\n\n React.useMemo(() => {\n if (!isEmpty(childValue)) {\n dispatch({ type: 'change', name, payload: childValue });\n formItemInterface.validate('change');\n fieldValueRef.current = childValue;\n }\n }, [childValue]);\n\n const handleOnBlur = () => {\n formItemInterface.validate('blur');\n };\n React.useEffect(() => {\n if (!isEmpty(fieldValue)) {\n formItemInterface.validate('submit');\n }\n dispatch({\n type: 'bindInput',\n payload: formItemInterface,\n name,\n });\n return () => {\n dispatch({ type: 'unmount', name, payload: { group } });\n };\n }, [state.values, state.errors]);\n const fieldErrors = getObj(state.errors, name, []);\n const handles = {\n onChange: handleOnChange,\n onBlur: handleOnBlur,\n };\n\n const renderChild = () => {\n if (React.isValidElement(children)) {\n // @ts-ignore\n const childProps = { ...children.props };\n // @ts-ignore\n childProps.value = fieldValue;\n\n ['onChange', 'onBlur'].forEach((eventName) => {\n // @ts-ignore\n childProps[eventName] = (...args: any[]) => {\n // @ts-ignore\n handles[eventName](...args);\n // @ts-ignore\n if (children.props[eventName]) {\n // @ts-ignore\n children.props[eventName](...args);\n }\n };\n });\n return React.cloneElement(children, childProps);\n } else {\n return children;\n }\n };\n\n const childComponent = React.useMemo(renderChild, [childValue, fieldValue, childOptions, childrenProps]);\n\n return renderContainer ? (\n
\n {label && (\n
\n {label}\n {itemRequired && ' *'}\n {Array.isArray(tip) ? (\n tip.map((tipItem, index) => {\n return (\n
\n {tipItem}\n
\n );\n })\n ) : (\n
{tip}
\n )}\n
\n )}\n
\n {Boolean(prefix) &&
{prefix}
}\n {childComponent}\n
\n {Boolean(prompt) &&
{prompt}
}\n {fieldErrors.length > 0 && (\n
\n {fieldErrors.map((error: string) => (\n
\n \n {error}\n
\n ))}\n
\n )}\n
\n ) : (\n
\n {' '}\n {childComponent}\n
\n );\n};\n\nexport const FormItem = React.memo(FormItemElement);\n","import { FieldProps } from '../type/form';\nimport XMarkCircleFill from 'icon/xmark_circle_fill.svg';\nimport cls from 'classnames';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { FormContext, FormItem } from '../../form';\n\nimport './style.scss';\n\nexport function FormInput(props: FieldProps) {\n const {\n name,\n label,\n placeHolder,\n tip,\n prefix,\n prompt,\n className = '',\n required,\n maxLength,\n rules,\n group,\n defaultValue = '',\n disabled = false,\n } = props;\n\n const { dispatch } = useContext(FormContext);\n const [value, setValue] = useState('');\n // 控制是否聚焦,显示清空按钮\n const [isFocus, setIsFocus] = useState(false);\n const formInputRef = useRef(null);\n\n // 默认值\n useEffect(() => {\n setValue(defaultValue as string);\n dispatch({ name, type: 'change', payload: defaultValue });\n }, [defaultValue, dispatch, name]);\n\n // 输入框内的value改变\n function handleInputChange(event: any) {\n const inputValue = event.target.value;\n setValue(inputValue);\n }\n\n // 清除输入框的输入\n function handleCleanInput() {\n dispatch({ name, type: 'change', payload: '' });\n setValue('');\n // 在失去焦点事件后,再重新focus\n setTimeout(() => {\n formInputRef.current?.focus();\n }, 20);\n }\n\n // 输入框聚焦\n function handleInputFocus() {\n // 由于form使用的是通过dispatch将它重新渲染\n setIsFocus(true);\n }\n\n // 失去焦点\n function handleInputBlur() {\n // 如果要是触发清空,要先清空再进行失去焦点事件\n setTimeout(() => {\n setIsFocus(false);\n });\n }\n\n return (\n \n
\n \n {isFocus && (\n
\n \n
\n )}\n
\n \n );\n}\n","import { FormItem } from '../../form';\nimport { FieldProps } from '../type/form';\n\nexport function FormSelect(props: FieldProps) {\n const { name, label, tip, className = 'input', inputClassName = '', required, group, rules, options = [] } = props;\n\n return (\n \n \n \n );\n}\n","import { RadioboxGroup, Radiobox } from '@lemon8/design';\nimport React, { useEffect } from 'react';\nimport { FieldProps } from '../type/form';\nimport { FormContext, FormItem } from '../../form';\n\nimport './style.scss';\n\nexport function FormRadio(props: FieldProps) {\n const { name, label, tip, className = 'form-radio', required, group, rules, options = [], defaultValue = [] } = props;\n\n const { dispatch } = React.useContext(FormContext);\n\n useEffect(() => {\n dispatch({ name, type: 'change', payload: defaultValue });\n }, []);\n\n const handleChange = (_value: string | number) => {\n dispatch({ name, type: 'change', payload: [_value] });\n };\n\n return (\n \n \n {options.map((item, index) => {\n return (\n \n
{item.label}
\n \n );\n })}\n
\n \n );\n}\n","import { useCallback } from 'react';\nimport { HttpMethod } from './fetch';\nimport { useFetch } from './use-fetch';\n\nexport type UploadImageProps = {\n /** web端上传参 */\n image?: File;\n /** 端内使用base64 */\n base64Image?: string;\n isInApp: boolean;\n};\n\n/**\n * 上传图片获取cdn的url\n * 返回url\n */\nexport const useFetchUploadImage = () => {\n const fetch = useFetch();\n\n return useCallback(async (props: UploadImageProps) => {\n const { isInApp, base64Image } = props;\n let image = props.image;\n\n let res;\n // 端内只能拿到图片的base64\n if (isInApp && base64Image) {\n try {\n const binaryString = atob(base64Image);\n const binaryData = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n binaryData[i] = binaryString.charCodeAt(i);\n }\n const blobData = new Blob([binaryData], { type: 'application/octet-stream' });\n image = new File([blobData], 'upload-file.jpg', { type: 'application/octet-stream' });\n } catch (err) {\n throw new Error('inapp image file error');\n }\n }\n\n if (image) {\n res = await fetch('https://heliophilia.lemon8-app.com/api/200/image/upload', {\n method: HttpMethod.post,\n isFormData: true,\n params: {\n image,\n },\n }).catch((err) => ({\n message: `error`,\n err,\n }));\n }\n\n if (res?.message === 'success') {\n return {\n url: res.data.url_list[0].url || '',\n uri: res.data.uri || '',\n };\n }\n\n throw new Error('image upload error');\n }, []);\n};\n","import { openAlbum as JSBOpenAlbum } from '@bridge/sharee';\nimport { FieldProps } from '../type/form';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport PlusFill from 'icon/plus_fill.svg';\nimport XMarkFill from 'icon/x_mark_fill.svg';\nimport { Button } from '@lemon8/design';\nimport { ButtonSize } from '@lemon8/design/src/components/Button/button';\nimport { UploadImageProps, useFetchUploadImage } from '~/utils/fetch/use-upload-image';\nimport logger from '~/utils/logger';\nimport { FormContext, FormItem } from '../../form';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { $UserAgent } from '@lemon8/web-app-shared/atom';\nimport { $ToastAtom } from '~/atoms/simple-toast';\n\nimport './style.scss';\n\nconst MAX_ERROR_TIMES = 3;\n\n// eslint-disable-next-line max-lines-per-function\nexport function FormFile(props: FieldProps) {\n const {\n name,\n label,\n tip,\n prefix,\n prompt,\n className,\n required,\n rules,\n group,\n buttonText,\n isImgFile = true,\n defaultValue = [],\n } = props;\n\n const { isInApp } = useAtomValue($UserAgent);\n\n const [imgFileList, setImgFileList] = useState([]);\n const inputFileRef = useRef(null);\n const { dispatch } = useContext(FormContext);\n\n const fetchUploadImage = useFetchUploadImage();\n\n const errTimesRef = useRef(0);\n\n const showToast = useSetAtom($ToastAtom);\n\n // 初始化\n useEffect(() => {\n setImgFileList(defaultValue as any);\n dispatch({ name, type: 'change', payload: defaultValue });\n }, []);\n\n useEffect(() => {\n dispatch({ name, type: 'change', payload: imgFileList });\n }, [imgFileList, name, dispatch]);\n\n // 判断图片格式\n function checkImgType(file: File) {\n if (!/\\.(jpg|jpeg|png|gif|GIF|JPG|PNG)$/.test(file.name)) {\n return false;\n } else {\n return true;\n }\n }\n\n // 上传图片后处理\n async function handleImageUpload(payload: UploadImageProps, fileName: string) {\n try {\n const { url, uri } = await fetchUploadImage(payload);\n\n // 上传成功后将url替换掉\n setImgFileList((list) =>\n list.map((img) =>\n img.fileName === fileName\n ? {\n fileName,\n fileUrl: url,\n tosURI: uri,\n }\n : img,\n ),\n );\n if (inputFileRef?.current) {\n // 上传后,将文件选择框内的文件删掉,可以保证用户在删掉文件后可以重复的进行上传\n inputFileRef.current.value = '';\n }\n\n errTimesRef.current = 0;\n } catch (err) {\n logger.error(err, 'form file fetch upload image error');\n\n if (errTimesRef.current > MAX_ERROR_TIMES) {\n // 上传失败了,删掉图片\n const index = imgFileList.findIndex((item) => item?.fileName === fileName) ?? -1;\n handleClose(index);\n\n showToast({\n time: Date.now(),\n content: 'Image upload failed, please try again.',\n });\n\n return;\n }\n\n errTimesRef.current++;\n\n // 上传出错重新传一次\n handleImageUpload(payload, fileName);\n }\n }\n\n // 如果是端内的话,调起相册\n async function openAlbum() {\n if (isInApp) {\n const data = await JSBOpenAlbum();\n const { image } = data;\n if (image) {\n const fileName = `${name}_${Date.now()}.png`;\n // 首先为了展示,先将name传入,url为'',上传成功后将url替换\n setImgFileList((list) => [\n {\n fileName,\n fileUrl: '',\n },\n ...list,\n ]);\n handleImageUpload(\n {\n base64Image: image,\n isInApp,\n },\n fileName,\n );\n }\n }\n }\n\n // web采用的是input file,监听file的改变\n function handleFileChange(event: any) {\n const { files } = event.target;\n if (files.length > 0) {\n if (!isImgFile || checkImgType(files[0])) {\n const fileName = `${name}_${Date.now()}.png`;\n // 首先为了展示,先将name传入,url为'',上传成功后将url替换\n setImgFileList((list) => [\n {\n fileName,\n fileUrl: '',\n },\n ...list,\n ]);\n handleImageUpload(\n {\n image: files[0] as File,\n isInApp,\n },\n fileName,\n );\n }\n }\n }\n\n /** 删除文件 */\n function handleClose(index: number) {\n setImgFileList([...imgFileList.slice(0, index), ...imgFileList.slice(index + 1)]);\n }\n\n return (\n \n
\n
\n }\n />\n {/*
\n \n {buttonText}\n
*/}\n {isInApp ? (\n \n ) : (\n \n )}\n
\n
\n {imgFileList.map((item, index) => {\n return (\n
\n
{item.fileName}
\n handleClose(index)} />\n
\n );\n })}\n
\n
\n \n );\n}\n","import React, { useContext, useEffect } from 'react';\nimport { CheckboxGroup, Checkbox } from '@lemon8/design';\nimport { FieldProps } from '../type/form';\nimport { FormContext, FormItem } from '../../form';\n\nimport './style.scss';\n\nexport function FormCheckbox(props: FieldProps) {\n const {\n name,\n label,\n tip,\n className = 'form-checkbox',\n required,\n group,\n rules,\n options = [],\n defaultValue = [],\n } = props;\n const { dispatch } = useContext(FormContext);\n useEffect(() => {\n dispatch({ name, type: 'change', payload: defaultValue });\n }, []);\n const handleChange = (_value: (string | number)[]) => {\n dispatch({ name, type: 'change', payload: _value });\n };\n return (\n \n \n {options.map((item, index) => {\n return (\n \n
{item.label}
\n \n );\n })}\n
\n \n );\n}\n","import { Button } from '@lemon8/design';\nimport { useContext } from 'react';\nimport cls from 'classnames';\nimport { FormContext, FormItem } from '../../form';\nimport { ButtonSize, ButtonStatus } from '@lemon8/design/src/components/Button/button';\n\nimport './style.scss';\n\ntype Props = {\n isLoading: boolean;\n onClick: () => void;\n};\n\nexport function FormButton(props: Props) {\n const { onClick, isLoading = false } = props;\n const { state } = useContext(FormContext);\n const isCanSubmit = state.values.reportFormSendBtn as boolean;\n\n return (\n \n \n \n );\n}\n","import { useContext, useEffect, useState } from 'react';\nimport { FieldProps } from '../type/form';\nimport { FormContext, FormItem } from '../../form';\n\nimport './style.scss';\n\nexport function FormTextarea(props: FieldProps) {\n const {\n name,\n label,\n placeHolder,\n tip,\n prefix,\n prompt,\n className = '',\n required,\n rules,\n group,\n defaultValue = '',\n } = props;\n\n const { dispatch } = useContext(FormContext);\n const [value, setValue] = useState('');\n // 输入框内的value改变\n function handleChange(event: any) {\n const inputValue = event.target.value;\n setValue(inputValue);\n }\n // 使高度自适应\n function changeHeight(event: any) {\n handleChange(event);\n event.target.style.height = 'inherit';\n event.target.style.height = `${event.target.scrollHeight}px`;\n }\n // 默认值\n useEffect(() => {\n setValue(defaultValue as string);\n dispatch({ name, type: 'change', payload: defaultValue });\n }, [defaultValue, dispatch, name]);\n\n return (\n \n