@steedos-widgets/amis-lib 1.3.12 → 1.3.14
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/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs.js +66 -7
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +66 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +8 -8
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/lib/amis.js","../src/lib/router.js","../src/lib/steedos.client.js","../src/lib/converter/amis/graphql.js","../src/i18n.js","../src/lib/converter/amis/fields/list.js","../src/lib/converter/amis/util.js","../src/lib/converter/amis/fields/user.js","../src/lib/expression.js","../src/schema/standard_new.amis.js","../src/lib/page.js","../src/schema/standard_edit.amis.js","../src/schema/standard_delete.amis.js","../src/schema/standard_import_data.amis.js","../src/schema/standard_open_view.amis.js","../src/schema/standard_export_excel.amis.js","../src/standard/button.js","../src/lib/buttons.js","../src/lib/converter/amis/fields_filter.js","../src/lib/converter/amis/header.js","../src/lib/converter/amis/toolbars/setting_listview/new.js","../src/lib/converter/amis/toolbars/setting_listview/copy.js","../src/lib/converter/amis/toolbars/setting_listview/rename.js","../src/lib/converter/amis/toolbars/setting_listview/share.js","../src/lib/converter/amis/toolbars/setting_listview/filters.js","../src/lib/converter/amis/toolbars/setting_listview/columns.js","../src/lib/converter/amis/toolbars/setting_listview/sort.js","../src/lib/converter/amis/toolbars/setting_listview/delete.js","../src/lib/converter/amis/toolbars/setting_listview.js","../src/lib/converter/amis/toolbar.js","../src/lib/converter/amis/fields/tree_select.js","../src/lib/converter/amis/fields/lookup.js","../src/lib/converter/amis/fields/editor.js","../src/lib/converter/amis/fields/type.js","../src/lib/converter/amis/fields/file.js","../src/lib/converter/amis/fields/index.js","../src/lib/converter/amis/api.js","../src/lib/converter/amis/calendar.js","../../../../node_modules/tslib/tslib.es6.js","../../src/utils/keyToPath.ts","../../src/utils/object.ts","../src/lib/converter/amis/fields/sections.js","../src/lib/converter/amis/form.js","../src/lib/defaultsDeep.js","../src/lib/converter/amis/index.js","../src/lib/record.js","../src/lib/objectsRelated.js","../src/lib/objects.js","../src/lib/converter/amis/tpl.js","../src/config/index.js","../src/lib/converter/amis/fields/table.js","../src/lib/input_table.js","../src/lib/page_init.js","../src/lib/apps.js","../src/lib/notification.js","../src/lib/public.env.js","../src/lib/space_users.js","../src/lib/converter/amis/filters.js","../src/lib/assets.js","../../src/render.ts","../src/workflow/approve.js","../src/workflow/attachment.js","../src/workflow/related.js","../src/workflow/history.js","../src/workflow/flow.js","../src/workflow/util.js","../src/workflow/instance.js"],"sourcesContent":["/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-13 11:31:12\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-27 10:34:59\n * @Description:\n */\nimport { each, find, isArray, isEmpty } from 'lodash';\n\nconst RegisterRenders = [];\n\nconst normalizeLink = (to, location = window.location) => {\n to = to || \"\";\n\n if (to && to[0] === \"#\") {\n to = location.pathname + location.search + to;\n } else if (to && to[0] === \"?\") {\n to = location.pathname + to;\n }\n\n const idx = to.indexOf(\"?\");\n const idx2 = to.indexOf(\"#\");\n let pathname = ~idx\n ? to.substring(0, idx)\n : ~idx2\n ? to.substring(0, idx2)\n : to;\n let search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : \"\";\n let hash = ~idx2 ? to.substring(idx2) : location.hash;\n\n if (!pathname) {\n pathname = location.pathname;\n } else if (pathname[0] != \"/\" && !/^https?\\:\\/\\//.test(pathname)) {\n let relativeBase = location.pathname;\n const paths = relativeBase.split(\"/\");\n paths.pop();\n let m;\n while ((m = /^\\.\\.?\\//.exec(pathname))) {\n if (m[0] === \"../\") {\n paths.pop();\n }\n pathname = pathname.substring(m[0].length);\n }\n pathname = paths.concat(pathname).join(\"/\");\n }\n\n return pathname + search + hash;\n};\n\nexport const amisRootClick = (router, e) => {\n if (e.target.nodeName.toLocaleLowerCase() === \"a\" && e.target.href) {\n e.preventDefault();\n router.push(e.target.href);\n }\n};\n\nexport const getEvn = (router)=>{\n return {\n theme: \"antd\",\n notify: (type, msg)=>{\n if(msg.props?.schema.tpl){\n SteedosUI.message[type](msg.props?.schema.tpl)\n }else if(typeof msg == 'string'){\n SteedosUI.message[type](msg)\n }else{\n console.warn('notify', type, msg)\n }\n },\n confirm: (msg)=>{\n return new Promise((resolve, reject)=>{\n return SteedosUI.Modal.confirm({\n title: msg,\n onOk: ()=>{\n resolve(true);\n },\n okText: \"确认\",\n cancelText: \"取消\"\n })\n })\n },\n jumpTo: (to, action) => {\n if (to === \"goBack\") {\n return window.history.back();\n }\n\n to = normalizeLink(to);\n\n if (action && action.actionType === \"url\") {\n action.blank === true ? window.open(to) : router.push(to);\n return;\n }\n\n // 主要是支持 nav 中的跳转\n if (action && to && action.target) {\n window.open(to, action.target);\n return;\n }\n if (/^https?:\\/\\//.test(to)) {\n window.location.replace(to);\n } else {\n router.push(to);\n }\n }\n }\n}\n\nexport const registerRenders = (assets)=>{\n if(!isEmpty(assets) && isArray(assets)){\n let amisLib = amisRequire('amis');\n\n const registerMap = {\n renderer: amisLib.Renderer,\n formitem: amisLib.FormItem,\n options: amisLib.OptionsControl,\n };\n \n let amisReact = amisRequire('react');\n each(assets, (asset)=>{\n // 防止组件重复注册\n if(!find(RegisterRenders, (componentName)=>{ return componentName === asset.componentName})){\n let Component = Builder.components.find(item => item.name === asset.componentName);\n let AmisWrapper = Component.class\n if(asset.componentType === 'amisSchema'){\n AmisWrapper = (props)=>{\n const { body, render } = props\n const [schema, setSchema] = amisReact.useState(null);\n amisReact.useEffect(()=>{\n const result = Component.class(props);\n if(result && result.then && typeof result.then === 'function'){\n result.then((data)=>{\n setSchema(data);\n })\n }else{\n setSchema(result)\n }\n }, [])\n return amisReact.createElement(amisReact.Fragment, null, amisReact.createElement(amisReact.Fragment, null, schema && render ? render('body', schema) : ''), amisReact.createElement(amisReact.Fragment, null, render ? render('body', body) : ''));\n }\n }\n\n // 注册amis渲染器\n if (!registerMap[asset.usage]) {\n console.error(\n `${consoleTag}自定义组件注册失败,不存在${asset.usage}自定义组件类型。`,\n );\n } else {\n registerMap[asset.usage]({\n test: new RegExp(`(^|\\/)${asset.type}`),\n type: asset.type,\n weight: asset.weight,\n autoVar: true,\n })(AmisWrapper);\n // 记录当前创建的amis自定义组件\n console.info('注册了一个自定义amis组件:', {\n type: asset.type,\n weight: asset.weight,\n component: AmisWrapper,\n framework: asset.framework,\n usage: asset.usage,\n });\n }\n // amisLib.Renderer({\n // test: new RegExp(`(^|\\/)${asset.type}`)\n // })(AmisWrapper);\n RegisterRenders.push(asset.componentName)\n }\n })\n }\n}\n\nexport const amisRender = (root, schema, data = {}, env = {}, options) => {\n let amis = amisRequire(\"amis/embed\");\n const { router, assets } = options;\n registerRenders(assets);\n return amis.embed(root, schema, data, Object.assign(getEvn(router), env));\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-16 17:02:08\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-06-20 13:50:15\n * @Description:\n */\n\n\nexport const Router = {\n getTabDisplayAs(tab_id){\n var urlSearch = new URLSearchParams(document.location.search); \n if(urlSearch.has('display')){\n return urlSearch.get('display')\n }\n const key = `tab_${tab_id}_display`;\n // const key = `page_display`;\n const value = localStorage.getItem(key)\n return value ? value : 'grid'\n },\n \n setTabDisplayAs(tab_id, displayAs){\n const key = `tab_${tab_id}_display`;\n localStorage.setItem(key, displayAs)\n },\n getAppPath({formFactor, appId}){\n return `/app/${appId}`;\n },\n getPagePath(){\n //TODO\n },\n getObjectListViewPath({formFactor, appId, objectName, listViewName}){\n return `/app/${appId}/${objectName}/grid/${listViewName}`;\n },\n getObjectDetailPath(props){\n const {formFactor, appId, objectName, recordId, listViewName, _templateType} = props;\n if(_templateType === 'JavaScript'){\n return `/app/${appId}/${objectName}/view/${recordId}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`;\n }\n return `/app/${appId}/${objectName}/view/${recordId}?side_object=\\${objectName}&side_listview_id=\\${listName}`;\n },\n getObjectRelatedViewPath({formFactor, appId, masterObjectName, masterRecordId, objectName, foreignKey}){\n return `/app/${appId}/${masterObjectName}/${masterRecordId}/${objectName}/grid?related_field_name=${foreignKey}`;\n },\n\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-04 11:24:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-06-12 11:51:15\n * @Description: \n */\nimport { endsWith, isEmpty, cloneDeep } from \"lodash\";\n\nconst STEEDOS_AUTH = {};\n\nconst getBuilderContext = ()=>{\n if(typeof window === \"undefined\"){\n return {};\n }\n return Builder.settings.context ? Builder.settings.context : Builder.settings\n}\n\nexport const setSteedosAuth = (steedosSession) => {\n Object.assign(STEEDOS_AUTH, steedosSession);\n}\n\nexport async function fetchAPI(api, options = { credentials: 'include' }) {\n const headers = { 'Content-Type': 'application/json' }\n const AUTHORIZATION = getAuthorization()\n if (AUTHORIZATION) {\n headers[\n 'Authorization'\n ] = AUTHORIZATION\n // } else {\n // throw new Error(401)\n }\n\n options.headers = Object.assign({}, headers, options.headers);\n options.credentials = 'include'\n const res = await fetch(`${getRootUrl()}${api}`, options)\n \n if(res.status === 401){\n throw new Error(401)\n }\n\n const json = await res.json()\n if (json.errors) {\n console.error(json.errors)\n throw new Error('Failed to fetch API')\n }\n return json\n}\n\nexport function getFileSrc(fileId){\n return `${getRootUrl()}/api/files/files/${fileId}`\n}\n\nexport function getImageSrc(fileId){\n return `${getRootUrl()}/api/files/images/${fileId}`\n}\n\n\nexport function getTenantId(){\n try {\n let spaceId = getBuilderContext().tenantId\n\n if (window.location.search && !spaceId) {\n var searchParams = new URLSearchParams(window.location.search);\n spaceId = searchParams.get('X-Space-Id');\n }\n if (!spaceId) {\n return null;\n }\n return spaceId;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getAuthToken(){\n try {\n const context = getBuilderContext()\n let token = context.authToken;\n if (!token) {\n return null;\n }\n return token;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getAuthorization(){\n try {\n const context = getBuilderContext()\n let spaceId = context.tenantId;\n let token = context.authToken;\n \n if (!spaceId || !token) {\n return null;\n }\n return `Bearer ${spaceId},${token}`;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getUserId(){\n try {\n const context = getBuilderContext()\n let userId = context.userId;\n if (!userId) {\n return null;\n }\n return userId;\n } catch (error) {\n console.error(error)\n } \n}\n\nexport function absoluteUrl(url){\n return `${getRootUrl()}${url}`\n}\n\nexport function getRootUrl(defaultRootUrl){\n const context = getBuilderContext()\n if(context.rootUrl){\n return context.rootUrl;\n }\n const rootUrl = typeof window != 'undefined' ? window.localStorage.getItem(\"steedos:rootUrl\") : '';\n if(rootUrl){\n return rootUrl\n }\n return defaultRootUrl || '';\n}\n\nexport function setRootUrl(rootUrl){\n if(endsWith(rootUrl, '/')){\n rootUrl = rootUrl.substring(0, rootUrl.length-1)\n }\n localStorage.setItem(\"steedos:rootUrl\", rootUrl)\n}\n\nexport const getSteedosAuth = () => {\n // if(isEmpty(STEEDOS_AUTH)){\n // return {\n // space: localStorage.getItem(\"steedos:spaceId\"),\n // token: localStorage.getItem(\"steedos:token\"), \n // userId: localStorage.getItem(\"steedos:userId\"),\n // name: Meteor.user().name //TODO: 使用steedos 函数. 此属性在上传附件时使用\n // }\n // }\n return Object.assign( {}, cloneDeep(STEEDOS_AUTH) || {}, getBuilderContext() || {});\n}","import * as _ from 'lodash';\nimport { includes, trimEnd } from 'lodash';\nimport { getUISchema } from '../../objects';\n\nexport async function getFieldsTemplate(fields, display){\n let expandFields = [];\n if(display != false){\n display = true;\n }\n let fieldsName = ['_id'];\n let displayFields = [];\n let fieldsArr = [];\n if(_.isArray(fields)){\n fieldsArr = fields;\n }else{\n fieldsArr = _.values(fields);\n }\n for (const field of fieldsArr) {\n //graphql 的 ui\\display 中使用的字段需要先在query中查询. 否则会返回null\n if(field.expand){\n expandFields.push(field);\n }else{\n if(field.name.indexOf('.') < 0){\n if(display && (field.type == 'lookup' || field.type == 'master_detail')){\n fieldsName.push(`${field.name}`)\n displayFields.push(`${field.name}`)\n }else{\n fieldsName.push( field.alias ? `${field.alias}:${field.name}` : field.name)\n }\n if(includes(['time','date','datetime','boolean','number','currency'], field.type)){\n fieldsName.push(`${field.name}`)\n }\n if(includes(['percent','time','filesize','date','datetime','boolean','number','currency', 'select', 'file', 'image', 'avatar', 'formula', 'summary', 'object', 'grid'], field.type)){\n displayFields.push(`${field.name}`)\n }\n }else{\n objectFieldName = field.name.split('.')[0];\n fieldsName.push(objectFieldName);\n displayFields.push(objectFieldName)\n }\n }\n }\n\n displayFields = _.uniq(displayFields);\n fieldsName = _.uniq(fieldsName);\n let expandFieldsQuery = \"\";\n if(expandFields.length > 0){\n _.each(expandFields, function(field){\n expandFieldsQuery = expandFieldsQuery + `${field.expandInfo.fieldName}__expand{${field.expandInfo.displayName}}`\n })\n }\n\n if(displayFields.length > 0){\n return `${fieldsName.join(',')},${expandFieldsQuery},_display:_ui{${displayFields.join(',')}}`;\n }\n return trimEnd(`${fieldsName.join(' ')},${expandFieldsQuery}`, \",\")\n}\n\nexport function getRecordPermissionsTemplate(){\n return `\n recordPermissions: _permissions{\n allowCreate,\n allowCreateFiles,\n allowDelete,\n allowDeleteFiles,\n allowEdit,\n allowEditFiles,\n allowRead,\n allowReadFiles,\n disabled_actions,\n disabled_list_views,\n field_permissions,\n modifyAllFiles,\n modifyAllRecords,\n modifyAssignCompanysRecords,\n modifyCompanyRecords,\n uneditable_fields,\n unreadable_fields,\n unrelated_objects,\n viewAllFiles,\n viewAllRecords,\n viewAssignCompanysRecords,\n viewCompanyRecords,\n }\n `\n}\n\nexport async function getFindOneQuery(object, recordId, fields, options){\n let queryOptions = `(filters:[\"${object.idFieldName}\", \"=\", \"\\${recordId}\"])`;\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n return {\n query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields)}, ${getRecordPermissionsTemplate()}}}`\n }\n}\n\nexport function getSaveQuery(object, recordId, fields, options){\n return {\n objectName: object.name,\n $: \"$$\",\n recordId: recordId,\n modalName: \"${modalName}\"\n }\n}\n\n/*\n readonly字段应该移除掉不提交到服务端。\n*/\nexport function getScriptForReadonlyFields(fields){\n var scripts = [];\n fields.forEach((item)=>{\n if(item.readonly && item.name.indexOf(\".\") < 0){\n scripts.push(`delete formData.${item.name};`);\n }\n });\n return scripts.join(\"\\r\\n\");\n}\n\n/*\n img/avatar字段值移除URL前缀使其保存时正常保存id,而不是url。\n*/\nexport function getScriptForRemoveUrlPrefixForImgFields(fields){\n let imgFieldsKeys = [];\n let imgFields = {};\n fields.forEach((item)=>{\n if(includes(['image','avatar'], item.type)){\n imgFieldsKeys.push(item.name);\n imgFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!imgFieldsKeys.length){\n return '';\n }\n return `\n let imgFieldsKeys = ${JSON.stringify(imgFieldsKeys)};\n let imgFields = ${JSON.stringify(imgFields)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = formData[item];\n if(imgFieldValue && imgFieldValue.length){\n // 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。\n if(imgFields[item].multiple){\n if(imgFieldValue instanceof Array){\n formData[item] = imgFieldValue.map((value)=>{ \n let itemValue = value && value.split('/');\n return itemValue[itemValue.length - 1];\n });\n }\n }else{\n let imgValue = imgFieldValue.split('/');\n formData[item] = imgValue[imgValue.length - 1];\n }\n }\n })\n `\n}\n\n/*\n file字段值重写使其保存时正常保存id。\n*/\nexport function getScriptForSimplifiedValueForFileFields(fields){\n let fileFieldsKeys = [];\n let fileFields = {};\n fields.forEach((item)=>{\n if(item.type === 'file'){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!fileFieldsKeys.length){\n return '';\n }\n return `\n let fileFieldsKeys = ${JSON.stringify(fileFieldsKeys)};\n let fileFields = ${JSON.stringify(fileFields)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n `\n}\n\nexport function getSaveDataTpl(fields){\n\n return `\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n delete formData.initialValues;\n delete formData.editFormInited;\n delete formData.isLookup;\n delete formData.selectedRowResponseResult;\n ${getScriptForReadonlyFields(fields)}\n ${getScriptForRemoveUrlPrefixForImgFields(fields)}\n ${getScriptForSimplifiedValueForFileFields(fields)}\n let query = \\`mutation{record: \\${objectName}__insert(doc: {__saveData}){_id}}\\`;\n if(formData.recordId && formData.recordId !='new'){\n query = \\`mutation{record: \\${objectName}__update(id: \"\\${formData.recordId}\", doc: {__saveData}){_id}}\\`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `\n}\n\nexport function getSaveRequestAdaptor(fields, options){\n return `\n ${getSaveDataTpl(fields)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n ${options.apiRequestAdaptor || ''}\n return api;\n `\n}\n\nexport async function getFindQuery(object, recordId, fields, options){\n let limit = options.limit || 10;\n let queryOptions = `(top: ${limit})`;\n if(recordId){\n queryOptions = `(filters:[\"_id\", \"=\", \"${recordId}\"], top: ${limit})`;\n }\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n var treeFields = '';\n if(object.enable_tree && _.includes(_.keys(object.fields), 'parent') && _.includes(_.keys(object.fields), 'children')){\n treeFields = ',parent,children';\n }\n\n var cfsFields = '';\n if(object.name === 'cms_files'){\n cfsFields = ',versions'\n }\n\n const countQuery = options.count === false ? \"\" : `,count:${object.name}__count(filters:{__filters})`;\n // const moreQuerie = options.moreQueries?.length ? (\",\" + options.moreQueries.map(function(item){\n // // 把最外层的{}去除\n // return item.replace(/^{/,\"\").replace(/}$/,\"\");\n // }).join(\",\")) : \"\";\n\n return {\n orderBy: \"${orderBy}\",\n orderDir: \"${orderDir}\",\n pageNo: \"${page}\",\n pageSize: \"${perPage}\",\n query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}}${countQuery}}`\n }\n}\n\nexport function getRecordPermissionsQuery(object, recordId, options){\n let queryOptions = \"\";\n\n if(recordId){\n queryOptions = `(filters:[\"${object.idFieldName}\", \"=\", \"${recordId}\"])`;\n }\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n\n let recordPermissionsTemplate = getRecordPermissionsTemplate();\n if(options?.fields && options.fields.length){\n recordPermissionsTemplate = `\n recordPermissions: _permissions{\n ${options.fields.join(\",\")}\n }\n `;\n }\n return {\n query: `{${alias}:${object.name}${queryOptions}{${object.idFieldName},${recordPermissionsTemplate}}}`\n }\n}\n\nexport function getApi (isMobile){\n if(isMobile){\n //TODO 返回 绝对路径\n }else{\n // return __meteor_runtime_config__.ROOT_URL_PATH_PREFIX + \"/graphql\"\n return `\\${context.rootUrl}/graphql?reload=\\${additionalFilters}`\n }\n}","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport en_us from \"./locales/en-US.json\"\nimport zh_cn from \"./locales/zh-CN.json\"\n\nconst resources = {\n \"en-US\": {\n translation: en_us\n },\n \"zh-CN\": {\n translation: zh_cn\n }\n};\nvar locale = \"zh-CN\";\nif (typeof window != 'undefined') {\n if (window.Builder?.settings.locale == \"en-us\") {\n locale = \"en-US\";\n } else if (window.Builder?.settings.locale == \"zh-cn\") {\n locale = \"zh-CN\";\n }\n}\n\n\ni18n\n .use(initReactI18next)\n .init({\n resources,\n lng: locale,\n interpolation: {\n escapeValue: false\n }\n });\nexport { i18n as i18next };","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-23 09:12:14\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-11-25 13:28:35\n * @Description: \n */\n\nimport * as Tpl from '../tpl';\nimport { Router } from '../../../router'\nimport { i18next } from '../../../../i18n'\n\nasync function getListBody(fields, options){\n const columns = [];\n for (const field of fields) {\n\n const tpl = await Tpl.getFieldTpl(field, options);\n\n let type = 'text';\n if(tpl){\n type = 'tpl';\n }\n if(!field.hidden && !field.extra){\n columns.push({\n name: field.name,\n label: field.label,\n sortable: field.sortable,\n // searchable: field.searchable,\n width: field.width,\n type: type,\n tpl: tpl,\n toggled: field.toggled\n // toggled: true \n })\n }\n };\n\n return {\n \"type\": \"hbox\",\n \"columns\": columns\n };\n}\n\nfunction getDefaultParams(options){\n return {\n perPage: options.top || options.perPage || 10\n }\n}\n\nexport async function getListSchema(fields, options){\n const listBody = await getListBody(fields, options);\n const columns = listBody.columns;\n return {\n mode: \"list\",\n name: \"thelist\",\n draggable: false,\n headerToolbar: ['reload'],\n defaultParams: getDefaultParams(options),\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: false,\n labelTpl: `\\${name}`, //TODO 获取name字段\n listItem: {\n body: [...columns],\n actions: options.actions === false ? null : [\n {\n icon: \"fa fa-eye\",\n label: i18next.t('frontend_form_view'),\n type: \"button\",\n actionType: \"link\",\n link: Router.getObjectDetailPath({\n formFactor: options.formFactor, \n appId: options.appId, \n objectName: options.tabId, \n listView: options.listView,\n recordId: `\\${_id}`\n })\n }\n ]\n }\n }\n}\n\n\nexport async function getCardSchema(fields, options){\n let title = null;\n const titleField = _.find(fields, (f)=>{\n return f.name === options.labelFieldName;\n });\n if(titleField){\n title = await Tpl.getFieldTpl(titleField, options)\n }\n const listBody = await getListBody(_.filter(fields, (f)=>{\n return f.name != options.labelFieldName\n }), options);\n return {\n mode: \"cards\",\n name: \"cards\",\n draggable: false,\n headerToolbar: ['statistics', 'pagination'],\n defaultParams: getDefaultParams(options),\n syncLocation: false,\n keepItemSelectionOnPageChange: false,\n checkOnItemClick: false,\n labelTpl: `\\${${options.labelFieldName}}`,\n card: {\n \"type\": \"card\",\n \"header\": {\n \"title\": title\n },\n \"body\": [...listBody.columns]\n }\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-20 16:29:22\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-09-11 17:19:53\n * @Description: \n */\nimport { getRootUrl } from \"../../steedos.client\";\n\nexport function getSvgUrl(source, name) {\n var foo, url;\n foo = name != null ? name.split(\".\") : void 0;\n if (foo && foo.length > 1) {\n source = foo[0];\n if (!(source != null ? source.endsWith(\"-sprite\") : void 0)) {\n source += \"-sprite\";\n }\n name = foo[1];\n }\n url = \"/assets/icons/\" + source + \"/svg/symbols.svg#\" + name;\n return `${getRootUrl()}${url}`;\n}\n\nexport function getImageFieldUrl(url) {\n if (window.Meteor && window.Meteor.isCordova != true) {\n // '//'的位置\n const doubleSlashIndex = url.indexOf('//');\n const urlIndex = url.indexOf('/', doubleSlashIndex + 2);\n const rootUrl = url.substring(urlIndex);\n return rootUrl;\n }\n return url;\n}\n\nif(typeof window != 'undefined'){\n window.getImageFieldUrl = getImageFieldUrl;\n}\n\nexport function getContrastColor(bgColor) {\n var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;\n var r = parseInt(backgroundColor.substr(0, 2), 16);\n var g = parseInt(backgroundColor.substr(2, 2), 16);\n var b = parseInt(backgroundColor.substr(4, 2), 16);\n var brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness < 128 ? \"#ffffff\" : \"#000000\";\n}\n\nexport function getLookupListView(refObjectConfig) {\n if(!refObjectConfig){\n return null;\n }\n const listNameAll = \"all\";\n const listNameLookup = \"lookup\";\n let listViewAll, listViewLookup;\n\n _.each(\n refObjectConfig.list_views,\n (view, name) => {\n if (name === listNameAll) {\n listViewAll = view;\n if(!listViewAll.name){\n listViewAll.name = name;\n }\n }\n else if (name === listNameLookup) {\n listViewLookup = view;\n if(!listViewLookup.name){\n listViewLookup.name = name;\n }\n }\n }\n );\n let listView = listViewLookup || listViewAll;\n return listView;\n}","import * as graphql from '../graphql';\nimport * as Field from './index';\nimport * as Tpl from '../tpl';\nimport * as _ from 'lodash';\nimport { getUISchema, getListViewSort } from '../../../objects';\nimport { getLookupListView } from '../util';\n\nconst refUsersObjectName = \"space_users\";\nconst refOrgsObjectName = \"organizations\";\n\nasync function getSource(field, ctx) {\n // data.query 最终格式 \"{ \\tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }\"\n const data = await graphql.getFindQuery({ name: refOrgsObjectName }, null, [{ name: \"_id\", alias: \"value\" },{name: \"parent\"}, { name: \"name\", alias: \"label\" }, { name: \"children\" }], {\n alias: \"leftOptions\",\n filters: \"{__filters}\"\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n const childrenData = await graphql.getFindQuery({ name: refOrgsObjectName }, null, [{ name: \"_id\", alias: \"ref\" }], {\n alias: \"children\",\n filters: \"{__filters}\"\n });\n childrenData.query = childrenData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + childrenData.query.replace(/{(.+)}/, \"$1}\"));\n const defaultValueOptionsData = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\"\n });\n defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + defaultValueOptionsData.query.replace(/{(.+)}/, \"$1}\"))\n let valueField = `${field.name}`;\n if(field._prefix){\n // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.\n valueField = `${field._prefix}${field.name}`;\n }\n if(ctx.fieldNamePrefix){\n // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__\n valueField = `${ctx.fieldNamePrefix}${valueField}`;\n }\n data.$value = `$${valueField}`;\n // data[\"&\"] = \"$$\";\n\n const requestAdaptor = `\n var filters = [];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"user\", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [[\"user\", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;\n const adaptor = `\n const data = payload.data;\n const rows = data.leftOptions\n data.children = data.children.map(function (child) { \n // child.defer = !!(child.children && child.children.length);\n child.defer = true;\n delete child.children;\n return child;\n });\n\n var getTreeOptions = SteedosUI.getTreeOptions\n data.leftOptions = getTreeOptions(rows);\n\n \n var defaultValueOptions = data.defaultValueOptions;\n data.children = _.union(data.children, defaultValueOptions);\n delete data.defaultValueOptions;\n payload.data = { options: [data] };\n return payload;\n `;\n return {\n \"method\": \"post\",\n // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug\n // 见issue: https://github.com/baidu/amis/issues/6065\n // \"url\": graphql.getApi() + `?value=\\${${field.multiple ? valueField + \"|join\" : valueField}}`,\n // \"url\": graphql.getApi() + `?value=\\${editFormInited}`,\n \"url\": graphql.getApi(),\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n // \"sendOn\": `this.editFormInited`,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n }\n}\n\nasync function getDeferApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:{__object_name}(filters:{__filters}){{__fields}} }\"\n const data = await graphql.getFindQuery({ name: \"{__object_name}\" }, null, [], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n let filters = field.filters;\n if(typeof filters === \"string\"){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(typeof filters === \"function\"){\n filters = filters(field);\n }\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换\n data.query = data.query.replace(\"{_id}\", \"{{__fields}}\");\n const requestAdaptor = `\n var dep = api.query.dep;\n var ref = api.query.ref;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = \"\";\n if (dep) {\n objectName = \"${refOrgsObjectName}\";\n fields = \"value:_id,label:name,children\";\n filters = [['parent', '=', dep]];\n sort = \"${ctx.orgsSort}\";\n }\n else if (ref) { \n objectName = \"${refUsersObjectName}\";\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n fields = \"_id,value:user,label:name\";\n // fields = \"user,name,value:user,label:name\";\n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n const adaptor = `\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&ref=${ref}&dep=${value}\",\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nasync function getSearchApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}\"\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n const data = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n const filters = field.filters;\n const requestAdaptor = `\n var term = api.query.term;\n var filters;\n var sort = \"\";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n var fieldsForSearch = [\"name\", \"username\", \"email\", \"mobile\"];\n var termFilters = [];\n fieldsForSearch.forEach(function (field) {\n termFilters.push([field, 'contains', term]);\n termFilters.push(\"or\");\n });\n termFilters.pop();\n filters.push(termFilters);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"?term=${term}\",\n \"requestAdaptor\": requestAdaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getRefListViewSort(refObject){\n let listView = getLookupListView(refObject);\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n return sort;\n}\n\nexport async function getSelectUserSchema(field, readonly, ctx) {\n if (!field) {\n return {}\n }\n\n if (!ctx) {\n ctx = {};\n }\n const amisSchema = {\n \"type\": Field.getAmisStaticFieldType('select', readonly)\n };\n\n if (readonly) {\n amisSchema.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n else{\n const refUsersObjectConfig = await getUISchema(refUsersObjectName);\n ctx.usersSort = getRefListViewSort(refUsersObjectConfig);\n const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);\n ctx.orgsSort = getRefListViewSort(refOrgsObjectConfig);\n Object.assign(amisSchema, {\n // \"labelField\": \"name\",\n // \"valueField\": \"user\",\n \"multiple\": field.multiple,\n \"searchable\": field.searchable,\n \"selectMode\": \"associated\",\n \"leftMode\": \"tree\",\n \"extractValue\": true,\n \"clearable\": true,\n \"source\": await getSource(field, ctx),\n \"deferApi\": await getDeferApi(field, ctx),\n \"searchApi\": await getSearchApi(field, ctx)\n });\n if(field.multiple){\n // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题\n Object.assign(amisSchema, {\n \"joinValues\": false,\n });\n }\n if (typeof amisSchema.searchable !== \"boolean\") {\n amisSchema.searchable = true;\n }\n\n if(ctx.value){\n amisSchema.value = ctx.value;\n }\n\n const onEvent = field.onEvent;\n if (onEvent) {\n amisSchema.onEvent = onEvent;\n }\n }\n return amisSchema;\n}\n","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-03-22 09:31:21\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-11-05 16:31:38\n */\nimport { get } from 'lodash'\n\nconst globalTag = '__G_L_O_B_A_L__';\n\nconst getParentPath = function (path) {\n var pathArr;\n if (typeof path === 'string') {\n pathArr = path.split('.');\n if (pathArr.length === 1) {\n return '#';\n }\n pathArr.pop();\n return pathArr.join('.');\n }\n return '#';\n}\n\nconst getValueByPath = function (formData, path) {\n if (path === '#' || !path) {\n return formData || {};\n } else if (typeof path === 'string') {\n return get(formData, path);\n } else {\n console.error('path has to be a string');\n }\n};\n\nexport const isExpression = function (func) {\n var pattern, reg1, reg2;\n if (typeof func !== 'string') {\n return false;\n }\n pattern = /^{{(.+)}}$/;\n reg1 = /^{{(function.+)}}$/;\n reg2 = /^{{(.+=>.+)}}$/;\n if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {\n return true;\n }\n return false;\n};\n\nconst getMoment = () => {\n if (window.amisRequire) {\n return window.amisRequire(\"moment\");\n } else if (window.moment) {\n return window.moment;\n }\n}\n\nexport const getGlobalNowData = () => {\n let now = new Date();\n let moment = getMoment();\n let today = moment().utc();\n today.set(\"hours\", 0);\n today.set(\"minutes\", 0);\n today.set(\"seconds\", 0);\n today.set(\"milliseconds\", 0);\n today = today.toDate();\n let timeNow = moment();\n timeNow.set(\"year\", 1970);\n timeNow.set(\"month\", 0);\n timeNow.set(\"date\", 1);\n timeNow.set(\"hours\", timeNow.hours() + timeNow.utcOffset() / 60)\n timeNow.set(\"seconds\", 0);\n timeNow.set(\"milliseconds\", 0);\n timeNow = timeNow.toDate();\n return {\n now,\n today,\n timeNow\n };\n}\n\nexport const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {\n if (global) {\n Object.assign(global, getGlobalNowData());\n }\n\n var error, funcBody, parent, parentPath, str;\n\n if (formData === void 0) {\n formData = {};\n }\n parentPath = getParentPath(dataPath);\n parent = getValueByPath(formData, parentPath) || {};\n if (typeof func === 'string') {\n funcBody = func.substring(2, func.length - 2);\n str = `\\n var $user=${JSON.stringify(userSession)}; return ` + funcBody.replace(/\\bformData\\b/g, JSON.stringify(formData).replace(/\\bglobal\\b/g, globalTag)).replace(/\\bglobal\\b/g, JSON.stringify(global)).replace(new RegExp('\\\\b' + globalTag + '\\\\b', 'g'), 'global').replace(/rootValue/g, JSON.stringify(parent));\n try {\n return Function(str)();\n } catch (_error) {\n error = _error;\n console.log(error, func, dataPath);\n return func;\n }\n } else {\n return func;\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:51:00\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-09-25 14:53:05\n * @Description: \n */\nimport { i18next } from \"../i18n\";\n\nexport const getSchema = async (uiSchema, ctx) => {\n const schemaApiAdaptor = `\n let formSchema = {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"\\${objectName}\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"layout\": \"normal\"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const fields = ${JSON.stringify(uiSchema.fields)};\n const selectedRowResponseResult = api.body.selectedRowResponseResult;\n let defaultData = {}; \n\n if(!_.isEmpty(selectedRowResponseResult)){\n const fieldsKeys = _.keys(fields);\n // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,\n // 原规则见:https://github.com/steedos/steedos-frontend/issues/297\n _.forEach(selectedRowResponseResult, (val, key) => {\n if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true) {\n defaultData[key] = val;\n }\n })\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n }\n\n if(!_.isEmpty(defaultData)){\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `;\n const onDialogCancelScript = `\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常\n setTimeout(function(){\n doAction({\n \"actionType\": \"cancel\",\n \"componentId\": \"object_actions_drawer_${uiSchema.name}\"\n });\n }, 200);\n `;\n const getSelectedRowsScript = `\n const isLookup = event.data.isLookup;\n if(isLookup){\n // lookup弹出窗口的新建功能不需要支持复制新建\n return;\n }\n const uiSchema = event.data.uiSchema;\n const objectName = event.data.objectName;\n const listViewRef = event.context.scoped.getComponentById(\"listview_\" + objectName);\n const selectedItems = listViewRef && listViewRef.props.store.toJSON().selectedItems || [];\n event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');\n `;\n return {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_new'),\n \"id\": \"u:standard_new\",\n \"level\": \"default\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": getSelectedRowsScript\n },\n {\n \"actionType\": \"ajax\",\n \"outputVar\": \"selectedRowResponseResult\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}\",\n \"method\": \"get\"\n }\n },\n \"expression\": \"${selectedIds.length > 0}\"\n },\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"data\": {\n \"$master\": \"$$\",\n \"_master\": \"${_master}\",\n \"_master._isRelated\": \"${_isRelated}\",\n \"_master.relatedKey\": \"${relatedKey}\",\n \"appId\": \"${appId}\",\n \"objectName\": \"${objectName}\",\n \"context\": \"${context}\",\n \"global\": \"${global}\",\n \"listViewId\": \"${listViewId}\",\n \"displayAs\": \"${displayAs}\",\n \"uiSchema\": \"${uiSchema}\",\n \"isLookup\": \"${isLookup}\",\n \"listName\": \"${listName}\",\n \"selectedRowResponseResult\": \"${selectedRowResponseResult}\",\n },\n \"title\":i18next.t('frontend_form_new') + \" ${uiSchema.label | raw}\",\n \"body\": [\n {\n \"type\": \"service\",\n \"id\": \"u:1678e148c4d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"data\": {\n \"isLookup\": \"${isLookup}\",\n \"_master\": \"${_master}\",\n \"url\": \"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}\",\n \"selectedRowResponseResult\": \"${selectedRowResponseResult}\"\n },\n \"url\": \"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}\",\n \"method\": \"get\",\n \"messages\": {\n },\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"requestAdaptor\": \"return { ...api, url: api.body.url }\",\n \"adaptor\": schemaApiAdaptor\n }\n }\n ],\n \"showCloseButton\": true,\n \"id\": \"u:e11347411d2d\",\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"size\": \"lg\",\n \"onEvent\": {\n \"cancel\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onDialogCancelScript,\n \"expression\": \"${window:innerWidth < 768}\",\n }\n ]\n }\n },\n \"actions\": [\n {\n type: 'button',\n actionType: 'cancel',\n label: i18next.t('frontend_form_cancel')\n },\n {\n type: 'button',\n label: i18next.t('frontend_form_save_and_new'),\n actionType: 'confirm',\n close: false,\n id: \"confirmAndNew\"\n },\n {\n type: 'button',\n actionType: 'confirm',\n label: i18next.t('frontend_form_save'),\n primary: true\n },\n ]\n }\n }\n ]\n }\n }\n }\n ],\n \"regions\": [\n \"body\"\n ],\n \"className\": \"p-0 border-0\",\n \"id\": \"u:aef99d937b10\"\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-13 15:18:03\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-04-11 10:34:26\n * @Description: \n */\nimport { fetchAPI } from './steedos.client';\n\nexport async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){\n const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;\n const page = await fetchAPI(api);\n if (page && page.schema) {\n page.schema = JSON.parse(page.schema)\n if(page.schema.data){\n delete page.schema.data.recordId;\n delete page.schema.data.objectName;\n delete page.schema.data.context;\n delete page.schema.data.global\n }\n return page;\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:49:58\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-06-28 23:22:31\n * @Description:\n */\nimport { i18next } from \"../i18n\";\nimport { getPage } from '../lib/page'\n\nexport const getSchema = async (uiSchema, ctx) => {\n const title = i18next.t('frontend_form_edit') + \" \" + uiSchema.label;\n\n const defaultFormSchema = {\n type: \"steedos-object-form\",\n label: \"对象表单\",\n objectApiName: \"${objectName}\",\n recordId: \"${recordId}\",\n id: \"u:d2b0c083c38f\",\n mode: \"edit\",\n };\n\n let formSchema = defaultFormSchema;\n const page = await getPage({\n type: \"form\",\n appId: ctx.appId,\n objectName: ctx.objectName,\n formFactor: ctx.formFactor,\n });\n\n if (page) {\n formSchema = _.isString(page.schema)\n ? JSON.parse(page.schema)\n : page.schema;\n }\n \n const onDialogCancelScript = `\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击编辑按钮的时候异常\n setTimeout(function(){\n doAction({\n \"actionType\": \"cancel\",\n \"componentId\": \"object_actions_drawer_${uiSchema.name}\"\n });\n }, 200);\n `;\n\n return {\n type: \"service\",\n body: [\n {\n type: \"button\",\n label: i18next.t('frontend_form_edit'),\n id: \"u:standard_edit\",\n onEvent: {\n click: {\n actions: [\n {\n actionType: \"dialog\",\n dialog: {\n type: \"dialog\",\n title: title,\n bodyClassName: \"\",\n body: [formSchema],\n id: \"u:ee95697baa4f\",\n closeOnEsc: false,\n closeOnOutside: false,\n showCloseButton: true,\n size: \"lg\",\n \"onEvent\": {\n \"cancel\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onDialogCancelScript,\n \"expression\": \"${window:innerWidth < 768}\",\n }\n ]\n }\n },\n },\n },\n ],\n weight: 0,\n },\n },\n },\n ],\n regions: [\"body\"],\n className: \"\",\n id: \"u:3c5cbc0429bb\",\n };\n};\n","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-03-22 09:31:21\n * @LastEditors: Please set LastEditors\n * @LastEditTime: 2023-04-12 10:35:36\n */\nimport { i18next } from \"../i18n\";\nexport const getSchema = (uiSchema)=>{\n return {\n \"type\": \"service\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_delete'),\n \"confirmText\": i18next.t('frontend_delete_many_confirm_text'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"data\": {\n \"&\": \"$$\",\n \"recordId\": \"${recordId}\",\n \"objectName\": \"${objectName}\"\n },\n \"requestAdaptor\": \"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \\\"${recordId}\\\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"adaptor\": `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n return payload;\n `,\n }\n },\n \"actionType\": \"ajax\"\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${uiSchema.name}`\n },\n \"data\": {\n \"objectName\": `${uiSchema.name}`,\n \"__deletedRecord\": true\n }\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@data.changed.${_master.objectName}\"\n },\n \"data\": {\n \"objectName\": \"${_master.objectName}\",\n \"_isRelated\": \"${_isRelated}\"\n },\n \"expression\": `\\${_master.objectName != '${uiSchema.name}' && _master.objectName}`\n }\n ]\n }\n }\n }\n ],\n \"regions\": [\n \"body\"\n ]\n }\n}","import { i18next } from \"../i18n\";\n\nexport const getSchema = (uiSchema) => {\n return {\n type: \"service\",\n body: [\n {\n type: \"button\",\n label: i18next.t('frontend_import_data'),\n id: \"u:import_data\",\n onEvent: {\n click: {\n actions: [\n {\n actionType: \"dialog\",\n dialog: {\n data: {\n \"&\": \"$$\",\n \"object_name\": \"${objectName}\"\n },\n type: \"dialog\",\n title: i18next.t('frontend_import_data'),\n body: [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"queue_import_history\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"layout\": \"normal\",\n \"defaultData\":{\n \"object_name\": \"${objectName}\"\n },\n \"fieldsExtend\":{\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n }\n },\n \"form\": {\n debug: false,\n resetAfterSubmit: false,\n initApi: {\n url: '/api/v1/queue_import_history/${recordId}?fields=[\"state\"]',\n sendOn: 'this.recordId',\n responseData: {\n importState: \"${state}\"\n }\n },\n interval: 3000,\n stopAutoRefreshWhen: \"this.importState === 'finished'\",\n initFetch: false,\n onEvent: {\n inited: {\n weight: 0,\n actions: [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${uiSchema.name}`\n },\n \"data\": {\n \"objectName\": `${uiSchema.name}`,\n \"displayAs\": \"${displayAs}\",\n \"recordId\": \"xxxx\" //不可以省略,否则会进入进入记录详细页面\n },\n \"expression\": \"this.importState === 'finished'\"\n },\n {\n \"actionType\": \"closeDialog\",\n \"expression\": \"this.importState === 'finished'\"\n }\n ]\n },\n submitSucc: {\n weight: 0,\n actions: [\n {\n args: {\n api: {\n url: \"${context.rootUrl}/api/data/initiateImport\",\n method: \"post\",\n data: {\n eventData: \"${event.data}\",\n },\n dataType: \"json\",\n requestAdaptor:\n \"\\napi.data = {\\n importObjectHistoryId: api.body.eventData.result.data.recordId\\n}\\nreturn api;\",\n adaptor:\n \"payload.status = payload.status === 'success' ? 0 : payload.status;\\nconsole.log(\\\"payload ssss==>\\\", payload)\\nreturn payload;\",\n headers: {\n Authorization:\n \"Bearer ${context.tenantId},${context.authToken}\",\n },\n },\n messages: {\n success: i18next.t('frontend_import_data_message_success'),\n failed: i18next.t('frontend_import_data_message_failed'),\n },\n },\n actionType: \"ajax\",\n expression: \"event.data.result\",\n },\n ],\n },\n },\n closeDialogOnSubmit: false,\n }\n }\n ],\n id: \"u:dc05498d3bd4\",\n closeOnEsc: false,\n closeOnOutside: false,\n showCloseButton: true,\n size: \"lg\",\n },\n },\n ],\n weight: 0,\n },\n },\n level: \"default\",\n },\n ],\n regions: [\"body\"],\n className: \"p-0\",\n id: \"u:bd2f9c4e986f\",\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-07 17:00:38\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-08-24 16:44:42\n * @Description: \n */\nimport { i18next } from \"../i18n\";\n\nexport const getSchema = (uiSchema)=>{\n return {\n \"type\": \"service\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_view'),\n \"className\": \"border-none\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n \"blank\": false,\n \"url\": \"/app/${app_id}/${objectName}/view/${_id}?side_object=${objectName}&side_listview_id=${listName}\"\n },\n \"actionType\": \"link\"\n }\n ]\n }\n },\n \"id\": \"u:ef35c9ae1d19\"\n }\n ],\n \"regions\": [\n \"body\"\n ]\n }\n}","import { i18next } from \"../i18n\";\n\nexport const getSchema = async (uiSchema, ctx) => {\n const requestAdaptor = function () {\n let uiSchema = api.body.uiSchema;\n let list_views_name = api.body.listName;\n let list_views = uiSchema.list_views;\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n const query = JSON.parse(sessionStorage.getItem(listViewPropsStoreKey));\n const { filters, sort, fields: select } = query;\n let filename = uiSchema.label + \"-\" + list_views[list_views_name].label;\n\n var url_tmp = api.url.split('?')[0];\n api.url = url_tmp + \"?$select=\" + encodeURIComponent(select.toString()) + \"&filename=\" + encodeURIComponent(filename);\n // 判断sort 和 filters\n if (sort.length > 0) {\n api.url += \"&$orderby=\" + encodeURIComponent(sort);\n }\n if (filters && filters.length > 0) {\n api.url = api.url + \"&filters=\" + encodeURIComponent(JSON.stringify(filters));\n }\n return api;\n }\n return {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_export_excel'),\n \"id\": \"u:standard_export_excel\",\n \"level\": \"default\",\n \"disabledTip\": i18next.t('frontend_export_excel_toast'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [{\n \"componentId\": \"u:standard_export_excel\",\n \"actionType\": \"disabled\"\n },\n {\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/api/record/export/${objectName}\",\n \"method\": \"get\",\n \"messages\": {},\n \"requestAdaptor\": requestAdaptor.toString().match(/function[^{]+\\{([\\s\\S]*)\\}$/)[1],\n \"data\": {\n \"uiSchema\": \"${uiSchema}\",\n \"listName\": \"${listName}\"\n },\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\"\n },\n {\n \"componentId\": \"u:standard_export_excel\",\n \"actionType\": \"enabled\"\n }\n ]\n }\n }\n }\n ]\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:53:07\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-28 17:06:22\n * @Description: \n */\nimport { i18next } from \"../i18n\";\nimport * as standardNew from '../schema/standard_new.amis.js'\nimport * as standardEdit from '../schema/standard_edit.amis.js'\nimport * as standardDelete from '../schema/standard_delete.amis.js'\nimport * as standardImportData from '../schema/standard_import_data.amis.js'\nimport * as standardOpenView from '../schema/standard_open_view.amis.js'\nimport * as standardExportExcel from '../schema/standard_export_excel.amis.js'\n\nexport const StandardButtons = {\n getStandardNew: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardNew.getSchema(uiSchema, ctx)\n }\n },\n getStandardEdit: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardEdit.getSchema(uiSchema, ctx)\n }\n },\n getStandardDelete: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardDelete.getSchema(uiSchema, ctx)\n }\n },\n getStandardDeleteMany: async (uiSchema, ctx)=>{\n return {\n type: 'script',\n todo: function(){\n const {\n appId,\n objectName,\n uiSchema\n } = this;\n const scopeId = this.scopeId || `amis-${appId}-${objectName}-listview`;\n const scope = this.scope || SteedosUI?.getRef(scopeId);\n //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9\n const listViewRef = scope.parent?.getComponentById(`listview_${uiSchema.name}`);\n if(_.isEmpty(listViewRef.props.store.toJSON().selectedItems)){\n listViewRef.handleAction({}, {\n \"actionType\": \"toast\",\n \"toast\": {\n \"items\": [\n {\n \"position\": \"top-right\",\n \"body\": i18next.t('frontend_delete_many_selected_required')\n }\n ]\n }\n })\n }else{\n listViewRef.handleBulkAction(listViewRef.props.store.toJSON().selectedItems,[],{},listViewRef.props.bulkActions[0]);\n }\n }\n }\n },\n getStandardImportData: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardImportData.getSchema(uiSchema, ctx)\n }\n },\n getStandardOpenView: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardOpenView.getSchema(uiSchema, ctx)\n }\n },\n getStandardExportExcel: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardExportExcel.getSchema(uiSchema, ctx)\n }\n }\n}","import * as _ from 'lodash';\nimport { isExpression, parseSingleExpression } from \"./expression\";\nimport { getUISchema } from \"./objects\";\nimport { i18next } from '../i18n'\n\nimport { StandardButtons } from '../standard/button'\n\nconst getGlobalData = () => {\n return {\n now: new Date(),\n };\n};\n\nexport function getButtonVisibleOn(button){\n let visible= button.visible;\n\n if(button._visible){\n visible = button._visible;\n }\n\n if(_.isBoolean(visible)){\n visible = visible.toString();\n }\n\n if(visible){\n // if(visible.indexOf(\"Meteor.\") > 0 || visible.indexOf(\"Creator.\") > 0 || visible.indexOf(\"Session.\") > 0){\n // console.warn('无效的visible', visible)\n // return 'false';\n // }\n if(visible.trim().startsWith('function')){\n visible = `${visible}.apply({\n object: uiSchema\n }, [objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data])`\n }\n }\n\n if(button.type === 'amis_button'){\n let amisSchema = button.amis_schema;\n if(_.isString(amisSchema)){\n amisSchema = JSON.parse(amisSchema);\n }\n if(amisSchema && amisSchema.body && amisSchema.body.length > 0){\n const btn1 = amisSchema.body[0];\n if(_.hasIn(btn1, 'visibleOn')){\n /* 当含有“更多”按钮或者“下拉”箭头按钮时,单个按钮的visibleOn需要合并到 “更多”按钮或者“下拉”箭头按钮的 visibleOn 中,用||隔开。\n visibleOn的格式需要保持一致; 不能是 js 和 ${xxx} 混合的表达式;\n visibleOn的值需要是js格式,因为默认的编辑、删除等系统按钮的visibleOn的格式就是js格式(function(){}); \n */\n return btn1.visibleOn\n } \n }\n }\n return visible;\n}\n\nexport const getButtonVisible = (button, ctx) => {\n if (button._visible) {\n if (_.startsWith(_.trim(button._visible), \"function\")) {\n window.eval(\"var fun = \" + button._visible);\n button.visible = fun;\n } else if (isExpression(button._visible)) {\n button.visible = (props) => {\n parseSingleExpression(\n button._visible,\n props.record,\n \"#\",\n getGlobalData(),\n props.userSession\n );\n };\n }\n }\n if (_.isFunction(button.visible)) {\n try {\n return button.visible(ctx);\n } catch (error) {\n // console.error(`${button.name} visible error: ${error}`);\n }\n } else {\n return button.visible;\n }\n};\n\n\nexport const standardButtonsTodo = {\n // 批量删除比较特殊, CRUD组件在外部无法触发批量操作action.\n standard_delete_many: function(){\n const {\n listViewId,\n uiSchema,\n scopeId\n } = this;\n const listViewRef = SteedosUI?.getRef(scopeId || listViewId).getComponentById(`listview_${uiSchema.name}`)\n \n if(_.isEmpty(listViewRef.props.store.toJSON().selectedItems)){\n listViewRef.handleAction({}, {\n \"actionType\": \"toast\",\n \"toast\": {\n \"items\": [\n {\n \"position\": \"top-right\",\n \"body\": \"请选择要删除的项\"\n }\n ]\n }\n })\n }else{\n listViewRef.handleBulkAction(listViewRef.props.store.toJSON().selectedItems,[],{},listViewRef.props.bulkActions[0]);\n }\n }\n};\n\n\n/**\n * 按钮显隐规则: 优先使用页面布局上的配置.\n * @param {*} uiSchema \n * @param {*} ctx \n * @returns \n */\nexport const getButtons = (uiSchema, ctx) => {\n const disabledButtons = uiSchema.permissions && uiSchema.permissions.disabled_actions;\n let buttons = _.sortBy(_.values(uiSchema.actions), \"sort\");\n if (_.has(uiSchema, \"allow_customActions\")) {\n buttons = _.filter(buttons, (button) => {\n return _.include(uiSchema.allow_customActions, button.name); // || _.include(_.keys(Creator.getObject('base').actions) || {}, button.name)\n });\n }\n if (_.has(uiSchema, \"exclude_actions\")) {\n buttons = _.filter(buttons, (button) => {\n return !_.include(uiSchema.exclude_actions, button.name);\n });\n }\n\n _.each(buttons, (button) => {\n button.objectName = uiSchema.name;\n if (\n ctx.isMobile &&\n [\"record\", \"record_only\"].indexOf(button.on) > -1 &&\n button.name != \"standard_edit\"\n ) {\n if (button.on == \"record_only\") {\n button.on = \"record_only_more\";\n } else {\n button.on = \"record_more\";\n }\n }\n });\n\n if (\n ctx.isMobile &&\n [\"cms_files\", \"cfs.files.filerecord\"].indexOf(uiSchema.name) > -1\n ) {\n _.map(buttons, (button) => {\n if (button.name === \"standard_edit\") {\n button.on = \"record_more\";\n }\n if (button.name === \"download\") {\n button.on = \"record\";\n }\n });\n }\n\n return _.filter(buttons, (button) => {\n return _.indexOf(disabledButtons, button.name) < 0 && button.name != 'standard_query';\n });\n};\n\nexport const getListViewButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"list\";\n });\n return listButtons;\n};\n\nexport const getObjectDetailButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const detailButtons = _.filter(buttons, (button) => {\n return button.on == \"record\" || button.on == \"record_only\";\n });\n return _.sortBy(detailButtons, \"sort\");\n};\n\nexport const getObjectDetailMoreButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const moreButtons = _.filter(buttons, (button) => {\n return button.on == \"record_more\" || button.on == \"record_only_more\";\n });\n return _.sortBy(moreButtons, \"sort\");\n};\n\nexport const getListViewItemButtons = async (uiSchema, ctx)=>{\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"record\" || button.on == \"list_item\" || button.on === 'record_more';\n });\n return listButtons;\n}\n\nexport const getObjectRelatedListButtons = (uiSchema, ctx)=>{\n // const buttons = getButtons(uiSchema, ctx);\n // const relatedListButtons = _.filter(buttons, (button) => {\n // if(button.objectName === 'cms_files'){\n // // TODO:附件对象本身没有上传按钮,需要自定义\n // }else{\n // return button.name == \"standard_new\";\n // }\n // });\n // return relatedListButtons;\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"list\";\n });\n return listButtons;\n}\n\n/**\n * 由此函数负责内置按钮的转换\n * @param {*} objectName \n * @param {*} buttonName \n * @param {*} ctx \n * @returns \n */\nexport const getButton = async (objectName, buttonName, ctx)=>{\n const uiSchema = await getUISchema(objectName);\n const { props } = ctx;\n if(uiSchema){\n const buttons = await getButtons(uiSchema, ctx);\n const button = _.find(buttons, (button)=>{\n return button.name === buttonName\n });\n\n if(!button){\n return ;\n }\n\n if(button.name == 'standard_edit' && (button.todo === 'standard_edit' && button.type != \"amis_button\")){ // && button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n ...await StandardButtons.getStandardEdit(uiSchema, ctx)\n };\n }\n if(objectName != 'cms_files' && button.name == 'standard_new' && (button.todo === 'standard_new' && button.type != \"amis_button\")){ //&& button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_new.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n ...await StandardButtons.getStandardNew(uiSchema, ctx)\n }\n }\n\n // 如果是standard_delete 且 _visible 中调用了 Steedos 函数, 则自动添加标准的删除功能\n if(button.name == 'standard_delete' && (button.todo === 'standard_delete' && button.type != \"amis_button\")){ // && button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardDelete(uiSchema, ctx)\n }\n }\n\n if(uiSchema.hasImportTemplates && button.name === 'standard_import_data'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardImportData(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_export_excel'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardExportExcel(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_open_view'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardOpenView(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_delete_many'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardDeleteMany(uiSchema, ctx)\n }\n }\n\n return button;\n\n }\n}\n\nexport const execute = (button, props) => {\n if (!button.todo) {\n return; //TODO 弹出提示未配置todo\n }\n\n if (_.isString(button.todo)) {\n if (_.startsWith(_.trim(button.todo), \"function\")) {\n window.eval(\"var fun = \" + button.todo);\n button.todo = fun;\n }\n }\n if (_.isFunction(button.todo)) {\n const todoThis = {\n objectName: props.objectName, \n object_name: props.objectName, \n object: props.uiSchema, \n record: props.record,\n recordId: props.recordId,\n record_id: props.recordId,\n ...props,\n action: button\n }\n return button.todo.apply(todoThis, [todoThis.objectName, todoThis.recordId]);\n }\n};\n\nexport const executeButton = execute;\n\n\nconst getObjectDetailHeaderButtons = (objectSchema, recordId)=>{\n const { name } = objectSchema;\n const buttons = getObjectDetailButtons(objectSchema, {});\n const moreButtons = getObjectDetailMoreButtons(objectSchema, {\n recordId: recordId,\n objectName: name\n })\n let amisButtonsSchema = _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n })\n let moreButtonsVisibleOn = '';\n let dropdownButtons = _.map(moreButtons, (button, index) => {\n if(index === 0){\n moreButtonsVisibleOn = getButtonVisibleOn(button);\n }else{\n moreButtonsVisibleOn = moreButtonsVisibleOn + ' || ' +getButtonVisibleOn(button);\n }\n \n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n }\n })\n return {\n buttons: amisButtonsSchema,\n moreButtons: dropdownButtons,\n moreButtonsVisibleOn\n };\n}\n\nexport const getObjectDetailButtonsSchemas = (objectSchema, recordId, ctx)=>{\n const { buttons, moreButtons, moreButtonsVisibleOn } = getObjectDetailHeaderButtons(objectSchema, recordId);\n if(ctx.formFactor === 'SMALL'){\n const dropdownButtons = [\n ..._.map(buttons, (button) => {\n button.className += ' w-full';\n return button;\n }),\n ..._.map(moreButtons, (button) => {\n button.className += ' w-full';\n return button;\n })\n ];\n\n let phoneMoreButtonsVisibleOn = '';\n _.forEach(dropdownButtons, (button, index) => {\n if(index === 0){\n phoneMoreButtonsVisibleOn = button.visibleOn;\n }else{\n phoneMoreButtonsVisibleOn = phoneMoreButtonsVisibleOn + ' || ' + button.visibleOn;\n }\n })\n\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"visibleOn\": phoneMoreButtonsVisibleOn,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"id\": \"u:fd837823be5b\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": dropdownButtons,\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n if(moreButtons.length > 0){\n const dropdownButtonsSchema = {\n type: \"steedos-dropdown-button\",\n label: \"\",\n buttons: moreButtons,\n className: 'slds-icon ml-1',\n visibleOn: moreButtonsVisibleOn\n }\n buttons.push(dropdownButtonsSchema);\n }\n return buttons;\n }\n}\n\n\nexport const getObjectListViewButtonsSchemas = (objectSchema, ctx)=>{\n const buttons = getListViewButtons(objectSchema, ctx);\n if(ctx.formFactor === 'SMALL'){\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"className\": \"mr-0\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"id\": \"u:fd837823be5b\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": [\n ..._.map(buttons, (button)=>{\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name} w-full`\n }\n })\n ],\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n return _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n });\n }\n}\n\nexport const getObjectRecordDetailRelatedListButtonsSchemas = (objectSchema, ctx)=>{\n const buttons = getObjectRelatedListButtons(objectSchema, ctx);\n if(ctx.formFactor === 'SMALL'){\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": [\n ..._.map(buttons, (button)=>{\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name} w-full`\n }\n })\n ],\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n return _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n });\n }\n}","import { getFieldSearchable } from \"./fields/index\";\nimport { includes, map } from \"lodash\";\nimport { i18next } from \"../../../i18n\"\nexport async function getObjectFieldsFilterButtonSchema(objectSchema) {\n // const amisListViewId = `listview_${objectSchema.name}`;\n return {\n \"type\": \"button\",\n \"label\": \"\",\n \"icon\": \"fa fa-search\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"broadcast_toggle_fields_filter\"\n }\n }\n ]\n }\n }\n }\n}\n\nexport async function getObjectFieldsFilterFormSchema(ctx) {\n\n if (!ctx) {\n ctx = {};\n }\n const formSchema = {\n \"type\": \"service\",\n \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"className\": ctx.formFactor === 'SMALL' ? \"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden\" : \"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2\",\n \"style\":{\n \"max-height\":ctx.formFactor === 'SMALL'?\"30vh\":\"unset\"\n },\n \"schemaApi\": {\n method: 'post',\n url: `\\${context.rootUrl}/graphql?reload=\\${filterFormSearchableFields|join}`,\n data: {\n $self: \"$$\",\n query: \"{\\n data: objects(filters: [[\\\"_id\\\",\\\"=\\\",null]],top: 1, skip: 0){_id}\\n }\"\n },\n requestAdaptor: `\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n `,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n \"body\": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn(\"run function getFieldSearchable failed.\");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(ctx)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n };\n\n return formSchema;\n}\n\nexport async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {\n if (!ctx) {\n ctx = {};\n }\n const btnSearchId = \"btn_filter_form_search_\" + new Date().getTime();\n const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);\n const keywordsSearchBoxName = ctx.keywordsSearchBoxName || \"__keywords\";\n const onSearchScript = `\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === \"\" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n showFieldsFilter = true;\n }\n else if(isMobile){\n // 如果是手机端,点击搜索后自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === \"split\") {\n // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n `;\n const onCancelScript = `\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(k !== \"__keywords\"){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = \"${keywordsSearchBoxName}\";\n //lookup字段保留快速搜索条件\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 100);\n // 移除搜索按钮上的红点\n let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n `;\n const dataProviderInited = `\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(\",\");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), \"sort_no\"),\n \"name\"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let crudService = SteedosUI.getRef(data.$scopeId).parent.getComponentById(\"service_listview_\" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n `;\n const onSearchableFieldsChangeScript = `\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为\"listview-filter-form\"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === \"string\"){\n preSearchableFields = preSearchableFields.split(\",\");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, \"form\", \"listview-filter-form\");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__\\.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__\\.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 100)\n // ===END===\n `;\n return {\n \"type\": \"service\",\n \"name\": \"service_listview_filter_form\",\n \"data\": {\n // \"showFieldsFilter\": false\n // \"filterFormSearchableFields\": [\"name\"],//默认可搜索项\n // \"filterFormValues\": {\"__searchable__name\": \"xxx\"},//搜索项表单值\n // \"listViewId\": \"${listViewId}\"\n },\n // \"id\": `service_listview_filter_form_${objectSchema.name}`,\n \"dataProvider\": {\n \"inited\": dataProviderInited\n },\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": [filterFormSchema, {\n \"type\": \"wrapper\",\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": [\n {\n \"type\": \"button\",\n \"id\": btnSearchId,\n \"label\": i18next.t('frontend_fields_filter_button_search'),\n \"icon\": \"fa fa-search\",\n // \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSearchScript\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_cancel'),\n \"name\": \"btn_filter_form_cancel\",\n // \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onCancelScript\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_fields_filter_button_settings'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"size\": \"md\",\n \"title\": i18next.t('frontend_fields_filter_button_settings'),\n \"body\": [\n {\n \"type\": \"form\",\n \"title\": \"\",\n \"body\": [\n {\n \"label\": \"\",\n \"type\": \"transfer\",\n \"name\": \"fields\",\n \"id\": \"u:92c0b3cccca0\",\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options\",\n \"dataType\": \"json\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"$self\": \"$$\"\n },\n \"requestAdaptor\": \"\",\n \"adaptor\": `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = ((payload.data && payload.data.options) || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n `\n },\n \"options\": [],\n \"required\": true,\n \"placeholder\": \"-\",\n \"className\": \"col-span-2 m-0\",\n \"checkAll\": false,\n \"searchable\": true,\n \"sortable\": true,\n \"joinValues\": false,\n \"extractValue\": true,\n \"multiple\": true\n }\n ],\n \"id\": \"u:e5ac506d5683\",\n \"mode\": \"normal\",\n \"persistData\": false,\n \"promptPageLeave\": true,\n \"name\": \"form\",\n \"debug\": false,\n \"actions\": [],\n \"panelClassName\": \"m-0\",\n \"bodyClassName\": \"p-4\",\n \"className\": \"steedos-amis-form\"\n }\n ],\n \"id\": \"u:ca99fa9fe1b1\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_cancel'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:4e447b5ca72a\"\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_confirm'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSearchableFieldsChangeScript\n },\n {\n \"actionType\": \"click\",\n \"componentId\": btnSearchId,\n \"args\": {\n \"__from_fields_filter_settings_confirm\": true\n }\n },\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDrawer\"\n }\n ]\n }\n },\n \"id\": \"u:14e7388fecd3\",\n \"level\": \"primary\"\n }\n ],\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"data\": {\n \"&\": \"$$\",\n \"objectName\": \"${objectName}\",\n \"listName\": \"${listName}\",\n \"listViewId\": \"${listViewId}\",\n \"uiSchema\": \"${uiSchema}\",\n \"isLookup\": \"${isLookup}\",\n \"context\": \"${context}\",\n \"fields\": \"${filterFormSearchableFields}\"\n }\n }\n }\n ]\n }\n },\n \"id\": \"u:b96d84868a5a\",\n \"level\": \"link\"\n }\n ],\n \"size\": \"xs\",\n \"className\": \"space-x-4\"\n },\n \"size\": \"xs\",\n \"className\": \"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0\"\n }],\n \"size\": \"xs\",\n \"className\": \"slds-filters\"\n },\n \"size\": \"xs\",\n \"className\": `border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!ctx.isLookup && \"mt-2\"}`,\n \"visibleOn\": \"this.showFieldsFilter\",\n },\n \"className\": \"bg-white\"\n };\n}\n\n","import { getObjectRelatedListButtons, getButtonVisibleOn } from '../../buttons'\nimport { getObjectFieldsFilterButtonSchema, getObjectFieldsFilterBarSchema } from './fields_filter';\nimport { map, each, sortBy, compact, keys } from 'lodash';\n\nimport { getObjectDetailButtonsSchemas, getObjectListViewButtonsSchemas, getObjectRecordDetailRelatedListButtonsSchemas } from '../../buttons'\n\n/**\n * 列表视图顶部第一行amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {\n const { icon, label } = objectSchema;\n const listViewButtonOptions = [];\n each(\n objectSchema.list_views,\n (listView, name) => {\n if(name === \"lookup\"){\n // 内置lookup为弹出选择专用视图,不显示在列表切换区域\n return;\n }\n listViewButtonOptions.push({\n type: \"button\",\n label: listView.label,\n actionType: \"link\",\n link: `/app/\\${appId}/${objectSchema.name}/grid/${name}`\n });\n }\n );\n\n let amisButtonsSchema = getObjectListViewButtonsSchemas(objectSchema, {formFactor: ctx.formFactor})\n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n const standardNewButton = _.find(amisButtonsSchema, { name: \"standard_new\" });\n const buttonSchema = [{\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n \"visibleOn\": \"${display == 'split'?false:true}\"\n }]\n if(ctx.formFactor !== 'SMALL'){\n const restButtons = Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== \"standard_new\"):[]\n buttonSchema.push({\n \"type\": \"flex\",\n \"items\":[\n standardNewButton,\n (restButtons.length > 0) && {\n \"type\": \"dropdown-button\",\n \"buttons\": restButtons,\n \"className\": \" ml-1\",\n \"menuClassName\": \"p-none split-dropdown-buttons\",\n \"align\": \"right\",\n \"size\": \"sm\"\n }\n ],\n \"visibleOn\": \"${display == 'split'?true:false}\"\n })\n }\n return {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": {\n \"type\": \"tpl\",\n \"className\": \"block\",\n \"tpl\":`<svg class=\"slds-icon slds-icon_container slds-icon-standard-${standardIcon} slds-page-header__icon\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n },\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\",\n \"valign\": \"middle\",\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `${label}`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"text-md leading-none text-black\",\n },\n {\n \"type\": \"dropdown-button\",\n \"className\": \"\", \n \"label\": \"\\${listName ? uiSchema.list_views[listName].label : uiSchema.list_views[defaultListName].label}\",\n \"rightIcon\": \"fa fa-caret-down\",\n \"size\": \"sm\",\n \"hideCaret\": true,\n \"closeOnClick\": true,\n \"btnClassName\": \"!bg-transparent !border-none !hover:border-none text-lg h-5 font-bold p-0 text-black leading-none\",\n \"buttons\": listViewButtonOptions\n }\n ],\n \"md\": \"\",\n \"columnClassName\": \"p-l-xs\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"md\": \"auto\"\n },\n {\n \"body\": buttonSchema,\n \"md\": \"auto\",\n \"valign\": \"middle\",\n }\n ],\n \"className\": \"flex justify-between\"\n }\n}\n\n/**\n * 列表视图顶部第二行amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {\n const amisListViewId = `listview_${objectSchema.name}`;\n const fieldsFilterButtonSchema = await getObjectFieldsFilterButtonSchema(objectSchema);\n // const onFilterChangeScript = `\n // const eventData = event.data;\n // const uiSchema = eventData.uiSchema;\n // const listName = eventData.listName;\n // const listViewId = eventData.listViewId;\n // var selectedListView = uiSchema.list_views[listName]\n // var filter = eventData.filter;\n // SteedosUI.ListView.showFilter(uiSchema.name, {\n // listView: selectedListView,\n // data: {\n // filters: SteedosUI.ListView.getVisibleFilter(selectedListView, filter, { listViewId }),\n // },\n // onFilterChange: (filter) => {\n // doAction({\n // componentId: \\`service_listview_\\${uiSchema.name}\\`,\n // actionType: 'setValue',\n // \"args\": {\n // \"value\": {\n // filter: filter\n // }\n // }\n // });\n // doAction({\n // componentId: \\`listview_\\${uiSchema.name}\\`,\n // actionType: 'reload',\n // \"args\": {\n // filter: filter\n // }\n // });\n // }\n // });\n // `;\n let secordLineSchema = {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": \"${$count} 个项目\",\n \"visibleOn\": \"this.$count >= 0\",\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"leading-none\",\n \"style\": {\n \"fontFamily\": \"\",\n \"fontSize\": 14\n },\n \"id\": \"u:1661f8471235\"\n }\n ],\n \"md\": \"auto\",\n \"columnClassName\": \"flex items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": \"\",\n \"icon\": \"fa fa-refresh\",\n \"actionType\": \"reload\",\n \"target\": amisListViewId,\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n },\n fieldsFilterButtonSchema,\n // {\n // \"type\": \"button\",\n // \"label\": \"\",\n // \"icon\": \"fa fa-filter\",\n // \"actionType\": \"custom\",\n // \"className\": \"bg-transparent p-2 rounded border-gray-300 text-gray-500\",\n // \"id\": \"u:c20cb87d96c9\",\n // \"onEvent\": {\n // \"click\": {\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": onFilterChangeScript\n // }\n // ],\n // \"weight\": 0\n // }\n // }\n // }\n ],\n \"md\": \"auto\"\n }\n ],\n \"className\": \"flex justify-between\"\n };\n return secordLineSchema;\n}\n\n\n/**\n * 列表视图顶部放大镜过滤条件栏amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectListHeaderFieldsFilterBar(objectSchema, listViewName, ctx) {\n const fieldsFilterBarSchema = await getObjectFieldsFilterBarSchema(objectSchema, ctx);\n return fieldsFilterBarSchema;\n}\n\n/**\n * 列表视图顶部amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport function getObjectListHeader(objectSchema, listViewName, ctx) {\n if (!ctx) {\n ctx = {};\n }\n let firstLineSchema = getObjectListHeaderFirstLine(objectSchema, listViewName, ctx);\n let body = [firstLineSchema];\n let headerSchema = [{\n \"type\": \"wrapper\",\n \"body\": body,\n \"className\": `bg-gray-100 sm:rounded-tl sm:rounded-tr p-4 -mb-4`\n }];\n return headerSchema;\n}\n\n/**\n * 记录详细界面顶部头amisSchema,也是标题面板组件的amisSchema\n * @param {*} objectSchema 对象UISchema\n * @param {*} recordId 记录id\n * @param {*} optioins: {showRecordTitle: true}\n * @returns amisSchema\n */\nexport async function getObjectRecordDetailHeader(objectSchema, recordId, options) {\n const { showRecordTitle = true } = options || {}\n // console.log('getObjectRecordDetailHeader==>', objectSchema, recordId)\n const { name, label, icon, NAME_FIELD_KEY } = objectSchema;\n \n let amisButtonsSchema = getObjectDetailButtonsSchemas(objectSchema, recordId, options);\n\n // console.log(`getObjectRecordDetailHeader==>`, amisButtonsSchema)\n \n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n\n const gridBody = [];\n if(showRecordTitle){\n gridBody.push({\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [{\n \"type\": \"service\",\n \"onEvent\": {\n \"@history_paths.changed\": {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"body\":[{\n \"type\": \"button\",\n \"visibleOn\": \"${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}\",\n \"className\":\"flex mr-4\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"window.goBack()\"\n }\n ]\n }\n },\n \"body\": [\n {\n \"type\": \"steedos-icon\",\n \"category\": \"utility\",\n \"name\": \"back\",\n \"colorVariant\": \"default\",\n \"className\": \"slds-button_icon slds-global-header__icon w-4\"\n }\n ]\n }]\n },{\n \"type\": \"tpl\",\n \"className\": \"block\",\n // \"tpl\": `<img class='slds-icon slds-icon_container slds-icon-standard-${standardIcon}' src='\\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg'>`\n \"tpl\":`<svg class=\"slds-icon slds-icon_container slds-icon-standard-${standardIcon} slds-page-header__icon\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n }],\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `${label}`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"leading-4 text-md\"\n },\n {\n \"type\": \"tpl\",\n \"tpl\": \"${name}\",\n // \"tpl\": \"${(record && uiSchema && record[uiSchema.NAME_FIELD_KEY]) || name}\",\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"record-detail-header-name leading-5 text-xl font-bold\"\n }\n ],\n \"columnClassName\": \"p-l-xs\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"columnClassName\": \"flex-initial\",\n \"md\": \"auto\",\n })\n };\n\n gridBody.push({\n \"body\": {\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n },\n \"md\": \"auto\",\n // \"hiddenOn\": \"${recordLoaded != true}\"\n })\n\n let body = [\n {\n \"type\": \"wrapper\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": gridBody,\n \"className\": \"flex justify-between flex-nowrap\"\n }\n ],\n \"hiddenOn\": \"${recordLoaded != true}\"\n }\n ];\n\n if(showRecordTitle){\n body.push({\n \"type\": \"wrapper\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [gridBody[0]],\n \"className\": \"flex justify-between\"\n }\n ],\n \"hiddenOn\": \"${recordLoaded == true}\"\n })\n }\n\n return {\n type: 'service',\n id: `page_readonly_${name}_header`,\n name: `page`,\n data: { objectName: name, _id: recordId, recordPermissions: objectSchema.permissions, uiSchema: objectSchema, record: \"${record}\" },\n body: body, \n className: ''\n }\n\n}\n\n/**\n * 记录详细界面中相关表顶部头amisSchema\n * @param {*} relatedObjectSchema 相关对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relatedLabel, ctx) {\n const { icon, label } = relatedObjectSchema;\n let amisButtonsSchema = getObjectRecordDetailRelatedListButtonsSchemas(relatedObjectSchema, {formFactor: ctx.formFactor});\n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n const recordRelatedListHeader = {\n \"type\": \"wrapper\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"valign\": \"middle\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"grid\",\n \"valign\": \"middle\",\n \"className\": \"flex justify-between\",\n \"columns\": [\n {\n \"body\": {\n \"type\": \"tpl\",\n \"className\": \"block\",\n // \"tpl\": `<img class=\\\"slds-icon_small slds-icon_container slds-icon-standard-${standardIcon}\\\" src=\\\"\\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg\\\" />`\n \"tpl\":`<svg class=\"w-6 h-6 slds-icon slds-icon_container slds-icon-standard-${standardIcon}\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n },\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `<a class=\"text-black text-base font-bold hover:font-bold\" href=\"/app/\\${appId}/\\${_master.objectName}/\\${_master.recordId}/\\${objectName}/grid?related_field_name=\\${relatedKey}\">${relatedLabel}(\\${$count})</a>`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"\",\n }\n ],\n \"md\": \"\",\n \"valign\": \"middle\",\n \"columnClassName\": \"p-l-xs\"\n }\n ]\n }\n ],\n \"md\": \"auto\"\n },\n {\n \"body\": {\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n },\n \"md\": \"auto\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"className\": \"p-3\"\n };\n return recordRelatedListHeader;\n}\n\n/**\n * 点击记录详细界面相关表顶部标题进入的相关表页面的顶部amisSchema\n * @param {*} objectSchema \n * @param {*} recordId \n * @param {*} relatedObjectName \n * @returns amisSchema\n */\nexport async function getObjectRelatedListHeader(objectSchema, recordId, relatedObjectName) {\n}","import { i18next } from \"../../../../../i18n\"\nexport const getNewListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_new_label'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_new_title'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"all\": \"${uiSchema.list_views.all}\",\n \"list_view\": \"${uiSchema.list_views[listName]}\",\n \"appId\": \"${appId}\",\n \"global\": \"${global}\",\n \"targetObjectName\": \"${objectName}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"defaultData\": {\n \"&\": \"${list_view}\",\n \"name\":\"\",\n \"label\":\"\",\n \"filters\":\"\",\n \"shared\":false,\n \"object_name\": \"${targetObjectName}\",\n },\n \"fieldsExtend\": fieldsExtend(),\n \"fields\": fields(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n // 直接使用recordId不能拿到数据,只能通过result里面拿数据\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n },\n \"messages\": {\n \"success\": i18next.t('frontend_listview_control_new_message_success'),\n \"failed\": i18next.t('frontend_listview_control_new_message_failed')\n },\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fields(){\n return [\n \"label\",\n \"name\",\n \"object_name\",\n \"filter_scope\",\n \"show_count\",\n \"columns\",\n \"sort\",\n \"filters\",\n \"mobile_columns\",\n \"searchable_fields\",\n \"is_system\",\n \"shared\"\n ]\n}\n\nfunction fieldsExtend(){\n return {\n \"label\": {\n \"is_wide\": true\n },\n \"name\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_scope\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"columns\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"mobile_columns\":{\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"searchable_fields\":{\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"filter_fields\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"scrolling_mode\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"sort\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"show_count\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"type\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"shared\": {\n \"amis\": {\n \"visibleOn\": \"${global.user.is_space_admin}\"\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getCopyListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_clone_label'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_clone_title'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"listName\": \"${listName}\",\n \"targetObjectName\": \"${objectName}\",\n \"list_view\": \"${uiSchema.list_views[listName]}\",\n \"appId\": \"${appId}\",\n \"global\": \"${global}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"defaultData\": {\n \"&\": \"${list_view}\",\n \"name\":\"\",\n \"label\": i18next.t('frontend_listview_control_clone_defaultData_label_start') + \" ${list_view.label} \" + i18next.t('frontend_listview_control_clone_defaultData_label_end'),\n \"shared\":false,\n \"object_name\": \"${targetObjectName}\",\n },\n \"fieldsExtend\": fieldsExtend(),\n \"fields\": fields(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n }\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fields(){\n return [\n \"label\",\n \"name\",\n \"object_name\",\n \"filter_scope\",\n \"show_count\",\n \"columns.$.field\",\n \"columns.$.width\",\n \"sort.$.field_name\",\n \"sort.$.order\",\n \"filters\",\n \"mobile_columns.$.field\",\n \"searchable_fields.$.field\",\n \"is_system\",\n \"shared\"\n ]\n}\n\nfunction fieldsExtend(){\n return {\n \"label\": {\n \"is_wide\": true\n },\n \"name\": {\n \"is_wide\": true,\n \"amis\": {\n \"hidden\": true\n }\n },\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_scope\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"columns\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_fields\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"scrolling_mode\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"sort\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"show_count\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"type\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"shared\": {\n \"amis\": {\n \"visibleOn\": \"${global.user.is_space_admin}\"\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getRenameListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_rename_label'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_rename_title'),\n \"data\": {\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"label\"\n ],\n \"fieldsExtend\": \"{\\n \\\"label\\\":{\\n \\\"is_wide\\\": true\\n }\\n}\",\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n },\n ]\n }\n }\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewShareButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_share'),\n \"disabledOn\": \"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_share'),\n \"data\": {\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"shared\"\n ]\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"md\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewFiltersButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_filters'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_filters'),\n \"data\": {\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"filters\"\n ],\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor(),\n \"fieldsExtend\": fieldsExtend(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n }\n }\n ],\n \"className\": \"steedos-overflow-visible-dialog\",\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\n\nfunction initApiAdaptor(){\n return `\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n `\n}\n\nfunction fieldsExtend(){\n return {\n \"filters\": {\n \"visible_on\": \"true\",\n \"amis\": {\n \"type\": \"condition-builder\",\n \"label\": i18next.t('frontend_listview_control_filters_fields_extend'),\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}\",\n \"dataType\": \"json\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\n\nexport const getSetListviewColumnsButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_columns'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {},\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_columns'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fieldsExtend\": fieldsExtend(),\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor(),\n \"fields\": [\n \"columns\",\n \"mobile_columns\"\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\"\n }\n ]\n }\n }\n }\n ],\n \"searchable\": true,\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fieldsExtend(){\n return {\n \"columns\": {\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n },\n \"mobile_columns\": {\n \"group\": i18next.t('frontend_listview_control_columns_mobile_group'),\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}\n\nfunction initApiAdaptor(){\n return `\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n `\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewSortButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_sort'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_sort'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"className\": \"\",\n \"id\": \"u:061f158b4c5a\",\n \"mode\": \"edit\",\n \"fields\": [\n \"sort\",\n \"sort.$.field_name\",\n \"sort.$.order\"\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\"\n }\n ]\n }\n },\n \"fieldsExtend\": fieldsExtend(),\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor()\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"id\": \"u:d3f6947b6acf\",\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fieldsExtend(){\n return {\n \"sort\": {\n \"amis\": {\n \"type\": \"tabs-transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}\n\nfunction initApiAdaptor(){\n return `\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort && formData.sort.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n `\n}","import { i18next } from \"../../../../../i18n\"\nexport const getDeleteListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_delete_label'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"confirmText\": i18next.t('frontend_listview_control_delete_confirm_text'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"&\": \"$$\",\n \"uiSchema\": \"${uiSchema}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\"\n },\n \"messages\": {\n \"success\": i18next.t('frontend_listview_control_delete_message_success')\n },\n \"requestAdaptor\": requestAdaptor(),\n \"adaptor\": adaptor(),\n }\n }\n },\n {\n \"actionType\": \"url\",\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${objectName}/grid/all\",\n \"blank\": false\n },\n \"expression\": \"data.delete == 1\"\n }\n ]\n }\n }\n }\n}\n\n\nfunction requestAdaptor(){\n return `\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(\\`delete:object_listviews__delete(id: \"\\${recordId}\")\\`); }\n api.data = { query: \\`mutation{\\${deleteArray.join(',')}}\\` };\n return api;\n `\n}\n\nfunction adaptor(){\n return `\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n `\n}","import { getNewListviewButtonSchema } from \"./setting_listview/new\"\nimport { getCopyListviewButtonSchema } from \"./setting_listview/copy\"\nimport { getRenameListviewButtonSchema } from \"./setting_listview/rename\"\nimport { getSetListviewShareButtonSchema } from \"./setting_listview/share\"\nimport { getSetListviewFiltersButtonSchema } from \"./setting_listview/filters\"\nimport { getSetListviewColumnsButtonSchema } from \"./setting_listview/columns\"\nimport { getSetListviewSortButtonSchema } from \"./setting_listview/sort\"\nimport { getDeleteListviewButtonSchema } from \"./setting_listview/delete\"\nimport { i18next } from \"../../../../i18n\"\n\nexport const getSettingListviewToolbarButtonSchema = ()=>{\n return {\n \"type\": \"dropdown-button\",\n \"trigger\": \"click\",\n \"icon\": \"fa fa-cog\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_listview_control_tooltip'),\n \"btnClassName\": \"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"right\",\n \"visibleOn\": \"${!isLookup}\",\n \"buttons\": [\n {\n \"label\": i18next.t('frontend_button_listview_control_label'),\n \"children\": [\n getNewListviewButtonSchema(),\n getCopyListviewButtonSchema(),\n getRenameListviewButtonSchema(),\n getSetListviewShareButtonSchema(),\n getSetListviewFiltersButtonSchema(),\n getSetListviewColumnsButtonSchema(),\n getSetListviewSortButtonSchema(),\n getDeleteListviewButtonSchema()\n ]\n }\n ]\n }\n}","import { getObjectListHeaderFieldsFilterBar } from './header';\nimport { Router } from \"@steedos-widgets/amis-lib\";\nimport { getExportExcelToolbarButtonSchema } from './toolbars/export_excel';\nimport { getSettingListviewToolbarButtonSchema } from './toolbars/setting_listview'; \nimport { i18next } from \"../../../i18n\"\nimport * as Fields from './fields/index';\n\nconst getDisplayAsButton = function(objectName, showDisplayAs){\n let displayAs = Router.getTabDisplayAs(objectName);\n let buttons = [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_display_type_is_table'),\n \"onClick\": \"const key = 'tab_\"+objectName+\"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\\\"side_object\\\") && urlSearch.get(\\\"side_listview_id\\\")){url=`/app/${props.data.appId}/${urlSearch.get(\\\"side_object\\\")}/grid/${urlSearch.get(\\\"side_listview_id\\\")}`;}; props.env.jumpTo(url + '?display=grid');\",\n \"rightIcon\": displayAs != 'split' ? \"fa fa-check\" : null,\n \"rightIconClassName\": \"m-l-sm\"\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_display_type_is_split'),\n \"onClick\": \"const key = 'tab_\"+objectName+\"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);\",\n \"rightIcon\": displayAs === 'split' ? \"fa fa-check\" : null,\n \"rightIconClassName\": \"m-l-sm\"\n }\n ];\n const displayAsLabel = displayAs === 'split'? i18next.t('frontend_display_type_is_split') : i18next.t('frontend_display_type_is_table');\n return {\n \"type\": \"dropdown-button\",\n \"icon\": \"fa fa-table-columns\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": `${i18next.t('frontend_display_as')} ${displayAsLabel}`,\n \"btnClassName\": \"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"right\",\n \"visibleOn\": \"${window:innerWidth > 768 && !!!isLookup}\",\n \"buttons\": [ \n {\n \"label\": i18next.t('frontend_display_as'),\n \"children\": buttons\n }\n ]\n };\n}\n\n\nconst onFieldsFilterToggleScript = `\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 1000);\n}\nresizeWindow();\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"button\", { \n// direction: \"down\", \n// name: \"btn_filter_form_cancel\" \n// });\n// buttonCancel.props.dispatchEvent('click', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n`;\n\nfunction getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = \"__keywords\" } = {}){\n const searchableFieldsLabel = [];\n _.each(mainObject.fields, function (field) {\n if (Fields.isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {\n searchableFieldsLabel.push(field.label);\n }\n });\n\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let crudKeywords = \"\";\n if(localListViewProps && !isLookup){\n localListViewProps = JSON.parse(localListViewProps);\n crudKeywords = (localListViewProps && localListViewProps.__keywords) || \"\";\n }\n\n return {\n \"type\": \"tooltip-wrapper\",\n \"id\": \"steedos_crud_toolbar_quick_search\",\n \"align\": \"right\",\n \"title\": \"\",\n \"content\": \"可搜索字段:\" + searchableFieldsLabel.join(\",\"),\n \"placement\": \"bottom\",\n \"tooltipTheme\": \"dark\",\n \"trigger\": \"click\",\n \"className\": formFactor !== 'SMALL' ? \"mr-1\" : '',\n \"visible\": !!searchableFieldsLabel.length,\n \"body\": [\n {\n \"type\": \"search-box\",\n \"name\": keywordsSearchBoxName,\n \"placeholder\": \"搜索此列表\",\n \"value\": crudKeywords,\n \"clearable\": true,\n \"clearAndSubmit\": true,\n \"searchImediately\": false\n }\n ]\n }\n}\n\nexport function getObjectHeaderToolbar(mainObject, fields, formFactor, { \n showDisplayAs = false, hiddenCount = false, headerToolbarItems, \n filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){\n // console.log(`getObjectHeaderToolbar====>`, filterVisible)\n // console.log(`getObjectHeaderToolbar`, mainObject)\n\n const isMobile = window.innerWidth < 768;\n if(isMobile){\n showDisplayAs = false;\n }\n let toolbarCount;\n if(!hiddenCount){\n toolbarCount = {\n \"type\": \"tpl\",\n \"tpl\": \"${count} \" + i18next.t('frontend_record_sum')\n };\n }\n let toolbarReloadButton;\n if(formFactor === 'SMALL'){\n // const onReloadScript = `\n // const scope = event.context.scoped;\n // var listView = scope.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // listView.handleChangePage(1);\n // `;\n // toolbarReloadButton = {\n // // \"type\": \"reload\",//不可以直接使用reload,因为它不会设置页码到第一页,这在加载更多按钮的翻页模式下会有问题\n // \"type\": \"button\",\n // \"align\": \"right\",\n // //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n // \"tooltipPlacement\": \"top\",\n // \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n // \"label\": \"\",\n // \"icon\": \"fa fa-sync\",\n // \"visibleOn\": \"${!showFieldsFilter}\",\n // \"onEvent\": {\n // \"click\": {\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": onReloadScript\n // }\n // ]\n // }\n // },\n // };\n\n // 后续如果换成加载更多按钮的翻页模式的话,不可以直接使用下面的reload,需要换成上面的自定义脚本模式\n toolbarReloadButton = {\n \"type\": \"reload\",\n \"align\": \"right\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n \"tooltip\":\"\",\n \"tooltipPlacement\": \"top\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n };\n }\n else{\n toolbarReloadButton = {\n \"type\": \"reload\",\n \"align\": \"right\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n \"tooltip\":\"\",\n \"tooltipPlacement\": \"top\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n };\n }\n let toolbarFilter;\n if(filterVisible){\n toolbarFilter ={\n \"label\": i18next.t('frontend_button_search_tooltip'),\n \"icon\": \"fa fa-filter\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_search_tooltip'),\n // \"tooltipPlacement\": \"top\",\n \"type\": \"button\",\n \"badge\": {\n \"offset\": [\n -5,\n 1\n ],\n \"size\":8,\n \"animation\": true,\n \"visibleOn\": \"${isFieldsFilterEmpty == false && isLookup != true}\"\n },\n \"align\": \"right\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onFieldsFilterToggleScript\n }\n ]\n }\n },\n \"id\": \"steedos_crud_toolbar_filter\"\n };\n }\n let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name, showDisplayAs);\n let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });\n\n // toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {\"type\": \"tpl\",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom\n // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中\n let toolbars = [];\n if(formFactor === 'SMALL'){\n if(toolbarCount){\n toolbars.push(toolbarCount);\n }\n if(toolbarFilter){\n toolbars.push(toolbarFilter);\n }\n toolbars.push(toolbarReloadButton);\n toolbars.push(toolbarDisplayAsButton);\n toolbars.push(toolbarDQuickSearchBox);\n return [\n // \"bulkActions\",\n ...(headerToolbarItems || []),\n ...toolbars,\n ]\n }else{\n if(toolbarCount){\n toolbars.push(toolbarCount);\n }\n if(toolbarFilter){\n toolbars.push(toolbarFilter);\n }\n toolbars.push(toolbarReloadButton);\n toolbars.push(toolbarDisplayAsButton);\n if(mainObject?.permissions?.allowCreateListViews){\n toolbars.push(getSettingListviewToolbarButtonSchema());\n }\n toolbars.push(toolbarDQuickSearchBox);\n return [\n // \"filter-toggler\",\n ...(headerToolbarItems || []),\n \"bulkActions\",\n // 不能放开crud columns-toggler否则crud card模式会报错\n // {\n // \"type\": \"columns-toggler\",\n // \"className\": \"hidden\"\n // },\n ...toolbars,\n // {\n // \"type\": \"columns-toggler\",\n // \"className\": \"mr-2\"\n // },\n // getExportExcelToolbarButtonSchema(),\n // {\n // \"type\": \"drag-toggler\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"pagination\",\n // \"align\": \"right\"\n // }\n ]\n }\n\n\n \n}\n\nexport function getObjectFooterToolbar(mainObject, formFactor, options) {\n // crud card模式与table模式两种情况下showPageInput默认值不一样,所以需要显式设置为false\n if (formFactor === 'SMALL') {\n // return [\n // \"load-more\",\n // ]\n if(options.displayAs === 'split'){\n return [\n \"switch-per-page\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 5,\n \"showPageInput\": false\n }\n ]\n }else{\n return [\n // \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 5,\n \"showPageInput\": false\n }\n ]\n }\n }\n else {\n if(options && options.isRelated){\n return [\n \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 10,\n \"showPageInput\": false\n }\n ]\n\n }\n else{\n const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);\n const is_lookup = options.isLookup;\n const commonConfig = [\n \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 10,\n \"showPageInput\": false\n }\n ];\n\n if (no_pagination && is_lookup) {\n return commonConfig;\n } else {\n return [\"switch-per-page\", ...commonConfig];\n }\n }\n }\n}\n\nexport async function getObjectFilter(objectSchema, fields, options) {\n const fieldsFilterBarSchema = await getObjectListHeaderFieldsFilterBar(objectSchema, null, options);\n let onSubmitSuccScript = `\n let isLookup = event.data.isLookup;\n if(isLookup){\n return;\n }\n // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 1000);\n }\n resizeWindow();\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, \"form\");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"service\");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData()\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\");\n crudService && crudService.setData({isFieldsFilterEmpty});\n `;\n return {\n \"title\": \"\",\n \"submitText\": \"\",\n \"className\": \"\",\n \"debug\": false,\n \"mode\": \"normal\",\n \"wrapWithPanel\": false,\n \"body\": [\n fieldsFilterBarSchema\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSubmitSuccScript\n }\n ]\n }\n }\n }\n}\n","import * as graphql from '../graphql';\nimport * as Field from './index';\nimport * as Tpl from '../tpl';\nimport * as _ from 'lodash';\nimport { getUISchema, getListViewSort } from '../../../objects';\nimport { getLookupListView } from '../util';\n\nconst refUsersObjectName = \"space_users\";\nconst refOrgsObjectName = \"organizations\";\n\nasync function getSource(field, ctx) {\n // data.query 最终格式 \"{ \\tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }\"\n const refObjectName = ctx.objectName;\n const data = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"value\" }, { name: ctx.labelField, alias: \"label\" }, { name: \"children\" }], {\n alias: \"options\",\n filters: \"{__filters}\"\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // const childrenData = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"ref\" }], {\n // alias: \"children\",\n // filters: \"{__filters}\"\n // });\n // childrenData.query = childrenData.query.replace(/,count\\:.+/, \"}\");\n // data.query = data.query.replace(/}$/, \",\" + childrenData.query.replace(/{(.+)}/, \"$1}\"));\n const defaultValueOptionsData = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"value\" }, { name: ctx.labelField, alias: \"label\" }], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\"\n });\n defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + defaultValueOptionsData.query.replace(/{(.+)}/, \"$1}\"))\n let valueField = `${field.name}`;\n if(field._prefix){\n // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.\n valueField = `${field._prefix}${field.name}`;\n }\n if(ctx.fieldNamePrefix){\n // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__\n valueField = `${ctx.fieldNamePrefix}${valueField}`;\n }\n data.$value = `$${valueField}`;\n data['$'] = `$$`;\n const requestAdaptor = `\n var filters = [['parent', '=', null]];\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"${ctx.valueField}\", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [[\"${ctx.valueField}\", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;\n const adaptor = `\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a[\"value\"]=== b[\"value\"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi(),\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n }\n}\n\nasync function getDeferApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:{__object_name}(filters:{__filters}){{__fields}} }\"\n const refObjectName = ctx.objectName;\n const data = await graphql.getFindQuery({ name: \"{__object_name}\" }, null, [], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n let filters = field.filters;\n if(typeof filters === \"string\"){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(typeof filters === \"function\"){\n filters = filters(field);\n }\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换\n data.query = data.query.replace(\"{_id}\", \"{{__fields}}\");\n const requestAdaptor = `\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = \"\";\n if (dep) {\n objectName = \"${refObjectName}\";\n fields = \"_id,value:${ctx.valueField},label:${ctx.labelField},children\";\n filters = [['parent', '=', dep]];\n sort = \"${ctx.sort}\";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n const adaptor = `\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&dep=${value}\",\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nasync function getSearchApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}\"\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n const data = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\" }, { name: \"name\" }, { name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n const filters = field.filters;\n const requestAdaptor = `\n var term = api.query.term;\n var filters;\n var sort = \"\";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n var fieldsForSearch = [\"name\", \"username\", \"email\", \"mobile\"];\n var termFilters = [];\n fieldsForSearch.forEach(function (field) {\n termFilters.push([field, 'contains', term]);\n termFilters.push(\"or\");\n });\n termFilters.pop();\n filters.push(termFilters);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&term=${term}\",\n \"requestAdaptor\": requestAdaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getRefListViewSort(refObject){\n let listView = getLookupListView(refObject);\n \n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n return sort;\n}\n\nexport async function lookupToAmisTreeSelect(field, readonly, ctx) {\n if (!field) {\n return {}\n }\n\n if (!ctx) {\n ctx = {};\n }\n const amisSchema = {\n \"type\": Field.getAmisStaticFieldType('tree-select', readonly)\n };\n\n if (readonly) {\n amisSchema.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n else{\n const refObjectConfig = await getUISchema(ctx.objectName);\n ctx.sort = getRefListViewSort(refObjectConfig);\n Object.assign(amisSchema, {\n // \"labelField\": ctx.labelField,\n // \"valueField\": ctx.valueField,\n \"multiple\": field.multiple,\n \"searchable\": field.searchable,\n \"extractValue\": true,\n \"hideNodePathLabel\": true,\n \"clearable\": true,\n \"source\": await getSource(field, ctx),\n \"deferApi\": await getDeferApi(field, ctx),\n // \"searchApi\": await getSearchApi(field, ctx)\n });\n if(field.multiple){\n // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题\n Object.assign(amisSchema, {\n \"joinValues\": false,\n });\n }\n if (typeof amisSchema.searchable !== \"boolean\") {\n amisSchema.searchable = true;\n }\n const onEvent = field.onEvent;\n if (onEvent) {\n amisSchema.onEvent = onEvent;\n }\n }\n return amisSchema;\n}\n","import { getUISchema } from '../../../objects';\nimport * as _ from 'lodash'\nimport * as graphql from '../graphql'\nimport * as Tpl from '../tpl';\nimport * as Field from './index';\nimport * as Table from './table';\nimport * as List from './list';\nimport { getLookupListView } from '../util';\nimport { getSelectUserSchema } from './user';\nimport { getObjectHeaderToolbar, getObjectFooterToolbar, getObjectFilter } from './../toolbar';\nimport { getListViewSort } from './../../../objects';\nimport { lookupToAmisTreeSelect } from './tree_select';\nimport * as standardNew from '../../../../schema/standard_new.amis'\nimport { i18next } from \"../../../../i18n\";\n\nconst keywordsSearchBoxName = `__keywords_lookup`;\n\nexport const getReferenceTo = async (field)=>{\n let referenceTo = field.reference_to;\n if(!referenceTo){\n return ;\n }\n\n if(referenceTo === 'users'){\n referenceTo = 'space_users';\n field.reference_to_field = 'user'\n }\n\n const refObjectConfig = await getUISchema(referenceTo)\n\n // 如果lookup 引用的对象未定义\n if (!refObjectConfig)\n return null;\n\n let valueField = null;\n let valueFieldName = field.reference_to_field;\n if(!valueFieldName){\n valueFieldName = refObjectConfig.idFieldName || '_id';\n }\n if(valueFieldName === '_id'){\n valueField = {name: '_id', label: 'ID', type: 'text', toggled: false};\n }else{\n valueField = refObjectConfig.fields[valueFieldName] || {name: valueFieldName};\n }\n return {\n objectName: referenceTo,\n valueField: valueField,\n labelField: refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY || 'name'],\n NAME_FIELD_KEY: refObjectConfig.NAME_FIELD_KEY || 'name'\n }\n}\n\nexport function getLookupSapceUserTreeSchema(isMobile){\n const treeSchema = {\n \"type\": \"input-tree\",\n \"className\":\"steedos-select-user-tree\",\n \"inputClassName\": \"p-0\",\n \"source\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"adaptor\": \"if (payload.data.treeCache == true) {\\n return payload;\\n }\\n const records = payload.data.options;\\n const treeRecords = [];\\n const getChildren = (records, childrenIds) => {\\n if (!childrenIds) {\\n return;\\n }\\n const children = _.filter(records, (record) => {\\n return _.includes(childrenIds, record.value)\\n });\\n _.each(children, (item) => {\\n if (item.children) {\\n item.children = getChildren(records, item.children)\\n }\\n })\\n return children;\\n }\\n\\n const getRoot = (records) => {\\n for (var i = 0; i < records.length; i++){\\n records[i].noParent = 0;\\n if (!!records[i].parent) {\\n biaozhi = 1\\n for (var j = 0; j < records.length; j++){\\n if (records[i].parent == records[j].value)\\n biaozhi = 0;\\n }\\n if (biaozhi == 1) records[i].noParent = 1;\\n } else records[i].noParent = 1;\\n }\\n }\\n getRoot(records);\\n console.log(records)\\n\\n _.each(records, (record) => {\\n if (record.noParent ==1) {\\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\\n }\\n });\\n console.log(treeRecords)\\n\\n payload.data.options = treeRecords;\\n payload.data.treeCache = true;\\n return payload;\\n \",\n \"requestAdaptor\": \"\\n \",\n \"data\": {\n \"query\": \"{options:organizations(filters:[\\\"hidden\\\", \\\"!=\\\", true],sort:\\\"sort_no desc\\\"){value:_id label:name,parent,children}}\"\n },\n \"messages\": {\n },\n \"cache\": 300000\n },\n \"onEvent\": {\n \"change\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": `\n const scope = event.context.scoped;\n var filterFormValues={\n \"__searchable__organizations_parents\":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n `\n },\n {\n \"actionType\": \"custom\",\n \"script\": \" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }\"\n }\n ]\n }\n },\n \"label\": \"\",\n \"name\": \"organizations\",\n \"multiple\": false,\n \"joinValues\": false,\n \"clearValueOnHidden\": false,\n \"fieldName\": \"organizations\",\n \"hideRoot\": true,\n \"initiallyOpen\": false,\n \"extractValue\": true,\n \"onlyChildren\": true,\n \"treeContainerClassName\": \"no-border\",\n \"showIcon\": false,\n \"enableNodePath\": false,\n \"autoCheckChildren\": false,\n \"searchable\": true,\n \"searchConfig\": {\n \"sticky\": true,\n \"placeholder\": \"查找部门\"\n },\n \"unfoldedLevel\": 2,\n \"originPosition\": \"left-top\"\n }\n const tree = []\n if(isMobile){\n tree.push({\n type: \"action\",\n body:[\n {\n type: \"action\",\n body:[\n treeSchema\n ],\n className:\"h-full w-[240px]\"\n }\n ],\n className: \"absolute inset-0 steedos-select-user-sidebar\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')\"\n }\n ]\n }\n },\n id: \"steedos_crud_toolbar_select_user_tree\"\n })\n tree.push({\n \"type\": \"button\",\n \"label\": \"组织\",\n \"icon\": \"fa fa-sitemap\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"left\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')\"\n }\n ]\n }\n },\n \"id\": \"steedos_crud_toolbar_organization_button\"\n })\n }else{\n tree.push(treeSchema)\n }\n \n return tree;\n}\n\nexport async function lookupToAmisPicker(field, readonly, ctx){\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return ;\n }\n const refObjectConfig = await getUISchema(referenceTo.objectName);\n\n ctx.idFieldName = refObjectConfig.idFieldName\n ctx.objectName = refObjectConfig.name\n\n let tableFields = [];\n const searchableFields = [];\n\n let fieldsArr = [];\n \n const isMobile = window.innerWidth < 768;\n\n let listView = getLookupListView(refObjectConfig);\n let listName = listView && listView.name;\n if (listView && listView.columns) {\n _.each(listView.columns, function (column) {\n if (_.isString(column) && refObjectConfig.fields[column]) {\n fieldsArr.push(refObjectConfig.fields[column]);\n } else if (_.isObject(column) && refObjectConfig.fields[column.field]) {\n fieldsArr.push(\n Object.assign({}, refObjectConfig.fields[column.field], {\n width: column.width,\n wrap: column.wrap,\n })\n );\n }\n });\n }else{\n _.each(refObjectConfig.fields, (field, field_name)=>{\n if(field_name != '_id' && !field.hidden){\n if(!_.has(field, \"name\")){\n field.name = field_name\n }\n fieldsArr.push(field)\n }\n });\n // 没有视图权限时,取对象上前5个字段,按sort_no排序\n fieldsArr = _.sortBy(fieldsArr, \"sort_no\").slice(0,5);\n }\n\n _.each(fieldsArr,function(field){\n if(!_.find(tableFields, function(f){\n return f.name === field.name\n })){\n tableFields.push(field)\n }\n });\n\n _.each(refObjectConfig.fields, function (field) {\n if(Field.isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){\n searchableFields.push(field.name);\n }\n });\n\n const fields = {\n [referenceTo.labelField.name]: referenceTo.labelField,\n [referenceTo.valueField.name]: referenceTo.valueField\n };\n\n _.each(tableFields, (tableField)=>{\n if(!tableField.hidden){\n fields[tableField.name] = tableField;\n }\n });\n\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n\n const source = await getApi(refObjectConfig, null, fields, {expand: true, alias: 'rows', queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n \n if(source.url && !ctx.inFilterForm){\n const depend_on = [];\n const sendOn = [];\n _.each(field.depend_on, (fName)=>{\n depend_on.push(`depend_on_${fName}=\\${${fName}}`)\n sendOn.push(`this.${fName}`)\n })\n if(depend_on.length > 0){\n source.url = `${source.url}?${depend_on.join('&')}`;\n source.sendOn = `${sendOn.join(' && ')}`\n }\n }\n \n source.data.$term = \"$term\";\n source.data.$self = \"$$\";\n \n source.requestAdaptor = `\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n let fieldValue;\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [[\"${referenceTo.valueField.name}\", \"=\", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [[\"${referenceTo.valueField.name}\", \"=\", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${referenceTo?.objectName === \"space_users\"} && ${field.reference_to_field === \"user\"}){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${keywordsSearchBoxName}, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ${JSON.stringify(field.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${ctx.inFilterForm};\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${refObjectConfig.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `\n source.adaptor = `\n const enable_tree = ${refObjectConfig.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n // 这里不可以用_.pick函数让payload只返回labelField和valueField,因为字段上配置的amis autoFill功能可能依赖了其他字段\n /*\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, [\"${referenceTo.labelField.name}\", \"${referenceTo.valueField.name}\"]);\n })\n payload.data.rows = rows;\n */\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `;\n if(field.optionsFunction || field._optionsFunction){\n source.adaptor = `\n payload.data.rows = eval(${field.optionsFunction || field._optionsFunction})(api.data.$self);\n return payload;\n `\n }\n let top = 20;\n\n if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){\n top = 1000;\n };\n\n\n let pickerSchema = null;\n if(false){\n // if(ctx.formFactor === 'SMALL'){\n pickerSchema = await List.getListSchema(tableFields, {\n top: top,\n ...ctx,\n actions: false\n })\n }else{\n let labelFieldName = refObjectConfig.NAME_FIELD_KEY || 'name';\n // organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.\n if(refObjectConfig.name === 'organizations'){\n labelFieldName = 'name';\n }\n pickerSchema = await Table.getTableSchema(tableFields, {\n labelFieldName,\n top: top,\n isLookup: true,\n ...ctx\n })\n\n pickerSchema.affixHeader = false;\n\n var headerToolbarItems = [];\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\"){\n headerToolbarItems = getLookupSapceUserTreeSchema(isMobile);\n pickerSchema.className = pickerSchema.className || \"\" + \" steedos-select-user\";\n }\n\n pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });\n const isAllowCreate = refObjectConfig.permissions.allowCreate;\n const isCreate = _.isBoolean(field.create) ? field.create : true;\n // lookup字段配置过滤条件就强制不显示新建按钮\n let isHasFilters = (field.filters || field._filtersFunction) ? true : false;\n if (isAllowCreate && isCreate && !isHasFilters) {\n const new_button = await standardNew.getSchema(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });\n new_button.align = \"right\";\n // 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后\n pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length - 1, 0, new_button);\n }\n pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup: true});\n if (ctx.filterVisible !== false) {\n pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {\n ...ctx,\n isLookup: true,\n keywordsSearchBoxName\n });\n }\n pickerSchema.data = Object.assign({}, pickerSchema.data, {\n \"&\": \"$$\",\n \"objectName\": refObjectConfig.name,\n \"uiSchema\": refObjectConfig,\n \"listName\": listName,// 需要按视图取可搜索项\n \"isLookup\": true\n });\n\n if(!pickerSchema.onEvent){\n pickerSchema.onEvent = {}\n }\n\n pickerSchema.onEvent[`@data.changed.${refObjectConfig.name}`] = {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n },\n {\n \"actionType\": \"custom\",\n \"script\": `\n const masterRecord = event.data._master && event.data._master.record;\n const fieldConfig = ${JSON.stringify(field)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(ctx)};\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `\n }\n ]\n }\n }\n\n if(field.pickerSchema){\n pickerSchema = Object.assign({}, pickerSchema, field.pickerSchema)\n }\n\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\" && isMobile){\n //手机端选人控件只保留部分toolbar\n pickerSchema.headerToolbar = pickerSchema.headerToolbar && pickerSchema.headerToolbar.filter(function(item){\n if([\"steedos_crud_toolbar_quick_search\",\"steedos_crud_toolbar_filter\",\"steedos_crud_toolbar_select_user_tree\",\"steedos_crud_toolbar_organization_button\"].indexOf(item.id) > -1){\n return true;\n }else{\n return false;\n }\n })\n pickerSchema.footerToolbar = [\"pagination\"]\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('picker', readonly),\n modalTitle: i18next.t('frontend_form_please_select') + \" \" + refObjectConfig.label,\n labelField: referenceTo.labelField.name,\n valueField: referenceTo.valueField.name,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n modalMode: 'dialog', //TODO 设置 dialog 或者 drawer,用来配置弹出方式\n source: source,\n size: \"lg\",\n pickerSchema: pickerSchema,\n joinValues: false,\n extractValue: true\n }\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}\n\nexport async function lookupToAmisSelect(field, readonly, ctx){\n let referenceTo = await getReferenceTo(field);\n const valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n // const labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n\n let apiInfo;\n let defaultValueOptionsQueryData;\n if(referenceTo){\n // 字段值单独走一个请求合并到source的同一个GraphQL接口中\n defaultValueOptionsQueryData = await graphql.getFindQuery({ name: referenceTo.objectName }, null, [\n Object.assign({}, referenceTo.labelField, {alias: 'label'}),\n Object.assign({}, referenceTo.valueField, {alias: 'value'})\n ], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\",\n count: false\n });\n apiInfo = await getApi({\n name: referenceTo.objectName\n }, null, [\n Object.assign({}, referenceTo.labelField, {alias: 'label'}),\n Object.assign({}, referenceTo.valueField, {alias: 'value'})\n ], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: \"{__sort}\"`});\n\n apiInfo.adaptor = `\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a[\"value\"]=== b[\"value\"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n `;\n }else{\n apiInfo = {\n method: \"post\",\n url: graphql.getApi(),\n data: {query: '{objects(filters: [\"_id\", \"=\", \"-1\"]){_id}}', $: \"$$\"},\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n\n const refObjectConfig = referenceTo && await getUISchema(referenceTo.objectName);\n let listView = getLookupListView(refObjectConfig);\n\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n\n // 列表视图搜索栏中,即inFilterForm=true时,不需要执行depend_on\n if(apiInfo.url && !ctx.inFilterForm){\n const depend_on = [];\n const sendOn = [];\n _.each(field.depend_on, (fName)=>{\n depend_on.push(`depend_on_${fName}=\\${${fName}}`)\n sendOn.push(`this.${fName}`)\n })\n if(depend_on.length > 0){\n apiInfo.url = `${apiInfo.url}?${depend_on.join('&')}`;\n apiInfo.sendOn = `${sendOn.join(' && ')}`\n }\n }\n \n apiInfo.data.$term = \"$term\";\n // apiInfo.data.$value = `$${field.name}.${referenceTo ? referenceTo.valueField.name : '_id'}`;\n apiInfo.data.$value = ctx.isRefToMutiple ? `$${field.name}.ids` : `$${field.name}`;\n _.each(field.depend_on, function(fName){\n apiInfo.data[fName] = `$${fName}`;\n })\n apiInfo.data['$'] = `$$`;\n apiInfo.data['rfield'] = `\\${object_name}`;\n // [[\"_id\", \"=\", \"$${field.name}._id\"],\"or\",[\"name\", \"contains\", \"$term\"]]\n apiInfo.requestAdaptor = `\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [[\"${referenceTo?.NAME_FIELD_KEY || 'name'}\", \"contains\", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [[\"_id\", \"=\", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(field.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n if(${referenceTo?.objectName === \"space_users\"} && ${field.reference_to_field === \"user\"}){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n const inFilterForm = ${ctx.inFilterForm};\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = \"${sort}\";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"${valueFieldKey}\", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n const defaultValueOptionsQueryData = ${JSON.stringify(defaultValueOptionsQueryData)};\n const defaultValueOptionsQuery = defaultValueOptionsQueryData?.query?.replace(/^{/,\"\").replace(/}$/,\"\");\n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [[\"${valueFieldKey}\", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n if(defaultValueOptionsQuery){\n api.data.query = \"{\"+api.data.query.replace(/^{/,\"\").replace(/}$/,\"\")+\",\"+defaultValueOptionsQuery+\"}\";\n } \n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `\n let labelField = referenceTo ? referenceTo.labelField.name : '';\n let valueField = referenceTo ? referenceTo.valueField.name : '';\n if(field.optionsFunction || field._optionsFunction){\n apiInfo.adaptor = `\n var options = eval(${field.optionsFunction || field._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `\n labelField = 'label';\n valueField = 'value';\n }else if(field.options){\n apiInfo.adaptor = `\n var options = ${JSON.stringify(field.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `\n labelField = 'label';\n valueField = 'value';\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('select', readonly),\n joinValues: false,\n extractValue: true,\n clearable: true,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n // labelField: labelField,\n // valueField: valueField,\n // source: apiInfo,\n autoComplete: apiInfo,\n searchable: true,\n }\n //删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题\n const select_menuTpl = `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-\\${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\\${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>\\${label}</span>\n </span>`\n data.menuTpl = \"${icon ? `\"+select_menuTpl+\"` : label}\"\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}\n\nasync function getApi(object, recordId, fields, options){\n const data = await graphql.getFindQuery(object, recordId, fields, options);\n return {\n method: \"post\",\n url: graphql.getApi(),\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport async function lookupToAmis(field, readonly, ctx){\n if(!ctx){\n ctx = {};\n }\n // console.log(`lookupToAmis====`, field, readonly, ctx)\n if(readonly){\n return {\n type: Field.getAmisStaticFieldType('picker', readonly),\n tpl: Tpl.getRelatedFieldTpl(field, ctx)\n }\n }\n if(field.reference_to && !_.isString(field.reference_to) && !readonly){\n return {\n type: 'steedos-field-lookup',\n field,\n readonly,\n ctx,\n }\n // return await lookupToAmisGroup(field, readonly, ctx);\n }\n\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return await lookupToAmisSelect(field, readonly, ctx);\n }\n\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\"){\n ctx = Object.assign({}, ctx, {\n onlyDisplayLookLabel: true\n });\n if(ctx.idsDependOn){\n // ids人员点选模式\n return await lookupToAmisIdsPicker(field, readonly, ctx);\n }\n // 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口\n // return await lookupToAmisSelectUser(field, readonly, ctx);\n }\n\n const refObject = await getUISchema(referenceTo.objectName);\n\n // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性\n let enableEnhancedLookup = _.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;\n // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式\n if(enableEnhancedLookup == true){\n return await lookupToAmisPicker(field, readonly, ctx);\n }else if(refObject.enable_tree) {\n return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {\n labelField: referenceTo.labelField?.name || 'name',\n valueField: referenceTo.valueField?.name || '_id',\n objectName: referenceTo.objectName\n }));\n }else{\n return await lookupToAmisSelect(field, readonly, ctx);\n }\n}\n\nexport async function lookupToAmisSelectUser(field, readonly, ctx){\n return getSelectUserSchema(field, readonly, ctx);\n}\n\nexport async function lookupToAmisIdsPicker(field, readonly, ctx){\n return getIdsPickerSchema(field, readonly, ctx);\n}\n\nexport async function getIdsPickerSchema(field, readonly, ctx){\n if(!ctx){\n ctx = {};\n }\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return ;\n }\n const refObjectConfig = await getUISchema(referenceTo.objectName);\n\n const { idsDependOn } = ctx;\n\n const fields = {\n [referenceTo.labelField.name]: referenceTo.labelField,\n [referenceTo.valueField.name]: referenceTo.valueField\n };\n\n const tableFields = [referenceTo.labelField];\n\n const source = await getApi(refObjectConfig, null, fields, {expand: true, alias: 'rows', queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n \n source.data.$term = \"$term\";\n source.data.$self = \"$$\";\n\n if(idsDependOn && source.url && !ctx.inFilterForm){\n source.sendOn = `\\${${idsDependOn} && ${idsDependOn}.length}`;\n source.url = `${source.url}&depend_on_${idsDependOn}=\\${${idsDependOn}|join}`;\n }\n\n let listView = getLookupListView(refObjectConfig);\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n \n source.requestAdaptor = `\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [[\"${referenceTo.valueField.name}\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"${referenceTo.valueField.name}\", \"=\", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = \"${idsDependOn}\";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push([\"${referenceTo.valueField.name}\", \"=\", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `;\n\n let top = 1000;\n\n let pickerSchema = null;\n if(ctx.formFactor === 'SMALL'){\n pickerSchema = await List.getListSchema(tableFields, {\n top: top,\n ...ctx,\n actions: false\n })\n }else{\n pickerSchema = await Table.getTableSchema(tableFields, {\n labelFieldName: refObjectConfig.NAME_FIELD_KEY,\n top: top,\n isLookup: true,\n ...ctx\n })\n\n pickerSchema.affixHeader = false;\n\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('picker', readonly),\n labelField: referenceTo.labelField.name,\n valueField: referenceTo.valueField.name,\n modalMode: 'dialog', \n source: source,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n size: \"lg\",\n pickerSchema: pickerSchema,\n joinValues: false,\n extractValue: true\n }\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(ctx.value){\n data.value = ctx.value;\n }\n\n if(ctx.selectFirst != undefined){\n data.selectFirst = ctx.selectFirst;\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2023-01-13 17:27:54\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-08-28 17:45:38\n * @Description: \n */\nimport { i18next } from \"../../../../i18n\"\n\nexport const getMarkdownFieldSchema = (field, readonly, ctx)=>{\n if(readonly){\n return {\n \"type\": \"control\",\n \"label\": field.label,\n \"body\": {\n \"type\": \"markdown\",\n \"name\": field.name,\n \"options\": {\n \"linkify\": true,\n \"html\": true,\n \"breaks\": true\n }\n }\n }\n }else{\n return {\n \"type\": \"control\",\n \"label\": field.label,\n \"body\": [\n {\n \"type\": \"tabs\",\n \"tabsMode\": \"strong\",\n \"className\": \"steedos-markdown\",\n \"tabs\": [\n {\n \"title\": i18next.t('frontend_form_edit'),\n \"tab\": [\n {\n \"type\": \"editor\",\n \"name\": field.name,\n \"language\": \"markdown\",\n }\n ]\n },\n {\n \"title\": i18next.t('frontend_form_preview'),\n \"tab\": [\n {\n \"type\": \"markdown\",\n \"name\": field.name,\n \"options\": {\n \"linkify\": true,\n \"html\": true,\n \"breaks\": true\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}\n\nexport const getHtmlFieldSchema = (field, readonly, ctx)=>{\n if(readonly){\n // return {\n // \"type\": \"control\",\n // \"label\": field.label,\n // \"body\": {\n // \"type\": \"html\",\n // \"name\": field.name\n // }\n // }\n return {\n \"type\": \"input-rich-text\",\n \"receiver\": \"${context.rootUrl}/s3/images\",\n \"name\": field.name,\n \"options\": {\n \"menu\": {\n \"insert\": {\n \"title\": \"Insert\",\n \"items\": \"image link media addcomment pageembed codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents | insertdatetime\"\n }\n },\n \"plugins\": [\n \"autoresize\"\n ],\n // \"max_height\": 2000,\n \"statusbar\": false,\n \"readonly\": true,\n \"toolbar\": false,\n \"menubar\": false\n }\n }\n }else{\n return {\n \"type\": \"input-rich-text\",\n \"receiver\": \"${context.rootUrl}/s3/images\",\n \"options\":{\n \"menu\": {\n \"insert\": {\n \"title\": \"Insert\",\n \"items\": \"image link media addcomment pageembed codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents | insertdatetime\"\n }\n }\n },\n \"name\": field.name\n }\n // return {\n // \"type\": \"group\",\n // \"body\": [\n // {\n // \"type\": \"editor\",\n // \"name\": field.name,\n // \"language\": \"html\"\n // },\n // {\n // \"type\": \"html\",\n // \"name\": field.name\n // }\n // ]\n // }\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-28 14:52:55\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-07-28 16:16:29\n * @Description: \n */\nimport * as _ from 'lodash';\n\nconst AmisFormInputs = [\n 'text',\n 'date',\n 'file',\n \"avatar\",\n 'image',\n 'datetime',\n 'time',\n 'number',\n 'currency',\n 'percent',\n 'password',\n 'url',\n 'email'\n]\n\nexport function getAmisStaticFieldType(type, readonly, options){\n if(!readonly){\n if(_.includes(AmisFormInputs, type)){\n return `input-${type}`;\n }else if(type === 'location'){\n return \"location-picker\"\n }\n return type;\n }\n if(_.includes(['text','image'], type)){\n if('text' === type && options && options.amis && options.amis.tpl){\n return 'static';\n }\n if('image' === type && options && options.multiple){\n return `static-images`;\n }\n return `static-${type}`;\n }else if(type === 'url'){\n return \"input-url\"\n }else{\n return 'static';\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-28 14:15:09\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-10-30 17:51:54\n * @Description: \n */\nimport { getAmisStaticFieldType } from './type';\n\nconst getFileTableName = (steedosField)=>{\n switch (steedosField.type ) {\n case 'avatar':\n return 'avatars'\n case 'image':\n return 'images'\n case 'file':\n return 'files'\n default:\n break;\n }\n};\n\nconst getAmisFieldType = (steedosField, readonly)=>{\n return getAmisStaticFieldType(steedosField.type === 'avatar' ? 'image' : steedosField.type, readonly, {multiple: steedosField.multiple});\n}\n\nexport const getAmisFileReadonlySchema = (steedosField)=>{\n const type = steedosField.type;\n const amisFieldType = getAmisFieldType(steedosField, true)\n if(_.includes(['avatar','image'], type)){\n return {\n type: amisFieldType,\n defaultImage: '',\n enlargeAble: true,\n showToolbar: true,\n }\n }\n if(type === 'file'){\n return {\n type: amisFieldType,\n tpl: `\n <% let fileData = data._display.${steedosField.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`\n }\n }\n}\n\nexport const getAmisFileEditSchema = (steedosField)=>{\n const tableName = getFileTableName(steedosField);\n const amisFieldType = getAmisFieldType(steedosField, false)\n let convertData = {\n type: amisFieldType,\n useChunk: false, // 关闭分块上传\n receiver: {\n method: \"post\",\n dataType: \"form-data\",\n url: `\\${context.rootUrl}/s3/${tableName}`,\n requestAdaptor: `\n const { _master, global,context } = api.body;\n // const { recordId, objectName } = _master;\n const { spaceId, userId, user } = global;\n /*\n record_id: recordId,\n parent: recordId,\n object_name: objectName,\n owner_name: user.name,\n space: spaceId,\n owner: userId\n */\n // 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。\n api.data.append('space', spaceId);\n api.data.append('owner', userId);\n\n return api;\n `,\n adaptor: `\n const { context } = api.body; \n var rootUrl = context.rootUrl + \"/api/files/${tableName}/\";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n if(steedosField.multiple){\n convertData.multiple = true;\n convertData.joinValues = false;\n convertData.extractValue = true;\n }\n return convertData;\n}\n\nexport const getAmisFileSchema = (steedosField, readonly)=>{\n return readonly ? getAmisFileReadonlySchema(steedosField) : getAmisFileEditSchema(steedosField);\n}","import { cloneDeep, includes } from 'lodash';\nimport { lookupToAmis } from './lookup';\nimport { getMarkdownFieldSchema, getHtmlFieldSchema } from './editor';\nimport * as Fields from '../fields';\nimport * as Tpl from '../tpl';\nimport * as File from './file';\nimport { getAmisStaticFieldType } from './type';\nimport * as _ from 'lodash'\n\nexport const QUICK_SEARCHABLE_FIELD_TYPES = [\"text\", \"textarea\", \"autonumber\", \"url\", \"email\"];\nexport const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];\nexport { getAmisStaticFieldType } from './type';\n// const Lookup = require('./lookup');\n\nexport function getBaseFields(readonly){\n let calssName = 'm-1';\n if(readonly){\n calssName = `${calssName}`\n }\n return [\n { \n name: \"createdInfo\", \n label: \"创建人\",\n type: \"static\",\n labelClassName: 'text-left',\n className: calssName,\n tpl: Tpl.getCreatedInfoTpl()\n },\n { \n name: \"modifiedInfo\", \n label: \"修改人\",\n type: \"static\",\n labelClassName: 'text-left',\n className: calssName,\n tpl: Tpl.getModifiedInfoTpl()\n }\n ]\n};\n\n\n\nexport function getAmisFieldType(sField){\n switch (sField.type) {\n case 'text':\n return 'text';\n case 'textarea':\n return 'textarea';\n case 'html':\n return 'html';\n case 'markdown':\n return 'markdown';\n case 'select':\n return 'select';\n case 'boolean':\n return 'checkbox';\n case 'date':\n return 'date';\n case 'datetime':\n return 'datetime';\n case 'number':\n return 'number';\n case 'currency':\n return 'number';\n case 'percent':\n return 'number'\n case 'password':\n return 'password';\n case 'lookup':\n // TODO 根据字段配置返回 select || picker\n return 'select';\n case 'master_detail':\n // TODO 根据字段配置返回 select || picker\n return 'picker';\n case 'autonumber':\n return 'text';\n case 'url':\n return 'url'\n case 'email':\n return 'email'\n case 'image':\n return 'image'\n case 'formula':\n //TODO\n break;\n case 'summary':\n //TODO\n break;\n case 'grid':\n return 'table';\n default:\n console.log('convertData default', sField.type);\n // convertData.type = field.type\n break;\n }\n\n};\n\nexport function getObjectFieldSubFields(mainField, fields){\n const newMainField = Object.assign({subFields: []}, mainField);\n const subFields = _.filter(fields, function(field){\n let result = field.name.startsWith(`${mainField.name}.`) && _.split(field.name, \".\").length < 3;\n if(result){\n field._prefix = `${mainField.name}.`\n }\n return result;\n });\n newMainField.subFields = subFields;\n return newMainField;\n}\n\nexport function getGridFieldSubFields(mainField, fields){\n const newMainField = Object.assign({subFields: []}, mainField);\n const subFields = _.filter(fields, function(field){\n let result = field.name.startsWith(`${mainField.name}.`)\n if(result){\n field._prefix = `${mainField.name}.`\n }\n return result;\n });\n newMainField.subFields = subFields;\n return newMainField;\n}\n\n/**\n * TODO 处理权限\n * @param {*} object steedos object\n * @param {*} userSession \n */\n export function getPermissionFields(object, userSession){\n const permissionFields = [];\n const fieldsArr = [];\n\t_.each(object.fields , (field, field_name)=>{\n\t\tif(!_.has(field, \"name\")){\n\t\t\tfield.name = field_name\n }\n\t\tfieldsArr.push(field)\n })\n _.each(_.sortBy(fieldsArr, \"sort_no\"), function(field){\n if(!field.hidden){\n permissionFields.push( Object.assign({}, field, {permission: {allowEdit: true}}))\n }\n })\n return permissionFields;\n}\n\n\nexport function getSelectFieldOptions(field){\n const dataType = field.data_type || 'text';\n const options = [];\n _.each(field.options, (item)=>{\n switch (dataType) {\n case 'number':\n options.push({label: item.label, value: Number(item.value), icon: item.icon});\n break;\n case 'text':\n options.push({label: item.label, value: String(item.value), icon: item.icon});\n break;\n case 'boolean':\n options.push({label: item.label, value: item.value === 'false' ? false : true, icon: item.icon});\n break;\n default:\n break;\n }\n });\n return options;\n}\n\nexport async function convertSFieldToAmisField(field, readonly, ctx) {\n // console.log('convertSFieldToAmisField====>', field, readonly, ctx)\n const isMobile = window.innerWidth <= 768;\n let rootUrl = null;\n // 创建人和修改人、创建时间和修改时间不显示\n if(_.includes(OMIT_FIELDS, field.name) && ctx.showSystemFields != true){\n return;\n }\n const baseData = {name: ctx.fieldNamePrefix ? `${ctx.fieldNamePrefix}${field.name}` : field.name, label: field.label, labelRemark: field.inlineHelpText, required: _.has(ctx, 'required') ? ctx.required : field.required};\n let convertData = {\n };\n // if(_.includes(OMIT_FIELDS, field.name)){\n // readonly = true;\n // }\n switch (field.type) {\n case 'text':\n convertData.type = getAmisStaticFieldType('text', readonly, field);\n break;\n case 'textarea':\n convertData.type = getAmisStaticFieldType('textarea', readonly);\n // convertData.tpl = `<b><%=data.${field.name}%></b>`;\n convertData.tpl = `<%=(data.${field.name} || \"\").split(\"\\\\n\").join('<br>')%>`;\n break;\n case 'html':\n convertData = getHtmlFieldSchema(field, readonly)\n break;\n // convertData = {\n // type: getAmisStaticFieldType('html', readonly)\n // }\n // break;\n case 'markdown':\n convertData = getMarkdownFieldSchema(field, readonly)\n break;\n // convertData = {\n // type: getAmisStaticFieldType('html', readonly)\n // }\n // break;\n case 'select':\n if(readonly){\n const map = Tpl.getSelectMap(field.options);\n convertData = {\n type: \"static-mapping\",\n name: field.name,\n label: field.label,\n map: map\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('select', readonly),\n joinValues: false,\n options: getSelectFieldOptions(field),\n extractValue: true,\n clearable: true,\n labelField: 'label',\n valueField: 'value'\n }\n const select_menuTpl = `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-\\${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\\${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>\\${label}</span>\n </span>`\n convertData.menuTpl = \"${icon ? `\"+select_menuTpl+\"` : label}\"\n if(field.multiple){\n convertData.multiple = true\n convertData.extractValue = true\n }\n }\n\n break;\n case 'boolean':\n convertData = {\n type: getAmisStaticFieldType('checkbox', readonly),\n // option: field.inlineHelpText,\n tpl: readonly ? Tpl.getSwitchTpl(field) : null\n }\n break;\n case 'input-date-range':\n convertData = {\n type: \"input-date-range\",\n inputFormat: \"YYYY-MM-DD\",\n format:'YYYY-MM-DDT00:00:00.000[Z]',\n tpl: readonly ? Tpl.getDateTpl(field) : null,\n // utc: true,\n joinValues: false\n }\n break;\n case 'date':\n // convertData = isMobile && !readonly ? {\n // type: \"native-date\",\n // pipeIn: (value, data) => {\n // if (value) {\n // value = moment(value).utc().format('YYYY-MM-DD');\n // return value;\n // } else {\n // return \"\";\n // }\n\n // },\n // pipeOut: (value, oldValue, data) => {\n // if (value) {\n // value = moment(value).format('YYYY-MM-DDT00:00:00.000[Z]');\n // return value;\n // } else {\n // return \"\";\n // }\n // }\n // } : {\n // type: getAmisStaticFieldType('date', readonly),\n // inputFormat: \"YYYY-MM-DD\",\n // format:'YYYY-MM-DDT00:00:00.000[Z]',\n // tpl: readonly ? Tpl.getDateTpl(field) : null,\n // // utc: true\n // }\n convertData = {\n type: getAmisStaticFieldType('date', readonly),\n inputFormat: \"YYYY-MM-DD\",\n format:'YYYY-MM-DDT00:00:00.000[Z]',\n tpl: readonly ? Tpl.getDateTpl(field) : null,\n // utc: true\n }\n break;\n case 'input-datetime-range':\n convertData = {\n type: \"input-datetime-range\",\n inputFormat: 'YYYY-MM-DD HH:mm',\n format:'YYYY-MM-DDTHH:mm:ss.SSSZ',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n utc: true,\n joinValues: false\n }\n break;\n case 'datetime':\n // convertData = isMobile && !readonly ? {\n // type: \"combo\",\n // pipeIn: (value, data) => {\n // let revalue = {};\n // if (value && value != \"Invalid date\") {\n // value = moment(value).format('YYYY-MM-DD HH:mm:ss');\n // revalue[field.name + \"-native-date\"] = value.split(' ')[0];\n // revalue[field.name + \"-native-time\"] = value.split(' ')[1];\n // } else {\n // revalue[field.name + \"-native-date\"] = \"\";\n // revalue[field.name + \"-native-time\"] = \"\";\n // }\n // return revalue;\n // },\n // pipeOut: (value, oldValue, data) => {\n // let revalue = \"\";\n // if (value[field.name + \"-native-date\"] && value[field.name + \"-native-time\"]) {\n // revalue = value[field.name + \"-native-date\"] + \" \" + value[field.name + \"-native-time\"];\n // revalue = moment(revalue).utc().format('YYYY-MM-DDTHH:mm:ss.SSS[Z]');\n // }\n // return revalue;\n // },\n // items: [\n // {\n // type: \"native-date\",\n // name: field.name + \"-native-date\",\n // className: \"steedos-native-date\",\n // value: \"\"\n // },\n // {\n // type: \"native-time\",\n // name: field.name + \"-native-time\",\n // className: \"steedos-native-time\",\n // value: \"\"\n // }\n // ]\n // } : {\n // type: getAmisStaticFieldType('datetime', readonly),\n // inputFormat: 'YYYY-MM-DD HH:mm',\n // format: 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n // tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true,\n // }\n\n convertData = {\n type: getAmisStaticFieldType('datetime', readonly),\n inputFormat: 'YYYY-MM-DD HH:mm',\n format: 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n utc: true,\n }\n break;\n case 'input-time-range':\n convertData = {\n type: 'input-time-range',\n inputFormat: 'HH:mm',\n timeFormat:'HH:mm',\n format:'1970-01-01THH:mm:00.000[Z]',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true,\n joinValues: false\n }\n break;\n case 'time':\n // convertData = isMobile && !readonly ? {\n // type: \"native-time\",\n // pipeIn: (value, data) => {\n // if (value) {\n // value = moment(value).utc().format('HH:mm');\n // return value;\n // } else {\n // return \"\";\n // }\n\n // },\n // pipeOut: (value, oldValue, data) => {\n // if (value) {\n // value = moment('1970-01-01 ' + value).format('1970-01-01THH:mm:00.000[Z]');\n // return value;\n // } else {\n // return \"\";\n // }\n // }\n // } : {\n // type: getAmisStaticFieldType('time', readonly),\n // inputFormat: 'HH:mm',\n // timeFormat:'HH:mm',\n // format:'1970-01-01THH:mm:00.000[Z]',\n // tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // // utc: true\n // }\n convertData = {\n type: getAmisStaticFieldType('time', readonly),\n inputFormat: 'HH:mm',\n timeFormat:'HH:mm',\n format:'1970-01-01THH:mm:00.000[Z]',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true\n }\n break;\n case 'currency':\n case 'number':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getNumberTpl(field)\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('number', readonly),\n min: field.min,\n max: field.max,\n precision: field.scale\n }\n }\n \n break;\n case 'input-array':\n convertData = Object.assign({}, field, baseData);\n break;\n case 'input-range':\n convertData = {\n type: 'input-range',\n min: field.min,\n max: field.max,\n value: [0, 0],\n multiple: true,\n showInput: true\n }\n break;\n case 'percent':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('number', readonly),\n min: field.min,\n max: field.max,\n precision: field.scale,\n suffix: \"%\",\n pipeIn: (value, data) => {\n if(value){\n // 因为例如 1.11 * 100 的值不是111,所以调整下。\n const result = value*100;\n return Number(result.toFixed(field.scale));\n }\n return value;\n },\n pipeOut: (value, oldValue, data) => {\n if(value){\n return value/100;\n }\n return value;\n },\n }\n }\n break;\n case 'password':\n convertData = {\n type: getAmisStaticFieldType('password', readonly),\n tpl: readonly ? Tpl.getPasswordTpl(field) : null\n }\n break;\n case 'lookup':\n convertData = await lookupToAmis(field, readonly, ctx) //TODO\n break;\n case 'master_detail':\n convertData = await lookupToAmis(field, readonly, ctx) //TODO\n break;\n case 'autonumber':\n if(readonly){\n convertData = {\n type: 'static-text'\n }\n }\n break;\n case 'url':\n convertData = {\n type: getAmisStaticFieldType('url', readonly, field),\n static: readonly ? true : false\n }\n if(readonly && field.show_as_qr){\n convertData = {\n type: \"control\",\n label: field.label,\n body: {\n type: \"qr-code\",\n codeSize: 128,\n name: field.name\n }\n }\n }\n break;\n case 'email':\n convertData = {\n type: getAmisStaticFieldType('email', readonly)\n }\n break;\n case 'location':\n // 申请ak后需要设置白名单; https://lbsyun.baidu.com/apiconsole/key/create#/home\n // console.log('fie==>', field.name, field);\n let ak = \"LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7\";\n let vendor = \"baidu\"; /* 'baidu' | 'gaode' */\n if(window.Meteor){\n const map_ak = Meteor.settings?.public?.amis?.map_ak;\n if(map_ak){\n ak = map_ak;\n }\n const map_vendor = Meteor.settings?.public?.amis?.map_vendor;\n if(map_vendor){\n vendor = map_vendor;\n }\n }\n \n const coordinatesType = field.coordinatesType || \"bd09\";\n convertData = {\n type: getAmisStaticFieldType('location', readonly),\n tpl: readonly ? Tpl.getLocationTpl(field) : null,\n ak,\n vendor,\n clearable: true,\n coordinatesType,\n label: field.label,\n pipeOut: (value, oldValue, data) => {\n if (value) {\n const lng = value.lng;\n const lat = value.lat;\n let coordinates = [lng,lat];\n if(window.coordtransform){\n if(coordinatesType.toLowerCase() === 'bd09'){\n const bd09togcj02 = window.coordtransform.bd09togcj02(lng,lat);\n coordinates = window.coordtransform.gcj02towgs84(bd09togcj02[0],bd09togcj02[1]);\n }else if(coordinatesType.toLowerCase() === 'gcj02'){\n coordinates = window.coordtransform.gcj02towgs84(lng,lat);\n }\n }\n value.wgs84 = {\n type: \"Point\",\n coordinates\n }\n return value; // 切换到数字之后的默认值\n }\n }\n }\n break;\n case 'avatar':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'image':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'file':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'formula':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }\n break;\n case 'summary':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }\n break;\n case 'code':\n convertData = {\n type: \"editor\",\n disabled: readonly ? true : false,\n language: field.language,\n editorDidMount: new Function('editor', 'monaco', field.editorDidMount)\n }\n break;\n case 'toggle':\n convertData = {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: field.width,\n toggled: field.toggled,\n disabled: readonly,\n }\n break;\n case 'grid':\n if(field.subFields){\n convertData = {\n type: 'input-table',\n showIndex: true,\n columnsTogglable: false,\n strictMode:false,\n affixHeader: false, // 是否固定表头, 不固定表头, 否则form有y轴滚动条时, 表头会跟随滚动条滚动.\n needConfirm: false,\n editable: !readonly,\n addable: !readonly,\n removable: !readonly,\n draggable: !readonly,\n columns: []\n }\n // console.log(`convertData ==2====>`, field, convertData)\n for (const subField of field.subFields) {\n const subFieldName = subField.name.replace(`${field._prefix || ''}${field.name}.$.`, '').replace(`${field.name}.`, '');\n const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName, isTableField: true}), readonly, ctx);\n if(gridSub){\n delete gridSub.name\n delete gridSub.label\n const gridItemSchema = {\n name: subFieldName,\n label: subField.label,\n quickEdit: readonly ? false : gridSub\n };\n if([\"lookup\", \"boolean\", \"toggle\"].indexOf(subField.type) > -1){\n gridItemSchema.type = gridSub.type;\n gridItemSchema.tpl = gridSub.tpl;\n }\n convertData.columns.push(Object.assign({}, gridItemSchema, subField.amis, {name: subFieldName}))\n }\n }\n }\n break;\n case 'object':\n if(field.subFields){\n convertData = {\n type: 'combo',\n items: []\n };\n // console.log(`convertData ======>`, field, convertData)\n for (let subField of field.subFields) {\n let subFieldName = subField.name.replace(`${field.name}.$.`, '').replace(`${field.name}.`, '');\n if(subField.type === 'grid'){\n subField = await Fields.getGridFieldSubFields(subField, ctx.__formFields);\n }else{\n if(readonly){\n subFieldName = `${field.name}.${subFieldName}`\n }\n }\n const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName}), readonly, ctx);\n if(gridSub){\n delete gridSub.name\n delete gridSub.label\n convertData.items.push(\n Object.assign({}, gridSub, {label: subField.label}, subField.amis, {\n name: subFieldName\n })\n )\n }\n }\n }\n break;\n default:\n // console.log('convertData default', field.type);\n // convertData.type = field.type\n break;\n }\n if(!_.isEmpty(convertData)){\n if(field.is_wide || convertData.type === 'group'){\n convertData.className = 'col-span-2 m-1';\n }else{\n convertData.className = 'm-1';\n }\n if(readonly){\n convertData.className = `${convertData.className} border-b`\n }\n if(readonly){\n convertData.quickEdit = false;\n }\n\n let fieldTypeClassName = ' steedos-' + convertData.type + (readonly ? '-readonly' : '-edit');\n if (convertData.className) {\n convertData.className = convertData.className + fieldTypeClassName;\n } else {\n convertData.className = fieldTypeClassName;\n }\n\n if(field.visible_on && !ctx.inFilterForm){\n // convertData.visibleOn = `\\$${field.visible_on.substring(1, field.visible_on.length -1).replace(/formData./g, '')}`;\n if(field.visible_on.startsWith(\"{{\")){\n convertData.visibleOn = `${field.visible_on.substring(2, field.visible_on.length -2).replace(/formData./g, 'data.')}`\n }else{\n convertData.visibleOn = `${field.visible_on.replace(/formData./g, 'data.')}`\n }\n }\n\n if(_.isString(baseData.required)){\n if(baseData.required.startsWith(\"{{\")){\n baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;\n delete baseData.required;\n }\n }\n\n if(convertData.type === 'group'){\n convertData.body[0] = Object.assign({}, baseData, convertData.body[0], { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});\n return convertData\n }\n // if(ctx.mode === 'edit'){\n return Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});\n // }else{\n // return Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});\n // }\n }\n \n}\n\nexport async function getFieldSearchable(perField, permissionFields, ctx){\n if(!ctx){\n ctx = {};\n }\n let field = perField;\n if(field.type === 'grid'){\n field = await Fields.getGridFieldSubFields(perField, permissionFields);\n }else if(perField.type === 'object'){\n field = await Fields.getObjectFieldSubFields(perField, permissionFields);\n }\n\n let fieldNamePrefix = '__searchable__';\n if(field.name.indexOf(\".\") < 0){\n let _field = cloneDeep(field)\n if(includes(['textarea', 'html', 'code', 'autonumber'], field.type)){\n _field.type = 'text'\n }\n\n if(includes(['formula', 'summary'], field.type)){\n _field.type = field.data_type;\n _field.precision = field.precision;\n _field.scale = field.scale;\n }\n else if(field.type === \"select\" && field.data_type && field.data_type != \"text\"){\n _field.type = field.data_type;\n }\n\n if(_field.type === 'number' || _field.type === 'currency'){\n _field.type = 'input-array';\n _field.inline = true;\n _field.addable = false;\n _field.removable = false;\n _field.value = [null,null];\n _field.items = {\n type: \"input-number\"\n }\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n\n if(_field.type ==='date'){\n _field.type = 'input-date-range';\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.type === 'datetime'){\n _field.type = 'input-datetime-range'\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.type === 'time'){\n _field.type = 'input-time-range'\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.reference_to === 'users'){\n _field.reference_to = 'space_users';\n _field.reference_to_field = 'user';\n }\n _field.readonly = false;\n _field.disabled = false;\n _field.multiple = true;\n _field.is_wide = false;\n _field.defaultValue = undefined;\n _field.required = false;\n _field.hidden = false;\n _field.omit = false;\n\n if(_field.amis){\n delete _field.amis.static;\n delete _field.amis.staticOn;\n delete _field.amis.disabled;\n delete _field.amis.disabledOn;\n delete _field.amis.required;\n delete _field.amis.requiredOn;\n delete _field.amis.visible;\n delete _field.amis.visibleOn;\n delete _field.amis.hidden;\n delete _field.amis.hiddenOn;\n delete _field.amis.autoFill;\n }\n\n const amisField = await Fields.convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));\n if(amisField){\n return Object.assign({}, amisField,{\n submitOnChange: true\n });\n }\n }\n}\n\nif(typeof window != 'undefined'){\n window.getFieldSearchable = getFieldSearchable;\n}\n\n\nexport function isFieldTypeSearchable(fieldType) {\n return !_.includes(\n [\n \"grid\",\n \"avatar\",\n \"image\",\n \"object\",\n \"[object]\",\n \"[Object]\",\n \"[grid]\",\n \"[text]\",\n \"audio\",\n \"file\",\n ],\n fieldType\n )\n}\n\nif (typeof window != 'undefined') {\n window.isFieldTypeSearchable = isFieldTypeSearchable;\n}\n\n\nexport function isFieldQuickSearchable(field, nameFieldKey) {\n let fieldSearchable = field.searchable;\n if(fieldSearchable !== false && field.name === nameFieldKey){\n // 对象上名称字段的searchable默认认为是true\n fieldSearchable = true;\n }\n if (fieldSearchable && QUICK_SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1) {\n return true;\n }\n return false;\n}","import { OMIT_FIELDS } from './fields';\nimport { absoluteUrl } from '../../steedos.client'\nimport * as graphql from './graphql'\nimport * as _ from 'lodash';\nimport { i18next } from \"../../../i18n\"\nconst API_CACHE = 100;\n\nfunction getReadonlyFormAdaptor(object, fields, options){\n let scriptStr = '';\n const selectFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && ((field.type == 'select' && field.options) || ((field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to))});\n const gridAndObjectFieldsName = _.map(_.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type === 'object' || field.type === 'grid')}), 'name');\n _.each(selectFields, function(field){\n if(!_.includes(OMIT_FIELDS, field.name)){\n const valueField = field.name;\n if(field.options){\n const options = JSON.stringify({options: field.options});\n scriptStr = scriptStr + `var ${field.name}Options= (${options}).options;`;\n }else if(field.optionsFunction){\n scriptStr = scriptStr + `var ${field.name}Options = eval(${field.optionsFunction.toString()})(api.data);`\n }else if(field._optionsFunction){\n scriptStr = scriptStr + `var ${field.name}Options = eval(${field._optionsFunction})(api.data);`\n }\n if(field.multiple){\n scriptStr = scriptStr + `data.${field.name}__label = _.map(_.filter(${field.name}Options, function(option){return _.includes(data.${field.name}, option.value)}), 'label');`\n }else{\n scriptStr = scriptStr + `var ${field.name}Selected = _.find(${field.name}Options, function(option){return data.${field.name} == option.value});`\n scriptStr = scriptStr + `data.${field.name}__label = ${field.name}Selected ? ${field.name}Selected.label:null;`\n }\n }\n });\n\n // const refFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to});\n // _.each(refFields, function(field){\n // if(!_.includes(OMIT_FIELDS, field.name)){\n // const valueField = field.reference_to_field || '_id';\n // scriptStr = scriptStr + `var ${field.name}Options = eval(${field.optionsFunction.toString()})(api.data);`\n // if(field.multiple){\n // scriptStr = scriptStr + `data.${field.name}__label = _.map(_.filter(${field.name}Options, function(option){return _.includes(data.${field.name}, option.value)}), 'label');`\n // }else{\n // scriptStr = scriptStr + `var ${field.name}Selected = _.find(${field.name}Options, function(option){return data.${field.name} == option.value});`\n // scriptStr = scriptStr + `data.${field.name}__label = ${field.name}Selected ? ${field.name}Selected.label:null;`\n // }\n // }\n // })\n\n var fieldNames = _.map(fields, function(n){return n.name});\n return `\n if(payload.data.data.length === 0){\n var isEditor = !!${options && options.isEditor};\n if(isEditor){\n var fieldNames = ${JSON.stringify(fieldNames)};\n var emptyDoc = {};//这里如果不把每个字段值设置为空的话,表单上会显示上一次表单上的字段值\n fieldNames.forEach(function(n){\n emptyDoc[n] = null;\n });\n // 设计器中始终显示表单,有记录则显示第一条记录,没记录时显示为空表单\n payload.data.data = [emptyDoc];\n }\n else{\n return {\n status: 2,\n msg: \"${i18next.t('frontend_no_records_found')}\"\n }\n }\n }\n if(payload.data.data){\n var data = payload.data.data[0];\n var gridAndObjectFieldsName = ${JSON.stringify(gridAndObjectFieldsName)};\n try{\n ${scriptStr}\n ${getScriptForAddUrlPrefixForImgFields(fields)}\n ${getScriptForRewriteValueForFileFields(fields)}\n }catch(e){\n console.error(e)\n }\n // 原始记录\n var record = _.cloneDeep(data);\n try{\n _.each(gridAndObjectFieldsName, function(name){\n data[name] = data._display && data._display[name];\n })\n }catch(e){\n console.error(e)\n }\n payload.data = data;\n payload.data.__objectName = \"${object.name}\";\n payload.data.__record = record;\n window.postMessage(Object.assign({type: \"record.loaded\"}, {record: record}), \"*\")\n }\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n ${options && options.initApiAdaptor || ''}\n return payload;\n`\n}\n\nexport async function getReadonlyFormInitApi(object, recordId, fields, options){\n let findOneOptions;\n if (!recordId && options && options.isEditor) {\n // 设计器中只读表单返回第一条记录\n findOneOptions = {\n filters: [],\n queryOptions: \"top: 1\"\n };\n }\n return {\n method: \"post\",\n url: graphql.getApi() + '&objectName=${objectName}' + \"&recordId=${recordId}\",\n cache: API_CACHE,\n requestAdaptor: `\n ${options && options.initApiRequestAdaptor || ''}\n return api;\n `,\n adaptor: getReadonlyFormAdaptor(object, fields, options),\n data: await graphql.getFindOneQuery(object, recordId, fields, findOneOptions),\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getConvertDataScriptStr(fields){\n const refFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type == 'lookup' || field.type == 'master_detail') && field.reference_to});\n let scriptStr = '';\n _.each(refFields, function(field){\n if(!_.includes(OMIT_FIELDS, field.name)){\n const valueField = field.reference_to_field || '_id';\n if(field.multiple){\n scriptStr = scriptStr + `data.${field.name} = _.map(data.${field.name}, '${valueField}');`\n }else{\n scriptStr = scriptStr + `data.${field.name} = data.${field.name} ? data.${field.name}.${valueField}:null;`\n }\n }\n })\n return scriptStr;\n}\n\n/*\n img/avatar字段值添加URL前缀使其在amis中正常显示图片。\n*/\nfunction getScriptForAddUrlPrefixForImgFields(fields){\n let imgFieldsKeys = [];\n let imgFields = {};\n fields.forEach((item)=>{\n if(_.includes(['image','avatar'], item.type)){\n imgFieldsKeys.push(item.name);\n imgFields[item.name] = {\n name: item.name,\n type: item.type,\n multiple: item.multiple\n };\n }\n })\n if(!imgFieldsKeys.length){\n return '';\n }\n return `\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(imgFieldsKeys)};\n let imgFields = ${JSON.stringify(imgFields)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ \n const url = window.getImageFieldUrl(i.url);\n return url;\n });\n }\n }else{\n const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);\n data[item] = url;\n }\n }\n })\n `\n}\n\n/*\n file字段值重写使其在amis中正常显示附件名、点击附件名下载文件。\n*/\nfunction getScriptForRewriteValueForFileFields(fields){\n let fileFieldsKeys = [];\n let fileFields = {};\n fields.forEach((item)=>{\n if(item.type === 'file'){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!fileFieldsKeys.length){\n return '';\n }\n return `\n // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件\n let fileFieldsKeys = ${JSON.stringify(fileFieldsKeys)};\n let fileFields = ${JSON.stringify(fileFields)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = data[item];\n let fileFieldDisplayValue = data._display && data._display[item];\n if(fileFieldValue && fileFieldValue.length){\n if(fileFields[item].multiple){\n if(fileFieldDisplayValue instanceof Array){\n data[item] = fileFieldDisplayValue.map((item, index)=>{ \n return {\n value: fileFieldValue[index],\n name: item.name,\n url: item.url + \"?download=true\",\n state: \"uploaded\"\n }\n });\n }\n }else{\n data[item] = [{\n value: fileFieldValue,\n name: fileFieldDisplayValue.name,\n url: fileFieldDisplayValue.url + \"?download=true\",\n state: \"uploaded\"\n }];\n }\n }\n })\n `\n}\n\nexport async function getEditFormInitApi(object, recordId, fields, options){\n const data = await graphql.getFindOneQuery(object, recordId, fields);\n data.recordId = \"${recordId}\";\n data.objectName = \"${objectName}\";\n data.uiSchema = \"${uiSchema}\";\n data.global = \"${global}\";\n data.context = \"${context}\";\n data.defaultData = \"${defaultData}\";\n data._master = \"${_master}\";\n \n return {\n method: \"post\",\n url: graphql.getApi() + '&objectName=${objectName}' ,\n // sendOn: \"!!this.recordId\",\n cache: API_CACHE,\n requestAdaptor: `\n // 所有不想在network请求中发送的数据都应该从data中分离出来,data变量只需要留下query才需要发送出去\n var { recordId, objectName, uiSchema, global, context, ...data} = api.data;\n if(!recordId){\n // 新建则不请求任何数据\n data.query = \"{data:\" + objectName + \"(filters: \" + JSON.stringify([\"_id\", \"=\", null]) + \", top: 1){_id}}\";\n }\n api.data = data;\n ${options.initApiRequestAdaptor || ''}\n return api;\n `,\n adaptor: `\n const recordId = api.body.recordId;\n let initialValues={};\n if(recordId && payload.data.data){\n var data = payload.data.data[0];\n const dataKeys = _.keys(data);\n const uiSchema = api.body.uiSchema;\n const fieldKeys = uiSchema && _.keys(uiSchema.fields);\n\n if(data){\n ${getScriptForAddUrlPrefixForImgFields(fields)}\n ${getScriptForRewriteValueForFileFields(fields)}\n\n _.each(dataKeys, function(key){\n if(fieldKeys.indexOf(key)<0 && key !== \"_display\"){\n delete data[key];\n }\n })\n \n //初始化接口返回的字段移除字段值为null的字段\n for (key in data){\n if(data[key] === null){\n delete data[key];\n }\n }\n };\n initialValues = data;\n }\n else{\n var uiSchema = api.body.uiSchema;\n var defaultData = api.body.defaultData;\n var defaultValues = {};\n _.each(uiSchema && uiSchema.fields, function(field){\n var value = SteedosUI.getFieldDefaultValue(field, api.body.global);\n if(!_.isNil(value)){\n defaultValues[field.name] = value;\n }\n });\n if(defaultData && _.isObject(defaultData) && !_.isArray(defaultData)){\n defaultValues = Object.assign({}, defaultValues, defaultData)\n }\n if(uiSchema.form){\n try{\n var objectFormConfig = JSON.parse(uiSchema.form);\n var formInitialValuesFun = objectFormConfig.initialValues;\n if(formInitialValuesFun){\n formInitialValuesFun = new Function(\"return \" + formInitialValuesFun)();\n }\n if(typeof formInitialValuesFun === \"function\"){\n initialValues = formInitialValuesFun.apply({doc: defaultValues || {} , global: api.body.global, master: api.body._master })\n }\n }\n catch(ex){\n console.warn(ex);\n }\n }\n if(_.isObject(initialValues)){\n // uiSchema.form.initialValues为函数且执行后为json,则优先取initialValues中的默认值\n initialValues = Object.assign({}, defaultValues, initialValues);\n }\n else{\n initialValues = defaultValues;\n }\n }\n // data下的变量需要在保存接口(getSaveApi)中被删除。\n payload.data = {\n ...initialValues\n }\n ${options.initApiAdaptor || ''}\n return payload;\n `,\n responseData: {\n initialValues: \"$$\",\n editFormInited: true\n },\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\n\nexport function getSaveApi(object, recordId, fields, options){\n return {\n method: 'post',\n url: graphql.getApi(),\n data: graphql.getSaveQuery(object, recordId, fields, options),\n requestAdaptor: graphql.getSaveRequestAdaptor(fields, options),\n responseData: {\n \"recordId\": \"${record._id}\"\n },\n adaptor: `\n if(payload.errors){\n delete payload.data;\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n ${options.apiAdaptor || ''}\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport function getBatchDelete(objectName){\n return {\n method: 'post',\n url: graphql.getApi(),\n requestAdaptor: `\n var ids = api.data.ids.split(\",\");\n var deleteArray = [];\n ids.forEach((id,index)=>{\n deleteArray.push(\\`delete__\\${index}:${objectName}__delete(id: \"\\${id}\")\\`);\n })\n api.data = {query: \\`mutation{\\${deleteArray.join(',')}}\\`};\n return api;\n `,\n data: {\n ids: `\\${ids}`\n },\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}","import { getApi, getRecordPermissionsApi } from './fields/table';\nimport { getSaveApi } from './api';\nimport { each, values } from 'lodash';\nimport * as graphql from './graphql'\nimport _, { isEmpty, omitBy, isNil } from 'lodash';\nimport { i18next } from \"../../../i18n\"\n\nexport const DEFAULT_CALENDAR_OPTIONS = {\n startDateExpr: \"start\",\n endDateExpr: \"end\",\n allDayExpr: \"is_all_day\",\n textExpr: \"name\"\n};\n\nexport async function getCalendarApi(mainObject, fields, options) {\n if (!options) {\n options = {};\n }\n const calendarOptions = options.calendarOptions;\n const searchableFields = [];\n let { filter, sort, top, setDataToComponentId = '' } = options;\n\n if (!top) {\n // 日历请求不翻页\n top = 200;\n }\n\n if (_.isArray(filter)) {\n filter = _.map(filter, function (item) {\n if (item.operation) {\n return [item.field, item.operation, item.value];\n } else {\n return item\n }\n })\n }\n if (!filter) {\n filter = [];\n }\n\n _.each(fields, function (field) {\n if (field.searchable) {\n searchableFields.push(field.name);\n }\n })\n\n const idFieldName = mainObject.idFieldName || \"_id\";\n let valueField = mainObject.key_field || '_id';\n const api = await getApi(mainObject, null, fields, { alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"` });\n api.data.$term = \"$term\";\n api.data.$self = \"$$\";\n api.data.filter = \"$filter\";\n api.data.pageSize = top || 10;\n api.requestAdaptor = `\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = api.data.filter || ${JSON.stringify(filter)} || [];\n const eventFetchInfo = selfData.fetchInfo;\n const startDateExpr = \"${calendarOptions.startDateExpr}\";\n const endDateExpr = \"${calendarOptions.endDateExpr}\";\n const eventDurationFilters = [[endDateExpr, \">=\", eventFetchInfo.start], [startDateExpr, \"<=\", eventFetchInfo.end]];\n if(_.isEmpty(filters)){\n filters = eventDurationFilters;\n }else{\n filters = [filters, 'and', eventDurationFilters]\n }\n\n if(api.data.$self.additionalFilters){\n filters.push(api.data.$self.additionalFilters)\n }else if(api.data.$self.event.data.additionalFilters){\n filters.push(api.data.$self.event.data.additionalFilters)\n }\n\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [[\"${valueField.name}\", \"=\", selfData.value]];\n }\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n if(selfData.__keywords && allowSearchFields){\n const keywordsFilters = [];\n allowSearchFields.forEach(function(key, index){\n const keyValue = selfData.__keywords;\n if(keyValue){\n keywordsFilters.push([key, \"contains\", keyValue]);\n if(index < allowSearchFields.length - 1){\n keywordsFilters.push('or');\n }\n }\n })\n filters.push(keywordsFilters);\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n delete api.data.$term;\n delete api.data.filter;\n delete api.data.pageSize;\n delete api.data.pageNo;\n delete api.data.orderBy;\n delete api.data.orderDir;\n return api;\n `\n api.adaptor = `\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n const setDataToComponentId = \"${setDataToComponentId}\";\n if(setDataToComponentId){\n var scope = SteedosUI.getRef(api.body.$self.scopeId);\n var setDataToComponent = scope && scope.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n }\n const rows = payload.data.rows || [];\n const selfData = api.data.$self;\n const events = rows.map(function(n){\n return {\n id: n[\"${idFieldName}\"],\n title: n[\"${calendarOptions.textExpr}\"],\n start: n[\"${calendarOptions.startDateExpr}\"],\n end: n[\"${calendarOptions.endDateExpr}\"],\n allDay: n[\"${calendarOptions.allDayExpr}\"],\n extendedProps: n\n }\n });\n const successCallback = selfData.successCallback;\n const failureCallback = selfData.failureCallback;\n successCallback(events);\n return payload;\n `;\n return api;\n}\n\nexport function getCalendarRecordPermissionsApi(mainObject, recordId) {\n const api = getRecordPermissionsApi(mainObject, recordId, { alias: 'rows', limit: 1, fields: [\"allowEdit\"] });\n api.data.$self = \"$$\";\n api.adaptor = `\n const rows = payload.data.rows || [];\n const selfData = api.data.$self;\n const revert = selfData.revert;\n const recordPermissions = rows[0] && rows[0].recordPermissions;\n const editable = !!(recordPermissions && recordPermissions.allowEdit);\n if(!editable){\n // 没有权限时还原\n revert && revert();\n }\n payload.data.editable = editable;\n return payload;\n `;\n return api;\n}\n\nexport function getCalendarRecordSaveApi(object, calendarOptions) {\n const formData = {};\n const idFieldName = object.idFieldName || \"_id\";\n formData[idFieldName] = \"${event.data.event.id}\";\n const nameFieldKey = object.NAME_FIELD_KEY || \"name\";\n formData[nameFieldKey] = \"${event.data.event.title}\";\n formData[calendarOptions.startDateExpr] = \"${event.data.event.start}\";\n formData[calendarOptions.endDateExpr] = \"${event.data.event.end}\";\n formData[calendarOptions.allDayExpr] = \"${event.data.event.allDay}\";\n // formData[calendarOptions.textExpr] = \"${event.data.event.title}\";\n const apiData = {\n objectName: \"${objectName}\",\n $: formData,\n $self: \"$$\"\n };\n const saveDataTpl = `\n const formData = api.data.$;\n const objectName = api.data.objectName;\n let query = \\`mutation{record: \\${objectName}__update(id: \"\\${formData.${idFieldName}}\", doc: {__saveData}){${idFieldName}}}\\`;\n delete formData.${idFieldName};\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `;\n const requestAdaptor = `\n ${saveDataTpl}\n api.data.query = query.replace('{__saveData}', __saveData);\n return api;\n `;\n\n return {\n method: 'post',\n url: graphql.getApi(),\n data: apiData,\n requestAdaptor: requestAdaptor,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n const revert = api.data.$self.event.data.revert;\n revert && revert();\n }\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n };\n}\n\n/**\n * 列表视图Calendar amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectCalendar(objectSchema, calendarOptions, options) {\n const permissions = objectSchema.permissions;\n if (!options) {\n options = {};\n }\n\n calendarOptions = Object.assign({}, DEFAULT_CALENDAR_OPTIONS, omitBy(calendarOptions, isNil));\n\n const titleFields = calendarOptions.title || [\n calendarOptions.startDateExpr,\n calendarOptions.endDateExpr,\n calendarOptions.allDayExpr,\n calendarOptions.textExpr\n ];\n let fields = [];\n each(titleFields, function (n) {\n if (objectSchema.fields[n]) {\n fields.push(objectSchema.fields[n]);\n }\n });\n\n if (objectSchema.fields[calendarOptions.allDayExpr]) {\n fields.push(objectSchema.fields[calendarOptions.allDayExpr]);\n }\n\n let sort = options.sort;\n if (!sort) {\n const sortField = options.sortField;\n const sortOrder = options.sortOrder;\n if (sortField) {\n let sortStr = sortField + ' ' + sortOrder || 'asc';\n sort = sortStr;\n }\n }\n let initialView = calendarOptions.currentView;\n if (initialView) {\n // day, week, month, agenda\n switch (initialView) {\n case \"day\":\n initialView = \"timeGridDay\"\n break;\n case \"week\":\n initialView = \"timeGridWeek\"\n break;\n case \"month\":\n initialView = \"dayGridMonth\"\n break;\n case \"agenda\":\n initialView = \"listWeek\"\n break;\n }\n }\n else {\n initialView = \"timeGridWeek\";\n }\n\n options.calendarOptions = calendarOptions;\n const api = await getCalendarApi(objectSchema, fields, options);\n\n const onGetEventsScript = `\n const api = ${JSON.stringify(api)};\n event.data.calendarOptions = ${JSON.stringify(calendarOptions)};\n doAction({\n \"actionType\": 'ajax',\n \"args\": {\n \"api\": api\n },\n });\n `;\n\n const onSelectScript = `\n const data = event.data;\n const doc = {};\n doc[\"${calendarOptions.startDateExpr}\"] = data.start;\n doc[\"${calendarOptions.endDateExpr}\"] = data.end;\n doc[\"${calendarOptions.allDayExpr}\"] = data.allDay;\n doc[\"${calendarOptions.textExpr}\"] = data.title;\n // ObjectForm会认作用域下的变量值\n // TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值\n // TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件\n const title = \"${i18next.t('frontend_form_new')} ${objectSchema.label}\";\n doAction(\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": title,\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"objectApiName\": \"\\${objectName}\",\n \"mode\": \"edit\",\n \"defaultData\": doc,\n //改回为通用的提交事件\n // \"onEvent\": {\n // \"submitSucc\": {\n // \"weight\": 0,\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": \"event.data.view?.calendar.refetchEvents();\"\n // }\n // ]\n // }\n // }\n }\n ],\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"size\": \"lg\"\n }\n });\n `;\n\n const onEventClickScript = `\n const data = event.data;\n const eventData = data.event;\n const appId = data.appId;\n const objectName = data.objectName;\n const eventId = data.event && data.event.id;\n doAction({\n \"actionType\": \"link\",\n \"args\": {\n \"link\": \"/app/\" + appId + \"/\" + objectName + \"/view/\" + eventId\n }\n });\n // doAction({\n // \"actionType\": \"dialog\",\n // \"dialog\": {\n // \"type\": \"dialog\",\n // \"title\": \"\",\n // \"body\": [\n // {\n // \"type\": \"steedos-record-detail\",\n // \"objectApiName\": \"\\${objectName}\",\n // \"recordId\": data.event && data.event.id\n // }\n // ],\n // \"closeOnEsc\": false,\n // \"closeOnOutside\": false,\n // \"showCloseButton\": true,\n // \"size\": \"lg\",\n // \"actions\": []\n // }\n // });\n `;\n\n const recordId = \"${event.id}\";\n const recordPermissionsApi = getCalendarRecordPermissionsApi(objectSchema, recordId);\n const recordSaveApi = getCalendarRecordSaveApi(objectSchema, calendarOptions);\n\n const businessHours = {\n daysOfWeek: [1, 2, 3, 4, 5],\n startTime: '08:00',\n endTime: '18:00',\n };\n if (!isEmpty(calendarOptions.startDayHour)) {\n businessHours.startTime = `${calendarOptions.startDayHour}:00`;\n }\n if (!isEmpty(calendarOptions.endDayHour)) {\n businessHours.endTime = `${calendarOptions.endDayHour}:00`;\n }\n\n // api.trackExpression=\"\\\\\\${additionalFilters}\";\n const onEvent = {\n \"getEvents\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": onGetEventsScript\n }\n // {\n // \"actionType\": \"ajax\",\n // \"outputVar\": \"responseResult\",\n // \"args\": {\n // \"options\": {\n // },\n // \"api\": api\n // // {\n // // \"url\": \"111\",\n // // \"method\": \"post\",\n // // \"data\": {\n // // \"calendarOptions\": JSON.stringify(calendarOptions);\n // // }\n // // }\n // }\n // }\n ]\n },\n \"select\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": onSelectScript\n }\n ]\n },\n \"eventClick\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onEventClickScript\n },\n // amis 升级到 3.2后,以下的\"actionType\": \"link\"方式拿不到appId和objectName了\n // {\n // \"actionType\": \"link\",\n // \"args\": {\n // \"link\": \"/app/${appId}/${objectName}/view/${event.id}\"\n // }\n // }\n ]\n },\n \"eventAdd\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventAdd'); console.log(event);\"\n }\n ]\n },\n \"eventChange\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": 'ajax',\n \"args\": {\n \"api\": recordPermissionsApi\n }\n },\n {\n \"actionType\": \"toast\",\n \"expression\": \"!event.data.editable\",\n \"args\": {\n \"msgType\": \"error\",\n \"msg\": i18next.t('frontend_message_no_permission_to_edit'),\n \"position\": \"top-center\"\n }\n },\n {\n \"actionType\": 'ajax',\n \"expression\": \"event.data.editable\",\n \"args\": {\n \"api\": recordSaveApi,\n \"messages\": {\n \"success\": objectSchema.label + i18next.t('frontend_message_modification_successful'),\n \"failed\": objectSchema.label + i18next.t('frontend_message_modification_successful')\n }\n }\n }\n ]\n },\n \"eventRemove\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventRemove'); console.log(event);\"\n }\n ]\n },\n \"eventsSet\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventsSet'); console.log(event);\"\n }\n ]\n },\n \"getRef\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": `service_${options.id}`,\n \"args\": {\n \"value\":{\n \"calendarRef\": \"${event.data.calendarRef}\"\n }\n },\n \"actionType\": \"setValue\",\n }\n ]\n }\n };\n\n Object.assign(onEvent, options.onEvent);\n\n const config = options.config || {};\n if(config.eventContent && typeof config.eventContent === \"string\"){\n const hasReturn = /\\breturn\\b/.test(config.eventContent);\n if(hasReturn){\n try {\n // 如果是包括return语句的字符串,则按函数解析,见 https://fullcalendar.io/docs/content-injection\n let fn = new Function(\"arg\", config.eventContent);\n config.eventContent = fn;\n } catch (e) {\n console.warn(e);\n }\n }\n }\n\n if(config.noEventsContent && typeof config.noEventsContent === \"string\"){\n const hasReturn = /\\breturn\\b/.test(config.noEventsContent);\n if(hasReturn){\n try {\n // 如果是包括return语句的字符串,则按函数解析,见 https://fullcalendar.io/docs/content-injection\n let fn = new Function(\"arg\", config.noEventsContent);\n config.noEventsContent = fn;\n } catch (e) {\n console.warn(e);\n }\n }\n }\n\n const amisSchema = {\n \"type\": \"steedos-fullcalendar\",\n \"label\": \"\",\n \"id\": options.id,\n \"name\": \"fullcalendar\",\n \"placeholder\":\"${additionalFilters}\",//用于触发reload\n \"editable\": permissions.allowEdit,\n \"selectable\": permissions.allowCreate,\n \"selectMirror\": permissions.allowCreate,\n \"initialView\": initialView,\n \"businessHours\": businessHours,\n \"views\":{\n listWeek: {\n buttonText: i18next.t('frontend_calendar_listWeek')\n }\n },\n ...config,\n \"onEvent\": onEvent\n };\n return amisSchema;\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组\n *\n * @param string 要转换的字符串\n */\n export const keyToPath = (string: string) => {\n const result = [];\n \n if (string.charCodeAt(0) === '.'.charCodeAt(0)) {\n result.push('');\n }\n \n string.replace(\n new RegExp(\n '[^.[\\\\]]+|\\\\[(?:([^\"\\'][^[]*)|([\"\\'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))',\n 'g'\n ),\n (match, expression, quote, subString) => {\n let key = match;\n if (quote) {\n key = subString.replace(/\\\\(\\\\)?/g, '$1');\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n return '';\n }\n );\n \n return result;\n };\n ","import isPlainObject from 'lodash/isPlainObject';\nimport {keyToPath} from './keyToPath';\n\n// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。\nexport function createObject(\n superProps?: {[propName: string]: any},\n props?: {[propName: string]: any},\n properties?: any\n): object {\n if (superProps && Object.isFrozen(superProps)) {\n superProps = cloneObject(superProps);\n }\n\n const obj = superProps\n ? Object.create(superProps, {\n ...properties,\n __super: {\n value: superProps,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype, properties);\n\n props &&\n isObject(props) &&\n Object.keys(props).forEach(key => (obj[key] = props[key]));\n\n return obj;\n}\n\nexport function cloneObject(target: any, persistOwnProps: boolean = true) {\n const obj =\n target && target.__super\n ? Object.create(target.__super, {\n __super: {\n value: target.__super,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype);\n persistOwnProps &&\n target &&\n Object.keys(target).forEach(key => (obj[key] = target[key]));\n return obj;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isObject(obj: any) {\n const typename = typeof obj;\n return (\n obj &&\n typename !== 'string' &&\n typename !== 'number' &&\n typename !== 'boolean' &&\n typename !== 'function' &&\n !Array.isArray(obj)\n );\n}\n\nexport function setVariable(\n data: {[propName: string]: any},\n key: string,\n value: any,\n convertKeyToPath?: boolean\n) {\n data = data || {};\n\n if (key in data) {\n data[key] = value;\n return;\n }\n\n const parts = convertKeyToPath !== false ? keyToPath(key) : [key];\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (Array.isArray(data[key])) {\n data[key] = data[key].concat();\n data = data[key];\n } else if (data[key]) {\n // throw new Error(`目标路径不是纯对象,不能覆盖`);\n // 强行转成对象\n data[key] = {};\n data = data[key];\n } else {\n data[key] = {};\n data = data[key];\n }\n }\n\n data[last] = value;\n}\n\nexport function deleteVariable(data: {[propName: string]: any}, key: string) {\n if (!data) {\n return;\n } else if (data.hasOwnProperty(key)) {\n delete data[key];\n return;\n }\n\n const parts = keyToPath(key);\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (data[key]) {\n throw new Error(`目标路径不是纯对象,不能修改`);\n } else {\n break;\n }\n }\n\n if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {\n delete data[last];\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-05-26 16:02:08\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-10-12 18:25:05\n * @Description: \n */\nimport * as Fields from '../fields';\nimport * as lodash from 'lodash';\nimport { i18next } from '../../../../i18n'\n\nconst getFieldSchemaArray = (formFields, ctx) => {\n let fieldSchemaArray = [];\n fieldSchemaArray.length = 0\n const recordId = ctx && ctx.recordId;\n\n lodash.forEach(formFields, (field) => {\n if (!field.group || field.group == 'null' || field.group == '-')\n field.group = i18next.t('frontend_field_group_generalization')\n const fieldName = field.name;\n let isObjectField = /\\w+\\.\\w+/.test(fieldName)\n if (field.type == 'grid' || field.type == 'object') {\n // field.group = field.label\n field.is_wide = true;\n }\n\n let forceHidden = false;\n if(!recordId && field.readonly && !ctx.isEditor){\n // 新建记录时,只读字段先隐藏,后续支持显示后,即任务:https://github.com/steedos/steedos-platform/issues/3164 完成后再放开\n // 表单只读时所有字段都是readonly,设计器中如果forceHidden会造成整个表单在只读的时候显示为空白了,所以要排除掉\n forceHidden = true;\n }\n\n if (!isObjectField) {\n if (!field.hidden && !forceHidden) {\n fieldSchemaArray.push(Object.assign({ name: fieldName }, field, { permission: { allowEdit: true } }))\n }\n }\n })\n return fieldSchemaArray;\n}\n\nconst getSection = async (formFields, permissionFields, fieldSchemaArray, sectionName, ctx) => {\n if (!ctx) {\n ctx = {};\n }\n const sectionFields = lodash.filter(fieldSchemaArray, { 'group': sectionName });\n if (sectionFields.length == lodash.filter(sectionFields, ['hidden', true]).length) {\n return;\n }\n\n const fieldSetBody = [];\n\n for (const perField of sectionFields) {\n let field = perField;\n if (perField.type === 'grid') {\n field = await Fields.getGridFieldSubFields(perField, formFields);\n // console.log(`perField.type grid ===> field`, field)\n } else if (perField.type === 'object') {\n field = await Fields.getObjectFieldSubFields(perField, formFields);\n // console.log(`perField.type object ===> field`, field)\n }\n if (field.name.indexOf(\".\") < 0) {\n ctx.__formFields = formFields;\n const amisField = await Fields.convertSFieldToAmisField(field, field.readonly, ctx);\n // console.log(`${field.name} amisField`, field, amisField)\n if (amisField) {\n fieldSetBody.push(amisField);\n }\n }\n }\n\n // fieldSet 已支持显隐控制\n const sectionFieldsVisibleOn = lodash.map(lodash.compact(lodash.map(fieldSetBody, 'visibleOn')), (visibleOn) => {\n let visible = visibleOn;\n if(visible.indexOf('${')>-1){\n visible = visible.substring(visible.indexOf('{')+1, visible.indexOf('}'))\n }\n return visible ? \"(\"+visible+\")\" : visible;\n });\n\n let section = {\n \"type\": \"fieldSet\",\n \"title\": sectionName,\n \"collapsable\": true,\n \"body\": fieldSetBody,\n }\n\n if (ctx.enableTabs) {\n section = {\n \"title\": sectionName,\n \"body\": fieldSetBody,\n }\n }\n\n if (sectionFieldsVisibleOn.length > 0 && fieldSetBody.length === sectionFieldsVisibleOn.length) {\n section.visibleOn = `${sectionFieldsVisibleOn.join(\" || \")}`\n }\n\n const fieldGroups = ctx.fieldGroups;\n const group = fieldGroups && fieldGroups.find(function(groupItem){\n return groupItem.group_name == sectionName;\n });\n let groupVisibleOn = group && group.visible_on;\n if (groupVisibleOn) {\n if (groupVisibleOn.startsWith(\"{{\")) {\n groupVisibleOn = `${groupVisibleOn.substring(2, groupVisibleOn.length - 2).replace(/formData./g, 'data.')}`\n } else {\n groupVisibleOn = `${groupVisibleOn.replace(/formData./g, 'data.')}`\n }\n if (section.visibleOn) {\n section.visibleOn = `${section.visibleOn + \" && \" + groupVisibleOn}`;\n }\n else {\n section.visibleOn = groupVisibleOn;\n }\n }\n return section\n}\n\nexport const getSections = async (permissionFields, formFields, ctx) => {\n if (!ctx) {\n ctx = {};\n }\n const fieldSchemaArray = getFieldSchemaArray(formFields, ctx)\n const _sections = lodash.groupBy(fieldSchemaArray, 'group');\n const sections = [];\n var sectionVisibleOns = [];\n for (const key in _sections) {\n const section = await getSection(formFields, permissionFields, fieldSchemaArray, key, ctx);\n if (section.body.length > 0) {\n if (section.visibleOn) {\n sectionVisibleOns.push(\"(\"+section.visibleOn+\")\");\n }\n else{\n sectionVisibleOns.push(\"true\");\n }\n sections.push(section)\n }\n }\n /*\n 为了实现只有一个分组时隐藏该分组标题,需要分三种情况(分组如果没有visibleon属性就代表一定显示,有visibleon需要进行判断)\n 1 当前分组为隐藏时,标题就设置为隐藏\n 2 当前分组为显示时,其他分组只要有一个是显示,就显示该分组标题\n 3 当前分组为显示时,其他分组都隐藏,就隐藏该分组标题\n */\n sections.forEach((section, index) => {\n var tempSectionVisibleOns = sectionVisibleOns.slice();\n tempSectionVisibleOns.splice(index, 1);\n section.headingClassName = {\n \"hidden\": `!((${tempSectionVisibleOns.join(\" || \") || 'false'}) && ${sectionVisibleOns[index]})`\n }\n });\n\n if (ctx.enableTabs) {\n // TODO: 以下sectionHeaderVisibleOn代码逻辑是为实现只有一个选项卡时给选项卡添加sectionHeaderVisibleOn样式类来把选项卡顶部卡头隐藏\n // 但是 amis filter过滤器有两个bug造成此功能不好实现:\n // 1.filter过滤器只支持对象数组,并不支持boolean或字符串数组,见: https://github.com/baidu/amis/issues/7078\n // 2.filter过滤器的返回结果无法进一步获取最终过滤后的数组长度,见:https://github.com/baidu/amis/issues/7077\n // let sectionHeaderVisibleOn = \"false\";\n // if(sectionVisibleOns.length){\n // sectionHeaderVisibleOn = \"[\" + sectionVisibleOns.join(\",\") + \"]\" + \"|filter:equals:true.length > 1\";\n // }\n // console.log(\"===sectionHeaderVisibleOn===\", sectionHeaderVisibleOn);\n // sectionHeaderVisibleOn = \"[true]|filter:equals:true.length > 1\";\n // sectionHeaderVisibleOn = \"false\";\n // sectionHeaderVisibleOn = \"[1,1,1]|filter:equals:1.length > 1\";\n return [\n {\n \"type\": \"tabs\",\n // \"className\": {\n // \"hiddenFormTabs\": `!(${sectionHeaderVisibleOn})`\n // },\n \"tabs\": sections,\n \"tabsMode\": ctx.tabsMode\n }\n ]\n }\n\n return sections;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-07 11:02:29\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-03-07 17:19:34\n * @Description: \n */\nimport { getSections } from './fields/sections';\n\nexport async function getFormBody(permissionFields, formFields, ctx){\n return await getSections(permissionFields, formFields, ctx);\n}","\nimport { toArray, mergeWith, isArray } from 'lodash';\n\n// lodash的defaultsDeep函数有bug,无法正确合并值为数值的节点,重写修正该函数\n// 源码出处:https://github.com/nodeutils/defaults-deep\nexport const defaultsDeep = (...args)=>{\n let output = {};\n toArray(args).reverse().forEach(item=> {\n mergeWith(output, item, (objectValue, sourceValue) => {\n return isArray(sourceValue) ? sourceValue : undefined;\n });\n });\n return output;\n};","import { getAuthToken , getTenantId, getRootUrl, getSteedosAuth } from '../../steedos.client.js';\nimport { getReadonlyFormInitApi, getSaveApi, getEditFormInitApi, getBatchDelete } from './api';\nimport { getTableSchema, getTableApi } from './fields/table';\nimport { getFormBody } from './form';\nimport { getListSchema, getCardSchema } from './fields/list';\nimport _, { map } from 'lodash';\nimport { defaultsDeep } from '../../defaultsDeep';\nimport { getObjectHeaderToolbar, getObjectFooterToolbar, getObjectFilter } from './toolbar';\nimport { i18next } from \"../../../i18n\"\nimport { createObject } from '../../../utils/object';\n\nfunction getBulkActions(objectSchema){\n return [\n {\n \"type\": \"button\",\n \"level\": \"danger\",\n \"label\": \"批量删除\",\n \"actionType\": \"ajax\",\n \"confirmText\": i18next.t('frontend_delete_many_confirm_text'),\n \"className\": \"hidden\",\n \"id\": \"batchDelete\",\n \"api\": getBatchDelete(objectSchema.name),\n }\n // {\n // \"label\": \"批量修改\",\n // \"actionType\": \"dialog\",\n // \"dialog\": {\n // \"title\": \"批量编辑\",\n // \"name\": \"sample-bulk-edit\",\n // \"body\": {\n // \"type\": \"form\",\n // \"api\": \"https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/sample/bulkUpdate2\",\n // \"controls\": [\n // {\n // \"type\": \"hidden\",\n // \"name\": \"ids\"\n // },\n // {\n // \"type\": \"text\",\n // \"name\": \"name\",\n // \"label\": \"Name\"\n // }\n // ]\n // }\n // }\n // }\n ]\n}\n\nfunction getHeaderToolbar(mainObject, formFactor){\n\n if(formFactor === 'SMALL'){\n return [\n \"bulkActions\",\n {\n \"type\": \"reload\",\n \"align\": \"right\"\n },\n {\n \"type\": \"search-box\",\n \"align\": \"right\",\n \"name\": \"__keywords\",\n \"placeholder\": \"请输入关键字\",\n \"mini\": true\n }\n ]\n }else{\n return [\n \"filter-toggler\",\n \"bulkActions\",\n // {\n // \"type\": \"export-excel\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"reload\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"columns-toggler\",\n // \"align\": \"right\"\n // },\n {\n \"type\": \"search-box\",\n \"align\": \"right\",\n \"name\": \"__keywords\",\n \"placeholder\": \"请输入关键字\",\n \"mini\": true\n },\n // {\n // \"type\": \"drag-toggler\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"pagination\",\n // \"align\": \"right\"\n // }\n ]\n }\n\n\n \n}\n\n\nfunction footerToolbar(){\n return [\n \"statistics\",\n // \"switch-per-page\",\n \"pagination\"\n ]\n}\n\nfunction getFilter(){\n return {\n \"title\": \"条件搜索\",\n \"submitText\": \"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"name\": \"name\",\n \"placeholder\": \"合同名称\",\n \"addOn\": {\n \"label\": \"搜索\",\n \"type\": \"submit\"\n }\n }\n ]\n }\n}\n\nasync function getCrudSchemaWithDataFilter(crud, options = {}){\n const { crudDataFilter, amisData, env } = options;\n let onCrudDataFilter = options.onCrudDataFilter;\n if (!onCrudDataFilter && typeof crudDataFilter === 'string') {\n onCrudDataFilter = new Function(\n 'crud',\n 'env',\n 'data',\n crudDataFilter\n );\n }\n\n try {\n onCrudDataFilter && (crud = await onCrudDataFilter(crud, env, amisData) || crud);\n } catch (e) {\n console.warn(e);\n }\n return crud;\n}\n\nexport async function getObjectCRUD(objectSchema, fields, options){\n // console.time('getObjectCRUD');\n const { top, perPage, showDisplayAs = false, displayAs, crudClassName = \"\",\n crudDataFilter, onCrudDataFilter, amisData, env } = options;\n const nonpaged = objectSchema.paging && objectSchema.paging.enabled === false;\n const isTreeObject = objectSchema.enable_tree;\n const bulkActions = getBulkActions(objectSchema);\n const defaults = options.defaults;\n const listSchema = (defaults && defaults.listSchema) || {};\n\n const bodyProps = {\n // toolbar: getToolbar(),\n // headerToolbar: getObjectHeaderToolbar(objectSchema, options.formFactor, {showDisplayAs}),\n headerToolbarClassName: \"px-4 py-2 border-gray-300 bg-gray-100 border-solid border-b\",\n footerToolbar: getObjectFooterToolbar(objectSchema, options.formFactor, {\n ...options,\n disableStatistics: options.queryCount === false\n }), \n filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),\n };\n if(options.formFactor !== 'SMALL' || [\"split\"].indexOf(options.displayAs) == -1){\n if(listSchema.mode !== \"cards\"){\n // card模式时默认不显示勾选框\n Object.assign(bodyProps, {\n bulkActions: options.bulkActions != false ? bulkActions : false\n });\n }\n }\n // yml里配置的 不分页和enable_tree:true 优先级最高,组件中输入的top次之。\n options.queryCount = true;\n if(nonpaged || isTreeObject){\n options.top = 5000;\n bodyProps.footerToolbar = [];\n options.queryCount = true; // 禁止翻页的时候, 需要查找总数\n }else if(top){\n bodyProps.footerToolbar = [];\n if(options.isRelated){\n options.queryCount = true;\n }else{\n options.queryCount = false;\n }\n }\n // console.log(`getObjectHeaderToolbar====2===>`, options.filterVisible)\n bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, fields, options.formFactor, {\n showDisplayAs, \n hiddenCount: options.queryCount === false, \n headerToolbarItems: options.headerToolbarItems,\n filterVisible: options.filterVisible\n });\n\n options.amisData = createObject(options.amisData, {\n objectName: objectSchema.name,\n // _id: null,\n recordPermissions: objectSchema.permissions,\n uiSchema: objectSchema,\n // loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载\n });\n\n\n let body = null;\n const id = `listview_${objectSchema.name}`;\n if(options.formFactor === 'SMALL' && false){\n delete bodyProps.bulkActions;\n delete bodyProps.headerToolbar;\n delete bodyProps.footerToolbar;\n const card = await getCardSchema(fields, Object.assign({idFieldName: objectSchema.idFieldName, labelFieldName: objectSchema.NAME_FIELD_KEY || 'name'}, options, {actions: false}));\n body = Object.assign({}, card , {\n type: 'crud', \n primaryField: '_id', \n id: id,\n name: id,\n keepItemSelectionOnPageChange: false, \n api: await getTableApi(objectSchema, fields, options),\n hiddenOn: options.tableHiddenOn,\n }, \n bodyProps\n );\n }else{\n let labelFieldName = objectSchema.NAME_FIELD_KEY || 'name';\n // organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.\n if(objectSchema.name === 'organizations'){\n labelFieldName = 'name';\n }\n let tableOptions = Object.assign({\n idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName, \n permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit,\n crudId: listSchema.id || id\n }, options);\n tableOptions.amisData = createObject(options.amisData || {}, {});\n const table = await getTableSchema(fields, tableOptions);\n // delete table.mode;\n //image与avatar需要在提交修改时特别处理\n const imageNames = _.compact(_.map(_.filter(fields, (field) => [\"image\",\"avatar\"].includes(field.type)), 'name'));\n const quickSaveApiRequestAdaptor = `\n var graphqlOrder = \"\";\n var imageNames = ${JSON.stringify(imageNames)};\n const rowsDiff = _.cloneDeep(api.data.rowsDiff);\n rowsDiff.forEach(function (item, index) {\n for(key in item){\n if(_.includes(imageNames, key)){\n if(typeof item[key] == \"string\"){\n const match = item[key].match(/\\\\/([^\\\\/]+)$/);\n item[key] = match && match.length > 1?match[1]:\"\";\n }else{\n item[key] = _.map(item[key], function(ele){\n const match = ele.match(/\\\\/([^\\\\/]+)$/);\n return match && match.length > 1?match[1]:\"\";\n })\n }\n }\n }\n item = _.omit(item, '_display');\n const itemOrder = 'update' + index + ':' + api.data.objectName + '__update(id:\"' + item._id + '\", doc:' + JSON.stringify(JSON.stringify(_.omit(item, '_id'))) + ') {_id}';\n graphqlOrder += itemOrder;\n })\n graphqlOrder = 'mutation {' + graphqlOrder + '}';\n return {\n ...api,\n data: {\n query: graphqlOrder\n }\n }\n `\n let autoFillHeight = true\n if(options.isRelated || window.innerWidth < 768){\n autoFillHeight = false\n }\n\n body = Object.assign({}, table, {\n type: 'crud', \n primaryField: '_id', \n affixHeader: false,\n id: id,\n name: id,\n keepItemSelectionOnPageChange: true, \n api: await getTableApi(objectSchema, fields, options),\n hiddenOn: options.tableHiddenOn,\n autoFillHeight,\n className: `flex-auto ${crudClassName || \"\"}`,\n bodyClassName: \"bg-white\",\n crudClassName: crudClassName,\n quickSaveApi: {\n url: `\\${context.rootUrl}/graphql`,\n method: \"post\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: quickSaveApiRequestAdaptor,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n return payload;\n `\n },\n rowClassNameExpr: options.rowClassNameExpr\n }, bodyProps);\n\n }\n\n body = defaultsDeep({}, listSchema, body);\n body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });\n\n let crudModeClassName = \"\";\n if(body.mode){\n crudModeClassName = `steedos-crud-mode-${body.mode}`;\n }\n\n if (defaults) {\n const headerSchema = defaults.headerSchema;\n const footerSchema = defaults.footerSchema;\n if (headerSchema || footerSchema) {\n let wrappedBody = [body];\n if (headerSchema) {\n if(_.isArray(headerSchema)){\n wrappedBody = _.union(headerSchema,wrappedBody);\n }\n else{\n wrappedBody.unshift(headerSchema);\n }\n }\n if (footerSchema) {\n if(_.isArray(footerSchema)){\n wrappedBody = _.union(wrappedBody,footerSchema);\n }\n else{\n wrappedBody.push(footerSchema);\n }\n }\n body = wrappedBody;\n }\n }\n // console.timeEnd('getObjectCRUD');\n // TODO: data应该只留loaded,其他属性都改为从上层传递下来\n return {\n type: 'service',\n className: crudModeClassName,\n //目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}\n id: `service_${id}`,\n name: `page`,\n data: options.amisData,\n body: body\n }\n}\n\nconst getGlobalData = (mode)=>{\n const user = getSteedosAuth();\n return {mode: mode, user: user, spaceId: user.spaceId, userId: user.userId}\n}\n\nconst getFormFields = (objectSchema, formProps)=>{\n // console.log(`getFormFields`, objectSchema, formProps)\n const { fields: objectFields } = objectSchema;\n /**\n * fieldsExtend: 重写字段定义\n * fields: 包含的字段\n * excludedFields: 排除的字段\n */\n const { fieldsExtend, fields: includedFields, excludedFields } = formProps;\n \n let fields = {};\n // 以uiSchema fields 为基础, 遍历字段, 并更新字段定义\n _.forEach(objectSchema.fields, (field, fieldName)=>{\n if(!lodash.has(field, \"name\")){\n field.name = fieldName\n }\n if(fieldsExtend && fieldsExtend[fieldName]){\n fields[field.name] = Object.assign({}, field, fieldsExtend[fieldName], {name: field.name})\n }else{\n fields[field.name] = field\n }\n });\n\n if(!_.isEmpty(includedFields) && _.isArray(includedFields)){\n const includedFieldsMap = {}\n _.each(includedFields, (fName, index)=>{\n if(fields[fName]){\n includedFieldsMap[fName] = Object.assign({}, fields[fName], {sort_no: index})\n }\n })\n fields = includedFieldsMap\n }\n\n if(!_.isEmpty(excludedFields) && _.isArray(excludedFields)){\n _.each(excludedFields, (fName)=>{\n delete fields[fName]\n })\n }\n\n return lodash.sortBy(_.values(fields), \"sort_no\");\n}\n\nasync function getFormSchemaWithDataFilter(form, options = {}){\n const { formDataFilter, amisData, env } = options;\n let onFormDataFilter = options.onFormDataFilter;\n if (!onFormDataFilter && typeof formDataFilter === 'string') {\n onFormDataFilter = new Function(\n 'form',\n 'env',\n 'data',\n formDataFilter\n );\n }\n\n try {\n onFormDataFilter && (form = await onFormDataFilter(form, env, amisData) || form);\n } catch (e) {\n console.warn(e);\n }\n return form;\n}\n\nexport async function getObjectForm(objectSchema, ctx){\n const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : \"normal\", labelAlign, tabId, appId, defaults, submitSuccActions = [], \n formDataFilter, onFormDataFilter, amisData, env } = ctx;\n const fields = _.values(objectSchema.fields);\n const formFields = getFormFields(objectSchema, ctx);\n const formSchema = defaults && defaults.formSchema || {};\n if(_.has(formSchema, 'className')){\n formSchema.className = 'steedos-amis-form'\n }\n if(!formSchema.id){\n formSchema.id = 'form_' + objectSchema.name;\n }\n const amisSchema = {\n type: 'service',\n id: `service_${formSchema.id}`,\n className: 'p-0',\n name: `page_edit_${recordId}`,\n api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),\n data:{\n editFormInited: false,\n ...amisData\n },\n // data: {global: getGlobalData('edit'), recordId: recordId, objectName: objectSchema.name, context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},\n initApi: null,\n initFetch: null ,\n body: [defaultsDeep({}, formSchema, {\n type: \"form\",\n mode: layout,\n data: {\n \"&\": \"${initialValues}\"\n },\n labelAlign,\n persistData: false,\n resetAfterSubmit: true,\n preventEnterSubmit: true,\n promptPageLeave: true,\n canAccessSuperData: false,\n name: `form_edit_${recordId}`,\n debug: false,\n title: \"\",\n submitText: \"\", // amis 表单不显示提交按钮, 表单提交由项目代码接管\n api: await getSaveApi(objectSchema, recordId, fields, ctx),\n initFetch: recordId != 'new',\n body: await getFormBody(fields, formFields, Object.assign({}, ctx, {fieldGroups: objectSchema.field_groups})),\n panelClassName:'m-0 sm:rounded-lg shadow-none border-none',\n bodyClassName: 'p-0',\n className: 'steedos-amis-form',\n hiddenOn: \"${editFormInited != true}\",\n onEvent: {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${objectSchema.name}`\n },\n \"data\": {\n \"objectName\": `${objectSchema.name}`,\n \"displayAs\": \"${displayAs}\"\n }\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@data.changed.${_master.objectName}\"\n },\n \"data\": {\n \"objectName\": \"${_master.objectName}\",\n \"_isRelated\": \"${_isRelated || _master._isRelated}\"\n },\n \"expression\": `\\${_master.objectName != '${objectSchema.name}' && _master.objectName}`\n },\n ...submitSuccActions,\n // {\n // \"actionType\": \"custom\",\n // \"script\": `setTimeout(function(){doAction({'actionType': 'setValue','componentId': '${formSchema.id}','args': {'value': {'sort_no': 879}}})}, 300)`\n // },\n // {\n // \"args\": {},\n // \"actionType\": \"closeDialog\"\n // }\n ]\n }\n }\n })]\n };\n amisSchema.body[0] = await getFormSchemaWithDataFilter(amisSchema.body[0], { formDataFilter, onFormDataFilter, amisData, env });\n return amisSchema;\n}\n\nexport async function getObjectDetail(objectSchema, recordId, ctx){\n const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : \"normal\", labelAlign, \n formDataFilter, onFormDataFilter, amisData, env } = ctx;\n const fields = _.values(objectSchema.fields);\n const formFields = getFormFields(objectSchema, ctx);\n const serviceId = `service_detail_page`;\n const amisSchema = {\n type: 'service',\n name: `page_readonly_${recordId}`,\n id: serviceId,\n data: {global: getGlobalData('read'), context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},\n api: await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx),\n body: [\n {\n \"type\": \"wrapper\", //form 的 hiddenOn 会导致 form onEvent 异常, 使用wrapper包裹一次form,并在wrapper上控制显隐\n hiddenOn: \"${recordLoaded != true}\",\n \"className\": \"p-0 m-0\",\n \"body\": {\n type: \"form\",\n mode: layout,\n labelAlign,\n persistData: false,\n promptPageLeave: false,\n name: `form_readonly_${recordId}`,\n debug: false,\n title: \"\",\n data: {\n \"formData\": \"$$\"\n },\n wrapWithPanel: false, \n body: await getFormBody(\n map(fields, (field) => { field.readonly = true; return field; }),\n map(formFields, (field) => { field.readonly = true; return field; }),\n Object.assign({}, ctx, { showSystemFields: true, fieldGroups: objectSchema.field_groups })\n ),\n className: 'steedos-amis-form bg-white',\n actions: [], // 不显示表单默认的提交按钮\n onEvent: {\n [`@data.changed.${objectSchema.name}`]: { // 由于amis service 组件的 onEvent 存在bug ,此处借助form来刷新 上层 service https://github.com/baidu/amis/issues/6294\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"componentId\": serviceId,\n \"expression\": \"this.__deletedRecord != true\"\n },\n {\n // \"args\": {\n // \"url\": \"/app/${appId}/${objectName}/grid/${side_listview_id}\",\n // \"blank\": false\n // },\n \"actionType\": \"custom\",\n \"script\": \"window.goBack()\",\n \"expression\": \"this.__deletedRecord === true\"\n }\n ]\n }\n }\n },\n }\n ],\n onEvent: {\n \"fetchInited\": {\n \"weight\": 0,\n \"actions\": [\n {\n actionType: 'broadcast',\n eventName: \"recordLoaded\",\n args: {\n eventName: \"recordLoaded\"\n },\n data: {\n objectName: \"${event.data.__objectName}\",\n record: \"${event.data.__record}\"\n },\n expression: \"${event.data.__response.error != true}\"\n },\n {\n \"actionType\": \"setValue\",\n \"args\": {\n value: {\n \"recordLoaded\": true,\n }\n },\n expression: \"${event.data.__response.error != true}\"\n }\n ]\n }\n }\n }\n\n amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });\n return amisSchema;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-01 09:00:26\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-03 13:21:38\n * @Description: \n */\nimport { fetchAPI, getSteedosAuth } from \"./steedos.client\"\nimport { each } from \"lodash\";\n\nconst getGraphqlFieldsQuery = (fields)=>{\n const fieldsName = ['_id'];\n fields.push('record_permissions');\n //TODO 此处需要考虑相关对象查询\n each(fields, (fieldName)=>{\n if(fieldName.indexOf('.') > -1){\n fieldName = fieldName.split('.')[0]\n }\n fieldsName.push(`${fieldName}`)\n })\n return `${fieldsName.join(' ')}`;\n}\n\nconst getFindOneQuery = (objectName, id, fields)=>{\n objectName = objectName.replace(/\\./g, '_');\n const queryFields = getGraphqlFieldsQuery(fields);\n let queryOptions = ''\n let alias = \"record\";\n \n const queryOptionsArray = [`id: \"${id}\"`];\n \n if(queryOptionsArray.length > 0){\n queryOptions = `(${queryOptionsArray.join(',')})`\n }\n\n return `{${alias}:${objectName}__findOne${queryOptions}{${queryFields}}}`\n}\n\nexport const getRecord = async (objectName, recordId, fields)=>{\n const result = await fetchAPI('/graphql', {\n method: 'post',\n body: JSON.stringify({\n query: getFindOneQuery(objectName, recordId, fields)\n })\n })\n return result.data.record;\n}\n\nexport const getRelatedsCount = async (masterRecordId, relateds) => {\n const relatedQuery = [];\n\n each(relateds, (relate)=>{\n relatedQuery.push(`${relate.object_name}: ${relate.object_name}__count(filters: [[\"${relate.foreign_key}\",\"=\",\"${masterRecordId}\"]])`);\n })\n\n const query = `\n {\n ${relatedQuery.join(',')}\n }\n `;\n const result = await fetchAPI('/graphql', {\n method: 'POST',\n body: JSON.stringify({ query })\n })\n\n return result.data\n}\n\nexport const getRecordPermissions = async (objectName, recordId)=>{\n const result = await fetchAPI(`/service/api/@${objectName}/recordPermissions/${recordId}`, {\n method: 'GET'\n })\n return result;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:55:39\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-11-14 15:55:32\n * @Description:\n */\n\n\nimport { getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\nimport { isEmpty, find, isString, forEach, keys, findKey, isArray, union, has, map } from \"lodash\";\nimport { getUISchema, getField, getListViewColumns, getListViewSort, getListViewFilter } from './objects'\nimport { getRecord } from './record';\nimport { i18next } from '../i18n'\n\nfunction str2function(\n contents,\n ...args\n ) {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport const getRelatedFieldValue = (masterObjectName, record_id, uiSchema, foreign_key) => {\n const relatedField = find(uiSchema.fields, (field) => {\n return foreign_key === field?.name\n });\n // console.log(`getRelatedFieldValue`, relatedField, uiSchema, foreign_key)\n if (!isString(relatedField.reference_to)) {\n return { o: masterObjectName, ids: [record_id] }\n } else if (relatedField.multiple) {\n return [record_id]\n } else {\n return record_id\n }\n}\n\n// 获取所有相关表\nexport async function getObjectRelatedList(\n objectName,\n recordId,\n formFactor\n) {\n const uiSchema = await getUISchema(objectName);\n const related = [];\n const relatedLists = [].concat(uiSchema.related_lists || []);\n if(!isEmpty(relatedLists)){\n for (const relatedList of relatedLists) {\n const arr = relatedList.related_field_fullname.split(\".\");\n const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n related.push({\n masterObjectName: objectName,\n object_name: arr[0],\n foreign_key,\n label: relatedList.label,\n columns: relatedList.field_names,\n sort: relatedList.sort,\n filters: relatedList.filters,\n visible_on: relatedList.visible_on,\n page_size: relatedList.page_size\n }); \n }\n }else{\n const details = [].concat(uiSchema.details || []);\n for (const detail of details) {\n const arr = detail.split(\".\");\n const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n related.push({\n masterObjectName: objectName,\n object_name: arr[0],\n foreign_key\n });\n }\n }\n\n return related;\n}\n\n// 获取单个相关表\nexport async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObjectName, relatedKey, ctx){\n let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on } = ctx;\n // console.log('getRecordDetailRelatedListSchema==>',objectName,recordId,relatedObjectName)\n const relatedObjectUiSchema = await getUISchema(relatedObjectName);\n if(!relatedObjectUiSchema){\n // 子表对象不存在时直接返回空值.\n return {\n uiSchema: {},\n amisSchema: {}\n }\n }\n const { label , fields } = relatedObjectUiSchema;\n if(!relatedLabel){\n relatedLabel = label;\n }\n if(!relatedKey){\n let mainRelated = {};\n const mainObjectUiSchema = await getUISchema(objectName);\n if(mainObjectUiSchema){\n const mainRelatedLists = mainObjectUiSchema.related_lists || [];\n if(!isEmpty(mainRelatedLists)){\n for (const relatedList of mainRelatedLists) {\n const arr = relatedList.related_field_fullname.split(\".\");\n const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n mainRelated[arr[0]] = foreign_key_value;\n }\n }else{\n const details = union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];\n for (const detail of details) {\n const arr = detail.split(\".\");\n const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n if(!has(mainRelated,arr[0])){\n mainRelated[arr[0]] = foreign_key_value;\n }\n }\n }\n }\n relatedKey = mainRelated[relatedObjectName];\n }\n let globalFilter = null;\n // TODO: refField变量去掉,写到amis运行时脚本中,uiSchema.fields[relatedKey];可以取到\n const refField = await getField(relatedObjectName, relatedKey);\n\n if(!refField){\n return {\n uiSchema: relatedObjectUiSchema,\n amisSchema: {\n \"type\": \"alert\",\n \"body\": `${i18next.t('frontend_objects_related_alert_start')} ${relatedObjectName} ${i18next.t('frontend_objects_related_alert_end')}`,\n \"level\": \"warning\",\n \"showIcon\": true,\n \"className\": \"mb-3\"\n }\n }\n }\n\n let relatedValue = \"${recordId}\";\n // if(refField.reference_to_field && refField.reference_to_field != '_id'){\n // const masterRecord = await getRecord(objectName, recordId, [refField.reference_to_field]);\n // relatedValue = masterRecord[refField.reference_to_field]\n // }\n \n // if (\n // refField._reference_to ||\n // (refField.reference_to && !isString(refField.reference_to))\n // ) {\n // globalFilter = [\n // [`${relatedKey}/o`, \"=\", objectName],\n // [`${relatedKey}/ids`, \"=\", relatedValue],\n // ];\n // } else {\n // globalFilter = [`${relatedKey}`, \"=\", relatedValue];\n // }\n const recordRelatedListHeader = await getObjectRecordDetailRelatedListHeader(relatedObjectUiSchema, relatedLabel, ctx);\n const componentId = `steedos-record-related-list-${relatedObjectName}`;\n const isMobile = window.innerWidth < 768;\n let headerToolbar = [];\n if(!isMobile){\n headerToolbar.push(\"bulkActions\");\n }\n const options = {\n globalFilter,\n defaults: {\n listSchema: { \n headerToolbar,\n columnsTogglable: false,\n onEvent: {\n [`@data.changed.${relatedObjectName}`]: {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n },\n headerSchema: recordRelatedListHeader\n },\n showHeader: true,\n top: top,\n perPage: perPage,\n setDataToComponentId: componentId,\n // tableHiddenOn: hiddenEmptyTable ? \"this.$count === 0\" : null,\n appId: appId,\n crudClassName: 'border-t border-gray-300 hidden',\n refField,\n ...ctx\n }\n const amisSchema= (await getRelatedListSchema(relatedObjectName, 'all', options)).amisSchema;\n if(!amisSchema){\n return;\n }\n return {\n uiSchema: relatedObjectUiSchema,\n amisSchema: {\n type: \"service\",\n id: componentId,\n className: `steedos-record-related-list ${componentId} rounded border border-gray-300 bg-gray-100 mb-4 ${className}`,\n data: {\n relatedKey: relatedKey, \n listViewId: `amis-\\${appId}-${relatedObjectName}-listview`,\n _isRelated: true\n },\n body:[\n amisSchema\n ]\n }\n };\n}\n\n/**\n* \n* @param {*} uiSchema \n* @param {*} ctx \n* @returns \n* 1 对象uiSchema\n* 2 列表视图名称: (排除日历视图)当无视图传入,取is_name为true的字段显示。\n* 3 options\n*/\nfunction getDefaultRelatedListProps(uiSchema, listName, ctx) {\n // console.log('getDefaultRelatedListProps==>', uiSchema, listName, ctx)\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 日历视图不在相关子表中出现\n if(listView.type === 'calendar'){\n return false;\n }\n // 传入listViewName空值则取第一个\n if (!listName) {\n listName = name;\n }\n return name === listName;\n }\n );\n let columns = [];\n let sort = '';\n let filter = null;\n let filtersFunction = null;\n if(listView){\n columns = getListViewColumns(listView, ctx.formFactor);\n sort = getListViewSort(listView);\n filter = getListViewFilter(listView);\n // if(isArray(ctx.globalFilter) && ctx.globalFilter.length && isArray(filter) && filter.length){\n // // 都有值\n // filter = [ctx.globalFilter, 'and', filter]\n // }else if(ctx.globalFilter && (!filter || !filter.length)){\n // // globalFilter有值,filter无值\n // filter = ctx.globalFilter;\n // }\n filtersFunction = listView && listView._filters;\n }else{\n const isNameField = find(\n uiSchema.fields,\n (field,name)=>{\n return field.is_name;\n }\n )\n columns = isNameField ? [isNameField.name] : ['name'];\n // if(ctx.globalFilter){\n // filter = ctx.globalFilter;\n // }\n }\n\n return {\n columns,\n sort,\n filter,\n filtersFunction\n }\n};\n \nfunction getRelatedListProps(uiSchema, listViewName, ctx) {\n if (ctx.columns) {\n const sort = getListViewSort({sort: ctx.sort});\n let { filters , filtersFunction} = ctx;\n if(!filtersFunction && filters){\n filtersFunction = str2function(\n filters,\n 'filters',\n 'data'\n ) \n }\n return {\n columns: ctx.columns,\n sort,\n // filter: ctx.globalFilter,\n filtersFunction: filtersFunction\n }\n } else {\n return getDefaultRelatedListProps(uiSchema, listViewName, ctx);\n }\n}\n\n// 仅提供给单个相关子表内部使用\nexport async function getRelatedListSchema(\n objectName,\n listViewName,\n ctx\n ) {\n const uiSchema = await getUISchema(objectName);\n if(!uiSchema){\n return {}\n }\n const listViewNames = map(uiSchema.list_views, 'name');\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 传入listViewName空值 或者 不存在 则取第一个\n if(!listViewName || listViewNames.indexOf(listViewName)<0){\n listViewName = name;\n }\n return name === listViewName || listView._id === listViewName;\n }\n );\n const listViewProps = getRelatedListProps(uiSchema,listViewName, ctx);\n // console.log('listViewProps==>', listViewProps)\n const {columns: listViewColumns, sort: listViewSort, filter: listviewFilter, filtersFunction } = listViewProps;\n\n const refFieldName = ctx.refField && ctx.refField.name;\n\n let relatedListColumns = listViewColumns;\n if(refFieldName){\n relatedListColumns = listViewColumns.filter(function(columnItem){\n if(typeof columnItem === \"string\"){\n return columnItem !== refFieldName;\n }\n else{\n return columnItem.field !== refFieldName;\n }\n });\n }\n \n const defaults = ctx.defaults || {};\n \n if(!defaults.headerSchema && ctx.showHeader){\n defaults.headerSchema = await getObjectListHeader(uiSchema, listViewName);\n }\n \n if(!ctx.showHeader){\n defaults.headerSchema = null;\n }\n \n ctx.defaults = defaults;\n\n // 由于steedos-object-table组件的上下文覆盖规则异常,此处手动删除无需的ctx参数\n delete ctx.filtersFunction;\n delete ctx.sort;\n delete ctx.extraColumns;\n delete ctx.filters;\n\n delete ctx.globalFilter;\n\n const adaptor = `\n try{\n if(setDataToComponentId){\n if(payload.data.count){\n setTimeout(function(){\n // 设计器中获取不到window.$从而导致报错, 所以用纯js替换下。\n // window.$(\".\" + setDataToComponentId + \" .antd-Crud\").removeClass(\"hidden\");\t\t\n document.querySelectorAll(\".\" + setDataToComponentId + \" .antd-Crud\").forEach(function(element) {\n element.classList.remove(\"hidden\");\n });\n }, 10);\n }\n };\n }catch(e){\n console.log(e);\n }\n `;\n const amisSchema = {\n \"type\": \"steedos-object-table\",\n \"objectApiName\": objectName,\n \"columns\": relatedListColumns,\n \"extraColumns\": listView.extra_columns,\n \"filters\": listviewFilter,\n \"filtersFunction\": filtersFunction,\n \"sort\": listViewSort,\n \"filterVisible\": false,\n \"requestAdaptor\": ctx.requestAdaptor, \n \"adaptor\": adaptor + ctx.adaptor || '',\n \"ctx\": ctx\n };\n // console.log(`getRelatedListSchema amisSchema`, amisSchema);\n return {\n uiSchema,\n amisSchema,\n };\n }","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:55:39\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-10-20 11:38:25\n * @Description:\n */\nimport { fetchAPI, getUserId } from \"./steedos.client\";\nimport { getObjectCalendar } from './converter/amis/calendar';\nimport { i18next } from '../i18n'\nimport { createObject } from '../utils/object'\n\nimport {\n getObjectCRUD,\n getObjectDetail,\n getObjectForm,\n} from \"./converter/amis/index\";\nimport { getObjectListHeader, getObjectListHeaderFirstLine, getObjectRecordDetailHeader, getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\nimport _, { cloneDeep, slice, isEmpty, each, has, findKey, find, isString, isObject, keys, includes, isArray, isFunction, map, forEach, defaultsDeep } from \"lodash\";\nimport { getRecord } from './record';\nimport { getListViewItemButtons } from './buttons'\nimport { getObjectRelatedList } from './objectsRelated';\n\nlet UI_SCHEMA_CACHE = {};\n\nlet UISchemaFunction;\nexport const setUISchemaFunction = function(fun){\n UISchemaFunction = fun;\n};\n\nif('undefined' != typeof window){\n if(!window.UI_SCHEMA_CACHE){\n window.UI_SCHEMA_CACHE = UI_SCHEMA_CACHE;\n }\n UI_SCHEMA_CACHE = window.UI_SCHEMA_CACHE;\n}\n\nconst setUISchemaCache = (key, value) => {\n UI_SCHEMA_CACHE[key] = value;\n};\n\nconst getUISchemaCache = (key) => {\n return cloneDeep(UI_SCHEMA_CACHE[key]);\n};\n\nconst hasUISchemaCache = (key) => {\n return has(UI_SCHEMA_CACHE, key);\n};\n\nexport function getListViewColumns(listView, formFactor) {\n let listViewColumns = [];\n if (formFactor === \"SMALL\") {\n listViewColumns = !isEmpty(listView.mobile_columns)\n ? listView.mobile_columns\n : slice(listView.columns, 0, 4);\n } else {\n listViewColumns = listView.columns;\n }\n return listViewColumns;\n};\n\nexport function getListViewSort(listView) {\n let sort = '';\n if(listView && listView.sort && listView.sort.length){\n each(listView.sort,function(item,index){\n if(isArray(item)){\n const field_name = item[0];\n const order = item[1] || '';\n let sortStr = field_name + ' ' + order;\n sortStr = index > 0 ? ','+sortStr : sortStr\n sort += sortStr;\n }else{\n let sortStr = item.field_name + ' ' + item.order;\n sortStr = index > 0 ? ','+sortStr : sortStr\n sort += sortStr;\n }\n })\n }\n return sort;\n};\n\nexport function getListViewFilter(listView){\n if(!listView){\n return ;\n }\n try {\n const userId = getUserId();\n let filters = listView.filters;\n if(listView.filter_scope === 'mine'){\n if(_.isEmpty(filters)){\n filters = [[\"owner\", \"=\", userId]]\n }else{\n if(_.isString(filters) && _.startsWith(_.trim(filters), \"function\")){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(_.isArray(filters)){\n filters.push([\"owner\", \"=\", userId])\n }else{\n console.debug(`listView filters is not array`, listView)\n throw new Error('filters is not array')\n }\n }\n };\n return filters;\n } catch (error) {\n console.error(error)\n }\n}\n\nfunction formatUISchemaCache(objectName, uiSchema){\n setUISchemaCache(objectName, uiSchema);\n each(uiSchema.fields, (field)=>{\n try {\n if(field.type === \"lookup\" && field._reference_to && _.isString(field._reference_to)){\n field.reference_to = eval(`(${field._reference_to})`)();\n }\n } catch (exception) {\n field.reference_to = undefined;\n console.error(exception)\n }\n })\n each(uiSchema.list_views, (v, k)=>{\n v.name = k;\n if(!has(v, 'columns')){\n v.columns = uiSchema.list_views.all.columns;\n }\n })\n}\n\nexport async function getUISchema(objectName, force) {\n if (!objectName) {\n return;\n }\n if (hasUISchemaCache(objectName) && !force) {\n return getUISchemaCache(objectName);\n }\n let uiSchema = null;\n try {\n if(UISchemaFunction){\n uiSchema = await UISchemaFunction(objectName, force);\n }\n else {\n const url = `/service/api/@${objectName.replace(/\\./g, \"_\")}/uiSchema`;\n uiSchema = await fetchAPI(url, { method: \"get\" });\n }\n if(!uiSchema){\n return ;\n }\n formatUISchemaCache(objectName, uiSchema);\n } catch (error) {\n console.error(`getUISchema`, objectName, error);\n setUISchemaCache(objectName, null);\n }\n return getUISchemaCache(objectName);\n}\n\nexport function getUISchemaSync(objectName, force) {\n if (!objectName) {\n return;\n }\n if (hasUISchemaCache(objectName) && !force) {\n return getUISchemaCache(objectName);\n }\n let uiSchema = null;\n try {\n \n const url = `/service/api/@${objectName.replace(/\\./g, \"_\")}/uiSchema`;\n uiSchema = Steedos.authRequest(url, {\n type: 'GET',\n async: false,\n });\n\n if(!uiSchema){\n return ;\n }\n formatUISchemaCache(objectName, uiSchema);\n } catch (error) {\n console.error(`getUISchema`, objectName, error);\n setUISchemaCache(objectName, null);\n }\n return getUISchemaCache(objectName);\n}\n\nexport async function getField(objectName, fieldName) {\n const uiSchema = await getUISchema(objectName);\n return uiSchema?.fields[fieldName];\n}\n\n// 获取表单页面\nexport async function getFormSchema(objectName, ctx) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectForm(uiSchema, ctx);\n console.log(`getFormSchema====>`, amisSchema)\n return {\n uiSchema,\n amisSchema,\n };\n}\n\n// 获取只读页面 recordId 已废弃, 函数签名保持不变, 但recordId变量不可再使用, 请使用运行时的${recordId}\nexport async function getViewSchema(objectName, recordId, ctx) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectDetail(uiSchema, recordId, ctx);\n // console.log(`getViewSchema amisSchema`, amisSchema)\n return {\n uiSchema,\n amisSchema\n };\n}\n\n// 获取列表视图\nexport async function getListSchema(\n appName,\n objectName,\n listViewName,\n ctx = {}\n) {\n const uiSchema = await getUISchema(objectName);\n if(!uiSchema){\n return {}\n }\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 传入listViewName空值则取第一个\n if(!listViewName){\n listViewName = name;\n }\n return name === listViewName || listView._id === listViewName;\n }\n );\n\n if (!listView) {\n return { uiSchema };\n }\n\n // 直接返回自定义的列表视图schema\n if(listView.enable_amis_schema && listView.amis_schema){\n const amisSchema = isString(listView.amis_schema) ? JSON.parse(listView.amis_schema) : listView.amis_schema;\n return {\n uiSchema,\n isCustomAmisSchema: true,\n amisSchema\n };\n }\n\n let listViewColumns = getListViewColumns(listView, ctx.formFactor);\n let sort = getListViewSort(listView);\n let listviewFilter = getListViewFilter(listView, ctx);\n let listview_filters = listView && listView._filters;\n // 返回 calendar 组件\n if(listView.type === \"calendar\"){\n const amisSchema = {\n \"type\": \"steedos-object-calendar\",\n \"objectApiName\": objectName,\n \"filters\": listviewFilter,\n \"filtersFunction\": listview_filters,\n \"sort\": sort,\n ...listView.options\n };\n return {\n uiSchema,\n isCalendar: true,\n amisSchema\n };\n }\n\n const defaults = ctx.defaults || {};\n\n // // 未自定义header 且显示header的时候, 使用系统header\n // if(!defaults.headerSchema && ctx.showHeader){\n // defaults.headerSchema = getObjectListHeader(uiSchema, listViewName);\n // }\n \n // // 如果不显示header,则清理掉\n // if(!ctx.showHeader){\n // defaults.headerSchema = null;\n // }\n\n defaults.headerSchema = null;\n\n /**\n * 本次存储代码段\n */\n try {\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n /**\n * localListViewProps规范来自crud请求api中api.data.$self参数值的。\n * 比如:{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:顶部放大镜搜索条件\n * filter:右侧过滤器\n * perPage:每页条数\n * page:当前页码\n * orderBy:排序字段\n * orderDir:排序方向\n */\n if (localListViewProps) {\n localListViewProps = JSON.parse(localListViewProps);\n // localListViewProps.perPage = 3;\n let listSchema = {};\n if(localListViewProps.orderBy){\n listSchema.orderBy = localListViewProps.orderBy;\n }\n if(localListViewProps.orderDir){\n listSchema.orderDir = localListViewProps.orderDir;\n }\n\n if(localListViewProps.perPage){\n listSchema.defaultParams = {\n perPage: localListViewProps.perPage\n }\n }\n defaults.listSchema = defaultsDeep({}, listSchema, defaults.listSchema || {});\n }\n }\n catch (ex) {\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n\n ctx.defaults = defaults;\n\n if (listViewName == \"recent\") {\n listview_filters = `\n function(filters, data) {\n var result = Steedos.authRequest('/graphql', {\n type: 'POST',\n async: false,\n data: JSON.stringify({\n query: '{object_recent_viewed(filters: [[\"record.o\",\"=\",\"' + data.objectName + '\"],[\"space\",\"=\",\"' + data.context.tenantId + '\"],[\"owner\",\"=\",\"' + data.context.userId + '\"]],sort:\"modified desc\",top:50){ _id,record} }'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return [\"_id\", \"=\", _ids];\n }\n `\n }\n const amisSchema = {\n \"type\": \"steedos-object-table\",\n \"objectApiName\": objectName,\n \"columns\": listViewColumns,\n \"extraColumns\": listView.extra_columns,\n \"filters\": listviewFilter,\n \"filtersFunction\": listview_filters,\n \"sort\": sort,\n \"ctx\": ctx,\n \"requestAdaptor\": listView.requestAdaptor || ctx.requestAdaptor, \n \"adaptor\": listView.adaptor || ctx.adaptor,\n \"headerToolbarItems\": ctx.headerToolbarItems,\n \"filterVisible\": ctx.filterVisible,\n \"rowClassNameExpr\": ctx.rowClassNameExpr,\n \"crudDataFilter\": ctx.crudDataFilter,\n \"onCrudDataFilter\": ctx.onCrudDataFilter\n };\n // console.log(`getListSchema===>`,amisSchema)\n return {\n uiSchema,\n amisSchema,\n };\n}\n\nasync function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {\n let fields = [];\n for (const column of columns) {\n if (isString(column)) {\n if (column.indexOf('.') > 0) {\n const fieldName = column.split('.')[0];\n const displayName = column.split('.')[1];\n const filedInfo = uiSchema.fields[fieldName];\n if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {\n const rfUiSchema = await getUISchema(filedInfo.reference_to);\n const rfFieldInfo = rfUiSchema.fields[displayName];\n fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));\n }\n } else {\n if (uiSchema.fields[column]) {\n fields.push(Object.assign({}, uiSchema.fields[column], ctx));\n }\n else if(ctx.extra){\n // 配置列表视图extra_columns时允许字段是hidden的,hidden的字段在uiSchema.fields中不存在\n fields.push({\n extra: true,\n name: column\n });\n }\n }\n } else if (isObject(column)) {\n if (column.field.indexOf('.') > 0) {\n const fieldName = column.field.split('.')[0];\n const displayName = column.field.split('.')[1];\n const filedInfo = uiSchema.fields[fieldName];\n if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {\n const rfUiSchema = await getUISchema(filedInfo.reference_to);\n const rfFieldInfo = rfUiSchema.fields[displayName];\n fields.push(Object.assign({}, rfFieldInfo, ctx,\n { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },\n {\n width: column.width,\n wrap: column.wrap, // wrap = true 是没效果的\n amis: column.amis\n }\n ));\n }\n } else {\n if (uiSchema.fields[column.field]) {\n fields.push(\n Object.assign({}, uiSchema.fields[column.field], ctx, {\n width: column.width,\n wrap: column.wrap, // wrap = true 是没效果的\n amis: column.amis\n })\n );\n }\n else if(ctx.extra){\n // 配置列表视图extra_columns时允许字段是hidden的,hidden的字段在uiSchema.fields中不存在\n fields.push({\n extra: true,\n name: column.field\n });\n }\n }\n }\n }\n return fields;\n}\n\n// 获取对象表格\nexport async function getTableSchema(\n appName,\n objectName,\n columns,\n ctx = {}\n) {\n // console.time('getTableSchema', columns);\n const uiSchema = await getUISchema(objectName);\n\n let sort = ctx.sort;\n if(!sort){\n const sortField = ctx.sortField;\n const sortOrder = ctx.sortOrder;\n if(sortField){\n let sortStr = sortField + ' ' + sortOrder || 'asc';\n sort = sortStr;\n }\n }\n\n let fields = await convertColumnsToTableFields(columns, uiSchema);\n\n const extraColumns = ctx.extraColumns;\n\n if (extraColumns) {\n let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});\n fields = fields.concat(extraFields);\n }\n \n let crudOptions = {\n tabId: objectName,\n appId: appName,\n objectName: objectName,\n ...ctx,\n filter: ctx.filters,\n sort,\n headerToolbarItems: ctx.headerToolbarItems,\n buttons: await getListViewItemButtons(uiSchema, ctx)\n };\n crudOptions.amisData = createObject(ctx.amisData || {}, {});\n const amisSchema = await getObjectCRUD(uiSchema, fields, crudOptions);\n // console.timeEnd('getTableSchema');\n return {\n uiSchema,\n amisSchema,\n };\n}\n\n// 获取对象日历\nexport async function getCalendarSchema(\n appName,\n objectName,\n calendarOptions,\n ctx = {}\n) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectCalendar(uiSchema, calendarOptions, {\n tabId: objectName,\n appId: appName,\n objectName: objectName,\n ...ctx\n });\n return {\n uiSchema,\n amisSchema\n };\n}\n\nexport async function getRecordDetailHeaderSchema(objectName,recordId, options){\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectRecordDetailHeader(uiSchema, recordId, options);\n return {\n uiSchema,\n amisSchema,\n };\n}\n\nexport async function getRecordDetailSchema(objectName, appId, props = {}){\n const uiSchema = await getUISchema(objectName);\n const relatedLists = await getObjectRelatedList(objectName, null, null);\n const detailed = {\n \"title\": i18next.t('frontend_record_detail_tab_detailed'),\n \"className\": \"px-0 py-4\",\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:d4a495811d57\",\n appId: appId\n }\n ],\n \"id\": \"u:5d4e7e3f6ecc\"\n };\n const related = {\n \"title\": i18next.t('frontend_record_detail_tab_related'),\n \"className\": \"px-0 pt-4\",\n \"body\": [\n {\n \"type\": \"steedos-object-related-lists\",\n \"label\": \"相关列表\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:3b85b7b7a7f6\",\n appId: appId\n }\n ],\n \"id\": \"u:1a0326aeec2b\"\n }\n const content = {\n \"type\": \"tabs\",\n \"className\": \"sm:mt-3 bg-white sm:rounded sm:border border-gray-300 p-4\",\n \"tabs\": [\n detailed\n ],\n \"id\": \"u:a649e4094a12\"\n };\n if(relatedLists.length){\n content.tabs.push(related)\n }\n return {\n uiSchema,\n amisSchema: {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:48d2c28eb755\"\n },\n content\n ],\n data: {\n \"_master.objectName\": \"${objectName}\", \n \"_master.recordId\": \"${recordId}\"\n },\n onEvent: {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,\n \"_master.record\": `\\${record}`, \n // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId\n \"_master.objectName\": \"${objectName}\", \n \"_master.recordId\": \"${recordId}\"\n }\n }\n ]\n },\n ...props.onEvent\n },\n }\n }\n}\n\nexport async function getRecordServiceSchema(objectName, appId, props = {}) {\n const uiSchema = await getUISchema(objectName);\n return {\n uiSchema,\n amisSchema: {\n \"type\": \"service\",\n \"body\": [],\n data: {\n \"_master.objectName\": \"${objectName}\",\n \"_master.recordId\": \"${recordId}\"\n },\n \"style\": {\n \"padding\": \"var(--Page-body-padding)\",\n ...props.style\n },\n onEvent: {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,\n \"_master.record\": `\\${record}`,\n // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId\n \"_master.objectName\": \"${objectName}\",\n \"_master.recordId\": \"${recordId}\"\n }\n }\n ]\n },\n ...props.onEvent\n }\n }\n }\n}\n\n// 获取单个相关表\nexport async function getObjectRelated(\n {appName,\n masterObjectName,\n objectName,\n relatedFieldName,\n recordId,\n formFactor}\n) {\n let filter = null;\n const refField = await getField(objectName, relatedFieldName);\n if (\n refField._reference_to ||\n (refField.reference_to && !isString(refField.reference_to))\n ) {\n filter = [\n [`${relatedFieldName}/o`, \"=\", masterObjectName],\n [`${relatedFieldName}/ids`, \"=\", recordId],\n ];\n } else {\n filter = [`${relatedFieldName}`, \"=\", recordId];\n }\n const masterObjectUISchema = await getUISchema(masterObjectName);\n return {\n masterObjectName: masterObjectName,\n object_name: objectName,\n foreign_key: relatedFieldName,\n schema: await getListSchema(appName, objectName, \"all\", {\n globalFilter: filter,\n formFactor: formFactor,\n }),\n record: await getRecord(masterObjectName, recordId, [\n masterObjectUISchema.NAME_FIELD_KEY,\n ]),\n masterObjectUISchema: masterObjectUISchema,\n };\n}\n\n\nif(typeof window != 'undefined'){\n window.getUISchema = getUISchema;\n window.getUISchemaSync = getUISchemaSync;\n window.getListSchema = getListSchema;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-05-23 09:53:08\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-10-11 17:32:17\n * @Description: \n */\nimport { Router } from '../../router'\n import { getUISchema } from '../../objects'\nimport { forEach } from 'lodash';\nimport { getContrastColor } from './util'\n\nexport function getCreatedInfoTpl(formFactor){\n const href = Router.getObjectDetailPath({\n formFactor, appId: \"admin\", objectName: 'users', recordId: '${created_by._id}'\n })\n return `<span><a href='${href}'>\\${_display.created_by.label}</a>\\${_display.created}</span>`\n}\n\nexport function getModifiedInfoTpl(formFactor){\n const href = Router.getObjectDetailPath({\n formFactor, appId: \"admin\", objectName: 'users', recordId: '${modified_by._id}'\n })\n return `<span><a href='${href}'>\\${_display.modified_by.label}</a>\\${_display.modified}</span>`\n}\n\nexport function getNumberTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getTimeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getDateTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\n\nexport function getDateTimeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getUiFieldTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getUiFileSizeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\n//TODO 处理name字段\nexport async function getRefObjectNameFieldName(field){\n const refUiSchema = await getUISchema(field.reference_to)\n const NAME_FIELD_KEY = refUiSchema.NAME_FIELD_KEY || 'name';\n return NAME_FIELD_KEY;\n}\n\nexport function getSelectTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\nexport function getSelectMap(selectOptions){\n let map = {};\n forEach(selectOptions,(option)=>{\n const optionValue = option.value + '';\n const optionColor = option.color + '';\n if(optionColor){\n const background = optionColor.charAt(0) === '#' ? optionColor : '#'+optionColor;\n const color = getContrastColor(background);\n const optionColorStyle = 'background:'+background+';color:'+color+';line-height:1.5rem';\n map[optionValue] = `<span class=\"rounded-xl px-2 py-1\" style='${optionColorStyle}'>${option.label}</span>`\n }else{\n map[optionValue] = option.label;\n }\n })\n return map;\n}\n\nexport function getNameTplUrl(field, ctx){\n if(ctx.objectName === 'cms_files'){\n return `\\${context.rootUrl}/api/files/files/\\${versions[0]}?download=true`\n }\n const href = Router.getObjectDetailPath({\n ...ctx, formFactor: ctx.formFactor, appId: \"${appId}\", objectName: ctx.objectName || \"${objectName}\", recordId: `\\${${ctx.idFieldName}}`\n })\n return href;\n}\n\nexport function getNameTpl(field, ctx){\n const href = getNameTplUrl(field, ctx);\n let linkTarget = \"\";\n if(ctx && ctx.isLookup){\n linkTarget = \"target='_blank'\"\n }\n return `<a href=\"${href}\" ${linkTarget}>\\${${field.name}}</a>`\n}\n\nexport function getRelatedFieldTpl(field, ctx){\n let tpl = '';\n if(!field.reference_to && (field.optionsFunction || field._optionsFunction || field.options)){\n if(field.isTableField){\n return `\\${${field.name}}`\n }else{\n return `\\${${field.name}__label}`\n }\n }\n\n let linkTarget = \"\";\n if(ctx && ctx.isLookup){\n linkTarget = \"target='_blank'\"\n }\n\n const onlyDisplayLookLabel = ctx.onlyDisplayLookLabel;\n\n let fieldDataStrTpl = `data._display.${field.name}`;\n\n if(field.isTableField){\n fieldDataStrTpl = `data.${field.name}`;\n }\n\n if(_.isString(field.reference_to) || !field.reference_to){\n if(field.multiple){\n let labelTpl = `<%=item.label%>`;\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"<%=data.appId%>\", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: \"JavaScript\"\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}><%=item.label%></a>`;\n }\n tpl = `\n <% if (${fieldDataStrTpl} && ${fieldDataStrTpl}.length) { %><% ${fieldDataStrTpl}.forEach(function(item,index) { %> <% if(index>0 && index<${fieldDataStrTpl}.length){ %> , <% } %> ${labelTpl} <% }); %><% } %>\n `\n }else{\n let labelTpl = `\\${_display.${field.name}.label}`;\n let objectNameTpl = `\\${_display.${field.name}.objectName}`;\n let recordIdTpl = `\\${_display.${field.name}.value}`;\n if(field.isTableField){\n labelTpl = `\\${${field.name}.label}`;\n objectNameTpl = `\\${${field.name}.objectName}`;\n recordIdTpl = `\\${${field.name}.value}`;\n }\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"${appId}\", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}>${labelTpl}</a>`;\n }\n tpl = labelTpl;\n }\n\n \n }else{\n let labelTpl = `<%=item.label%>`;\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"<%=data.appId%>\", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: \"JavaScript\"\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}><%=item.label%></a>`;\n }\n tpl = `\n <% if (${fieldDataStrTpl} && ${fieldDataStrTpl}.length) { %><% ${fieldDataStrTpl}.forEach(function(item) { %> ${labelTpl} <% }); %><% } %>\n `\n }\n return tpl\n}\n\nexport async function getLookupTpl(field, ctx){\n if(!field.reference_to){\n return getSelectTpl(field)\n }\n const NAME_FIELD_KEY = await getRefObjectNameFieldName(field);\n if(field.multiple){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: ctx.appId, objectName: field.reference_to, recordId: `<%=item._id%>`, _templateType: \"JavaScript\"\n })\n return `\n <% if (data.${field.name} && data.${field.name}.length) { %><% data.${field.name}.forEach(function(item) { %> <a href=\"${href}\"><%=item.${NAME_FIELD_KEY}%></a> <% }); %><% } %>\n `\n }else{\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: ctx.appId, objectName: field.reference_to, recordId: `\\${${field.name}._id}`\n })\n return `<a href=\"${href}\">\\${${field.name}.${NAME_FIELD_KEY}}</a>`\n }\n \n}\n\nexport function getSwitchTpl(field){\n let fieldDataStrTpl = `data._display.${field.name}`;\n if(field.isTableField){\n fieldDataStrTpl = `data.${field.name}`;\n }\n return `<% if (data.${field.name}) { %>\n <span class=\"slds-icon_container slds-icon-utility-check slds-current-color\" title=\"<%=${fieldDataStrTpl}%>\">\n <span ><%= ${fieldDataStrTpl} === \"√\" ? \"<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>\" : ${fieldDataStrTpl} %></span>\n </span>\n <% } %>`\n}\n\nexport function getPasswordTpl(field){\n return `<% if (data.${field.name}) { %>\n <span>······</span>\n <% } %>`\n}\n\nexport function getLocationTpl(field){\n return `\\${${field.name} ? ${field.name}.address : ''}`\n}\n\nexport async function getFieldTpl (field, options){\n if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLookLabel){\n return getNameTpl(field, options)\n }\n switch (field.type) {\n case 'password':\n return getPasswordTpl(field);\n case 'boolean':\n return getSwitchTpl(field);\n case 'toggle':\n return getSwitchTpl(field);\n case 'select':\n return getSelectTpl(field);\n case 'time':\n return getTimeTpl(field);\n case 'date':\n return getDateTpl(field);\n case 'datetime':\n return getDateTimeTpl(field);\n case 'lookup':\n return await getRelatedFieldTpl(field, options);\n case 'master_detail':\n return await getRelatedFieldTpl(field, options);\n case 'location':\n return await getLocationTpl(field);\n case 'number':\n case 'currency':\n return await getNumberTpl(field);\n case 'percent':\n case 'formula':\n case 'summary':\n return getUiFieldTpl(field)\n case 'filesize':\n return getUiFileSizeTpl(field)\n default:\n break;\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-04 10:42:49\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-25 10:28:47\n * @Description: \n */\nexport default {\n listView: {\n newRecordMode: 'modal',\n editRecordMode: 'modal',\n perPage: 20\n }\n}","import * as _ from 'lodash'\nimport * as Tpl from '../tpl';\nimport * as Fields from '../fields/index';\nimport * as graphql from '../graphql';\nimport config from '../../../../config'\nimport { each, forEach, isBoolean, isEmpty } from 'lodash';\nimport { getAmisFileReadonlySchema } from './file'\nimport { Router } from '../../../router'\nimport { i18next } from '../../../../i18n'\n\nfunction getOperation(fields){\n const controls = [];\n _.each(fields, function(field){\n controls.push(Fields.convertSFieldToAmisField(field, true));\n })\n return {\n \"type\": \"operation\",\n \"label\": \"操作\",\n \"width\": 100,\n fixed: \"right\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"icon\": \"fa fa-eye\",\n \"actionType\": \"dialog\",\n \"tooltip\": \"查看\",\n \"dialog\": {\n \"title\": \"查看\",\n \"body\": {\n \"type\": \"form\",\n \"controls\": controls\n }\n }\n }]\n }\n}\n\n//获取name字段,如果没有,则_index字段添加链接\nfunction getDetailColumn(){}\n\nasync function getQuickEditSchema(field, options){\n //判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑\n let isAmisVersionforBatchEdit = false;\n if(window.amisRequire && window.amisRequire('amis')){\n isAmisVersionforBatchEdit = window.amisRequire('amis').version[0] >= 3 && window.amisRequire('amis').version[2] >= 2;\n }else if(window.Amis){\n isAmisVersionforBatchEdit = window.Amis.version[0] >= 3 && window.Amis.version[2] >= 2;\n }\n const quickEditId = options.objectName + \"_\" + field.name + \"_quickEdit\";//定义快速编辑的表单id,用于setvalue传值\n var quickEditSchema = { body: [], id: quickEditId };\n //select,avatar,image,file等组件无法行记录字段赋值,暂不支持批量编辑;\n if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){\n const submitEvent = {\n submit: {\n actions: [\n {\n actionType: \"custom\",\n script: `\n let items = _.cloneDeep(event.data.items);\n let selectedItems = _.cloneDeep(event.data.selectedItems);\n if(event.data.isBatchEdit){\n selectedItems.forEach(function(selectedItem){\n selectedItem._display.${field.name} = event.data._display.${field.name};\n doAction({actionType: 'setValue', \"args\": {\"value\": selectedItem._display},componentId: \"_display_\" + selectedItem._index});\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data.${field.name}},componentId: \"${options.objectName + \"_\" + field.name + \"_\"}\" + selectedItem._index});\n })\n }else{\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data._display},componentId: \"_display_\" + event.data._index});\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data.${field.name}},componentId: \"${options.objectName + \"_\" + field.name + \"_\"}\" + event.data._index});\n }\n `\n },\n {\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n }\n quickEditSchema.onEvent = submitEvent;\n }\n \n if (field.disabled) {\n quickEditSchema = false;\n } else {\n var fieldSchema = await Fields.convertSFieldToAmisField(field, false, _.omit(options, 'buttons'));\n //存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary\n if (!!fieldSchema) {\n quickEditSchema.body.push(fieldSchema);\n //以下字段使用_display的数据,因此在触发change等事件时对数据_display进行修改,以实现保存前的回显\n var TempDisplayField = ``;\n quickEditSchema.body[0].onEvent = {};\n const quickEditOnEvent = function (displayField) {\n const EventType = {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": `\n var _display = _.cloneDeep(event.data._display);\n ${displayField}\n doAction({actionType: 'setValue', \"args\": {\"value\": {_display}},componentId: \"${quickEditId}\"});\n `\n }\n ]\n };\n return EventType;\n }\n switch (field.type) {\n //TODO: amis的picker组件直接点击选项x时不会触发change事件,待处理\n case \"lookup\":\n case \"master_detail\":\n let labelField = quickEditSchema.body[0].labelField || \"label\";\n let valueField = quickEditSchema.body[0].valueField || \"value\";\n if (field.multiple) {\n /*\n 多选分两种情况。\n 第一种是减少选项时(判断新的数据是否比老的数据短),按照index删除_display中对应选项,保证回显没问题;\n 第二种是增加选项时,按照value的值,找到对应选项,并按照_display的规则为其赋值\n */\n TempDisplayField = `\n const preData = _.cloneDeep(event.data.__super.${field.name});\n if(preData && event.data.${field.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${field.name}, item) == -1) _display[\"${field.name}\"].splice(index, 1);\n })\n }else{\n _display[\"${field.name}\"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${valueField}: val });\n _display[\"${field.name}\"].push(\n {\n \"label\": item.${labelField},\n \"value\": item[event.data.uiSchema.idFieldName],\n \"objectName\": \"${field.reference_to}\"\n }\n )\n })\n }\n \n `\n } else {\n TempDisplayField = `\n if(event.data.value){\n _display[\"${field.name}\"] = {\n \"label\": event.data.selectedItems.${labelField},\n \"value\": event.data.selectedItems[event.data.uiSchema.idFieldName],\n \"objectName\": \"${field.reference_to}\"\n }\n }else{\n _display[\"${field.name}\"] = {}\n }\n `\n }\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"select\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.selectedItems.label;\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"percent\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value.toFixed(${field.scale}) + '%';\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"time\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).utc().format('HH:mm');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"date\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"datetime\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"boolean\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value?\"√\":\"\";\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"number\":\n case \"currency\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value && event.data.value.toFixed(${field.scale});\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n\n break;\n case \"file\":\n var removeDisplayField = ``;\n if (field.multiple) {\n TempDisplayField = `\n _display[\"${field.name}\"].push({\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n });\n `\n removeDisplayField = `\n _.remove(_display[\"${field.name}\"], function(file){return file.url == event.data.item.url});\n `\n } else {\n TempDisplayField = ` \n _display[\"${field.name}\"] = {\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n };\n `\n removeDisplayField = `\n if(_display[\"${field.name}\"].url == event.data.item.url){\n _display[\"${field.name}\"] = {};\n }\n `\n }\n quickEditSchema.body[0].onEvent[\"success\"] = quickEditOnEvent(TempDisplayField)\n quickEditSchema.body[0].onEvent[\"remove\"] = quickEditOnEvent(removeDisplayField)\n break;\n case \"avatar\":\n case \"image\":\n quickEditSchema.body[0].receiver.adaptor = `\n const { context } = api.body; \n var rootUrl = context.rootUrl + \"/api/files/${field.type}s/\";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `\n break;\n default:\n break;\n }\n quickEditSchema.body[0].visibleOn = \"${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\"\n quickEditSchema.body.push({\n \"type\":\"service\",\n \"body\":[\n {\n \"type\": \"tpl\",\n \"tpl\": i18next.t('frontend_records_no_allowedit'),\n \"visibleOn\": \"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\"\n },\n {\n \"type\": \"spinner\",\n \"showOn\": \"${quickedit_record_permissions_loading}\"\n }\n ],\n \"onEvent\":{\n \"init\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions_loading\": true\n }\n }\n },\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/service/api/@\\${objectName}/recordPermissions/${_id}\",\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"cache\": 30000,\n \"messages\": {\n \"failed\": \"失败了呢。。\"\n }\n }\n }\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions_loading\": false\n }\n }\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions\": \"${event.data}\"\n }\n }\n }\n ]\n }\n }\n \n })\n if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){\n quickEditSchema.body.push({\n \"name\": \"isBatchEdit\",\n \"type\": \"checkbox\",\n \"option\": [\n {\n \"type\": \"tpl\",\n \"tpl\": \"更新${COUNT(selectedItems)}个选定记录\"\n },\n {\n \"type\": \"spinner\",\n \"showOn\": \"${batchPermissionLoading}\",\n \"size\": \"sm\",\n \"className\": \"mr-4\"\n }\n ],\n \"visibleOn\": \"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\",\n \"disabledOn\": \"${batchPermissionLoading}\",\n \"onEvent\":{\n \"change\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"batchPermissionLoading\": true\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"query\": \"{rows:${objectName}(filters:[\\\"_id\\\",\\\"in\\\",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}\"\n },\n \"adaptor\": `\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n `\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"batchPermissionLoading\": false\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"dialog\",\n \"dialog\":{\n \"title\": \"记录权限\",\n \"showCloseButton\": false,\n \"body\":[\n {\n \"type\": \"tpl\",\n \"tpl\": \"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?\"\n }\n ],\n \"onEvent\":{\n \"confirm\":{\n \"actions\":[\n {\n \"actionType\": \"custom\",\n \"script\": `\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById(\"${options.crudId}\");\n const selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n })\n `\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"isBatchEdit\": true\n }\n },\n }\n ]\n },\n \"cancel\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"isBatchEdit\": false\n }\n },\n }\n ]\n }\n }\n },\n \"expression\":\"${COUNT(event.data.noPermission)>0}\"\n }\n ]\n }\n }\n })\n }\n } else {\n quickEditSchema = false;\n }\n //amis3.2以下禁用lookup的单元格编辑\n if(field.type == \"lookup\" && !isAmisVersionforBatchEdit){\n quickEditSchema = false;\n }\n //TODO:附件多选时会覆盖老数据,暂时禁用\n if(field.type == \"file\" && field.multiple){\n quickEditSchema = false;\n }\n //TODO:location字段在列表中快速编辑后存在bug,保存时可能会丢失部分数据,暂时禁用\n if(field.type == \"location\"){\n quickEditSchema = false;\n }\n }\n return quickEditSchema;\n}\n\nfunction getFieldWidth(width){\n const defaultWidth = \"unset\";//用于使table内的td标签下生成div,实现将快速编辑按钮固定在右侧的效果,并不是为了unset效果\n if(typeof width == 'string'){\n if(isNaN(width)){\n return width;\n }else{\n return Number(width);\n }\n }else if(typeof width == 'number'){\n return width;\n }else{\n return defaultWidth;\n }\n}\n\nexport async function getTableColumns(fields, options){\n const columns = [];\n if(!options.isLookup && !options.isInputTable){\n //将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑\n columns.push({name: '_display',type: 'static', width: 32, placeholder: \"\",id: \"_display_${_index}\", className: \"hidden\"});\n columns.push({name: '_index',type: 'text', width: 32, placeholder: \"\"});\n }\n const allowEdit = options.permissions?.allowEdit && !options.isLookup && options.enable_inline_edit != false;\n \n for (const field of fields) {\n //增加quickEdit属性,实现快速编辑\n const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;\n let className = \"\";\n if(field.wrap != true){\n className += \" whitespace-nowrap \"\n }else{\n className += \" break-all \"\n }\n let columnItem;\n if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){\n const previewFileScript = `\n var data = event.data;\n var file_name = data.versions ? data.name : \"${field.label}\";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;\n columnItem = {\n \"type\": \"button\",\n \"label\": `<%=data.versions ? data.name : \"${field.label}\"%>`,\n className,\n \"level\": \"link\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"url\": \"${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}\",\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\",\n // \"expression\": \"!!!window?.nw?.require\"//浏览器上直接下载\n \"expression\": \"!!!(window && window.nw && window.nw.require)\"//浏览器上直接下载\n },\n {\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": previewFileScript,\n // \"expression\": \"!!window?.nw?.require\" //PC客户端预览附件\n \"expression\": \"!!!(window && window.nw && window.nw.require)\"//PC客户端预览附件\n }\n ]\n }\n }\n };\n }else if(field.type === 'toggle'){\n columnItem = Object.assign({}, {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n static: true,\n className,\n }, field.amis, {name: field.name});\n }else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){\n columnItem = Object.assign({}, {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n static: true,\n className,\n ...getAmisFileReadonlySchema(field)\n }, field.amis, {name: field.name});\n }\n else if(field.type === 'select'){\n const map = Tpl.getSelectMap(field.options);\n columnItem = Object.assign({}, {\n type: \"static-mapping\",\n name: field.name,\n label: field.label,\n map: map,\n sortable: field.sortable,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n className,\n static: true,\n }, field.amis, {name: field.name});\n }\n else{\n const tpl = await Tpl.getFieldTpl(field, options);\n let type = 'static-text';\n if(tpl){\n type = 'static';\n }else if(field.type === 'html'){\n type = 'static-markdown';\n }else if(field.type === 'url'){\n if(field.show_as_qr){\n type = 'static-qr-code';\n }else{\n type = 'input-url'\n }\n }\n if(field.type === 'textarea'){\n className += 'min-w-56';\n }\n if(field.type === 'date'){\n className += 'date-min-w';\n }\n if(field.type === 'datetime'){\n className += 'datetime-min-w';\n }\n if(!field.hidden && !field.extra){\n columnItem = Object.assign({}, {\n name: field.name,\n label: field.label,\n sortable: field.sortable,\n // searchable: field.searchable,\n width: getFieldWidth(field.width),\n type: type,\n tpl: tpl,\n toggled: field.toggled,\n className,\n static: true,\n options: field.type === 'html' ? {html: true} : null\n // toggled: true \n }, field.amis, {name: field.name});\n }\n }\n if(columnItem){\n if(quickEditSchema){\n columnItem.quickEdit = quickEditSchema;\n columnItem.quickEditEnabledOn = \"${is_system !== true}\";\n }\n columnItem.id = `${options.objectName}_${field.name}_\\${_index}`\n columns.push(columnItem);\n }\n };\n\n // columns.push(getOperation(fields));\n if(!options.isLookup && !options.isInputTable && !_.some(columns, { name: options.labelFieldName })){\n // 没有名称字段时显示序号字段为链接,lookup弹出的picker不需要此功能\n const href = Router.getObjectDetailPath({\n ...options, formFactor: options.formFactor, appId: \"${appId}\", objectName: options.objectName || \"${objectName}\", recordId: `\\${${options.idFieldName}}`\n })\n columns[0].type = \"tpl\";\n columns[0].tpl = `<a href=\"${href}\">\\${${columns[0].name}}</a>`\n }\n return columns;\n}\n\n/**\n * 生成移动端列表每行显示的amis行\n * @param {*} tpls 要显示的每个字段的tpl\n * @returns {\n \"type\": \"wrapper\",\n \"body\": [{\n \"type\": \"tpl\",\n \"tpl\": tpls[index].tpl,\n \"className\": \"truncate\"//左侧样式类\n },{\n \"type\": \"tpl\",\n \"tpl\": tpls[index + 1].tpl,\n \"className\": \"truncate ml-2 flex flex-shrink-0\"//右侧样式类\n }],\n \"size\": \"none\",\n \"className\": \"flex items-center justify-between\"//每行样式类\n }\n */\nfunction getMobileLines(tpls){\n let lines = [];\n let maxLineCount = 3;\n let lineChildren = [];\n let isNewLine = false;\n let isLeft = true;\n let lineChildrenClassName = \"\";\n let lineClassName = \"flex items-center justify-between\";\n tpls.forEach(function(item){\n if(isNewLine && lines.length < maxLineCount){\n lines.push({\n \"type\": \"wrapper\",\n \"body\": lineChildren,\n \"size\": \"none\",\n \"className\": lineClassName\n });\n lineChildren = [];\n }\n if(isLeft){\n // 左侧半行\n lineChildrenClassName = \"steedos-listview-item-left truncate\";\n if(item.field.is_wide){\n // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate\n lineChildrenClassName = \"steedos-listview-item-wide\";\n }\n if(lines.length === 0){\n // 第一个字段加粗黑色显示\n lineChildrenClassName += \" font-bold text-gray-800\";\n }\n }\n else{\n // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了\n lineChildrenClassName = \"steedos-listview-item-right truncate ml-2 flex flex-shrink-0\";\n }\n lineChildren.push({\n \"type\": \"tpl\",\n \"tpl\": item.tpl,\n \"className\": lineChildrenClassName\n });\n\n if(item.field.is_wide){\n // 宽字段占整行\n isLeft = true;\n isNewLine = true;\n }\n else{\n isLeft = !isLeft;\n isNewLine = isLeft;\n }\n });\n \n if(lineChildren.length && lines.length < maxLineCount){\n lines.push({\n \"type\": \"wrapper\",\n \"body\": lineChildren,\n \"size\": \"none\",\n \"className\": lineClassName\n });\n }\n \n return lines;\n}\n\nasync function getMobileTableColumns(fields, options){\n const columns = [];\n let nameField = {};\n let tpls = [];\n for (const field of fields) {\n let tpl = \"\";\n if(field.is_name || field.name === options.labelFieldName){\n nameField = field;\n options = Object.assign({}, options, {\n onlyDisplayLookLabel: true\n });\n tpl = await Tpl.getFieldTpl(field, options);\n }\n else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){\n // 图片和附件类型字段暂时显示为附件名称,后续需要再优化\n tpl = `\\${_display.${field.name}.name}`;\n }\n else{\n if(field.type === 'lookup' || field.type === 'master_detail'){\n options = Object.assign({}, options, {\n onlyDisplayLookLabel: true\n });\n }\n tpl = await Tpl.getFieldTpl(field, options);\n }\n if(!tpl){\n //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉\n tpl = `\\${${field.name} | raw}`;\n }\n if(!field.hidden && !field.extra){\n tpls.push({ field, tpl });\n }\n };\n\n const url = Tpl.getNameTplUrl(nameField, options)\n\n const columnLines = getMobileLines(tpls);\n\n\n let column = {\n name: nameField.name,\n label: nameField.label,\n sortable: nameField.sortable,\n type: \"button\",\n level: \"link\",\n actionType: \"link\",\n link: url,\n innerClassName: {\n \"steedos-listview-item block text-gray-500\":\"true\",\n \"max-w-[360px]\": \"${display == 'split'}\",\n },\n body: {\n \"type\": \"wrapper\",\n \"body\": columnLines,\n \"size\": \"none\",\n \"className\": \"p-1\"\n }\n }\n \n if(options.objectName === 'cms_files'){\n if(window.Meteor?.isCordova){\n column = {\n ...column,\n actionType: \"\",\n link: \"\",\n onEvent: {\n \"click\": {\n \"actions\": [\n {\n \"script\": `\n let cms_url = \"/api/files/files/\"+event.data.versions[0]+\"?download=true\"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n `,\n \"actionType\": \"custom\"\n }\n ],\n \"weight\": 0\n }\n }\n }\n }else{\n column = {\n ...column,\n actionType: \"\",\n link: \"\",\n onEvent: {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"url\": url,\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\"\n }\n ],\n \"weight\": 0\n }\n }\n }\n }\n \n }\n\n columns.push(column);\n \n\n return columns;\n}\n\nfunction getDefaultParams(options){\n return {\n perPage: options.top || options.perPage || config.listView.perPage\n }\n}\n\nfunction getButtonVisibleOn(button){\n let visible= button.visible;\n\n if(button._visible){\n visible = button._visible;\n }\n\n if(isBoolean(visible)){\n visible = visible.toString();\n }\n\n if(visible){\n // if(visible.indexOf(\"Meteor.\") > 0 || visible.indexOf(\"Creator.\") > 0 || visible.indexOf(\"Session.\") > 0){\n // console.warn('无效的visible', visible)\n // return 'false';\n // }\n if(visible.trim().startsWith('function')){\n return `${visible}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`\n }\n return visible;\n }\n\n if(button.type === 'amis_button'){\n const amisSchema = button.amis_schema;\n if(amisSchema && amisSchema.body && amisSchema.body.length > 0){\n const btn1 = amisSchema.body[0];\n return btn1.visibleOn\n }\n }\n}\n\nasync function getTableOperation(ctx){\n const buttons = ctx.buttons;\n const operationButtons = [];\n each(buttons, (button)=>{\n if(isBoolean(button.visible)){\n button.visible = button.visible.toString();\n }\n // operationButtons.push({\n // type: 'button',\n // label: button.label,\n // visibleOn: button.visible ? `${button.visible}` : (button._visible ? `${button._visible}` : null),\n // onEvent: {\n // click: {\n // actions: []\n // }\n // }\n // })\n\n operationButtons.push({\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: 'antd-Button--default'\n })\n })\n if(operationButtons.length < 1){\n return ;\n }\n return {\n type: 'operation',\n label: \" \",\n fixed: 'right',\n labelClassName: 'text-center',\n className: 'text-center steedos-listview-operation w-10',\n buttons: [\n {\n \"type\": \"steedos-dropdown-button\",\n \"label\": \"xxx\",\n \"buttons\": operationButtons,\n \"placement\": \"bottomRight\",\n \"overlayClassName\": \"shadow !min-w-[160px]\",\n \"trigger\": [\"click\"],\n \"id\": \"u:c2140a365019\",\n onOpenApi: {\n url: `\\${context.rootUrl}/service/api/@\\${objectName}/recordPermissions/\\${_id}`,\n method: \"get\",\n requestAdaptor: \"api.data={}; return api;\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n },\n adaptor: `\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n `,\n }\n }\n ]\n }\n}\n\nasync function getDefaultCrudCard(columns, options) {\n let labelFieldName = options?.labelFieldName || \"name\";\n let titleColumn, bodyColumns = [];\n columns.forEach(function (item) {\n delete item.quickEdit;\n delete item.width;\n if (item.name === labelFieldName) {\n titleColumn = item;\n }\n else {\n if (item.name !== \"_index\") {\n bodyColumns.push(item);\n }\n }\n });\n let card = {\n \"header\": {\n \"title\": titleColumn.tpl\n },\n body: bodyColumns,\n // useCardLabel: false,\n toolbar: []\n };\n let hideToolbarOperation = options.formFactor === 'SMALL' || [\"split\"].indexOf(options.displayAs) > -1;\n if(!hideToolbarOperation){\n let toolbarOperation = await getTableOperation(options);\n if (toolbarOperation) {\n toolbarOperation.className += \" inline-block w-auto\";\n }\n card.toolbar.push(toolbarOperation);\n }\n return card;\n}\n\nexport async function getTableSchema(fields, options){\n if(!options){\n options = {};\n }\n let { isLookup, hiddenColumnOperation } = options;\n const defaults = options.defaults;\n const listSchema = (defaults && defaults.listSchema) || {};\n\n let columns = [];\n let useMobileColumns = options.formFactor === 'SMALL' || [\"split\"].indexOf(options.displayAs) > -1;\n if(isLookup){\n // 在lookup手机端列表模式调式好之前不使用getMobileTableColumns\n useMobileColumns = false;\n }\n if(listSchema.mode && listSchema.mode !== \"table\"){\n // 如果指定的mode,则不走我们内置的手机端列表效果,使用steedos组件内部开发的默认card/list效果,或者由用户自己实现card/list模式的crud列表\n useMobileColumns = false;\n }\n if(useMobileColumns){\n columns = await getMobileTableColumns(fields, options);\n }\n else{\n columns = await getTableColumns(fields, options);\n\n if(listSchema.mode === \"cards\"){\n let card = listSchema.card;\n if(!card){\n card = await getDefaultCrudCard(columns, options);\n }\n return {\n mode: \"cards\",\n perPageAvailable: [5, 10, 20, 50, 100, 500],\n name: \"thelist\",\n headerToolbarClassName: \"py-2 px-2 border-gray-300 border-solid border-b\",\n className: \"\",\n draggable: false,\n defaultParams: getDefaultParams(options),\n card: card,\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: isLookup ? true : false,\n labelTpl: `\\${${options.labelFieldName}}`,\n autoFillHeight: false, // 自动高度效果不理想,先关闭\n columnsTogglable: false\n }\n }\n\n if(!isLookup && !hiddenColumnOperation){\n columns.push(await getTableOperation(options));\n }\n }\n\n return {\n mode: \"table\",\n perPageAvailable: [5, 10, 20, 50, 100, 500],\n name: \"thelist\",\n headerToolbarClassName: \"py-2 px-2 border-gray-300 border-solid border-b\",\n className: \"\",\n draggable: false,\n defaultParams: getDefaultParams(options),\n columns: columns,\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: isLookup ? true : false,\n labelTpl: `\\${${options.labelFieldName}}`,\n autoFillHeight: false, // 自动高度效果不理想,先关闭\n columnsTogglable: false,\n }\n}\n\n\n\n/**\n * \n * @param {*} mainObject \n * @param {*} fields \n * @param {*} options = {filter: listview 过滤条件, ...}\n * @returns \n */\nexport async function getTableApi(mainObject, fields, options){\n const searchableFields = [];\n let { filter, filtersFunction, sort, top, setDataToComponentId = '' } = options;\n\n if(_.isArray(filter)){\n filter = _.map(filter, function(item){\n if(item.operation){\n return [item.field, item.operation, item.value];\n }else{\n return item\n }\n })\n }\n if(!filter){\n filter = [];\n }\n let baseFilters = null;\n if(filter){\n baseFilters = filter;\n }\n\n _.each(mainObject.fields, function (field) {\n if (Fields.isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {\n searchableFields.push(field.name);\n }\n })\n\n const fileFields = {};\n const fileFieldsKeys = [];\n // 含有optionsFunction属性, 无reference_to属性的lookup字段\n const lookupFields = {};\n fields.forEach((item)=>{\n if(_.includes(['image','avatar','file'], item.type)){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n type: item.type,\n multiple: item.multiple\n };\n }\n if(_.includes(['lookup'], item.type) && !item.reference_to ){\n lookupFields[item.name] = item;\n }\n })\n\n let valueField = mainObject.key_field || '_id';\n const api = await getApi(mainObject, null, fields, {count: options.queryCount, alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n\n api.url += \"&objectName=${objectName}\";//设计器上对象表格组件需要切换对象重新请求列表数据\n if(options.isRelated){\n api.url += \"&recordId=${_master.recordId}\";\n }\n\n api.data.$term = \"$term\";\n api.data.term = \"$term\";\n api.data.$self = \"$$\";\n api.data.self = \"$$\";\n api.data.filter = \"$filter\"\n api.data.loaded = \"${loaded}\";\n api.data.listViewId = \"${listViewId}\";\n api.data.listName = \"${listName}\";\n api.requestAdaptor = `\n // selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n // 保留一份初始data,以供自定义发送适配器中获取原始数据。\n const data = _.cloneDeep(api.data);\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listName = api.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData);\n if(!api.data.filter){\n api.data.filter = localListViewProps.filter;\n }\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n let formFactor = \"${options.formFactor}\";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n // api.data.pageNo = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n // 移动端暂时去除加载更多,放开翻页\n api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n ${baseFilters ? `var systemFilters = ${JSON.stringify(baseFilters)};` : 'var systemFilters = [];'}\n var _ids = []\n const filtersFunction = ${filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\n if(api.data.listName == \"recent\"){\n _ids = _filters[2]\n }\n if(_filters && _filters.length > 0){\n if(_.isEmpty(systemFilters)){\n systemFilters = _filters || [];\n }else{\n systemFilters = [systemFilters, 'and', _filters];\n }\n }\n }\n let userFilters =[];\n \n if(_.isEmpty(systemFilters)){\n systemFilters = api.data.filter || [];\n }else{\n if(!_.isEmpty(api.data.filter)){\n systemFilters = [systemFilters, 'and', api.data.filter];\n }\n }\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort || ''}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n if(api.data.$term){\n userFilters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [[\"${valueField.name}\", \"=\", selfData.value]];\n }\n \n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(userFilters.length > 0 ){\n userFilters = [userFilters, 'and', searchableFilter];\n }else{\n userFilters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n userFilters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n userFilters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n userFilters.push(keywordsFilters);\n }\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n };\n if(api.data.$self.additionalFilters){\n if(_.isString(api.data.$self.additionalFilters)){\n userFilters.push(eval(api.data.$self.additionalFilters))\n }else{\n userFilters.push(api.data.$self.additionalFilters)\n }\n }\n\n if(api.data.$self._isRelated){\n const self = api.data.$self;\n const relatedKey = self.relatedKey;\n const refField = self.uiSchema.fields[relatedKey];\n const masterRecord = self._master.record;\n const masterObjectName = self._master.objectName;\n let relatedValue = self._master.recordId;\n if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){\n relatedValue = masterRecord[refField.reference_to_field]\n }\n let relatedFilters;\n if (\n refField && (refField._reference_to ||\n (refField.reference_to && !_.isString(refField.reference_to)))\n ) {\n relatedFilters = [\n [relatedKey + \"/o\", \"=\", masterObjectName],\n [relatedKey + \"/ids\", \"=\", relatedValue],\n ];\n } else {\n relatedFilters = [relatedKey, \"=\", relatedValue];\n }\n userFilters.push(relatedFilters)\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters = [filters, 'and', userFilters]\n }\n }\n api.data._ids = _ids;\n api.data = {\n query: api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim())\n }\n ${options.requestAdaptor || ''};\n\n //写入本次存储filters、sort\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify({\n filters: filters,\n sort: sort.trim(),\n pageSize: pageSize,\n skip: skip,\n fields: ${JSON.stringify(_.map(fields, 'name'))}\n }));\n return api;\n `\n api.adaptor = `\n if(api.body.listName == \"recent\"){\n payload.data.rows = _.sortBy(payload.data.rows, function(item){\n return _.indexOf(api.body._ids, item._id)\n });\n }\n const enable_tree = ${mainObject.enable_tree};\n if(!enable_tree){\n _.each(payload.data.rows, function(item, index){\n const {pageNo, pageSize} = api.body;\n const skip = (pageNo - 1) * pageSize;\n item._index = skip + index + 1;\n })\n }\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n let fileFields = ${JSON.stringify(fileFields)};\n let lookupFields = ${JSON.stringify(lookupFields)};\n _.each(payload.data.rows, function(item, index){\n _.each(fileFields , (field, key)=>{\n if(item[key] && item._display && item._display[key]){\n let value = item._display[key];\n if(!_.isArray(value)){\n value = [value]\n };\n if(field.type === 'file'){\n item[key] = value\n }else{\n item[key] = _.map(value, (item)=>{\n if(field.type === 'image'){\n const url = window.getImageFieldUrl(item.url);\n return url;\n }\n return item.url;\n })\n }\n }\n })\n _.each(lookupFields , (field, key)=>{\n if(item[key]){\n if(field._optionsFunction){\n const optionsFunction = eval(\"(\" + field._optionsFunction+ \")\")(item);\n item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');\n }else if(field.options){\n const options = field.options;\n item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows || [];\n const getTreeOptions = SteedosUI.getTreeOptions\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n }\n\n\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listName = api.body.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n /**\n * localListViewProps规范来自crud请求api中api.data.$self参数值的。\n * 比如:{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:顶部放大镜搜索条件\n * filter:右侧过滤器\n * perPage:每页条数\n * page:当前页码\n * orderBy:排序字段\n * orderDir:排序方向\n */\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.body.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.body.filter });\n if(!api.body.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n let formFactor = \"${options.formFactor}\";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n // selfData.page = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));\n // 返回页码到UI界面\n payload.data.page= selfData.page;\n }\n catch(ex){\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n // 标记加载过,后续优先从本地存储中加载相关参数\n payload.data.loaded= true;\n\n const setDataToComponentId = \"${setDataToComponentId}\";\n if(setDataToComponentId){\n //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9\n var scope = SteedosUI.getRef(api.body.$self.$scopeId);\n var scopeParent = scope && scope.parent;\n var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ${options.adaptor || ''}\n return payload;\n `;\n return api;\n}\n\nexport async function getApi(object, recordId, fields, options){\n const data = await graphql.getFindQuery(object, recordId, fields, options);\n return {\n method: \"post\",\n url: graphql.getApi(), // + \"&recordId=${recordId}\"\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport function getRecordPermissionsApi(object, recordId, options){\n const data = graphql.getRecordPermissionsQuery(object, recordId, options);\n return {\n method: \"post\",\n url: graphql.getApi(),\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-11-15 09:50:22\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-11-17 20:17:56\n */\n\nimport { getTableColumns } from './converter/amis/fields/table';\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nfunction getFormFields(props, mode = \"edit\") {\n return (props.fields || []).map(function (item) {\n return {\n \"type\": \"steedos-field\",\n \"config\": item\n }\n }) || [];\n}\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nasync function getInputTableColumns(props) {\n // return props.fields.map(function(item){\n // return {\n // \"type\": \"steedos-field\",\n // \"config\": item,\n // \"static\": true,\n // \"readonly\": true\n // }\n // }) || [];\n\n let columns = await getTableColumns(props.fields || [], {\n isInputTable: true,\n permissions: {\n allowEdit: false //快速编辑开关与权限有关\n }\n });\n // columns = columns.map(function(item){\n // if([\"text\"].indexOf(item.type) > -1){\n // return Object.assign({}, item, {\n // \"type\": \"static\"\n // });\n // }\n // else{\n // return item;\n // }\n // }) || [];\n return columns;\n}\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nfunction getForm(props, mode = \"edit\") {\n let schema = {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": getFormFields(props, mode)\n };\n if (mode === \"edit\") {\n Object.assign(schema, {\n \"onEvent\": {\n \"submit\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"index\": \"${index}\",\n \"value\": {\n \"&\": \"$$\"\n }\n },\n \"componentId\": props.id\n }\n ]\n }\n }\n });\n }\n else if (mode === \"new\") {\n let onNewItemSubmitScript = `\n event.data[\"${props.name}\"].push(JSON.parse(JSON.stringify(event.data)));\n doAction({\n \"componentId\": \"${props.id}\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": event.data[\"${props.name}\"]\n }\n });\n `;\n Object.assign(schema, {\n \"onEvent\": {\n \"submit\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onNewItemSubmitScript\n },\n // {\n // \"componentId\": props.id,\n // \"actionType\": \"addItem\",//input-table组件的needConfirm属性为true时,addItem动作会把新加的行显示为编辑状态,所以只能使用上面的custom script来setValue实现添加行\n // \"args\": {\n // \"index\": `\\${${props.name}.length || 9000}`,//这里加9000是因为字段如果没放在form组件内,props.name.length拿不到值\n // \"item\": {\n // \"&\": \"$$\"\n // }\n // }\n // }\n ]\n }\n }\n });\n }\n return schema;\n}\n\nfunction getButtonNew(props) {\n return {\n \"label\": \"新增\",\n \"type\": \"button\",\n \"icon\": \"fa fa-plus\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"弹框标题\",\n \"body\": [\n getForm(props, \"new\")\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"className\": \"app-popover\",\n \"closeOnEsc\": false\n }\n }\n ]\n }\n },\n \"level\": \"primary\"\n };\n}\n\nfunction getButtonEdit(props) {\n return {\n \"type\": \"button\",\n \"label\": \"编辑\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"弹框标题\",\n \"body\": [\n getForm(props, \"edit\")\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"className\": \"app-popover\",\n \"closeOnEsc\": false\n }\n }\n ]\n }\n }\n };\n}\n\nfunction getButtonDelete(props) {\n return {\n \"type\": \"button\",\n \"label\": \"删除\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"deleteItem\",\n \"args\": {\n \"index\": \"${index+','}\" //这里不加逗号后续会报错,语法是逗号分隔可以删除多行\n },\n \"componentId\": props.id\n }\n ]\n }\n }\n };\n}\n\nexport const getAmisInputTableSchema = async (props, readonly) => {\n if (!props.id) {\n props.id = \"steedos_input_table_\" + props.name + \"_\" + Math.random().toString(36).substr(2, 9);\n }\n let buttonNewSchema = getButtonNew(props);\n let buttonEditSchema = getButtonEdit(props);\n let buttonDeleteSchema = getButtonDelete(props);\n let buttonsForColumnOperations = [];\n if (props.editable) {\n buttonsForColumnOperations.push(buttonEditSchema)\n }\n if (props.removable) {\n buttonsForColumnOperations.push(buttonDeleteSchema)\n }\n let inputTableSchema = {\n \"type\": \"input-table\",\n \"label\": props.label,\n \"name\": props.name,\n //不可以addable/editable/removable设置为true,因为会在原生的操作列显示操作按钮图标,此开关实测只控制这个按钮显示不会影响功能\n // \"addable\": props.addable,\n // \"editable\": props.editable,\n // \"removable\": props.removable, \n \"draggable\": props.draggable,\n \"showIndex\": props.showIndex,\n \"perPage\": props.perPage,\n \"id\": props.id,\n \"columns\": await getInputTableColumns(props),\n // \"needConfirm\": false, //不可以配置为false,否则,单元格都是可编辑状态,且很多static类型无法正常显示,比如static-mapping\n \"strictMode\": true,\n \"showTableAddBtn\": false,\n \"showFooterAddBtn\": false\n };\n if (buttonsForColumnOperations.length) {\n inputTableSchema.columns.push({\n \"name\": \"__op__\",\n \"type\": \"operation\",\n \"buttons\": buttonsForColumnOperations\n });\n }\n let schema = {\n \"type\": \"wrapper\",\n \"size\": \"none\",\n \"body\": [\n inputTableSchema\n ]\n };\n if (props.addable) {\n schema.body.push(buttonNewSchema);\n }\n return schema;\n}","import { first, keys, map, find } from 'lodash';\nimport { getUISchema, getRecordDetailHeaderSchema, getFormSchema, getViewSchema, getListViewColumns, getListViewSort, getTableSchema } from './objects';\nimport { getObjectRelatedList } from './objectsRelated';\n\nimport { getObjectListHeader,getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\n// import { getListSchema } from './objects';\n\nfunction getScopeId(objectApiName,type){\n return `page_${objectApiName}_${type}`;\n}\n\n// 获取表单初始化amisSchema\nexport async function getFormPageInitSchema(objectApiName) {\n const schema = await getFormSchema(objectApiName, {recordId: '${recordId}'});\n return {\n type: 'page',\n name: getScopeId(objectApiName,\"form\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n body:[\n schema.amisSchema\n ]\n }\n}\n\n// 获取列表页面初始化amisSchema\nexport async function getListPageInitSchema(objectApiName, formFactor, userSession) {\n // let schema = await getListSchema(null, objectApiName, null, { showHeader: true });\n // let amisSchema = schema && schema.amisSchema;\n // if (amisSchema) {\n // return {\n // type: 'page',\n // bodyClassName: 'p-0',\n // regions: [\n // \"body\"\n // ],\n // // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n // body: amisSchema\n // }\n // }\n\n // const uiSchema = await getUISchema(objectApiName);\n // const listViewName = first(keys(uiSchema.list_views));\n // const headerSchema = await getObjectListHeader(uiSchema, listViewName);\n\n return {\n type: 'page',\n name: getScopeId(objectApiName,\"list\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n body: [{\n \"type\": \"steedos-object-listview\",\n \"objectApiName\": objectApiName,\n // \"listName\": \"${listName}\",\n // \"headerToolbar\": [],\n \"columnsTogglable\": false,\n \"showHeader\": true,\n // \"headerSchema\": headerSchema\n className: \"sm:border bg-white sm:rounded border-gray-300 border-solid\"\n }]\n }\n}\n\n// 获取\nexport async function getRecordPageInitSchema(objectApiName){\n // console.log('getRecordPageSchema==>', objectApiName, ctx, formFactor, userSession);\n // const detailHeaderAmisSchema = (await getRecordDetailHeaderSchema(objectApiName, \"${recordId}\")).amisSchema;\n // const objectFormAmisSchema = (await getViewSchema(objectApiName, \"${recordId}\", {labelAlign:\"left\"})).amisSchema;\n \n const recordId = '${recordId}';\n const relatedList = await getObjectRelatedList(objectApiName, recordId, null);\n const uiSchema = await getUISchema(objectApiName);\n let body = [\n // detailHeaderAmisSchema,\n {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"onEvent\": {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"recordLoaded\": true,\n }\n }\n },\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema?.NAME_FIELD_KEY || 'name'}}`,\n \"record\": `\\${record}`,\n \"recordLoaded\": true,\n }\n }\n ]\n }\n }\n }\n ];\n let contentBody = {\n \"type\": \"tabs\",\n \"tabs\": [\n {\n \"title\": \"详情\",\n \"body\": [\n // objectFormAmisSchema\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"mode\": \"read\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"labelAlign\": \"left\"\n }\n ]\n }\n ],\n \"className\": \"sm:mt-3 flex flex-col region-main bg-white sm:rounded sm:border border-gray-300\",\n \"linksClassName\": \"pl-4 pt-2\"\n };\n if(relatedList.length){\n contentBody.tabs.push({\n \"title\": \"相关\",\n \"body\": {\n \"type\": \"steedos-object-related-lists\",\n \"label\": \"所有相关表\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n },\n })\n }\n body.push(contentBody);\n return {\n type: 'page',\n id: `page_${objectApiName}_record_detail`,\n name: getScopeId(objectApiName,\"record_detail\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n body\n }\n}\n\n// 获取对象的某个列表视图初始化amisSchema\nexport async function getListviewInitSchema(objectApiName, listViewName, ctx) {\n if(!ctx){\n ctx = {};\n }\n const uiSchema = await getUISchema(objectApiName);\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n return name === listViewName;\n }\n );\n\n let amisSchema = {};\n\n if (listView) {\n const listViewColumns = getListViewColumns(listView, ctx.formFactor);\n const sort = getListViewSort(listView);\n \n // amisSchema = {\n // \"type\": \"steedos-object-table\",\n // \"objectApiName\": objectApiName,\n // \"columns\": listViewColumns,\n // \"extraColumns\": listView.extra_columns,\n // \"filters\": listView.filters,\n // \"sort\": sort,\n // \"headerSchema\": headerSchema\n // };\n\n const defaults = ctx.defaults || {};\n if(!defaults.headerSchema){\n //传入isListviewInit是区别于对象列表类型的微页面,即getListPageInitSchema函数中该属性为false\n const headerSchema = await getObjectListHeader(uiSchema, listViewName, {\n onlySecordLine: true,\n isListviewInit: true\n });\n defaults.headerSchema = headerSchema;\n }\n ctx.defaults = defaults;\n let setDataToComponentId = ctx.setDataToComponentId;\n if(!setDataToComponentId){\n setDataToComponentId = `service_listview_${objectApiName}`;\n }\n const schema = await getTableSchema(null, objectApiName, listViewColumns, {\n sort,\n ...ctx,\n setDataToComponentId\n });\n amisSchema = schema.amisSchema;\n // TODO: 下面这些data下的无用属性在底层代码中就不应该加,待底层移除后下面的删除语句就可以去掉了\n delete amisSchema.data.$master;\n delete amisSchema.data._id;\n delete amisSchema.data.recordPermissions;\n delete amisSchema.data.uiSchema;\n }\n // 不可以外面包一层page,否则列表视图渲染时的data无法传入顶部第一行造成按钮显示异常\n return amisSchema;\n\n // return {\n // type: 'page',\n // bodyClassName: 'p-0',\n // regions: [\n // \"body\"\n // ],\n // // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n // body: [amisSchema],\n // data:{\n // listName: listViewName\n // }\n // }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:54:17\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-07-05 16:30:29\n * @Description: \n */\nimport { fetchAPI } from './steedos.client';\n\nexport async function getApps(){\n const APPS_API = '/service/api/apps/menus';\n const apps = await fetchAPI(APPS_API);\n return apps;\n}\n\nexport async function getApp(appName){\n const appApi = `/service/api/apps/${appName}/menus`;\n const app = await fetchAPI(appApi);\n return app;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-15 11:53:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-27 16:54:21\n * @Description: \n */\nimport { fetchAPI, getSteedosAuth } from \"./steedos.client\"\n\nexport const getNotifications = async () => {\n const auth = getSteedosAuth();\n const query = `\n {\n notifications(filters: [\"owner\",\"=\",\"${auth.userId}\"], sort: \"created desc,name\", top : 10){\n _id,name,body,related_to,related_name,url,owner,is_read,from,created\n },\n unReadCount: notifications__count(filters: [[\"owner\",\"=\",\"${auth.userId}\"], [\"is_read\", \"!=\", true]])\n }\n `;\n const result = await fetchAPI('/graphql', {\n method: 'POST',\n body: JSON.stringify({ query })\n })\n\n return result.data\n}\n\nexport const markReadAll = async ()=>{\n return await fetchAPI('/api/v4/notifications/all/markReadAll', {\n method: 'POST'\n });\n}","import { map } from 'lodash';\n\nconst PUBLIC_ENV = {};\n\nexport const setEnv = (k, v)=>{\n PUBLIC_ENV[k] = v;\n}\n\nexport const getEnv = (k) =>{\n return PUBLIC_ENV[k];\n}\n\nexport const setEnvs = (data) =>{\n map(data, (v, k)=>{\n PUBLIC_ENV[k] = v;\n });\n}\n\nexport const getEnvs = () =>{\n return PUBLIC_ENV;\n}","import { getUISchema } from './objects';\n\nexport async function getSpaceUsersPickerAmisSchema(spaceUserSchema, name, options) {\n return {\n \"type\": \"picker\",\n \"label\": \"人员\",\n \"name\": name,\n \"id\": options.id,\n \"modalMode\": \"dialog\",\n \"joinValues\": false,\n \"source\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"data\": {\n \"orderBy\": \"${orderBy}\",\n \"orderDir\": \"${orderDir}\",\n \"pageNo\": \"${page}\",\n \"pageSize\": \"${perPage}\",\n \"query\": \"{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: \\\"{__sort}\\\"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}\",\n \"$term\": \"$term\",\n \"$self\": \"$$\"\n },\n \"requestAdaptor\": \"\\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\\n var filters = [];\\n var pageSize = api.data.pageSize || 10;\\n var pageNo = api.data.pageNo || 1;\\n var skip = (pageNo - 1) * pageSize;\\n var orderBy = api.data.orderBy || '';\\n var orderDir = api.data.orderDir || '';\\n var sort = orderBy + ' ' + orderDir;\\n var allowSearchFields = [\\\"name\\\"];\\n if(api.data.$term){\\n filters = [[\\\"name\\\", \\\"contains\\\", \\\"'+ api.data.$term +'\\\"]];\\n }else if(selfData.op === 'loadOptions' && selfData.value){\\n filters = [[\\\"_id\\\", \\\"=\\\", selfData.value]];\\n }\\n if(allowSearchFields){\\n allowSearchFields.forEach(function(key){\\n const keyValue = selfData[key];\\n if(keyValue){\\n filters.push([key, \\\"contains\\\", keyValue]);\\n }\\n })\\n }\\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\\n return api;\\n \"\n },\n \"pickerSchema\": {\n \"mode\": \"table\",\n \"name\": \"thelist\",\n \"draggable\": false,\n \"headerToolbar\": [\n \"switch-per-page\",\n \"pagination\"\n ],\n \"defaultParams\": {\n \"perPage\": 50\n },\n \"columns\": [\n {\n \"name\": \"_index\",\n \"type\": \"text\",\n \"width\": 32,\n \"placeholder\": \"\"\n },\n {\n \"name\": \"_id\",\n \"label\": \"ID\",\n \"type\": \"text\",\n \"toggled\": false\n },\n {\n \"name\": \"name\",\n \"label\": \"姓名\",\n \"sortable\": true,\n \"searchable\": true,\n \"type\": \"text\"\n },\n {\n \"name\": \"email\",\n \"label\": \"邮件\",\n \"sortable\": true,\n \"type\": \"text\",\n \"searchable\": true\n },\n {\n \"name\": \"mobile\",\n \"label\": \"手机\",\n \"type\": \"text\",\n \"sortable\": true,\n \"searchable\": true\n }\n ],\n \"syncLocation\": false,\n \"keepItemSelectionOnPageChange\": true\n },\n \"labelField\": \"name\",\n \"valueField\": \"_id\",\n \"size\": \"lg\",\n \"extractValue\": true,\n \"className\": \"m-0\",\n \"labelClassName\": \"text-left\"\n }\n}\n\nexport async function getSpaceUsersPickerSchema(name, options) {\n const uiSchema = await getUISchema(\"space_users\");\n const amisSchema = await getSpaceUsersPickerAmisSchema(uiSchema, name, options);\n return {\n uiSchema,\n amisSchema,\n };\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-02 11:19:09\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-05 11:15:42\n * @Description:\n */\n// # 日期类型: date, datetime 支持操作符: \"=\", \"<>\", \"<\", \">\", \"<=\", \">=\"\n// # 文本类型: text, textarea, html 支持操作符: \"=\", \"<>\", \"contains\", \"notcontains\", \"startswith\"\n// # 选择类型: lookup, master_detail, select 支持操作符: \"=\", \"<>\"\n// # 数值类型: currency, number 支持操作符: \"=\", \"<>\", \"<\", \">\", \"<=\", \">=\"\n// # 布尔类型: boolean 支持操作符: \"=\", \"<>\"\n// # 数组类型: checkbox, [text] 支持操作符: \"=\", \"<>\"\nimport lodash from 'lodash';\n\nconst DATE_DATETIME_BETWEEN_VALUES = [\n \"last_year\",\n \"this_year\",\n \"next_year\",\n \"last_quarter\",\n \"this_quarter\",\n \"next_quarter\",\n \"last_month\",\n \"this_month\",\n \"next_month\",\n \"last_week\",\n \"this_week\",\n \"next_week\",\n \"yestday\",\n \"today\",\n \"tomorrow\",\n \"last_7_days\",\n \"last_30_days\",\n \"last_60_days\",\n \"last_90_days\",\n \"last_120_days\",\n \"next_7_days\",\n \"next_30_days\",\n \"next_60_days\",\n \"next_90_days\",\n \"next_120_days\",\n];\n\n/**\n *\n */\n\nconst opMaps = {\n equal: \"=\",\n not_equal: \"!=\",\n less: \"<\",\n less_or_equal: \"<=\",\n greater: \">\",\n greater_or_equal: \">=\",\n between: \"between\",\n not_between: \"not_between\", // TODO 不支持待@steedos/filters 增强\n is_empty: \"is_empty\", // TODO 不支持待@steedos/filters 增强\n is_not_empty: \"is_not_empty\", // TODO 不支持待@steedos/filters 增强\n select_equals: \"=\",\n select_not_equals: \"!=\",\n select_any_in: \"in\",\n select_not_any_in: \"<>\",\n like: \"contains\",\n not_like: \"notcontains\",\n starts_with: \"startswith\",\n ends_with: \"endswith\",\n};\n\nconst isGroup = (item) => {\n return _.has(item, \"conjunction\");\n};\n\nconst conditionGroupToFilters = (group) => {\n const filters = [];\n const { conjunction, children } = group;\n if (conjunction && children) {\n children.forEach((item) => {\n if (filters.length > 0) {\n filters.push(conjunction);\n }\n if (isGroup(item)) {\n const filter = conditionGroupToFilters(item);\n if (filter && filter.length > 0) {\n filters.push(filter);\n }\n } else {\n const filter = conditionItemToFilters(item);\n if (filter) {\n filters.push(filter);\n }\n }\n });\n }\n return filters;\n};\n\nconst conditionItemToFilters = (item) => {\n const { left, op, right } = item;\n if (left && left.type === \"field\") {\n if (op) {\n if (op.startsWith(\"between:\")) {\n const array = op.split(\":\");\n return [left.field, array[0], array[1]];\n } else {\n if (right != null) {\n return [left.field, opMaps[op], right];\n }\n }\n }\n }\n};\n\n// const conditionChildrenToFilters = (children)=>{\n\n// }\nconst filterToConditionItem = (filter) => {\n if (filter.length === 3) {\n const op = lodash.findKey(opMaps, (value) => {\n return value === filter[1];\n });\n if (\n op === \"between\" &&\n lodash.includes(DATE_DATETIME_BETWEEN_VALUES, filter[2])\n ) {\n return {\n left: {\n type: \"field\",\n field: filter[0],\n },\n op: `${op}:${filter[2]}`,\n };\n } else {\n return {\n left: {\n type: \"field\",\n field: filter[0],\n },\n op: op,\n right: filter[2],\n };\n }\n } else {\n console.warn(`无效的filter:${JSON.stringify(filter)}`);\n }\n};\n\nconst filterObjectToArray = (filter) => {\n if (!lodash.isArray(filter) && lodash.isObject(filter)) {\n return [filter.field, filter.operation, filter.value];\n }\n return filter;\n};\n\nconst filtersToConditionGroup = (filters) => {\n filters = filterObjectToArray(filters);\n\n const conditions = {\n conjunction: \"and\",\n children: [],\n };\n if (!filters || filters.length == 0) {\n return conditions;\n }\n filters.forEach((filter) => {\n filter = filterObjectToArray(filter);\n if (filter === \"or\" || filter === \"and\") {\n conditions.conjunction = filter;\n } else {\n if (\n filter.length === 3 &&\n filter.indexOf(\"and\") == -1 &&\n filter.indexOf(\"or\") == -1\n ) {\n conditions.children.push(filterToConditionItem(filter));\n } else {\n conditions.children.push(filtersToConditionGroup(filter));\n }\n }\n });\n return conditions;\n};\n\nexport const conditionsToFilters = (conditions) => {\n return conditionGroupToFilters(conditions);\n};\n\nexport const filtersToConditions = (filters) => {\n return filtersToConditionGroup(filters);\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-13 14:34:18\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-13 14:59:00\n * @Description: 加载资产包,并返回所有可用资产\n */\nimport { isString, filter, map } from 'lodash';\n\nexport const registerRemoteAssets = async (assetUrls)=>{\n if(assetUrls && assetUrls.length > 0){\n let assetUrlsArray = assetUrls;\n if(isString(assetUrlsArray)){\n assetUrlsArray = assetUrlsArray.split(',');\n }\n await Builder.registerRemoteAssets(assetUrlsArray);\n const amisComps = filter(Builder.registry['meta-components'], function(item){ return item.componentName && item.amis?.render});\n return map(amisComps, (item)=>{\n return { componentType: item.componentType, componentName: item.componentName, ...item.amis.render}\n })\n }else{\n return []\n }\n}","import { getRootUrl, getSteedosAuth } from \"./lib/steedos.client\";\n\n/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-12-17 17:03:40\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-22 18:19:44\n * @Description: \n */\nexport const getDefaultRenderData = ()=>{\n const steedosAuth = getSteedosAuth();\n return {\n context: {\n rootUrl: getRootUrl(),\n userId: steedosAuth.userId,\n tenantId: steedosAuth.tenantId,\n authToken: steedosAuth.authToken,\n user: steedosAuth\n },\n global: {\n userId: steedosAuth.userId,\n spaceId: steedosAuth.tenantId,\n user: steedosAuth, \n now: new Date(),\n // mode: mode //由表单提供\n }\n }\n }","import {\n lookupToAmisPicker,\n getSteedosAuth, Router\n} from \"@steedos-widgets/amis-lib\";\n//TODO Meteor.settings.public?.workflow?.hideCounterSignJudgeOptions\n\nconst HIDE_COUNTER_SIGN_JUDGE_OPTIONS = false;\n\nconst getJudgeOptions = async (instance) => {\n const { step } = instance;\n const options = [];\n if (step.step_type === \"sign\") {\n options.push({\n label: \"核准\",\n value: \"approved\",\n });\n options.push({\n label: \"驳回\",\n value: \"rejected\",\n });\n } else if (\n step.step_type === \"counterSign\" &&\n HIDE_COUNTER_SIGN_JUDGE_OPTIONS != true\n ) {\n options.push({\n label: \"核准\",\n value: \"approved\",\n });\n options.push({\n label: \"驳回\",\n value: \"rejected\",\n });\n options.push({\n label: \"已阅\",\n value: \"readed\",\n });\n }\n return options;\n};\n\nconst getJudgeInput = async (instance) => {\n const judgeOptions = await getJudgeOptions(instance);\n if (judgeOptions.length > 0 && instance.approve.type != 'cc') {\n return {\n type: \"radios\",\n label: false,\n name: \"judge\",\n value: \"approved\",\n options: judgeOptions,\n id: \"u:444dbad76e90\",\n required: true,\n \"onEvent\": {\n \"change\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"instance_approval\",\n \"args\": {\n \"value\": {\n new_judge: \"${event.data.value}\",\n next_step: undefined,\n }\n },\n \"actionType\": \"setValue\"\n },\n {\n // \"componentId\": \"u:next_step\",\n \"args\": {\n judge: \"${event.data.value}\"\n },\n \"actionType\": \"broadcast\",\n eventName: \"approve_judge_change\"\n },\n ]\n }\n }\n };\n }\n};\n\n//TODO 只有一个下一步时,默认选中,并且禁止修改.\nconst getNextStepInput = async (instance) => {\n if(instance.approve?.type == 'cc'){\n return ;\n }\n return {\n type: \"grid\",\n columns: [\n {\n body: [\n {\n type: \"tpl\",\n tpl: \"下一步\",\n inline: true,\n wrapperComponent: \"\",\n id: \"u:0a85de51480f\",\n },\n ],\n id: \"u:bf75adfb544e\",\n md: \"auto\",\n valign: \"middle\",\n },\n {\n body: [\n {\n type: \"list-select\",\n label: \"\",\n name: \"next_step\",\n id: \"u:next_step\",\n multiple: false,\n required: true,\n // selectFirst: true,\n autoFill: {\n \"new_next_step\": \"${step}\",\n \"next_users\": null\n },\n \"source\": {\n \"url\": \"${context.rootUrl}/api/workflow/v2/nextStep?judge=${new_judge}\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"method\": \"post\",\n \"messages\": {\n },\n \"requestAdaptor\": \"let { context, judge } = api.data; if(!judge){judge='approved'}\\nconst formValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\\\"instance_form\\\").getValues();\\n\\napi.data = {\\nflowVersionId: context.flowVersion._id,\\n instanceId: context._id,\\n flowId: context.flow._id,\\n step: context.step,\\n judge: judge,\\n values: formValues\\n}\\n\\n\\n return api;\",\n \"adaptor\": `\n payload.data = {\n value: payload.nextSteps.length === 1 ? payload.nextSteps[0]._id : null, \n options: _.map(payload.nextSteps, (item)=>{\n return {\n label: item.name, \n value: item._id,\n step: item\n }\n })\n };\n return payload;\n `,\n \"data\": {\n // \"&\": \"$$\",\n \"context\": \"${context}\",\n \"$scopeId\": \"${scopeId}\",\n \"judge\": \"${new_judge}\",\n }\n },\n // \"onEvent\": {\n // \"change\": {\n // \"weight\": 0,\n // \"actions\": [\n // {\n // \"componentId\": \"instance_approval\",\n // \"args\": {\n // \"value\": {\n // new_next_step: \"${event.data.value}\",\n // }\n // },\n // \"actionType\": \"setValue\"\n // },\n // // {\n // // \"args\": {\n // // next_step: \"${event.data.value}\",\n // // },\n // // \"actionType\": \"broadcast\",\n // // eventName: \"approve_next_step_change\"\n // // },\n // ]\n // }\n // }\n },\n ],\n id: \"u:4d3a884b437c\",\n },\n ],\n id: \"u:016c56efe5fd\",\n className: \"b-a b-1x m-none p-xs\",\n subFormMode: \"\",\n };\n};\n\n//TODO 只有一个处理人时,默认选中,禁止修改. 部分情况不需要显示下一步处理人\nconst getNextStepUsersInput = async (instance) => {\n if(instance.approve?.type == 'cc'){\n return ;\n }\n return {\n type: \"grid\",\n columns: [\n {\n body: [\n {\n type: \"tpl\",\n tpl: \"处理人\",\n inline: true,\n wrapperComponent: \"\",\n id: \"u:3203cc281b3c\",\n },\n ],\n id: \"u:8eece76a9e4c\",\n md: \"auto\",\n valign: \"middle\",\n },\n {\n body: [\n // TODO 处理下一步处理人默认值\n Object.assign({}, \n {\n \"type\": \"steedos-select-user\"\n },\n {\n name: \"next_users\", \n hiddenOn: \"this.new_next_step.deal_type != 'pickupAtRuntime'\",\n required: true\n }),\n {\n type: \"steedos-select-user\",\n label: \"\",\n name: \"next_users\",\n id: \"u:next_users\",\n required: true,\n hiddenOn: \"this.new_next_step.deal_type === 'pickupAtRuntime'\",\n amis: {\n multiple: \"this.new_next_step.deal_type === 'counterSign'\",\n \"source\": {\n \"url\": \"${context.rootUrl}/api/workflow/v2/nextStepUsers\",\n \"method\": \"post\",\n \"sendOn\": \"!!this.new_next_step && this.new_next_step.step_type != 'end'\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"messages\": {\n },\n \"requestAdaptor\": \"\\nconst { context, next_step, $scopeId } = api.data;\\nconst formValues = SteedosUI.getRef($scopeId).getComponentById(\\\"instance_form\\\").getValues();\\n\\napi.data = {\\n instanceId: context._id,\\n nextStepId: next_step._id,\\n values: formValues\\n}\\n\\n\\n return api;\",\n \"adaptor\": \"\\npayload.data = {value: payload.nextStepUsers.length === 1 ? payload.nextStepUsers[0].id : null, options: payload.nextStepUsers};\\nreturn payload;\",\n \"data\": {\n \"&\": \"$$\",\n \"$scopeId\": \"$scopeId\",\n \"context\": \"${context}\",\n \"next_step\": \"${new_next_step}\",\n }\n },\n \"labelField\": \"name\",\n \"valueField\": \"id\",\n }\n }\n ],\n id: \"u:81a4913c61cc\",\n },\n ],\n id: \"u:ffff15b76c89\",\n className: \"b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm\",\n subFormMode: \"\",\n hiddenOn: \"!!!this.new_next_step || (this.new_next_step && this.new_next_step.step_type === 'end')\"\n };\n};\n\nconst getCCSubmitRequestAdaptor = async (instance) => {\n return ` \n const instanceForm = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\");\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n api.data = {\n instanceId: \"${instance._id}\", \n traceId: \"${instance.trace._id}\", \n approveId: \"${instance.approve._id}\", \n description: approveValues.suggestion \n };\n return api;\n `;\n};\n\nconst getPostSubmitRequestAdaptor = async (instance) => {\n return ` const instanceForm = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\");\n const formValues = instanceForm.getValues();\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n let nextUsers = approveValues.next_users;\n if(_.isString(nextUsers)){\n nextUsers = [approveValues.next_users];\n }\n const body = {Instances: [{\n _id: \"${instance._id}\",\n flow: \"${instance.flow._id}\",\n applicant: formValues.applicant,\n submitter: formValues.submitter,\n traces: [{\n _id: \"${instance.trace._id}\",\n step: \"${instance.step._id}\",\n approves: [{\n _id: \"${instance.approve._id}\",\n next_steps: [{\n step: approveValues.next_step._id,\n users: nextUsers,\n }],\n description: approveValues.suggestion,\n values: formValues\n }]\n }]\n }]};\n api.data = body;\n return api;\n `;\n};\n\nconst getPostEngineRequestAdaptor = async (instance) => {\n return ` \n const formValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\").getValues();\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n let nextUsers = approveValues.next_users;\n if(_.isString(nextUsers)){\n nextUsers = [approveValues.next_users];\n }\n const body = {Approvals: [{\n instance: \"${instance._id}\",\n judge: approveValues.judge,\n trace: \"${instance.approve.trace}\",\n _id: \"${instance.approve._id}\",\n next_steps: [{\n step: approveValues.next_step._id,\n users: nextUsers,\n }],\n description: approveValues.suggestion,\n values: formValues\n }]};\n api.data = body;\n return api;\n `;\n};\n\n/**\n * 1 TODO 处理传阅提交\n * 2 草稿状态提交. TODO 申请单的表单、流程升级\n * 3 待审核提交\n * @param instance\n * @returns\n */\nconst getSubmitActions = async (instance) => {\n // console.log(`getSubmitActions instance====`, instance)\n let api = \"\";\n let requestAdaptor = \"\";\n if(instance.approve?.type == \"cc\"){\n api = \"/api/workflow/v2/cc_submit\";\n requestAdaptor = await getCCSubmitRequestAdaptor(instance);\n }else{\n if (instance.state === \"draft\") {\n api = \"/api/workflow/submit\";\n requestAdaptor = await getPostSubmitRequestAdaptor(instance);\n } else if (instance.state === \"pending\") {\n api = \"/api/workflow/engine\";\n requestAdaptor = await getPostEngineRequestAdaptor(instance);\n } else {\n return null; //TODO 考虑异常情况?\n }\n }\n\n return [\n // 校验表单\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": `\n // console.log(\"======getSubmitActions\");\n const form = event.context.scoped.getComponentById(\"instance_form\");\n return form.validate().then((instanceFormValidate)=>{\n event.setData({...event.data, instanceFormValidate})\n })\n `\n },\n // 校验审批表单\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": `\n const form = event.context.scoped.getComponentById(\"instance_approval\");\n return form.validate().then((approvalFormValidate)=>{\n event.setData({...event.data, approvalFormValidate})\n })\n `,\n expression: \"${event.data.instanceFormValidate}\"\n },\n {\n componentId: \"\",\n args: {\n api: {\n url: `\\${context.rootUrl}${api}`,\n method: \"post\",\n dataType: \"json\",\n data: {\n \"&\": \"$$\",\n \"$scopeId\": \"${$scopeId}\"\n },\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: requestAdaptor,\n },\n messages: {\n success: \"提交成功!\",\n },\n },\n actionType: \"ajax\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n },\n {\n \"componentId\": \"\",\n \"args\": {\n \"blank\": false,\n \"url\": Router.getObjectListViewPath({appId: \"${appId}\", objectName: \"${objectName}\", listViewName: \"${side_listview_id}\"})\n },\n \"actionType\": \"url\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n },\n {\n \"actionType\": \"closeDialog\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n }\n ];\n};\n\nexport const getApprovalDrawerSchema = async (instance) => {\n // console.log(\"=============getApprovalDrawerSchema=============\")\n return {\n type: \"drawer\",\n overlay: true,\n resizable: false,\n closeOnEsc: true,\n closeOnOutside: true,\n size: \"sm\",\n title: `${instance.step.name}`,\n className: \"approval-drawer absolute\",\n headerClassName: 'p-2',\n bodyClassName: 'p-2',\n footerClassName: 'p-2 pt-0',\n drawerContainer: ()=>{\n return window.$(\".antd-Page-content\",window.$(\".steedos-instance-wrapper\"))[0];\n },\n body: [\n {\n type: \"form\",\n debug: false,\n id: \"instance_approval\",\n resetAfterSubmit: true,\n clearPersistDataAfterSubmit: true,\n persistData: `workflow_approve_form_${instance.approve._id}`,\n body: [\n {\n type: 'hidden',\n name: 'new_next_step'\n },\n await getJudgeInput(instance),\n {\n type: \"textarea\",\n label: false,\n name: \"suggestion\",\n id: \"u:cd344f708ddc\",\n minRows: 3,\n maxRows: 20,\n placeholder: \"请填写意见\",\n requiredOn: \"${judge === 'rejected'}\"\n },\n await getNextStepInput(instance),\n await getNextStepUsersInput(instance),\n ],\n onEvent: {\n \"approve_judge_change\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"componentId\": \"u:next_step\",\n \"args\": {\n }\n }\n ]\n },\n // \"approve_next_step_change\": {\n // \"actions\": [\n // {\n // \"actionType\": \"reload\",\n // \"componentId\": \"u:nex_users\",\n // \"args\": {\n // }\n // }\n // ]\n // },\n validateError: {\n weight: 0,\n actions: [\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"info\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"title\": \"提交失败\",\n \"msg\": \"请填写必填字段\"\n },\n \"actionType\": \"toast\"\n }\n ],\n }\n },\n \n },\n ],\n id: \"u:approve_8861156e0b23\",\n position: \"bottom\",\n actions: [\n {\n type: \"button\",\n label: \"提交\",\n onEvent: {\n click: {\n actions: await getSubmitActions(instance),\n },\n },\n id: \"u:f6f8c3933f6c\",\n level: \"primary\",\n },\n {\n type: \"button\",\n label: \"取消\",\n onEvent: {\n click: {\n actions: [\n {\n componentId: \"\",\n args: {},\n actionType: \"closeDrawer\",\n },\n ],\n },\n },\n id: \"u:127ff1da7283\",\n },\n ]\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-16 17:27:24\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-08 10:13:06\n * @Description: \n */\nimport { getSteedosAuth } from '@steedos-widgets/amis-lib'\n// TODO attachments\nexport const getAttachments = async (instance)=>{\n\n return {\n \"type\": \"panel\",\n className: \"border-none bg-none shadow-none\",\n headerClassName: \"p-0 border-none mb-1\",\n bodyClassName: \"p-0\",\n \"title\": [\n await getAttachmentUploadInput(instance)\n ],\n \"body\": [\n {\n type: 'service',\n id: 'u:attachmentsService',\n api: {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: `\n api.data.query = 'query{attachments:cfs_instances_filerecord(filters: [[\"metadata.instance\", \"=\", \"${instance._id}\"], \"metadata.current\", \"=\", true]){ _id,original,metadata}}';\n return api;\n `\n },\n body: [\n {\n \"type\": \"list\",\n \"source\": \"${attachments}\",\n title: false,\n \"listItem\": {\n \"body\": [\n {\n type: 'tpl',\n inline: true,\n tpl: `<a href='\\${context.rootUrl}/api/files/instances/\\${_id}?download=true' target='_blank'>\\${original.name}</a>`\n }\n ],\n \"actions\": [\n {\n \"icon\": \"fa fa-eye\",\n \"type\": \"button\",\n \"id\": \"u:ef52fa8940a8\"\n }\n ],\n \"id\": \"u:550b3fdc8788\"\n },\n \"id\": \"u:f538be693fad\"\n }\n ]\n }\n ]\n }\n}\n\nexport const getAttachmentUploadInput = async (instance)=>{\n if(!instance.approve){\n return {\n type: 'tpl',\n tpl: \"附件\"\n }\n }\n const auth = getSteedosAuth();\n return {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": [\n {\n \"type\": \"input-file\",\n labelClassName: \"antd-List-heading\",\n className: \"flex items-center\",\n \"label\": \"附件\",\n mode:\"inline\",\n \"name\": \"file\",\n \"id\": \"u:a58d02614e04\",\n \"btnLabel\": \"上传\",\n \"btnClassName\": \"m-0\", \n \"multiple\": true,\n \"maxLength\": 10,\n \"submitType\": \"asUpload\",\n \"uploadType\": \"fileReceptor\",\n \"proxy\": false,\n \"drag\": false,\n \"autoUpload\": true,\n \"useChunk\": false,\n \"joinValues\": false,\n \"extractValue\": false,\n \"valueField\": \"version_id\",\n \"receiver\": {\n \"url\": \"${context.rootUrl}/api/v4/instances/s3\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"method\": \"post\",\n \"messages\": {},\n \"dataType\": \"form-data\",\n \"requestAdaptor\": `\n api.data.append('space', '${instance.space}');\n api.data.append('instance', '${instance._id}');\n api.data.append('approve', '${instance.approve?._id}');\n api.data.append('owner', '${auth.userId}');\n api.data.append('owner_name', '${auth.name}');\n return api;\n `\n },\n \"onEvent\": {\n \"success\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"u:5f901c0b917b\",\n \"args\": {},\n \"actionType\": \"clear\"\n },\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"success\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"msg\": \"上传成功\"\n },\n \"actionType\": \"toast\"\n },\n {\n \"componentId\": \"u:attachmentsService\",\n \"args\": {},\n \"actionType\": \"reload\",\n }\n ]\n }\n }\n }\n ],\n \"id\": \"u:5f901c0b917b\",\n \"wrapWithPanel\": false\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-16 17:26:12\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-09 09:48:18\n * @Description: \n */\nimport { map, isEmpty } from 'lodash'\nimport { getSteedosAuth } from '@steedos-widgets/amis-lib';\nexport const getRelatedRecords = async (instance)=>{\n if(!instance.record_ids || isEmpty(instance.record_ids)){\n return ;\n }\n return map(instance.record_ids, (item)=>{\n return {\n type: 'tpl',\n tpl: `<a href='/app/-/${item.o}/view/${item.ids[0]}' target='_blank'>相关台账信息</a>`\n }\n })\n}\n\n// TODO delete button\nexport const getRelatedInstances = async (instance)=>{\n // if(!instance.related_instances || isEmpty(instance.related_instances)){\n // return ;\n // }\n const spaceId = getSteedosAuth().tenantId;\n \n return {\n \"type\": \"list\",\n \"name\": \"relatedInstances\",\n \"source\": \"${related_instances}\",\n title: \"相关文件\",\n \"listItem\": {\n \"body\": [\n {\n type: 'tpl',\n inline: true,\n tpl: `<a href='\\${context.rootUrl}/workflow/space/${spaceId}/view/readonly/\\${_id}' target='_blank'>\\${name}</a>`\n }\n ],\n \"actions\": [\n {\n \"icon\": \"fa fa-eye\",\n \"type\": \"button\",\n \"id\": \"u:ef52fa8940a8\"\n }\n ],\n \"id\": \"u:550b3fdc8788\"\n },\n \"id\": \"related_instances\"\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-24 16:48:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-27 16:45:58\n * @Description: \n */\n\nimport _, { each } from 'lodash';\n\nexport const getInstanceApprovalHistory = async ()=>{\n return {\n \"type\": \"table\",\n \"headerClassName\": \"hidden\",\n \"title\": \"签批历程\",\n \"source\": \"${historyApproves}\",\n \"className\": \"m-b-none instance-approve-history\",\n \"columnsTogglable\": false,\n \"footable\": {\n \"expand\": \"all\"\n },\n \"columns\": [\n {\n \"name\": \"name\",\n \"label\": \"name\"\n },\n {\n \"name\": \"user_name\",\n \"label\": \"user_name\",\n \"type\": \"tpl\",\n \"tpl\": \"<div><div>${opinion}</div>${user_name}</div>\"\n },\n {\n \"name\": \"finish_date\",\n \"label\": \"finish_date\",\n \"classNameExpr\": \"<%= data.finish_date == '已读' ? 'text-[blue]' : (data.finish_date == '未处理' ? 'text-[red]' : '') %>\"\n // \"type\": \"datetime\",\n // \"format\": \"YYYY-MM-DD HH:mm\"\n },\n {\n \"name\": \"judge\",\n \"label\": \"judge\",\n \"classNameExpr\": \"<%= data.judge == '已核准' ? 'text-green-600' : (data.judge == '已驳回' ? 'text-[red]' : '') %>\"\n }\n ]\n }\n}\n\n\nconst getTrs = (instance)=>{\n const { traces } = instance;\n _.each(traces, (trace)=>{\n console.log(`trace`, trace)\n })\n}\n\nexport const getINstanceApproveHistory2 = async (instance)=>{\n \n return {\n type: \"table-view\",\n className: \"instance-history\",\n trs: await getTrs(instance),\n id: \"u:instance-history\",\n };\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-07 16:20:45\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-03-23 16:49:44\n * @Description:\n */\nimport {\n lookupToAmis,\n getSteedosAuth,\n} from \"@steedos-widgets/amis-lib\";\n\nimport { each, startsWith, includes } from \"lodash\";\n\nimport { getApprovalDrawerSchema } from \"./approve\";\n\nimport { getAttachments } from './attachment';\n\nimport { getRelatedRecords, getRelatedInstances } from './related';\n\nimport { getInstanceApprovalHistory } from './history';\n\n\nconst getSelectOptions = (field) => {\n const options = [];\n each(field.options.split(\"\\n\"), (item) => {\n var foo = item.split(\":\");\n if (foo.length == 2) {\n options.push({ label: foo[0], value: foo[1] });\n } else {\n options.push({ label: item, value: item });\n }\n });\n return options;\n};\n\nconst isOpinionField = (field)=>{\n const field_formula = field.formula;\n return (field_formula?.indexOf(\"{traces.\") > -1 || field_formula?.indexOf(\"{signature.traces.\") > -1 || field_formula?.indexOf(\"{yijianlan:\") > -1 || field_formula?.indexOf(\"{\\\"yijianlan\\\":\") > -1 || field_formula?.indexOf(\"{'yijianlan':\") > -1)\n}\n\nconst getFieldEditTpl = async (field, label)=>{\n const tpl = {\n label: label === true ? field.name : false,\n name: field.code,\n mode: \"horizontal\",\n className: \"m-none p-none form-control\",\n disabled: field.permission !== \"editable\",\n required: field.is_required\n };\n if(isOpinionField(field)){\n tpl.type = 'input-group';\n tpl.body = [\n {\n \"type\": \"textarea\",\n \"inputClassName\": \"b-r-none p-r-none\",\n \"name\": \"input-group\",\n \"id\": `yijian-${field.code}`,\n \"minRows\": 3,\n \"maxRows\": 20,\n \"mode\": \"normal\",\n \"size\": \"full\"\n },\n {\n \"type\": \"button\",\n \"label\": \"签批\",\n \"level\": \"link\",\n \"id\": \"u:2592111d236d\",\n \"block\": false,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": `${field.name || field.code}`,\n \"body\": [\n {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": [\n {\n \"label\": \"\",\n \"type\": \"textarea\",\n \"name\": \"yijian\",\n \"id\": \"u:1d5a60623000\",\n \"minRows\": 6,\n \"maxRows\": 20,\n \"mode\": \"normal\",\n \"placeholder\": \"请填写意见\"\n },\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": \"已阅\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"已阅\",\n \"value\": \"已阅\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:13498f8d2882\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"已办\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"已办\",\n \"value\": \"已办\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:cfa2e3c54a21\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"同意\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"同意\",\n \"value\": \"同意\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:06e0037dcd23\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"其他常用意见\",\n \"onEvent\": {\n \"click\": {\n \"actions\": []\n }\n },\n \"id\": \"u:3a781bc550a2\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n }\n ],\n \"id\": \"u:3def7a5b7cd5\"\n }\n ],\n \"id\": \"u:ecbefa51b638\"\n }\n ],\n \"id\": \"u:dd32ae67b5c7\"\n }\n ],\n \"id\": \"u:a5d06d3a61b9\",\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"actions\": [\n {\n \"type\": \"button\",\n \"label\": \"确认\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": `yijian-${field.code}`,\n \"args\": {\n \"valueInput\": \"${yijian}\",\n \"value\": \"${yijian}\"\n },\n \"actionType\": \"setValue\"\n },\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:87e22efe707a\",\n \"level\": \"primary\"\n },\n {\n \"type\": \"button\",\n \"label\": \"取消\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:d0e6550a848e\"\n }\n ]\n }\n }\n ],\n \"weight\": 0\n }\n },\n \"className\": \"instance-sign-text-btn\",\n }\n ]\n }else{\n switch (field.type) {\n case \"input\":\n if (field.is_textarea) {\n tpl.type = \"textarea\";\n } else {\n tpl.type = \"input-text\";\n }\n break;\n case \"number\":\n tpl.type = \"input-number\";\n break;\n case \"date\":\n tpl.type = \"input-date\";\n tpl.inputFormat = \"YYYY-MM-DD\";\n tpl.format = 'YYYY-MM-DDT00:00:00.000[Z]';\n break;\n case \"dateTime\":\n tpl.type = \"input-datetime\";\n tpl.inputFormat = \"YYYY-MM-DD HH:mm\";\n tpl.format = 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n break;\n case \"checkbox\":\n tpl.type = \"checkbox\";\n break;\n case \"email\":\n tpl.type = \"input-email\";\n tpl.validations = {\n isEmail: true,\n };\n break;\n case \"url\":\n tpl.type = \"input-url\";\n tpl.validations = {\n isUrl: true,\n };\n break;\n case \"password\":\n tpl.type = \"input-password\";\n tpl.showCounter = true;\n break;\n case \"select\":\n tpl.type = \"select\";\n tpl.options = getSelectOptions(field);\n break;\n case \"user\":\n const useTpl = await lookupToAmis(\n {\n name: field.code,\n label: field.name,\n reference_to: \"space_users\",\n reference_to_field: 'user',\n multiple: field.is_multiselect,\n },\n false,\n {}\n );\n Object.assign(tpl, useTpl);\n break;\n case \"group\":\n const orgTpl = await lookupToAmis(\n {\n name: field.code,\n label: field.name,\n reference_to: \"organizations\",\n multiple: field.is_multiselect,\n },\n false,\n {}\n );\n Object.assign(tpl, orgTpl);\n break;\n case \"radio\":\n tpl.type = \"radios\";\n tpl.options = getSelectOptions(field);\n break;\n case \"multiSelect\":\n tpl.type = \"checkboxes\";\n tpl.options = getSelectOptions(field);\n break;\n case \"odata\":\n var labelField = field.formula.substr(1, field.formula.length - 2);\n labelField = labelField.substr(labelField.indexOf(\".\") + 1);\n tpl.type = \"select\";\n tpl.multiple = field.is_multiselect;\n // tpl.labelField = labelField;\n // tpl.valueField = \"_value\";\n tpl.source = {\n url: startsWith(field.url, \"http\")\n ? field.url\n : `\\${context.rootUrl}${field.url}`,\n method: \"get\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n adaptor:`\n payload.data = {\n options: _.map(payload.value, (item)=>{\n const value = item;\n item[\"@label\"] = item[\"${labelField}\"]\n delete item['@odata.editLink'];\n delete item['@odata.etag'];\n delete item['@odata.id'];\n return {\n label: item[\"@label\"],\n value: value\n }\n })\n }\n return payload;\n `\n };\n break;\n case \"html\":\n if (tpl.disabled) {\n tpl.type = 'html';\n } else {\n tpl.type = \"input-rich-text\";\n }\n break;\n case \"table\":\n tpl.type = \"input-table\"; //TODO\n tpl.addable = field.permission === \"editable\";\n tpl.editable = tpl.addable;\n tpl.copyable = tpl.addable;\n tpl.removable = tpl.addable;\n tpl.columns = [];\n for (const sField of field.fields) {\n if (sField.type != \"hidden\") {\n sField.permission = field.permission\n const column = await getTdInputTpl(sField, true);\n tpl.columns.push(column);\n }\n }\n break;\n case \"section\":\n tpl.type = \"input-text\";\n break;\n default:\n break;\n }\n }\n // console.log('getFieldEditTpl ', label, tpl)\n return tpl;\n};\n\nconst getFieldReadonlyTpl = async (field, label)=>{\n // console.log(`getFieldReadonlyTpl`, label, field)\n const tpl = {\n label: label === true ? field.name : false,\n name: field.code,\n mode: \"horizontal\",\n className: \"m-none p-none form-control\",\n };\n if(includes(['text'], field.type)){\n tpl.type = `static-${field.type}`;\n }else if(field.type === 'select'){\n const options = getSelectOptions(field);\n const map = {};\n each(options , (item)=>{\n map[item.value] = item.label;\n })\n tpl.type = 'static';\n tpl.tpl = `<% var options = ${JSON.stringify(map)}; return (options && options[data.${field.code}]) || ''%>`\n }else if(field.type === 'odata'){\n tpl.type = 'static';\n tpl.tpl = `<div>\\${${field.code}['@label']}</div>`\n }else if(field.type === 'checkbox'){\n tpl.type = 'static';\n tpl.tpl = `\\${${field.code} ? '是': '否'}`\n }else if(field.type === 'email'){\n tpl.type = 'static'\n tpl.tpl = `<a href=\"mailto:\\${${field.code}}\">\\${${field.code}}</a>`\n }else if(field.type === 'url'){\n tpl.type = 'static'\n tpl.tpl = `<a href=\"\\${${field.code}}\" target=\"_blank\">\\${${field.code}}</a>`\n }else if(field.type === 'password'){\n tpl.type = 'static'\n tpl.tpl = `******`\n }else if(field.type === 'date'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `<%=data.${field.code} ? date(new Date(data.${field.code}), 'YYYY-MM-DD') : '' %>`\n }else if(field.type === 'dateTime'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `<%=data.${field.code} ? date(new Date(data.${field.code}), 'YYYY-MM-DD HH:mm') : '' %>`\n }else if(field.type === 'user'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n if(field.is_multiselect){\n tpl.tpl = `\\${_.map(${field.code}, 'name')}`\n }else{\n tpl.tpl = `\\${${field.code} && ${field.code}.name}`\n }\n }else if(field.type === 'group'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `\\${${field.code}.name}`\n }else if(field.type === 'table'){\n tpl.type = \"input-table\"; //TODO\n tpl.addable = field.permission === \"editable\";\n tpl.editable = tpl.addable;\n tpl.removable = tpl.addable;\n tpl.copyable = tpl.addable;\n tpl.columns = [];\n for (const sField of field.fields) {\n if (sField.type != \"hidden\") {\n const column = await getTdInputTpl(sField, true);\n tpl.columns.push(column);\n }\n }\n }else if(field.type === 'html'){\n tpl.type = 'tpl';\n }\n else{\n tpl.type = 'static';\n }\n return tpl;\n};\n\n/**\n * TODO 先将申请单上的字段转化为 steedos field 类型, 只读、编辑 使用 steedos field tpl\n * @param {*} field \n * @param {*} label \n * @returns \n */\nconst getTdInputTpl = async (field, label) => {\n const edit = field.permission === \"editable\";\n if(edit){\n return await getFieldEditTpl(field, label)\n }else{\n return await getFieldReadonlyTpl(field, label)\n }\n};\n\nconst getTdField = async (field, fieldsCount) => {\n return {\n background: field.permission !== \"editable\" ? \"#FFFFFF\" : \"rgba(255,255,0,.1)\",\n colspan: field.type === \"table\" ? 4 : 3 - (fieldsCount - 1) * 2,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [await getTdInputTpl(field)],\n style: {\n marginTop: \"0\",\n paddingTop: \"0\",\n paddingRight: \"0\",\n paddingBottom: \"0\",\n paddingLeft: \"0\",\n marginRight: \"0\",\n marginBottom: \"0\",\n marginLeft: \"0\",\n borderLeftColor: \"#000000\",\n borderTopColor: \"#000000\",\n borderRightColor: \"#000000\",\n borderBottomColor: \"#000000\",\n },\n // \"id\": \"u:9b001b7ff92d\"\n };\n};\n\nconst getTdTitle = (field) => {\n return {\n className: \"td-title\",\n align: field.type != \"section\" ? \"center\" : \"left\",\n width: field.type != \"section\" ? \"16%\" : \"\",\n colspan: field.type == \"section\" ? 4 : \"\",\n background: \"#FFFFFF\",\n body: [\n {\n type: \"tpl\",\n tpl: `<div>${field.name || field.code} ${field.is_required ? '<span class=\"antd-Form-star\">*</span>' : ''}</div>`,\n },\n ],\n // \"id\": \"u:9b001b7ff92d\",\n style: {\n borderLeftColor: \"#000000\",\n borderTopColor: \"#000000\",\n borderRightColor: \"#000000\",\n borderBottomColor: \"#000000\",\n },\n };\n};\n\nconst getTds = async (tdFields) => {\n const tds = [];\n for (const field of tdFields) {\n if (field.type != \"table\") {\n tds.push(getTdTitle(field));\n }\n if (field.type != \"section\") {\n tds.push(await getTdField(field, tdFields.length));\n }\n }\n return tds;\n};\n\nconst getFormTrs = async (instance) => {\n const trsSchema = [];\n const trs = [];\n let tdFields = [];\n let fields = [];\n each(instance.fields, (field) => {\n fields.push(field);\n if (field.type === \"section\" && field.fields) {\n fields = fields.concat(field.fields);\n }\n });\n each(fields, (field, index) => {\n if (field.is_wide) {\n if (tdFields.length != 0) {\n trs.push(tdFields);\n }\n if (field.type == \"table\") {\n trs.push([Object.assign({}, field, { type: \"section\" })]);\n }\n tdFields = [];\n tdFields.push(field);\n trs.push(tdFields);\n tdFields = [];\n } else {\n tdFields.push(field);\n if (tdFields.length == 2 || index === fields.length - 1) {\n trs.push(tdFields);\n tdFields = [];\n }\n }\n });\n for (const tdFields of trs) {\n trsSchema.push({\n background: \"#F7F7F7\",\n tds: await getTds(tdFields),\n });\n }\n return trsSchema;\n};\n\nconst getFormTableView = async (instance) => {\n const formSchema = {\n type: \"table-view\",\n className: \"instance-form-view\",\n trs: await getFormTrs(instance),\n id: \"u:047f3669468b\",\n };\n return formSchema;\n};\n\nconst getApplicantTableView = async (instance) => {\n let applicantInput = null;\n if(instance.state === 'draft'){\n applicantInput = Object.assign({name: \"applicant\", value: getSteedosAuth().userId, disabled: instance.box !== 'draft'}, await lookupToAmis(\n {\n name: \"applicant\",\n label: false,\n reference_to: \"space_users\",\n reference_to_field: 'user',\n multiple: false\n },\n false,\n {}\n ));\n }else{\n applicantInput = {\n label: false,\n mode: \"horizontal\",\n className: \"m-none p-none\",\n disabled: true,\n type: \"tpl\",\n tpl: '<div>${applicant_name}</div>',\n id: \"u:2016b04355f4\",\n }\n }\n\n return {\n type: \"table-view\",\n className: \"instance-applicant-view\",\n trs: [\n {\n background: \"#FFFFFF\",\n tds: [\n {\n className: \"td-title\",\n background: \"#FFFFFF\",\n align: \"left\",\n width: \"16%\",\n colspan: \"\",\n body: [\n {\n type: \"tpl\",\n tpl: \"<div>提交人</div>\",\n id: \"u:ee62634201bf\",\n },\n ],\n id: \"u:6c24c1bb99c9\",\n style: {\n padding: \"none\",\n },\n },\n {\n background: \"#FFFFFF\",\n colspan: 1,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [\n applicantInput\n ],\n id: \"u:45d65d91905c\",\n },\n {\n className: \"td-title\",\n background: \"#FFFFFF\",\n align: \"left\",\n width: \"16%\",\n colspan: \"\",\n body: [\n {\n type: \"tpl\",\n tpl: \"<div>提交日期</div>\",\n id: \"u:6d0a7763d527\",\n },\n ],\n id: \"u:c8b8214ac931\",\n style: {\n padding: \"none\",\n },\n },\n {\n background: \"#FFFFFF\",\n colspan: 1,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [\n {\n label: false,\n mode: \"horizontal\",\n className: \"m-none p-none\",\n disabled: true,\n type: \"tpl\",\n inputFormat: \"YYYY-MM-DD\",\n valueFormat: \"YYYY-MM-DDT00:00:00.000[Z]\",\n tpl: '<div>${submit_date}</div>',\n id: \"u:2016b04355f4\",\n },\n ],\n id: \"u:81b07d82a5e4\",\n },\n ],\n },\n ],\n id: \"u:047f3669468b\",\n style: {\n borderLeftStyle: \"none\",\n borderTopStyle: \"none\",\n borderRightStyle: \"none\",\n borderBottomStyle: \"none\",\n },\n };\n};\n\nconst getApproveButton = async (instance)=>{\n if(!instance.approve || ( instance.box != 'inbox' && instance.box != 'draft')){\n return null;\n }\n return {\n type: \"button\",\n label: \"签批\",\n onEvent: {\n click: {\n actions: [\n {\n componentId: \"\",\n args: {},\n actionType: \"drawer\",\n drawer: await getApprovalDrawerSchema(instance),\n },\n ],\n },\n },\n id: \"steedos-approve-button\",\n level: \"primary\",\n className:\n \"approve-button w-14 h-14 rounded-full fixed bottom-4 right-4 shadow-lg text-white text-base text-center font-semibold bg-blue-500 p-0\",\n }\n}\n\nexport const getFlowFormSchema = async (instance, box) => {\n return {\n type: \"page\",\n name: \"instancePage\",\n className: \"steedos-amis-instance-view\",\n bodyClassName: \"overflow-y-auto h-full\",\n \"title\": {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"instances\",\n \"recordId\": instance._id,\n \"id\": \"u:e6b2adbe0e21\",\n \"showRecordTitle\": false,\n \"className\": \"p-0 m-0 p0 m0\"\n },\n \"css\": {\n \".instance-approve-history .antd-Table-table thead\": {\n \"display\": \"none\"\n },\n \".instance-approve-history .antd-Table-heading\": {\n \"font-size\": \"14px\",\n \"font-weight\": \"500\",\n \"padding-left\": \"0px\"\n },\n \".antd-List-heading\": {\n \"font-size\": \"14px\",\n \"font-weight\": \"500\"\n }\n },\n body: [\n await getAttachments(instance),\n await getRelatedInstances(instance),\n await getRelatedRecords(instance),\n {\n type: \"form\",\n debug: false,\n wrapWithPanel: false,\n resetAfterSubmit: true,\n body: [\n {\n type: \"tpl\",\n id: \"u:f5bb0ad602a6\",\n tpl: `<div class=\"instance-name\">${instance.title}</div>`,\n inline: true,\n wrapperComponent: \"\",\n style: {\n fontFamily: \"\",\n fontSize: 12,\n textAlign: \"center\",\n },\n },\n await getFormTableView(instance),\n await getApplicantTableView(instance),\n \n ],\n id: \"instance_form\",\n onEvent: {\n validateError: {\n weight: 0,\n actions: [\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"info\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"title\": \"提交失败\",\n \"msg\": \"请填写必填字段\"\n },\n \"actionType\": \"toast\"\n }\n ],\n }\n }\n },\n await getInstanceApprovalHistory(),\n await getApproveButton(instance)\n ],\n id: \"u:63849ea39e12\",\n messages: {},\n pullRefresh: {},\n regions: [\n \"body\",\n \"header\"\n ],\n onEvent: {\n \"@data.@instanceDetail.changed\": {\n actions: [\n {\n actionType: \"reload\"\n }\n ]\n }\n // inited: {\n // weight: 0,\n // actions: [\n // // {\n // // componentId: \"steedos-approve-button\",\n // // actionType: \"click\",\n // // },\n // // {\n // // \"componentId\": \"\",\n // // \"args\": {},\n // // \"actionType\": \"drawer\",\n // // \"drawer\": await getApprovalDrawerSchema()\n // // }\n // ],\n // }\n },\n initApi:{\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"messages\": {\n },\n \"requestAdaptor\": `\n const { context } = api.data;\n api.data = {\n query: \\`\n {\n instance: instances__findOne(id:\"${instance._id}\"){\n related_instances: related_instances__expand{\n _id,\n name\n }\n }\n }\n \\`\n }\n return api;\n `,\n \"adaptor\": `\n payload.data = {\n related_instances: payload.data.instance.related_instances\n };\n return payload;\n `,\n \"data\": {\n // \"&\": \"$$\",\n \"context\": \"${context}\",\n \"judge\": \"${new_judge}\",\n }\n },\n initFetch: true\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-08 16:26:26\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-10-08 16:28:42\n * @Description: \n */\n\nconst isOpinionField = (field_formula)=>{\n return (field_formula?.indexOf(\"{traces.\") > -1 || field_formula?.indexOf(\"{signature.traces.\") > -1 || field_formula?.indexOf(\"{yijianlan:\") > -1 || field_formula?.indexOf(\"{\\\"yijianlan\\\":\") > -1 || field_formula?.indexOf(\"{'yijianlan':\") > -1)\n}\n\nexport const getOpinionFieldStepsName = (field, top_keywords) => {\n const field_formula = field.formula;\n var foo1, opinionFields;\n opinionFields = new Array();\n if (isOpinionField(field_formula)) {\n if (field_formula) {\n foo1 = field_formula.split(\";\");\n foo1.forEach(function(foo) {\n var json_formula, s1, sf, _ref, _ref1;\n json_formula = {};\n try {\n json_formula = eval(\"(\" + foo + \")\");\n } catch (_error) {\n json_formula = {};\n }\n if (json_formula != null ? json_formula.yijianlan : void 0) {\n sf = {};\n sf.stepName = json_formula.yijianlan.step;\n sf.image_sign = json_formula.yijianlan.image_sign || false;\n sf.only_cc_opinion = json_formula.yijianlan.only_cc || false;\n sf.default_description = json_formula.yijianlan[\"default\"];\n sf.only_handler = json_formula.yijianlan.only_handler;\n sf.top_keywords = json_formula.yijianlan.top_keywords || top_keywords;\n return opinionFields.push(sf);\n } else if ((field_formula != null ? field_formula.indexOf(\"{traces.\") : void 0) > -1 || (field_formula != null ? field_formula.indexOf(\"{signature.traces.\") : void 0) > -1) {\n sf = {\n only_cc_opinion: false,\n image_sign: false,\n top_keywords: top_keywords\n };\n if (foo.indexOf(\"{signature.\") > -1) {\n sf.image_sign = true;\n foo = foo.replace(\"{signature.\", \"\");\n }\n s1 = foo.replace(\"{\", \"\").replace(\"}\", \"\");\n if (s1.split(\".\").length > 1) {\n sf.stepName = s1.split(\".\")[1];\n if (opinionFields.filterProperty(\"stepName\", sf.stepName).length > 0) {\n if ((_ref = opinionFields.findPropertyByPK(\"stepName\", sf.stepName)) != null) {\n _ref.only_cc_opinion = true;\n }\n } else {\n if (s1.split(\".\").length > 2) {\n if (((_ref1 = s1.split(\".\")[2]) != null ? _ref1.toLocaleLowerCase() : void 0) === 'cc') {\n sf.only_cc_opinion = true;\n }\n }\n }\n }\n return opinionFields.push(sf);\n }\n });\n }\n }\n return opinionFields;\n}\n","import { fetchAPI, getSteedosAuth } from \"@steedos-widgets/amis-lib\";\nimport _, { find, isEmpty } from \"lodash\";\nimport { getOpinionFieldStepsName } from './util';\n/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-09 17:47:37\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-10-10 13:57:02\n * @Description:\n */\n\nconst getMoment = ()=>{\n if(window.amisRequire){\n return window.amisRequire(\"moment\");\n }else if(window.moment){\n return window.moment;\n }\n}\n\nconst getTrace = ({ instance, traceId }) => {\n return find(instance.traces, (trace) => {\n return trace._id === traceId;\n });\n};\n\nconst getUserApprove = ({ instance, userId }) => {\n const currentTrace = find(instance.traces, (trace) => {\n return trace.is_finished != true;\n });\n let currentApprove = null;\n if (currentTrace) {\n currentApprove = find(currentTrace.approves, (approve) => {\n return approve.is_finished != true && approve.handler == userId;\n });\n }\n\n //传阅的approve返回最新一条\n if (!currentApprove || currentApprove.type == \"cc\") {\n // 当前是传阅\n _.each(instance.traces, function (t) {\n _.each(t.approves, function (a) {\n if (a.type == \"cc\" && a.handler == userId && a.is_finished == false) {\n currentApprove = a;\n }\n });\n });\n }\n\n if (!currentApprove) return;\n\n if (currentApprove._id) {\n currentApprove.id = currentApprove._id;\n }\n return currentApprove;\n};\n\nconst getApproveValues = ({ instance, trace, step, approve, box }) => {\n let instanceValues = null;\n if (!approve || approve.type === \"cc\") {\n instanceValues = instance.values;\n } else {\n if (box === \"draft\") {\n instanceValues = approve.values;\n } else if (box === \"inbox\") {\n if (\n step.step_type == \"counterSign\" ||\n (step.cc_has_edit_permission && !trace.is_finished)\n ) {\n //TODO\n instanceValues = instance.values;\n } else {\n if (isEmpty(approve.values)) {\n instanceValues = instance.values;\n } else {\n instanceValues = approve.values;\n }\n }\n } else if (\n box === \"outbox\" ||\n box === \"pending\" ||\n box == \"completed\" ||\n box == \"monitor\"\n ) {\n instanceValues = instance.values;\n } else {\n instanceValues = instance.values;\n }\n }\n return instanceValues;\n};\n\nconst getFlowVersion = (instance) => {\n if (instance.flow.current._id === instance.flow_version) {\n return instance.flow.current;\n } else {\n return find(instance.flow.historys, (history) => {\n return history._id === instance.flow_version;\n });\n }\n};\n\nconst getFormVersion = (instance) => {\n if (instance.form.current._id === instance.form_version) {\n return instance.form.current;\n } else {\n return find(instance.form.historys, (history) => {\n return history._id === instance.form_version;\n });\n }\n};\n\nconst getStep = ({ flowVersion, stepId }) => {\n return find(flowVersion.steps, (step) => {\n return step._id === stepId;\n });\n};\n\nconst getLastCCStep = ({ traces }, userId) => {\n var i, step_id, trace_id, user_id;\n\n user_id = userId;\n\n trace_id = null;\n\n step_id = null;\n\n i = traces.length - 1;\n\n while (i >= 0) {\n if (!trace_id && traces[i].is_finished) {\n _.each(traces[i].approves, function (ap) {\n if (!trace_id) {\n if (\n ap.is_finished &&\n ap.user === user_id &&\n (!ap.type || ap.type == \"cc\") &&\n [\"approved\", \"submitted\", \"rejected\"].includes(ap.judge)\n ) {\n trace_id = ap.trace;\n }\n if (trace_id) {\n step_id = traces[i].step;\n }\n }\n });\n }\n i--;\n }\n\n return step_id;\n};\n\nconst isCurrentStepOpinionField = (field, currentStep)=>{\n return _.includes(_.map(getOpinionFieldStepsName(field), 'stepName'), currentStep?.name);\n}\n\nexport const getInstanceInfo = async ({ instanceId, box }) => {\n const userId = getSteedosAuth().userId;\n const query = `{\n instance: instances__findOne(id:\"${instanceId}\"){\n _id,\n space,\n name,\n state,\n values,\n applicant,\n cc_users,\n applicant_name,\n submitter,\n submit_date,\n record_ids,\n forward_from_instance,\n related_instances: related_instances__expand{\n _id,\n name\n },\n traces,\n form_version,\n form:form__expand{\n _id,\n name\n current,\n historys\n },\n flow_version,\n flow:flow__expand{\n _id,\n name,\n perms,\n current,\n historys\n }\n }\n }\n `;\n\n const result = await fetchAPI(\"/graphql\", {\n method: \"post\",\n body: JSON.stringify({\n query: query,\n }),\n });\n \n\n let userApprove = null;\n let trace = null;\n let step = null;\n const instance = result.data.instance;\n if (!instance) {\n return undefined;\n }\n if (box === \"inbox\" || box === \"draft\") {\n userApprove = getUserApprove({ instance, userId });\n }\n const flowVersion = getFlowVersion(instance);\n const formVersion = getFormVersion(instance);\n\n if (userApprove) {\n trace = getTrace({ instance, traceId: userApprove.trace });\n step = getStep({ flowVersion, stepId: trace.step });\n }\n\n let currentStep = getStep({ flowVersion, stepId: _.last(instance.traces).step });\n\n const lastCCStep = getLastCCStep(instance, userId);\n\n const values = getApproveValues({\n instance,\n trace,\n step,\n approve: userApprove,\n box,\n });\n\n const flowPermissions = await fetchAPI(`/api/workflow/v2/flow_permissions/${instance.flow._id}`, {\n method: \"get\",\n });\n\n const moment = getMoment();\n\n return {\n box: box,\n _id: instanceId,\n space: instance.space,\n flow: instance.flow,\n form: instance.form,\n applicant: instance.applicant,\n applicant_name: instance.applicant_name,\n submitter: instance.submitter,\n submit_date: instance.submit_date\n ? (moment && moment(instance.submit_date).format(\"YYYY-MM-DD\"))\n : \"\",\n state: instance.state,\n approveValues: values,\n title: instance.name || instance.form.name,\n name: instance.name || instance.form.name,\n fields: _.map(formVersion.fields, (field) => {\n return Object.assign({}, field, {\n permission: userApprove?.type != 'cc' && (step?.permissions[field.code] || ( isCurrentStepOpinionField(field, step) ? 'editable' : '')),\n }) ;\n }),\n flowVersion: flowVersion,\n formVersion: formVersion,\n step: step,\n lastCCStep: lastCCStep,\n trace: trace,\n currentStep,\n flowPermissions: flowPermissions?.permissions || [],\n approve: userApprove,\n record_ids: instance.record_ids,\n related_instances: instance.related_instances,\n forward_from_instance: instance.forward_from_instance,\n cc_users: instance.cc_users,\n traces: instance.traces,\n historyApproves: _.map(instance.traces, (trace) => {\n return Object.assign(\n {\n children: _.map(trace.approves, (approve) => {\n let finishDate = approve.finish_date;\n let judge = approve.judge;\n let userName = approve.user_name;\n let opinion = approve.description;\n if(approve.type === 'cc'){\n userName = `${userName} (传阅)`\n opinion = approve.cc_description;\n }\n if (!finishDate) {\n finishDate = approve.is_read ? \"已读\" : \"未处理\";\n judge = null;\n } else {\n finishDate = moment && moment(finishDate).format(\"YYYY-MM-DD HH:mm\");\n }\n\n switch (judge) {\n case \"submitted\":\n judge = \"\";\n break;\n case \"returned\":\n judge = \"已退回\";\n break;\n case \"terminated\":\n judge = \"被取回\";\n break;\n case \"pending\":\n judge = \"审核中\";\n break;\n case \"approved\":\n judge = \"已核准\";\n break;\n case \"rejected\":\n judge = \"已驳回\";\n break;\n case \"finished\":\n judge = \"已完成\";\n break;\n case \"reassigned\":\n judge = \"转签核\";\n break;\n case \"inhand\":\n judge = \"处理中\";\n break;\n case \"relocated\":\n judge = \"重定位\";\n break;\n case \"readed\":\n judge = \"已阅\";\n break;\n default:\n break;\n }\n return {\n name: \"\",\n user_name: userName,\n finish_date: finishDate,\n judge: judge,\n opinion: opinion,\n };\n }),\n },\n { name: trace.name, judge: \"\" }\n );\n }),\n };\n};\n"],"names":["_","getFindOneQuery","getApi","i18n","Tpl.getFieldTpl","getDefaultParams","getListSchema","getSource","graphql.getFindQuery","graphql.getApi","getDeferApi","getRefListViewSort","Field.getAmisStaticFieldType","Tpl.getLookupTpl","getMoment","getSchema","standardNew.getSchema","standardEdit.getSchema","standardDelete.getSchema","standardImportData.getSchema","standardOpenView.getSchema","standardExportExcel.getSchema","getGlobalData","getButtonVisibleOn","getObjectListHeader","fieldsExtend","fields","initApiAdaptor","apiRequestAdaptor","Router","Fields.isFieldQuickSearchable","Field.isFieldQuickSearchable","Table.getTableSchema","Tpl.getRelatedFieldTpl","List.getListSchema","getAmisFieldType","Tpl.getCreatedInfoTpl","Tpl.getModifiedInfoTpl","Tpl.getSelectMap","Tpl.getSwitchTpl","Tpl.getDateTpl","Tpl.getDateTimeTpl","Tpl.getNumberTpl","Tpl.getUiFieldTpl","Tpl.getPasswordTpl","Tpl.getLocationTpl","File.getAmisFileSchema","Fields.getGridFieldSubFields","Fields.getObjectFieldSubFields","Fields.convertSFieldToAmisField","graphql.getFindOneQuery","graphql.getSaveQuery","graphql.getSaveRequestAdaptor","lodash","getFormFields","defaultsDeep","isObject","getTableSchema","Tpl.getNameTplUrl","graphql.getRecordPermissionsQuery","getSteedosAuth","isOpinionField","lookupToAmis","fetchAPI"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,aAAa,EAAE,iDAAiD;AACxE,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD;AACO,eAAe,8BAA8B,CAAC,YAAY,EAAE,GAAG,EAAE;AACxE,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,yBAAyB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACvE,EAAE,MAAM,gBAAgB,GAAG,MAAM,+BAA+B,CAAC,GAAG,CAAC,CAAC;AACtE,EAAE,MAAM,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,IAAI,YAAY,CAAC;AAC1E,EAAE,MAAM,cAAc,GAAG,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN,EAAE,MAAM,kBAAkB,GAAG,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,8BAA8B,GAAG,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,MAAM,EAAE,8BAA8B;AAC1C,IAAI,MAAM,EAAE;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,cAAc,EAAE;AACpB,MAAM,QAAQ,EAAE,kBAAkB;AAClC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,SAAS;AACvB,MAAM,MAAM,EAAE;AACd,QAAQ,MAAM,EAAE,SAAS;AACzB,QAAQ,MAAM,EAAE,CAAC,gBAAgB,EAAE;AACnC,UAAU,MAAM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ACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE,WAAW,EAAE,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,KAAK,MAAM,CAAC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,EAAE,qBAAqB,CAAC;AACjG;AACA;AACA;AACA;AACA,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA,6BAA6B,EAAE,GAAG,CAAC,YAAY,CAAC;AAChD,gCAAgC,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,gBAAgB,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,eAAe,CAAC,WAAW,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAC;AACL,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;AACtB,wBAAwB,EAAE,eAAe,CAAC,WAAW,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,gBAAgB,CAAC;AACvD,QAAQ,MAAM,CAAC,OAAO,GAAG,CAAC;AAC1B,iCAAiC,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,gBAAgB,CAAC;AACnF;AACA,QAAQ,EAAC;AACT,KAAK;AACL,IAAI,IAA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAACA,GAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,IAAI,EAAC;AACL,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,UAAU,CAAC,WAAW,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAClD,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,OAAO,CAAC,UAAU,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,oBAAoB,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5B;AACA,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACO,eAAe,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/D,IAAI,MAAM,IAAI,GAAG,MAAMQ,YAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/E,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAEC,QAAc,EAAE;AAC7B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,OAAO,EAAE;AACjB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACO,SAAS,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAClE,IAAI,MAAM,IAAI,GAAGkD,yBAAiC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9E,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAElD,QAAc,EAAE;AAC7B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,OAAO,EAAE;AACjB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,SAAS;AACT,KAAK;AACL;;ACv3CA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE;AAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;AACpD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,eAAe;AACnC,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS;AACT,KAAK,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB,CAAC,KAAK,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,WAAW,EAAE;AACrB,YAAY,SAAS,EAAE,KAAK;AAC5B,SAAS;AACT,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;AAC1C,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,UAAU;AACpD,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,EAAE,UAAU;AACnD,gCAAgC,OAAO,EAAE;AACzC,oCAAoC,GAAG,EAAE,IAAI;AAC7C,iCAAiC;AACjC,6BAA6B;AAC7B,4BAA4B,aAAa,EAAE,KAAK,CAAC,EAAE;AACnD,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE;AAC7B,QAAQ,IAAI,qBAAqB,GAAG,CAAC;AACrC,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC;AACrC;AACA,gCAAgC,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3C;AACA;AACA,yCAAyC,EAAE,KAAK,CAAC,IAAI,CAAC;AACtD;AACA;AACA,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,QAAQ;AAClD,4BAA4B,QAAQ,EAAE,qBAAqB;AAC3D,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,MAAM,EAAE,YAAY;AAC5B,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,QAAQ;AAC9C,wBAAwB,QAAQ,EAAE;AAClC,4BAA4B,MAAM,EAAE,QAAQ;AAC5C,4BAA4B,OAAO,EAAE,MAAM;AAC3C,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACrD,6BAA6B;AAC7B,4BAA4B,iBAAiB,EAAE,IAAI;AACnD,4BAA4B,cAAc,EAAE,IAAI;AAChD,4BAA4B,aAAa,EAAE,IAAI;AAC/C,4BAA4B,WAAW,EAAE,aAAa;AACtD,4BAA4B,YAAY,EAAE,KAAK;AAC/C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS;AAC1B,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,QAAQ;AAC9C,wBAAwB,QAAQ,EAAE;AAClC,4BAA4B,MAAM,EAAE,QAAQ;AAC5C,4BAA4B,OAAO,EAAE,MAAM;AAC3C,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AACtD,6BAA6B;AAC7B,4BAA4B,iBAAiB,EAAE,IAAI;AACnD,4BAA4B,cAAc,EAAE,IAAI;AAChD,4BAA4B,aAAa,EAAE,IAAI;AAC/C,4BAA4B,WAAW,EAAE,aAAa;AACtD,4BAA4B,YAAY,EAAE,KAAK;AAC/C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,YAAY;AAClD,wBAAwB,MAAM,EAAE;AAChC,4BAA4B,OAAO,EAAE,cAAc;AACnD,yBAAyB;AACzB,wBAAwB,aAAa,EAAE,KAAK,CAAC,EAAE;AAC/C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACY,MAAC,uBAAuB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AAClE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;AACnB,QAAQ,KAAK,CAAC,EAAE,GAAG,sBAAsB,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,IAAI,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,IAAI,IAAI,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,IAAI,0BAA0B,GAAG,EAAE,CAAC;AACxC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAC;AACzD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;AACzB,QAAQ,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,EAAC;AAC3D,KAAK;AACL,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5B,QAAQ,MAAM,EAAE,KAAK,CAAC,IAAI;AAC1B;AACA;AACA;AACA;AACA,QAAQ,WAAW,EAAE,KAAK,CAAC,SAAS;AACpC,QAAQ,WAAW,EAAE,KAAK,CAAC,SAAS;AACpC,QAAQ,SAAS,EAAE,KAAK,CAAC,OAAO;AAChC,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAE;AACtB,QAAQ,SAAS,EAAE,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACpD;AACA,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,iBAAiB,EAAE,KAAK;AAChC,QAAQ,kBAAkB,EAAE,KAAK;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,0BAA0B,CAAC,MAAM,EAAE;AAC3C,QAAQ,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,SAAS,EAAE,0BAA0B;AACjD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,EAAE,SAAS;AACzB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE;AAChB,YAAY,gBAAgB;AAC5B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACvB,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;ACvPA;AACA;AACA,SAAS,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE;AAC3D,IAAI,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACjF,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC;AACb,YAAY,MAAM,CAAC,UAAU;AAC7B,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,CAAC;AACf,YAAY,MAAM,EAAE,yBAAyB;AAC7C,YAAY,eAAe,EAAE,aAAa;AAC1C;AACA;AACA,YAAY,kBAAkB,EAAE,KAAK;AACrC,YAAY,YAAY,EAAE,IAAI;AAC9B;AACA,YAAY,SAAS,EAAE,4DAA4D;AACnF,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,uBAAuB,CAAC,aAAa,CAAC;AAM5D,IAAI,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,aAA6B,CAAC,CAAC;AAClF,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,GAAG;AACf;AACA,QAAQ;AACR,YAAY,MAAM,EAAE,8BAA8B;AAClD,YAAY,OAAO,EAAE,MAAM;AAC3B,YAAY,eAAe,EAAE,eAAe;AAC5C,YAAY,UAAU,EAAE,aAAa;AACrC,YAAY,SAAS,EAAE;AACvB,gBAAgB,cAAc,EAAE;AAChC,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,UAAU;AACpD,4BAA4B,MAAM,EAAE;AACpC,8BAA8B,OAAO,EAAE;AACvC,gCAAgC,cAAc,EAAE,IAAI;AACpD,+BAA+B;AAC/B,6BAA6B;AAC7B,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,QAAQ;AAClD,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;AAC1F,gCAAgC,QAAQ,EAAE,CAAC,UAAU,CAAC;AACtD,gCAAgC,cAAc,EAAE,IAAI;AACpD,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE;AAChB,YAAY;AACZ,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE;AACxB;AACA,oBAAoB;AACpB,wBAAwB,MAAM,EAAE,qBAAqB;AACrD,wBAAwB,OAAO,EAAE,MAAM;AACvC,wBAAwB,MAAM,EAAE,MAAM;AACtC,wBAAwB,eAAe,EAAE,eAAe;AACxD,wBAAwB,UAAU,EAAE,aAAa;AACjD,wBAAwB,YAAY,EAAE,MAAM;AAC5C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,WAAW,EAAE,iFAAiF;AACtG,QAAQ,gBAAgB,EAAE,WAAW;AACrC,KAAK,CAAC;AACN,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;AAC1B,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,MAAM,EAAE;AACpB,cAAc,MAAM,EAAE,8BAA8B;AACpD,cAAc,OAAO,EAAE,OAAO;AAC9B,cAAc,eAAe,EAAE,eAAe;AAC9C,cAAc,UAAU,EAAE,aAAa;AACvC,aAAa;AACb,SAAS,EAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC;AACjD,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;AACvD,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT,QAAQ,IAAI;AACZ,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE;AAC9E,IAAI,GAAG,CAAC,GAAG,CAAC;AACZ,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,MAAM,QAAQ,IAAI,IAAI;AAC1B,QAAQ,QAAQ,CAAC,UAAU;AAC3B,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK;AAC5B,YAAY,OAAO,IAAI,KAAK,YAAY,CAAC;AACzC,SAAS;AACT,KAAK,CAAC;AACN;AACA,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC;AACxB;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7E,QAAQ,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC5C,QAAQ,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAClC;AACA,YAAY,MAAM,YAAY,GAAG,MAAMe,qBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE;AACnF,gBAAgB,cAAc,EAAE,IAAI;AACpC,gBAAgB,cAAc,EAAE,IAAI;AACpC,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;AACjD,SAAS;AACT,QAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,QAAQ,IAAI,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,GAAG,CAAC,oBAAoB,CAAC;AACjC,UAAU,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAMiC,gBAAc,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE;AAClF,YAAY,IAAI;AAChB,YAAY,GAAG,GAAG;AAClB,YAAY,oBAAoB;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC;AACA,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACjD,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,KAAK;AACL;AACA,IAAI,OAAO,UAAU,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,eAAe,OAAO,EAAE;AAC/B,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC/C,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1C,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACO,eAAe,MAAM,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,CAAC;AACf;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACY,MAAC,gBAAgB,GAAG,YAAY;AAC5C,IAAI,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB;AACA,6CAA6C,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3D;AACA;AACA,kEAAkE,EAAE,IAAI,CAAC,MAAM,CAAC;AAChF;AACA,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE;AAC9C,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;AACvC,KAAK,EAAC;AACN;AACA,IAAI,OAAO,MAAM,CAAC,IAAI;AACtB,EAAC;AACD;AACY,MAAC,WAAW,GAAG,UAAU;AACrC,IAAI,OAAO,MAAM,QAAQ,CAAC,uCAAuC,EAAE;AACnE,QAAQ,MAAM,EAAE,MAAM;AACtB,KAAK,CAAC,CAAC;AACP;;AC7BA,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB;AACY,MAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,EAAC;AACD;AACY,MAAC,MAAM,GAAG,CAAC,CAAC,IAAI;AAC5B,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAC;AACD;AACY,MAAC,OAAO,GAAG,CAAC,IAAI,IAAI;AAChC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG;AACtB,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK,CAAC,CAAC;AACP,EAAC;AACD;AACY,MAAC,OAAO,GAAG,KAAK;AAC5B,IAAI,OAAO,UAAU,CAAC;AACtB;;AClBO,eAAe,6BAA6B,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;AACpF,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,IAAI,EAAE,OAAO,CAAC,EAAE;AACxB,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,QAAQ,EAAE;AAClB,YAAY,QAAQ,EAAE,MAAM;AAC5B,YAAY,KAAK,EAAE,4BAA4B;AAC/C,YAAY,MAAM,EAAE;AACpB,gBAAgB,SAAS,EAAE,YAAY;AACvC,gBAAgB,UAAU,EAAE,aAAa;AACzC,gBAAgB,QAAQ,EAAE,SAAS;AACnC,gBAAgB,UAAU,EAAE,YAAY;AACxC,gBAAgB,OAAO,EAAE,iKAAiK;AAC1L,gBAAgB,OAAO,EAAE,OAAO;AAChC,gBAAgB,OAAO,EAAE,IAAI;AAC7B,aAAa;AACb,YAAY,gBAAgB,EAAE,goCAAgoC;AAC9pC,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,MAAM,EAAE,SAAS;AAC7B,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,eAAe,EAAE;AAC7B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,aAAa;AACb,YAAY,eAAe,EAAE;AAC7B,gBAAgB,SAAS,EAAE,EAAE;AAC7B,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,QAAQ;AACpC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,aAAa,EAAE,EAAE;AACrC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,KAAK;AACjC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,SAAS,EAAE,KAAK;AACpC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,YAAY,EAAE,IAAI;AACtC,oBAAoB,MAAM,EAAE,MAAM;AAClC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,YAAY,EAAE,IAAI;AACtC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,QAAQ;AACpC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,YAAY,EAAE,IAAI;AACtC,iBAAiB;AACjB,aAAa;AACb,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,+BAA+B,EAAE,IAAI;AACjD,SAAS;AACT,QAAQ,YAAY,EAAE,MAAM;AAC5B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,cAAc,EAAE,IAAI;AAC5B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,gBAAgB,EAAE,WAAW;AACrC,KAAK;AACL,CAAC;AACD;AACO,eAAe,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/D,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,MAAM,UAAU,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACpF,IAAI,OAAO;AACX,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA,MAAM,4BAA4B,GAAG;AACrC,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,GAAG;AACf,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,YAAY,EAAE,cAAc;AAC9B,EAAE,aAAa,EAAE,GAAG;AACpB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,WAAW,EAAE,YAAY;AAC3B,EAAE,SAAS,EAAE,UAAU;AACvB,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,CAAC,IAAI,KAAK;AAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACpC,CAAC,CAAC;AACF;AACA,MAAM,uBAAuB,GAAG,CAAC,KAAK,KAAK;AAC3C,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC1C,EAAE,IAAI,WAAW,IAAI,QAAQ,EAAE;AAC/B,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/B,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACrD,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,sBAAsB,GAAG,CAAC,IAAI,KAAK;AACzC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACnC,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACrC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AACrC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,OAAO,MAAM;AACb,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,UAAU,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,MAAM,qBAAqB,GAAG,CAAC,MAAM,KAAK;AAC1C,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,EAAE,GAAGJ,UAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACjD,MAAM,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,IAAI;AACJ,MAAM,EAAE,KAAK,SAAS;AACtB,MAAMA,UAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM;AACN,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE;AACd,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,OAAO,CAAC;AACR,KAAK,MAAM;AACX,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE;AACd,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,EAAE,EAAE,EAAE;AACd,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACxB,OAAO,CAAC;AACR,KAAK;AACL,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,mBAAmB,GAAG,CAAC,MAAM,KAAK;AACxC,EAAE,IAAI,CAACA,UAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAIA,UAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA,MAAM,uBAAuB,GAAG,CAAC,OAAO,KAAK;AAC7C,EAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACzC;AACA,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,QAAQ,EAAE,EAAE;AAChB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC9B,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE;AAC7C,MAAM,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;AACtC,KAAK,MAAM;AACX,MAAM;AACN,QAAQ,MAAM,CAAC,MAAM,KAAK,CAAC;AAC3B,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAQ;AACR,QAAQ,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACY,MAAC,mBAAmB,GAAG,CAAC,UAAU,KAAK;AACnD,EAAE,OAAO,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE;AACF;AACY,MAAC,mBAAmB,GAAG,CAAC,OAAO,KAAK;AAChD,EAAE,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACY,MAAC,oBAAoB,GAAG,OAAO,SAAS,GAAG;AACvD,IAAI,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,QAAQ,IAAI,cAAc,GAAG,SAAS,CAAC;AACvC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpC,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,MAAM,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAC3D,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACvI,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG;AACtC,YAAY,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/G,SAAS,CAAC;AACV,KAAK,KAAI;AACT,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL;;ACrBA;;;;;;AAMG;AACU,IAAA,oBAAoB,GAAG,YAAA;AAChC,IAAA,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO;AACL,QAAA,OAAO,EAAE;YACL,OAAO,EAAE,UAAU,EAAE;YACrB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;AAChC,YAAA,IAAI,EAAE,WAAW;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,QAAQ;AAC7B,YAAA,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,IAAI,IAAI,EAAE;;AAElB,SAAA;KACF,CAAA;AACH;;ACvBF;AACA;AACA,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C;AACA,MAAM,eAAe,GAAG,OAAO,QAAQ,KAAK;AAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AAC5B,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa;AACpC,IAAI,+BAA+B,IAAI,IAAI;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,QAAQ;AACrB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,OAAO,QAAQ,KAAK;AAC1C,EAAE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;AACvD,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AAChE,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,UAAU;AACvB,MAAM,OAAO,EAAE,YAAY;AAC3B,MAAM,EAAE,EAAE,gBAAgB;AAC1B,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,SAAS,EAAE;AACjB,QAAQ,QAAQ,EAAE;AAClB,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS,EAAE;AACrB,YAAY;AACZ,cAAc,aAAa,EAAE,mBAAmB;AAChD,cAAc,MAAM,EAAE;AACtB,gBAAgB,OAAO,EAAE;AACzB,kBAAkB,SAAS,EAAE,qBAAqB;AAClD,kBAAkB,SAAS,EAAE,SAAS;AACtC,iBAAiB;AACjB,eAAe;AACf,cAAc,YAAY,EAAE,UAAU;AACtC,aAAa;AACb,YAAY;AACZ;AACA,cAAc,MAAM,EAAE;AACtB,gBAAgB,KAAK,EAAE,qBAAqB;AAC5C,eAAe;AACf,cAAc,YAAY,EAAE,WAAW;AACvC,cAAc,SAAS,EAAE,sBAAsB;AAC/C,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,QAAQ;AACZ,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,EAAE,EAAE,MAAM;AAClB,QAAQ,MAAM,EAAE,QAAQ;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,aAAa;AAC/B,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,EAAE,EAAE,aAAa;AAC7B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,QAAQ,EAAE,IAAI;AAC1B;AACA,YAAY,QAAQ,EAAE;AACtB,cAAc,eAAe,EAAE,SAAS;AACxC,cAAc,YAAY,EAAE,IAAI;AAChC,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,cAAc,KAAK,EAAE,gEAAgE;AACrF,cAAc,SAAS,EAAE;AACzB,gBAAgB,eAAe,EAAE,iDAAiD;AAClF,eAAe;AACf,cAAc,QAAQ,EAAE,MAAM;AAC9B,cAAc,UAAU,EAAE;AAC1B,eAAe;AACf,cAAc,gBAAgB,EAAE,+WAA+W;AAC/Y,cAAc,SAAS,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC;AACf,cAAc,MAAM,EAAE;AACtB;AACA,gBAAgB,SAAS,EAAE,YAAY;AACvC,gBAAgB,UAAU,EAAE,YAAY;AACxC,gBAAgB,OAAO,EAAE,cAAc;AACvC,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,SAAS,EAAE,sBAAsB;AACrC,IAAI,WAAW,EAAE,EAAE;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,QAAQ;AACZ,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,EAAE,EAAE,MAAM;AAClB,QAAQ,MAAM,EAAE,QAAQ;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE;AACd;AACA,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE;AAC1B,UAAU;AACV,YAAY,MAAM,EAAE,qBAAqB;AACzC,WAAW;AACX,UAAU;AACV,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,QAAQ,EAAE,mDAAmD;AACzE,YAAY,QAAQ,EAAE,IAAI;AAC1B,WAAW,CAAC;AACZ,UAAU;AACV,YAAY,IAAI,EAAE,qBAAqB;AACvC,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,oDAAoD;AAC1E,YAAY,IAAI,EAAE;AAClB,cAAc,QAAQ,EAAE,gDAAgD;AACxE,cAAc,QAAQ,EAAE;AACxB,gBAAgB,KAAK,EAAE,kDAAkD;AACzE,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,QAAQ,EAAE,+DAA+D;AACzF,gBAAgB,SAAS,EAAE;AAC3B,kBAAkB,eAAe,EAAE,iDAAiD;AACpF,iBAAiB;AACjB,gBAAgB,UAAU,EAAE;AAC5B,iBAAiB;AACjB,gBAAgB,gBAAgB,EAAE,0QAA0Q;AAC5S,gBAAgB,SAAS,EAAE,qJAAqJ;AAChL,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,GAAG,EAAE,IAAI;AAC3B,kBAAkB,UAAU,EAAE,UAAU;AACxC,kBAAkB,SAAS,EAAE,YAAY;AACzC,kBAAkB,WAAW,EAAE,kBAAkB;AACjD,iBAAiB;AACjB,eAAe;AACf,cAAc,YAAY,EAAE,MAAM;AAClC,cAAc,YAAY,EAAE,IAAI;AAChC,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,SAAS,EAAE,iDAAiD;AAChE,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,QAAQ,EAAE,yFAAyF;AACvG,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,yBAAyB,GAAG,OAAO,QAAQ,KAAK;AACtD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA,2BAA2B,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC1C,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7C,0BAA0B,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACjD;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA,MAAM,2BAA2B,GAAG,OAAO,QAAQ,KAAK;AACxD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC;AACrC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C;AACA;AACA;AACA,0BAA0B,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,2BAA2B,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C;AACA,8BAA8B,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA,MAAM,2BAA2B,GAAG,OAAO,QAAQ,KAAK;AACxD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxC;AACA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,GAAG,GAAG,4BAA4B,CAAC;AACvC,IAAI,cAAc,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC/D,GAAG,KAAI;AACP,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE;AACpC,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACnE,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;AAC7C,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACnE,KAAK,MAAM;AACX,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT;AACA,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,YAAY,EAAE,QAAQ;AAC5B,MAAM,QAAQ,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,KAAK;AACL;AACA,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,YAAY,EAAE,QAAQ;AAC5B,MAAM,QAAQ,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,UAAU,EAAE,oCAAoC;AACtD,KAAK;AACL,IAAI;AACJ,MAAM,WAAW,EAAE,EAAE;AACrB,MAAM,IAAI,EAAE;AACZ,QAAQ,GAAG,EAAE;AACb,UAAU,GAAG,EAAE,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAC1C,UAAU,MAAM,EAAE,MAAM;AACxB,UAAU,QAAQ,EAAE,MAAM;AAC1B,UAAU,IAAI,EAAE;AAChB,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,UAAU,EAAE,aAAa;AACrC,WAAW;AACX,UAAU,OAAO,EAAE;AACnB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,WAAW;AACX,UAAU,cAAc,EAAE,cAAc;AACxC,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,UAAU,OAAO,EAAE,OAAO;AAC1B,SAAS;AACT,OAAO;AACP,MAAM,UAAU,EAAE,MAAM;AACxB,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE;AACd,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,KAAK,EAAExB,QAAM,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;AAClI,OAAO;AACP,MAAM,YAAY,EAAE,KAAK;AACzB,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,IAAI;AACJ,MAAM,YAAY,EAAE,aAAa;AACjC,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACO,MAAM,uBAAuB,GAAG,OAAO,QAAQ,KAAK;AAC3D;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,SAAS,EAAE,0BAA0B;AACzC,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,eAAe,EAAE,IAAI;AACzB,MAAM,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM;AACN,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,EAAE,EAAE,mBAAmB;AAC/B,QAAQ,gBAAgB,EAAE,IAAI;AAC9B,QAAQ,2BAA2B,EAAE,IAAI;AACzC,QAAQ,WAAW,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpE,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,eAAe;AACjC,WAAW;AACX,UAAU,MAAM,aAAa,CAAC,QAAQ,CAAC;AACvC,UAAU;AACV,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,WAAW,EAAE,OAAO;AAChC,YAAY,UAAU,EAAE,yBAAyB;AACjD,WAAW;AACX,UAAU,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AAC1C,UAAU,MAAM,qBAAqB,CAAC,QAAQ,CAAC;AAC/C,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,UAAU,sBAAsB,EAAE;AAClC,YAAY,SAAS,EAAE;AACvB,cAAc;AACd,gBAAgB,YAAY,EAAE,QAAQ;AACtC,gBAAgB,aAAa,EAAE,aAAa;AAC5C,gBAAgB,MAAM,EAAE;AACxB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,aAAa,EAAE;AACzB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,SAAS,EAAE,MAAM;AACnC,kBAAkB,UAAU,EAAE,WAAW;AACzC,kBAAkB,aAAa,EAAE,IAAI;AACrC,kBAAkB,UAAU,EAAE,IAAI;AAClC,kBAAkB,OAAO,EAAE,MAAM;AACjC,kBAAkB,KAAK,EAAE,SAAS;AAClC,iBAAiB;AACjB,gBAAgB,YAAY,EAAE,OAAO;AACrC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,wBAAwB;AAChC,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,OAAO,EAAE;AACjB,UAAU,KAAK,EAAE;AACjB,YAAY,OAAO,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AACrD,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,KAAK,EAAE,SAAS;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,OAAO,EAAE;AACjB,UAAU,KAAK,EAAE;AACjB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,WAAW,EAAE,EAAE;AAC/B,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,UAAU,EAAE,aAAa;AACzC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,CAAC;;ACxhBD;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,cAAc,GAAG,OAAO,QAAQ,GAAG;AAChD;AACA,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,SAAS,EAAE,iCAAiC;AACpD,QAAQ,eAAe,EAAE,sBAAsB;AAC/C,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,OAAO,EAAE;AACjB,UAAU,MAAM,wBAAwB,CAAC,QAAQ,CAAC;AAClD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,UAAU;AACV,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,EAAE,EAAE,sBAAsB;AACtC,YAAY,GAAG,EAAE;AACjB,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,KAAK,EAAE,4BAA4B;AACnD,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,aAAa,EAAE,iDAAiD;AACpF,iBAAiB;AACjB,gBAAgB,cAAc,EAAE,CAAC;AACjC,uHAAuH,EAAE,QAAQ,CAAC,GAAG,CAAC;AACtI;AACA,gBAAgB,CAAC;AACjB,aAAa;AACb,YAAY,IAAI,EAAE;AAClB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,UAAU,EAAE;AAChC,sBAAsB,MAAM,EAAE;AAC9B,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,KAAK;AACvC,4BAA4B,MAAM,EAAE,IAAI;AACxC,4BAA4B,GAAG,EAAE,CAAC,6GAA6G,CAAC;AAChJ,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,SAAS,EAAE;AACjC,wBAAwB;AACxB,0BAA0B,MAAM,EAAE,WAAW;AAC7C,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,oBAAoB,IAAI,EAAE,gBAAgB;AAC1C,iBAAiB;AACjB,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,EAAC;AACD;AACO,MAAM,wBAAwB,GAAG,OAAO,QAAQ,GAAG;AAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AACzB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,IAAI,GAAG+B,gBAAc,EAAE,CAAC;AAClC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE;AAChB,UAAU;AACV,YAAY,MAAM,EAAE,YAAY;AAChC,YAAY,cAAc,EAAE,mBAAmB;AAC/C,YAAY,SAAS,EAAE,mBAAmB;AAC1C,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,IAAI,CAAC,QAAQ;AACzB,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,YAAY,EAAE,UAAU;AACpC,YAAY,YAAY,EAAE,cAAc;AACxC,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,YAAY,EAAE,YAAY;AACtC,YAAY,UAAU,EAAE;AACxB,cAAc,KAAK,EAAE,wCAAwC;AAC7D,cAAc,OAAO,EAAE;AACvB,gBAAgB,aAAa,EAAE,iDAAiD;AAChF,eAAe;AACf,cAAc,QAAQ,EAAE,MAAM;AAC9B,cAAc,UAAU,EAAE,EAAE;AAC5B,cAAc,UAAU,EAAE,WAAW;AACrC,cAAc,gBAAgB,EAAE,CAAC;AACjC,0CAA0C,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC3D,6CAA6C,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5D,4CAA4C,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;AACpE,0CAA0C,EAAE,IAAI,CAAC,MAAM,CAAC;AACxD,+CAA+C,EAAE,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA,cAAc,CAAC;AACf,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,cAAc,SAAS,EAAE;AACzB,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,SAAS,EAAE;AAC3B,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,gBAAgB;AACnD,oBAAoB,MAAM,EAAE,EAAE;AAC9B,oBAAoB,YAAY,EAAE,OAAO;AACzC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,EAAE;AACrC,oBAAoB,MAAM,EAAE;AAC5B,sBAAsB,SAAS,EAAE,SAAS;AAC1C,sBAAsB,UAAU,EAAE,WAAW;AAC7C,sBAAsB,aAAa,EAAE,IAAI;AACzC,sBAAsB,UAAU,EAAE,IAAI;AACtC,sBAAsB,KAAK,EAAE,MAAM;AACnC,qBAAqB;AACrB,oBAAoB,YAAY,EAAE,OAAO;AACzC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,sBAAsB;AACzD,oBAAoB,MAAM,EAAE,EAAE;AAC9B,oBAAoB,YAAY,EAAE,QAAQ;AAC1C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,eAAe,EAAE,KAAK;AAC9B,OAAO;AACP;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAM,iBAAiB,GAAG,OAAO,QAAQ,GAAG;AACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,QAAQ;AAChB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG;AAC5C,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;AAC5F,SAAS;AACT,KAAK,CAAC;AACN,EAAC;AACD;AACA;AACO,MAAM,mBAAmB,GAAG,OAAO,QAAQ,GAAG;AACrD;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAGA,gBAAc,EAAE,CAAC,QAAQ,CAAC;AAC9C;AACA,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,kBAAkB;AAClC,QAAQ,QAAQ,EAAE,sBAAsB;AACxC,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,UAAU,EAAE;AACpB,UAAU,MAAM,EAAE;AAClB,YAAY;AACZ,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,GAAG,EAAE,CAAC,4CAA4C,EAAE,OAAO,CAAC,oDAAoD,CAAC;AACjI,aAAa;AACb,WAAW;AACX,UAAU,SAAS,EAAE;AACrB,YAAY;AACZ,cAAc,MAAM,EAAE,WAAW;AACjC,cAAc,MAAM,EAAE,QAAQ;AAC9B,cAAc,IAAI,EAAE,gBAAgB;AACpC,aAAa;AACb,WAAW;AACX,UAAU,IAAI,EAAE,gBAAgB;AAChC,SAAS;AACT,QAAQ,IAAI,EAAE,mBAAmB;AACjC,KAAK;AACL;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACO,MAAM,0BAA0B,GAAG,UAAU;AACpD,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,iBAAiB,EAAE,QAAQ;AACnC,QAAQ,OAAO,EAAE,MAAM;AACvB,QAAQ,QAAQ,EAAE,oBAAoB;AACtC,QAAQ,WAAW,EAAE,mCAAmC;AACxD,QAAQ,kBAAkB,EAAE,KAAK;AACjC,QAAQ,UAAU,EAAE;AACpB,YAAY,QAAQ,EAAE,KAAK;AAC3B,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,UAAU;AACV,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE,MAAM;AAC3B,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,OAAO,EAAE,WAAW;AAChC,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,KAAK,EAAE,8CAA8C;AACjE,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,aAAa;AACjC,YAAY,OAAO,EAAE,aAAa;AAClC,YAAY,eAAe,EAAE,mGAAmG;AAChI;AACA;AACA,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,eAAe,EAAE,2FAA2F;AACxH,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACpC,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK;AAC5C,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;AACzB,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAMC,gBAAc,GAAG,CAAC,KAAK,GAAG;AAChC,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AACtC,EAAE,QAAQ,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACvP,EAAC;AACD;AACA,MAAM,eAAe,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG;AAC9C,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK;AAC9C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,QAAQ,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU;AAC7C,IAAI,QAAQ,EAAE,KAAK,CAAC,WAAW;AAC/B,GAAG,CAAC;AACJ,EAAE,GAAGA,gBAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AAC7B,IAAI,GAAG,CAAC,IAAI,GAAG;AACf,MAAM;AACN,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,gBAAgB,EAAE,mBAAmB;AAC7C,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,SAAS,EAAE,CAAC;AACpB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,MAAM,EAAE,MAAM;AACtB,OAAO;AACP,MAAM;AACN,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,OAAO,EAAE,MAAM;AACvB,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,SAAS,EAAE;AACnB,UAAU,OAAO,EAAE;AACnB,YAAY,SAAS,EAAE;AACvB,cAAc;AACd,gBAAgB,YAAY,EAAE,QAAQ;AACtC,gBAAgB,QAAQ,EAAE;AAC1B,kBAAkB,MAAM,EAAE,QAAQ;AAClC,kBAAkB,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AACxD,kBAAkB,MAAM,EAAE;AAC1B,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,MAAM;AACpC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,MAAM,EAAE;AAC9B,wBAAwB;AACxB,0BAA0B,OAAO,EAAE,EAAE;AACrC,0BAA0B,MAAM,EAAE,UAAU;AAC5C,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,0BAA0B,SAAS,EAAE,CAAC;AACtC,0BAA0B,SAAS,EAAE,EAAE;AACvC,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,aAAa,EAAE,OAAO;AAChD,yBAAyB;AACzB,wBAAwB;AACxB,0BAA0B,MAAM,EAAE,MAAM;AACxC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,MAAM,EAAE;AACtC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,QAAQ;AACnD,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE,EAAE;AACnD,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,+BAA+B;AAC/B,8BAA8B,IAAI,EAAE,gBAAgB;AACpD,6BAA6B;AAC7B,2BAA2B;AAC3B,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,mBAAmB;AACnB,kBAAkB,IAAI,EAAE,gBAAgB;AACxC,kBAAkB,YAAY,EAAE,KAAK;AACrC,kBAAkB,gBAAgB,EAAE,KAAK;AACzC,kBAAkB,iBAAiB,EAAE,IAAI;AACzC,kBAAkB,SAAS,EAAE;AAC7B,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,QAAQ;AACtC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,SAAS,EAAE;AACjC,wBAAwB,OAAO,EAAE;AACjC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,8BAA8B,MAAM,EAAE;AACtC,gCAAgC,YAAY,EAAE,WAAW;AACzD,gCAAgC,OAAO,EAAE,WAAW;AACpD,+BAA+B;AAC/B,8BAA8B,YAAY,EAAE,UAAU;AACtD,6BAA6B;AAC7B,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,EAAE;AAC/C,8BAA8B,MAAM,EAAE,EAAE;AACxC,8BAA8B,YAAY,EAAE,aAAa;AACzD,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,sBAAsB,OAAO,EAAE,SAAS;AACxC,qBAAqB;AACrB,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,QAAQ;AACtC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,SAAS,EAAE;AACjC,wBAAwB,OAAO,EAAE;AACjC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,EAAE;AAC/C,8BAA8B,MAAM,EAAE,EAAE;AACxC,8BAA8B,YAAY,EAAE,aAAa;AACzD,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,QAAQ,EAAE,CAAC;AACvB,WAAW;AACX,SAAS;AACT,QAAQ,WAAW,EAAE,wBAAwB;AAC7C,OAAO;AACP,MAAK;AACL,GAAG,KAAI;AACP,IAAI,QAAQ,KAAK,CAAC,IAAI;AACtB,MAAM,KAAK,OAAO;AAClB,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE;AAC/B,UAAU,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;AAChC,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC;AACvC,QAAQ,GAAG,CAAC,MAAM,GAAG,4BAA4B,CAAC;AAClD,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACpC,QAAQ,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAC7C,QAAQ,GAAG,CAAC,MAAM,GAAG,0BAA0B,CAAC;AAChD,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;AAC9B,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AACjC,QAAQ,GAAG,CAAC,WAAW,GAAG;AAC1B,UAAU,OAAO,EAAE,IAAI;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,KAAK;AAChB,QAAQ,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;AAC/B,QAAQ,GAAG,CAAC,WAAW,GAAG;AAC1B,UAAU,KAAK,EAAE,IAAI;AACrB,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACpC,QAAQ,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;AAC/B,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,MAAM,MAAM,GAAG,MAAMC,cAAY;AACzC,UAAU;AACV,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,KAAK,EAAE,KAAK,CAAC,IAAI;AAC7B,YAAY,YAAY,EAAE,aAAa;AACvC,YAAY,kBAAkB,EAAE,MAAM;AACtC,YAAY,QAAQ,EAAE,KAAK,CAAC,cAAc;AAC1C,WAAW;AACX,UAAU,KAAK;AACf,UAAU,EAAE;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,MAAM,MAAM,GAAG,MAAMA,cAAY;AACzC,UAAU;AACV,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,KAAK,EAAE,KAAK,CAAC,IAAI;AAC7B,YAAY,YAAY,EAAE,eAAe;AACzC,YAAY,QAAQ,EAAE,KAAK,CAAC,cAAc;AAC1C,WAAW;AACX,UAAU,KAAK;AACf,UAAU,EAAE;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,aAAa;AACxB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAQ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5C;AACA;AACA,QAAQ,GAAG,CAAC,MAAM,GAAG;AACrB,UAAU,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;AAC5C,cAAc,KAAK,CAAC,GAAG;AACvB,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,MAAM,EAAE,KAAK;AACvB,UAAU,QAAQ,EAAE,MAAM;AAC1B,UAAU,OAAO,EAAE;AACnB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,WAAW;AACX,UAAU,OAAO,CAAC,CAAC;AACnB;AACA;AACA;AACA,uCAAuC,EAAE,UAAU,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC;AACX,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC1B,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;AAC5B,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;AACvC,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AACjC,QAAQ,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AACtD,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AACpC,QAAQ,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACzB,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC3C,UAAU,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAU;AAChD,YAAY,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,YAAY,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,SAAS;AACpB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,MAAM;AAGd,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG;AAClD;AACA,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK;AAC9C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,GAAG,CAAC;AACJ,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnC,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACnC,KAAK,EAAC;AACN,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAC;AAChH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAC;AACtD,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAC;AAC5C,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAC;AACxE,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;AAChC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAC;AACjF,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAC;AACtB,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAC;AAChG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,8BAA8B,EAAC;AACtG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5B,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAC;AAClD,KAAK,KAAI;AACT,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AACzD,KAAK;AACL,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AACtC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AAClD,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AAChC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACvC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AACnC,QAAQ,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,OAAO;AACP,KAAK;AACL,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;AACrB,GAAG;AACH,OAAM;AACN,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,OAAO,KAAK,EAAE,KAAK,KAAK;AAC9C,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AAC/C,EAAE,GAAG,IAAI,CAAC;AACV,IAAI,OAAO,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9C,GAAG,KAAI;AACP,IAAI,OAAO,MAAM,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK;AACjD,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU,GAAG,SAAS,GAAG,oBAAoB;AAClF,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;AACnE,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,KAAK,EAAE;AACX,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,YAAY,EAAE,GAAG;AACvB,MAAM,aAAa,EAAE,GAAG;AACxB,MAAM,WAAW,EAAE,GAAG;AACtB,MAAM,WAAW,EAAE,GAAG;AACtB,MAAM,YAAY,EAAE,GAAG;AACvB,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,iBAAiB,EAAE,SAAS;AAClC,KAAK;AACL;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAC9B,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,QAAQ,GAAG,MAAM;AACtD,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE;AAC/C,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE;AAC7C,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,IAAI,EAAE;AACV,MAAM;AACN,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,uCAAuC,GAAG,EAAE,CAAC,MAAM,CAAC;AACzH,OAAO;AACP,KAAK;AACL;AACA,IAAI,KAAK,EAAE;AACX,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,iBAAiB,EAAE,SAAS;AAClC,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK;AACnC,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACjB,EAAE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;AAC/B,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;AACjC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK;AACvC,EAAE,MAAM,SAAS,GAAG,EAAE,CAAC;AACvB,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACnC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;AAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;AACjC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACvB,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AAChC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;AACjC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,OAAO;AACP,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAQ,QAAQ,GAAG,EAAE,CAAC;AACtB,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE;AAC9B,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,MAAM,UAAU,EAAE,SAAS;AAC3B,MAAM,GAAG,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,oBAAoB;AACnC,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC;AACnC,IAAI,EAAE,EAAE,gBAAgB;AACxB,GAAG,CAAC;AACJ,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACA,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,GAAG,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC;AAChC,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAEF,gBAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,MAAME,cAAY;AAC9I,MAAM;AACN,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,YAAY,EAAE,aAAa;AACnC,QAAQ,kBAAkB,EAAE,MAAM;AAClC,QAAQ,QAAQ,EAAE,KAAK;AACvB,OAAO;AACP,MAAM,KAAK;AACX,MAAM,EAAE;AACR,KAAK,CAAC,CAAC;AACP,GAAG,KAAI;AACP,IAAI,cAAc,GAAG;AACrB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,IAAI,EAAE,YAAY;AACxB,MAAM,SAAS,EAAE,eAAe;AAChC,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE,8BAA8B;AACzC,MAAM,EAAE,EAAE,gBAAgB;AAC1B,MAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,yBAAyB;AACxC,IAAI,GAAG,EAAE;AACT,MAAM;AACN,QAAQ,UAAU,EAAE,SAAS;AAC7B,QAAQ,GAAG,EAAE;AACb,UAAU;AACV,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,GAAG,EAAE,gBAAgB;AACrC,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,OAAO,EAAE,MAAM;AAC7B,aAAa;AACb,WAAW;AACX,UAAU;AACV,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE;AAClB,cAAc,cAAc;AAC5B,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,UAAU;AACV,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,GAAG,EAAE,iBAAiB;AACtC,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,OAAO,EAAE,MAAM;AAC7B,aAAa;AACb,WAAW;AACX,UAAU;AACV,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,SAAS,EAAE,eAAe;AAC1C,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,WAAW,EAAE,YAAY;AACzC,gBAAgB,WAAW,EAAE,4BAA4B;AACzD,gBAAgB,GAAG,EAAE,2BAA2B;AAChD,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,KAAK,EAAE;AACX,MAAM,eAAe,EAAE,MAAM;AAC7B,MAAM,cAAc,EAAE,MAAM;AAC5B,MAAM,gBAAgB,EAAE,MAAM;AAC9B,MAAM,iBAAiB,EAAE,MAAM;AAC/B,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,GAAG;AAC3C,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,OAAO,EAAE;AACb,MAAM,KAAK,EAAE;AACb,QAAQ,OAAO,EAAE;AACjB,UAAU;AACV,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,MAAM,EAAE,MAAM,uBAAuB,CAAC,QAAQ,CAAC;AAC3D,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,wBAAwB;AAChC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,SAAS;AACb,MAAM,uIAAuI;AAC7I,GAAG;AACH,EAAC;AACD;AACY,MAAC,iBAAiB,GAAG,OAAO,QAAQ,EAAE,GAAG,KAAK;AAC1D,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,aAAa,EAAE,wBAAwB;AAC3C,IAAI,OAAO,EAAE;AACb,MAAM,MAAM,EAAE,8BAA8B;AAC5C,MAAM,OAAO,EAAE,MAAM;AACrB,MAAM,eAAe,EAAE,WAAW;AAClC,MAAM,UAAU,EAAE,QAAQ,CAAC,GAAG;AAC9B,MAAM,IAAI,EAAE,gBAAgB;AAC5B,MAAM,iBAAiB,EAAE,KAAK;AAC9B,MAAM,WAAW,EAAE,eAAe;AAClC,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,mDAAmD,EAAE;AAC3D,QAAQ,SAAS,EAAE,MAAM;AACzB,OAAO;AACP,MAAM,+CAA+C,EAAE;AACvD,QAAQ,WAAW,EAAE,MAAM;AAC3B,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,cAAc,EAAE,KAAK;AAC7B,OAAO;AACP,MAAM,oBAAoB,EAAE;AAC5B,QAAQ,WAAW,EAAE,MAAM;AAC3B,QAAQ,aAAa,EAAE,KAAK;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,MAAM,cAAc,CAAC,QAAQ,CAAC;AACpC,MAAM,MAAM,mBAAmB,CAAS,CAAC;AACzC,MAAM,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AACvC,MAAM;AACN,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,gBAAgB,EAAE,IAAI;AAC9B,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,GAAG,EAAE,CAAC,2BAA2B,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACrE,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,UAAU,EAAE,EAAE;AAC5B,cAAc,QAAQ,EAAE,EAAE;AAC1B,cAAc,SAAS,EAAE,QAAQ;AACjC,aAAa;AACb,WAAW;AACX,UAAU,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AAC1C,UAAU,MAAM,qBAAqB,CAAC,QAAQ,CAAC;AAC/C;AACA,SAAS;AACT,QAAQ,EAAE,EAAE,eAAe;AAC3B,QAAQ,OAAO,EAAE;AACjB,UAAU,aAAa,EAAE;AACzB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,SAAS,EAAE,MAAM;AACnC,kBAAkB,UAAU,EAAE,WAAW;AACzC,kBAAkB,aAAa,EAAE,IAAI;AACrC,kBAAkB,UAAU,EAAE,IAAI;AAClC,kBAAkB,OAAO,EAAE,MAAM;AACjC,kBAAkB,KAAK,EAAE,SAAS;AAClC,iBAAiB;AACjB,gBAAgB,YAAY,EAAE,OAAO;AACrC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,MAAM,0BAA0B,EAAE;AACxC,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AACtC,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,OAAO,EAAE;AACb,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,+BAA+B,EAAE;AACvC,QAAQ,OAAO,EAAE;AACjB,UAAU;AACV,YAAY,UAAU,EAAE,QAAQ;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,OAAO,CAAC;AACZ,MAAM,KAAK,EAAE,4BAA4B;AACzC,MAAM,QAAQ,EAAE,MAAM;AACtB,MAAM,SAAS,EAAE;AACjB,QAAQ,eAAe,EAAE,iDAAiD;AAC1E,OAAO;AACP,MAAM,UAAU,EAAE;AAClB,OAAO;AACP,MAAM,gBAAgB,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,+CAA+C,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,SAAS,EAAE,CAAC;AAClB;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,MAAM,EAAE;AACd;AACA,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,OAAO,EAAE,cAAc;AAC/B,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC;AACJ;;AC32BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,aAAa,GAAG;AACxC,IAAI,QAAQ,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACzP,EAAC;AACD;AACO,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACjE,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AACxC,IAAI,IAAI,IAAI,EAAE,aAAa,CAAC;AAC5B,IAAI,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC;AAChC,IAAI,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE;AACvC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AACnC,UAAU,IAAI,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;AAChD,UAAU,YAAY,GAAG,EAAE,CAAC;AAC5B,UAAU,IAAI;AACd,YAAY,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACjD,WAAW,CAAC,OAAO,MAAM,EAAE;AAC3B,YAAY,YAAY,GAAG,EAAE,CAAC;AAC9B,WAAW;AACX,UAAU,IAAI,YAAY,IAAI,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;AACtE,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,CAAC,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;AACtD,YAAY,EAAE,CAAC,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;AACvE,YAAY,EAAE,CAAC,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC;AACzE,YAAY,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACvE,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC;AAClE,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,IAAI,YAAY,CAAC;AAClF,YAAY,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,WAAW,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACvL,YAAY,EAAE,GAAG;AACjB,cAAc,eAAe,EAAE,KAAK;AACpC,cAAc,UAAU,EAAE,KAAK;AAC/B,cAAc,YAAY,EAAE,YAAY;AACxC,aAAa,CAAC;AACd,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;AACjD,cAAc,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,cAAc,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnD,aAAa;AACb,YAAY,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,cAAc,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpF,gBAAgB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;AAC9F,kBAAkB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9C,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,kBAAkB,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE;AAC1G,oBAAoB,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,WAAW;AACX,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK;AACL,IAAI,OAAO,aAAa,CAAC;AACzB;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG,IAAI;AACtB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;AACxB,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACzB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB,GAAG;AACH,EAAC;AACD;AACA,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AAC1C,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC;AACjC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;AACjD,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACxD,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;AACrC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AAC9D,MAAM,OAAO,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;AACtE,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE;AACtD;AACA,IAAI9D,UAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACzC,MAAMA,UAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;AACtC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,EAAE;AAC7E,UAAU,cAAc,GAAG,CAAC,CAAC;AAC7B,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO;AAC9B;AACA,EAAE,IAAI,cAAc,CAAC,GAAG,EAAE;AAC1B,IAAI,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AACtE,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;AACzC,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,GAAG,MAAM;AACT,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;AACzB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AACtC,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;AAChC,MAAM;AACN,QAAQ,IAAI,CAAC,SAAS,IAAI,aAAa;AACvC,SAAS,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC3D,QAAQ;AACR;AACA,QAAQ,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACzC,OAAO,MAAM;AACb,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrC,UAAU,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3C,SAAS,MAAM;AACf,UAAU,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1C,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,KAAK,QAAQ;AACtB,MAAM,GAAG,KAAK,SAAS;AACvB,MAAM,GAAG,IAAI,WAAW;AACxB,MAAM,GAAG,IAAI,SAAS;AACtB,MAAM;AACN,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,KAAK,MAAM;AACX,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK;AACrC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE;AAC3D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACrD,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK;AACrC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE;AAC3D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACrD,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK;AAC3C,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC;AAC/B,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK;AAC9C,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;AACpC;AACA,EAAE,OAAO,GAAG,MAAM,CAAC;AACnB;AACA,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClB;AACA,EAAE,OAAO,GAAG,IAAI,CAAC;AACjB;AACA,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB;AACA,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC5C,MAAMA,UAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;AAC/C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU;AACV,YAAY,EAAE,CAAC,WAAW;AAC1B,YAAY,EAAE,CAAC,IAAI,KAAK,OAAO;AAC/B,aAAa,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;AACzC,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;AACpE,YAAY;AACZ,YAAY,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC;AAChC,WAAW;AACX,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,CAAC,EAAE,CAAC;AACR,GAAG;AACH;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG;AACxD,EAAE,OAAOA,UAAC,CAAC,QAAQ,CAACA,UAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3F,EAAC;AACD;AACY,MAAC,eAAe,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK;AAC9D,EAAE,MAAM,MAAM,GAAG4D,gBAAc,EAAE,CAAC,MAAM,CAAC;AACzC,EAAE,MAAM,KAAK,GAAG,CAAC;AACjB,uCAAuC,EAAE,UAAU,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN;AACA,EAAE,MAAM,MAAM,GAAG,MAAMG,UAAQ,CAAC,UAAU,EAAE;AAC5C,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,MAAM,KAAK,EAAE,KAAK;AAClB,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE;AAC1C,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/D,IAAI,IAAI,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,GAAG;AACH;AACA,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE/D,UAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnF;AACA,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrD;AACA,EAAE,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAClC,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,GAAG;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,eAAe,GAAG,MAAM+D,UAAQ,CAAC,CAAC,kCAAkC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACnG,IAAI,MAAM,EAAE,KAAK;AACjB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC7B;AACA,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzB,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI;AACvB,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI;AACvB,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS;AACjC,IAAI,cAAc,EAAE,QAAQ,CAAC,cAAc;AAC3C,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS;AACjC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW;AACrC,SAAS,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACpE,QAAQ,EAAE;AACV,IAAI,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzB,IAAI,aAAa,EAAE,MAAM;AACzB,IAAI,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI;AAC9C,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI;AAC7C,IAAI,MAAM,EAAE/D,UAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACjD,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,QAAQ,UAAU,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;AAChJ,OAAO,CAAC,EAAE;AACV,KAAK,CAAC;AACN,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,WAAW;AACf,IAAI,eAAe,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE;AACvD,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,UAAU,EAAE,QAAQ,CAAC,UAAU;AACnC,IAAI,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;AACjD,IAAI,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;AACzD,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC/B,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3B,IAAI,eAAe,EAAEA,UAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACvD,MAAM,OAAO,MAAM,CAAC,MAAM;AAC1B,QAAQ;AACR,UAAU,QAAQ,EAAEA,UAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACvD,YAAY,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;AACjD,YAAY,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACtC,YAAY,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7C,YAAY,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;AAC9C,YAAY,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;AACrC,cAAc,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAC;AAC3C,cAAc,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,aAAa;AACb,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,cAAc,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC1D,cAAc,KAAK,GAAG,IAAI,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACnF,aAAa;AACb;AACA,YAAY,QAAQ,KAAK;AACzB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,KAAK,GAAG,EAAE,CAAC;AAC3B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,SAAS;AAC5B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,QAAQ;AAC3B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,QAAQ;AAC3B,gBAAgB,KAAK,GAAG,IAAI,CAAC;AAC7B,gBAAgB,MAAM;AAGtB,aAAa;AACb,YAAY,OAAO;AACnB,cAAc,IAAI,EAAE,EAAE;AACtB,cAAc,SAAS,EAAE,QAAQ;AACjC,cAAc,WAAW,EAAE,UAAU;AACrC,cAAc,KAAK,EAAE,KAAK;AAC1B,cAAc,OAAO,EAAE,OAAO;AAC9B,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS;AACT,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,OAAO,CAAC;AACR,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;;;;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/lib/amis.js","../src/lib/router.js","../src/lib/steedos.client.js","../src/lib/converter/amis/graphql.js","../src/i18n.js","../src/lib/converter/amis/fields/list.js","../src/lib/converter/amis/util.js","../src/lib/converter/amis/fields/user.js","../src/lib/expression.js","../src/schema/standard_new.amis.js","../src/lib/page.js","../src/schema/standard_edit.amis.js","../src/schema/standard_delete.amis.js","../src/schema/standard_import_data.amis.js","../src/schema/standard_open_view.amis.js","../src/schema/standard_export_excel.amis.js","../src/standard/button.js","../src/lib/buttons.js","../src/lib/converter/amis/fields_filter.js","../src/lib/converter/amis/header.js","../src/lib/converter/amis/toolbars/setting_listview/new.js","../src/lib/converter/amis/toolbars/setting_listview/copy.js","../src/lib/converter/amis/toolbars/setting_listview/rename.js","../src/lib/converter/amis/toolbars/setting_listview/share.js","../src/lib/converter/amis/toolbars/setting_listview/filters.js","../src/lib/converter/amis/toolbars/setting_listview/columns.js","../src/lib/converter/amis/toolbars/setting_listview/sort.js","../src/lib/converter/amis/toolbars/setting_listview/delete.js","../src/lib/converter/amis/toolbars/setting_listview.js","../src/lib/converter/amis/toolbar.js","../src/lib/converter/amis/fields/tree_select.js","../src/lib/converter/amis/fields/lookup.js","../src/lib/converter/amis/fields/editor.js","../src/lib/converter/amis/fields/type.js","../src/lib/converter/amis/fields/file.js","../src/lib/converter/amis/fields/index.js","../src/lib/converter/amis/api.js","../src/lib/converter/amis/calendar.js","../../../../node_modules/tslib/tslib.es6.js","../../src/utils/keyToPath.ts","../../src/utils/object.ts","../src/lib/converter/amis/fields/sections.js","../src/lib/converter/amis/form.js","../src/lib/defaultsDeep.js","../src/lib/converter/amis/index.js","../src/lib/record.js","../src/lib/objectsRelated.js","../src/lib/objects.js","../src/lib/converter/amis/tpl.js","../src/config/index.js","../src/lib/converter/amis/fields/table.js","../src/lib/input_table.js","../src/lib/page_init.js","../src/lib/apps.js","../src/lib/notification.js","../src/lib/public.env.js","../src/lib/space_users.js","../src/lib/converter/amis/filters.js","../src/lib/assets.js","../../src/render.ts","../src/workflow/approve.js","../src/workflow/attachment.js","../src/workflow/related.js","../src/workflow/history.js","../src/workflow/flow.js","../src/workflow/util.js","../src/workflow/instance.js"],"sourcesContent":["/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-13 11:31:12\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-27 10:34:59\n * @Description:\n */\nimport { each, find, isArray, isEmpty } from 'lodash';\n\nconst RegisterRenders = [];\n\nconst normalizeLink = (to, location = window.location) => {\n to = to || \"\";\n\n if (to && to[0] === \"#\") {\n to = location.pathname + location.search + to;\n } else if (to && to[0] === \"?\") {\n to = location.pathname + to;\n }\n\n const idx = to.indexOf(\"?\");\n const idx2 = to.indexOf(\"#\");\n let pathname = ~idx\n ? to.substring(0, idx)\n : ~idx2\n ? to.substring(0, idx2)\n : to;\n let search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : \"\";\n let hash = ~idx2 ? to.substring(idx2) : location.hash;\n\n if (!pathname) {\n pathname = location.pathname;\n } else if (pathname[0] != \"/\" && !/^https?\\:\\/\\//.test(pathname)) {\n let relativeBase = location.pathname;\n const paths = relativeBase.split(\"/\");\n paths.pop();\n let m;\n while ((m = /^\\.\\.?\\//.exec(pathname))) {\n if (m[0] === \"../\") {\n paths.pop();\n }\n pathname = pathname.substring(m[0].length);\n }\n pathname = paths.concat(pathname).join(\"/\");\n }\n\n return pathname + search + hash;\n};\n\nexport const amisRootClick = (router, e) => {\n if (e.target.nodeName.toLocaleLowerCase() === \"a\" && e.target.href) {\n e.preventDefault();\n router.push(e.target.href);\n }\n};\n\nexport const getEvn = (router)=>{\n return {\n theme: \"antd\",\n notify: (type, msg)=>{\n if(msg.props?.schema.tpl){\n SteedosUI.message[type](msg.props?.schema.tpl)\n }else if(typeof msg == 'string'){\n SteedosUI.message[type](msg)\n }else{\n console.warn('notify', type, msg)\n }\n },\n confirm: (msg)=>{\n return new Promise((resolve, reject)=>{\n return SteedosUI.Modal.confirm({\n title: msg,\n onOk: ()=>{\n resolve(true);\n },\n okText: \"确认\",\n cancelText: \"取消\"\n })\n })\n },\n jumpTo: (to, action) => {\n if (to === \"goBack\") {\n return window.history.back();\n }\n\n to = normalizeLink(to);\n\n if (action && action.actionType === \"url\") {\n action.blank === true ? window.open(to) : router.push(to);\n return;\n }\n\n // 主要是支持 nav 中的跳转\n if (action && to && action.target) {\n window.open(to, action.target);\n return;\n }\n if (/^https?:\\/\\//.test(to)) {\n window.location.replace(to);\n } else {\n router.push(to);\n }\n }\n }\n}\n\nexport const registerRenders = (assets)=>{\n if(!isEmpty(assets) && isArray(assets)){\n let amisLib = amisRequire('amis');\n\n const registerMap = {\n renderer: amisLib.Renderer,\n formitem: amisLib.FormItem,\n options: amisLib.OptionsControl,\n };\n \n let amisReact = amisRequire('react');\n each(assets, (asset)=>{\n // 防止组件重复注册\n if(!find(RegisterRenders, (componentName)=>{ return componentName === asset.componentName})){\n let Component = Builder.components.find(item => item.name === asset.componentName);\n let AmisWrapper = Component.class\n if(asset.componentType === 'amisSchema'){\n AmisWrapper = (props)=>{\n const { body, render } = props\n const [schema, setSchema] = amisReact.useState(null);\n amisReact.useEffect(()=>{\n const result = Component.class(props);\n if(result && result.then && typeof result.then === 'function'){\n result.then((data)=>{\n setSchema(data);\n })\n }else{\n setSchema(result)\n }\n }, [])\n return amisReact.createElement(amisReact.Fragment, null, amisReact.createElement(amisReact.Fragment, null, schema && render ? render('body', schema) : ''), amisReact.createElement(amisReact.Fragment, null, render ? render('body', body) : ''));\n }\n }\n\n // 注册amis渲染器\n if (!registerMap[asset.usage]) {\n console.error(\n `${consoleTag}自定义组件注册失败,不存在${asset.usage}自定义组件类型。`,\n );\n } else {\n registerMap[asset.usage]({\n test: new RegExp(`(^|\\/)${asset.type}`),\n type: asset.type,\n weight: asset.weight,\n autoVar: true,\n })(AmisWrapper);\n // 记录当前创建的amis自定义组件\n console.info('注册了一个自定义amis组件:', {\n type: asset.type,\n weight: asset.weight,\n component: AmisWrapper,\n framework: asset.framework,\n usage: asset.usage,\n });\n }\n // amisLib.Renderer({\n // test: new RegExp(`(^|\\/)${asset.type}`)\n // })(AmisWrapper);\n RegisterRenders.push(asset.componentName)\n }\n })\n }\n}\n\nexport const amisRender = (root, schema, data = {}, env = {}, options) => {\n let amis = amisRequire(\"amis/embed\");\n const { router, assets } = options;\n registerRenders(assets);\n return amis.embed(root, schema, data, Object.assign(getEvn(router), env));\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-16 17:02:08\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-06-20 13:50:15\n * @Description:\n */\n\n\nexport const Router = {\n getTabDisplayAs(tab_id){\n var urlSearch = new URLSearchParams(document.location.search); \n if(urlSearch.has('display')){\n return urlSearch.get('display')\n }\n const key = `tab_${tab_id}_display`;\n // const key = `page_display`;\n const value = localStorage.getItem(key)\n return value ? value : 'grid'\n },\n \n setTabDisplayAs(tab_id, displayAs){\n const key = `tab_${tab_id}_display`;\n localStorage.setItem(key, displayAs)\n },\n getAppPath({formFactor, appId}){\n return `/app/${appId}`;\n },\n getPagePath(){\n //TODO\n },\n getObjectListViewPath({formFactor, appId, objectName, listViewName}){\n return `/app/${appId}/${objectName}/grid/${listViewName}`;\n },\n getObjectDetailPath(props){\n const {formFactor, appId, objectName, recordId, listViewName, _templateType} = props;\n if(_templateType === 'JavaScript'){\n return `/app/${appId}/${objectName}/view/${recordId}?side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`;\n }\n return `/app/${appId}/${objectName}/view/${recordId}?side_object=\\${objectName}&side_listview_id=\\${listName}`;\n },\n getObjectRelatedViewPath({formFactor, appId, masterObjectName, masterRecordId, objectName, foreignKey}){\n return `/app/${appId}/${masterObjectName}/${masterRecordId}/${objectName}/grid?related_field_name=${foreignKey}`;\n },\n\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-04 11:24:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-06-12 11:51:15\n * @Description: \n */\nimport { endsWith, isEmpty, cloneDeep } from \"lodash\";\n\nconst STEEDOS_AUTH = {};\n\nconst getBuilderContext = ()=>{\n if(typeof window === \"undefined\"){\n return {};\n }\n return Builder.settings.context ? Builder.settings.context : Builder.settings\n}\n\nexport const setSteedosAuth = (steedosSession) => {\n Object.assign(STEEDOS_AUTH, steedosSession);\n}\n\nexport async function fetchAPI(api, options = { credentials: 'include' }) {\n const headers = { 'Content-Type': 'application/json' }\n const AUTHORIZATION = getAuthorization()\n if (AUTHORIZATION) {\n headers[\n 'Authorization'\n ] = AUTHORIZATION\n // } else {\n // throw new Error(401)\n }\n\n options.headers = Object.assign({}, headers, options.headers);\n options.credentials = 'include'\n const res = await fetch(`${getRootUrl()}${api}`, options)\n \n if(res.status === 401){\n throw new Error(401)\n }\n\n const json = await res.json()\n if (json.errors) {\n console.error(json.errors)\n throw new Error('Failed to fetch API')\n }\n return json\n}\n\nexport function getFileSrc(fileId){\n return `${getRootUrl()}/api/files/files/${fileId}`\n}\n\nexport function getImageSrc(fileId){\n return `${getRootUrl()}/api/files/images/${fileId}`\n}\n\n\nexport function getTenantId(){\n try {\n let spaceId = getBuilderContext().tenantId\n\n if (window.location.search && !spaceId) {\n var searchParams = new URLSearchParams(window.location.search);\n spaceId = searchParams.get('X-Space-Id');\n }\n if (!spaceId) {\n return null;\n }\n return spaceId;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getAuthToken(){\n try {\n const context = getBuilderContext()\n let token = context.authToken;\n if (!token) {\n return null;\n }\n return token;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getAuthorization(){\n try {\n const context = getBuilderContext()\n let spaceId = context.tenantId;\n let token = context.authToken;\n \n if (!spaceId || !token) {\n return null;\n }\n return `Bearer ${spaceId},${token}`;\n } catch (error) {\n console.error(error)\n }\n}\n\nexport function getUserId(){\n try {\n const context = getBuilderContext()\n let userId = context.userId;\n if (!userId) {\n return null;\n }\n return userId;\n } catch (error) {\n console.error(error)\n } \n}\n\nexport function absoluteUrl(url){\n return `${getRootUrl()}${url}`\n}\n\nexport function getRootUrl(defaultRootUrl){\n const context = getBuilderContext()\n if(context.rootUrl){\n return context.rootUrl;\n }\n const rootUrl = typeof window != 'undefined' ? window.localStorage.getItem(\"steedos:rootUrl\") : '';\n if(rootUrl){\n return rootUrl\n }\n return defaultRootUrl || '';\n}\n\nexport function setRootUrl(rootUrl){\n if(endsWith(rootUrl, '/')){\n rootUrl = rootUrl.substring(0, rootUrl.length-1)\n }\n localStorage.setItem(\"steedos:rootUrl\", rootUrl)\n}\n\nexport const getSteedosAuth = () => {\n // if(isEmpty(STEEDOS_AUTH)){\n // return {\n // space: localStorage.getItem(\"steedos:spaceId\"),\n // token: localStorage.getItem(\"steedos:token\"), \n // userId: localStorage.getItem(\"steedos:userId\"),\n // name: Meteor.user().name //TODO: 使用steedos 函数. 此属性在上传附件时使用\n // }\n // }\n return Object.assign( {}, cloneDeep(STEEDOS_AUTH) || {}, getBuilderContext() || {});\n}","import * as _ from 'lodash';\nimport { includes, trimEnd } from 'lodash';\nimport { getUISchema } from '../../objects';\n\nexport async function getFieldsTemplate(fields, display){\n let expandFields = [];\n if(display != false){\n display = true;\n }\n let fieldsName = ['_id'];\n let displayFields = [];\n let fieldsArr = [];\n if(_.isArray(fields)){\n fieldsArr = fields;\n }else{\n fieldsArr = _.values(fields);\n }\n for (const field of fieldsArr) {\n //graphql 的 ui\\display 中使用的字段需要先在query中查询. 否则会返回null\n if(field.expand){\n expandFields.push(field);\n }else{\n if(field.name.indexOf('.') < 0){\n if(display && (field.type == 'lookup' || field.type == 'master_detail')){\n fieldsName.push(`${field.name}`)\n displayFields.push(`${field.name}`)\n }else{\n fieldsName.push( field.alias ? `${field.alias}:${field.name}` : field.name)\n }\n if(includes(['time','date','datetime','boolean','number','currency'], field.type)){\n fieldsName.push(`${field.name}`)\n }\n if(includes(['percent','time','filesize','date','datetime','boolean','number','currency', 'select', 'file', 'image', 'avatar', 'formula', 'summary', 'object', 'grid'], field.type)){\n displayFields.push(`${field.name}`)\n }\n }else{\n objectFieldName = field.name.split('.')[0];\n fieldsName.push(objectFieldName);\n displayFields.push(objectFieldName)\n }\n }\n }\n\n displayFields = _.uniq(displayFields);\n fieldsName = _.uniq(fieldsName);\n let expandFieldsQuery = \"\";\n if(expandFields.length > 0){\n _.each(expandFields, function(field){\n expandFieldsQuery = expandFieldsQuery + `${field.expandInfo.fieldName}__expand{${field.expandInfo.displayName}}`\n })\n }\n\n if(displayFields.length > 0){\n return `${fieldsName.join(',')},${expandFieldsQuery},_display:_ui{${displayFields.join(',')}}`;\n }\n return trimEnd(`${fieldsName.join(' ')},${expandFieldsQuery}`, \",\")\n}\n\nexport function getRecordPermissionsTemplate(){\n return `\n recordPermissions: _permissions{\n allowCreate,\n allowCreateFiles,\n allowDelete,\n allowDeleteFiles,\n allowEdit,\n allowEditFiles,\n allowRead,\n allowReadFiles,\n disabled_actions,\n disabled_list_views,\n field_permissions,\n modifyAllFiles,\n modifyAllRecords,\n modifyAssignCompanysRecords,\n modifyCompanyRecords,\n uneditable_fields,\n unreadable_fields,\n unrelated_objects,\n viewAllFiles,\n viewAllRecords,\n viewAssignCompanysRecords,\n viewCompanyRecords,\n }\n `\n}\n\nexport async function getFindOneQuery(object, recordId, fields, options){\n let queryOptions = `(filters:[\"${object.idFieldName}\", \"=\", \"\\${recordId}\"])`;\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n return {\n query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields)}, ${getRecordPermissionsTemplate()}}}`\n }\n}\n\nexport function getSaveQuery(object, recordId, fields, options){\n return {\n objectName: object.name,\n $: \"$$\",\n recordId: recordId,\n modalName: \"${modalName}\"\n }\n}\n\n/*\n readonly字段应该移除掉不提交到服务端。\n*/\nexport function getScriptForReadonlyFields(fields){\n var scripts = [];\n fields.forEach((item)=>{\n if(item.readonly && item.name.indexOf(\".\") < 0){\n scripts.push(`delete formData.${item.name};`);\n }\n });\n return scripts.join(\"\\r\\n\");\n}\n\n/*\n img/avatar字段值移除URL前缀使其保存时正常保存id,而不是url。\n*/\nexport function getScriptForRemoveUrlPrefixForImgFields(fields){\n let imgFieldsKeys = [];\n let imgFields = {};\n fields.forEach((item)=>{\n if(includes(['image','avatar'], item.type)){\n imgFieldsKeys.push(item.name);\n imgFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!imgFieldsKeys.length){\n return '';\n }\n return `\n let imgFieldsKeys = ${JSON.stringify(imgFieldsKeys)};\n let imgFields = ${JSON.stringify(imgFields)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = formData[item];\n if(imgFieldValue && imgFieldValue.length){\n // 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。\n if(imgFields[item].multiple){\n if(imgFieldValue instanceof Array){\n formData[item] = imgFieldValue.map((value)=>{ \n let itemValue = value && value.split('/');\n return itemValue[itemValue.length - 1];\n });\n }\n }else{\n let imgValue = imgFieldValue.split('/');\n formData[item] = imgValue[imgValue.length - 1];\n }\n }\n })\n `\n}\n\n/*\n file字段值重写使其保存时正常保存id。\n*/\nexport function getScriptForSimplifiedValueForFileFields(fields){\n let fileFieldsKeys = [];\n let fileFields = {};\n fields.forEach((item)=>{\n if(item.type === 'file'){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!fileFieldsKeys.length){\n return '';\n }\n return `\n let fileFieldsKeys = ${JSON.stringify(fileFieldsKeys)};\n let fileFields = ${JSON.stringify(fileFields)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = formData[item];\n if(fileFieldValue){\n // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。\n if(fileFields[item].multiple){\n if(fileFieldValue instanceof Array && fileFieldValue.length){\n formData[item] = fileFieldValue.map((value)=>{ \n if(typeof value === 'object'){\n return value.value;\n }else{\n return value;\n }\n });\n }\n }else{\n formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;\n }\n }\n })\n `\n}\n\nexport function getSaveDataTpl(fields){\n\n return `\n const formData = api.data.$;\n for (key in formData){\n // image、select等字段清空值后保存的空字符串转换为null。\n if(formData[key] === ''){\n formData[key] = null;\n }\n }\n const objectName = api.data.objectName;\n const fieldsName = Object.keys(formData);\n delete formData.created;\n delete formData.created_by;\n delete formData.modified;\n delete formData.modified_by;\n delete formData._display;\n delete formData.initialValues;\n delete formData.editFormInited;\n delete formData.isLookup;\n delete formData.selectedRowResponseResult;\n delete formData.instance_state;\n delete formData.instances;\n ${getScriptForReadonlyFields(fields)}\n ${getScriptForRemoveUrlPrefixForImgFields(fields)}\n ${getScriptForSimplifiedValueForFileFields(fields)}\n let query = \\`mutation{record: \\${objectName}__insert(doc: {__saveData}){_id}}\\`;\n if(formData.recordId && formData.recordId !='new'){\n query = \\`mutation{record: \\${objectName}__update(id: \"\\${formData.recordId}\", doc: {__saveData}){_id}}\\`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `\n}\n\nexport function getSaveRequestAdaptor(fields, options){\n return `\n ${getSaveDataTpl(fields)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n ${options.apiRequestAdaptor || ''}\n return api;\n `\n}\n\nexport async function getFindQuery(object, recordId, fields, options){\n let limit = options.limit || 10;\n let queryOptions = `(top: ${limit})`;\n if(recordId){\n queryOptions = `(filters:[\"_id\", \"=\", \"${recordId}\"], top: ${limit})`;\n }\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n var treeFields = '';\n if(object.enable_tree && _.includes(_.keys(object.fields), 'parent') && _.includes(_.keys(object.fields), 'children')){\n treeFields = ',parent,children';\n }\n\n var cfsFields = '';\n if(object.name === 'cms_files'){\n cfsFields = ',versions'\n }\n\n const countQuery = options.count === false ? \"\" : `,count:${object.name}__count(filters:{__filters})`;\n // const moreQuerie = options.moreQueries?.length ? (\",\" + options.moreQueries.map(function(item){\n // // 把最外层的{}去除\n // return item.replace(/^{/,\"\").replace(/}$/,\"\");\n // }).join(\",\")) : \"\";\n\n return {\n orderBy: \"${orderBy}\",\n orderDir: \"${orderDir}\",\n pageNo: \"${page}\",\n pageSize: \"${perPage}\",\n query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}}${countQuery}}`\n }\n}\n\nexport function getRecordPermissionsQuery(object, recordId, options){\n let queryOptions = \"\";\n\n if(recordId){\n queryOptions = `(filters:[\"${object.idFieldName}\", \"=\", \"${recordId}\"])`;\n }\n let alias = \"data\";\n if(options){\n if(options.alias){\n alias = options.alias;\n }\n\n if(options.filters){\n queryOptions = `(filters:${options.filters})`;\n }\n if(options.queryOptions){\n queryOptions = `(${options.queryOptions})`;\n }\n }\n\n let recordPermissionsTemplate = getRecordPermissionsTemplate();\n if(options?.fields && options.fields.length){\n recordPermissionsTemplate = `\n recordPermissions: _permissions{\n ${options.fields.join(\",\")}\n }\n `;\n }\n return {\n query: `{${alias}:${object.name}${queryOptions}{${object.idFieldName},${recordPermissionsTemplate}}}`\n }\n}\n\nexport function getApi (isMobile){\n if(isMobile){\n //TODO 返回 绝对路径\n }else{\n // return __meteor_runtime_config__.ROOT_URL_PATH_PREFIX + \"/graphql\"\n return `\\${context.rootUrl}/graphql?reload=\\${additionalFilters}`\n }\n}","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport en_us from \"./locales/en-US.json\"\nimport zh_cn from \"./locales/zh-CN.json\"\n\nconst resources = {\n \"en-US\": {\n translation: en_us\n },\n \"zh-CN\": {\n translation: zh_cn\n }\n};\nvar locale = \"zh-CN\";\nif (typeof window != 'undefined') {\n if (window.Builder?.settings.locale == \"en-us\") {\n locale = \"en-US\";\n } else if (window.Builder?.settings.locale == \"zh-cn\") {\n locale = \"zh-CN\";\n }\n}\n\n\ni18n\n .use(initReactI18next)\n .init({\n resources,\n lng: locale,\n interpolation: {\n escapeValue: false\n }\n });\nexport { i18n as i18next };","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-23 09:12:14\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-11-25 13:28:35\n * @Description: \n */\n\nimport * as Tpl from '../tpl';\nimport { Router } from '../../../router'\nimport { i18next } from '../../../../i18n'\n\nasync function getListBody(fields, options){\n const columns = [];\n for (const field of fields) {\n\n const tpl = await Tpl.getFieldTpl(field, options);\n\n let type = 'text';\n if(tpl){\n type = 'tpl';\n }\n if(!field.hidden && !field.extra){\n columns.push({\n name: field.name,\n label: field.label,\n sortable: field.sortable,\n // searchable: field.searchable,\n width: field.width,\n type: type,\n tpl: tpl,\n toggled: field.toggled\n // toggled: true \n })\n }\n };\n\n return {\n \"type\": \"hbox\",\n \"columns\": columns\n };\n}\n\nfunction getDefaultParams(options){\n return {\n perPage: options.top || options.perPage || 10\n }\n}\n\nexport async function getListSchema(fields, options){\n const listBody = await getListBody(fields, options);\n const columns = listBody.columns;\n return {\n mode: \"list\",\n name: \"thelist\",\n draggable: false,\n headerToolbar: ['reload'],\n defaultParams: getDefaultParams(options),\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: false,\n labelTpl: `\\${name}`, //TODO 获取name字段\n listItem: {\n body: [...columns],\n actions: options.actions === false ? null : [\n {\n icon: \"fa fa-eye\",\n label: i18next.t('frontend_form_view'),\n type: \"button\",\n actionType: \"link\",\n link: Router.getObjectDetailPath({\n formFactor: options.formFactor, \n appId: options.appId, \n objectName: options.tabId, \n listView: options.listView,\n recordId: `\\${_id}`\n })\n }\n ]\n }\n }\n}\n\n\nexport async function getCardSchema(fields, options){\n let title = null;\n const titleField = _.find(fields, (f)=>{\n return f.name === options.labelFieldName;\n });\n if(titleField){\n title = await Tpl.getFieldTpl(titleField, options)\n }\n const listBody = await getListBody(_.filter(fields, (f)=>{\n return f.name != options.labelFieldName\n }), options);\n return {\n mode: \"cards\",\n name: \"cards\",\n draggable: false,\n headerToolbar: ['statistics', 'pagination'],\n defaultParams: getDefaultParams(options),\n syncLocation: false,\n keepItemSelectionOnPageChange: false,\n checkOnItemClick: false,\n labelTpl: `\\${${options.labelFieldName}}`,\n card: {\n \"type\": \"card\",\n \"header\": {\n \"title\": title\n },\n \"body\": [...listBody.columns]\n }\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-20 16:29:22\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-09-11 17:19:53\n * @Description: \n */\nimport { getRootUrl } from \"../../steedos.client\";\n\nexport function getSvgUrl(source, name) {\n var foo, url;\n foo = name != null ? name.split(\".\") : void 0;\n if (foo && foo.length > 1) {\n source = foo[0];\n if (!(source != null ? source.endsWith(\"-sprite\") : void 0)) {\n source += \"-sprite\";\n }\n name = foo[1];\n }\n url = \"/assets/icons/\" + source + \"/svg/symbols.svg#\" + name;\n return `${getRootUrl()}${url}`;\n}\n\nexport function getImageFieldUrl(url) {\n if (window.Meteor && window.Meteor.isCordova != true) {\n // '//'的位置\n const doubleSlashIndex = url.indexOf('//');\n const urlIndex = url.indexOf('/', doubleSlashIndex + 2);\n const rootUrl = url.substring(urlIndex);\n return rootUrl;\n }\n return url;\n}\n\nif(typeof window != 'undefined'){\n window.getImageFieldUrl = getImageFieldUrl;\n}\n\nexport function getContrastColor(bgColor) {\n var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;\n var r = parseInt(backgroundColor.substr(0, 2), 16);\n var g = parseInt(backgroundColor.substr(2, 2), 16);\n var b = parseInt(backgroundColor.substr(4, 2), 16);\n var brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness < 128 ? \"#ffffff\" : \"#000000\";\n}\n\nexport function getLookupListView(refObjectConfig) {\n if(!refObjectConfig){\n return null;\n }\n const listNameAll = \"all\";\n const listNameLookup = \"lookup\";\n let listViewAll, listViewLookup;\n\n _.each(\n refObjectConfig.list_views,\n (view, name) => {\n if (name === listNameAll) {\n listViewAll = view;\n if(!listViewAll.name){\n listViewAll.name = name;\n }\n }\n else if (name === listNameLookup) {\n listViewLookup = view;\n if(!listViewLookup.name){\n listViewLookup.name = name;\n }\n }\n }\n );\n let listView = listViewLookup || listViewAll;\n return listView;\n}","import * as graphql from '../graphql';\nimport * as Field from './index';\nimport * as Tpl from '../tpl';\nimport * as _ from 'lodash';\nimport { getUISchema, getListViewSort } from '../../../objects';\nimport { getLookupListView } from '../util';\n\nconst refUsersObjectName = \"space_users\";\nconst refOrgsObjectName = \"organizations\";\n\nasync function getSource(field, ctx) {\n // data.query 最终格式 \"{ \\tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }\"\n const data = await graphql.getFindQuery({ name: refOrgsObjectName }, null, [{ name: \"_id\", alias: \"value\" },{name: \"parent\"}, { name: \"name\", alias: \"label\" }, { name: \"children\" }], {\n alias: \"leftOptions\",\n filters: \"{__filters}\"\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n const childrenData = await graphql.getFindQuery({ name: refOrgsObjectName }, null, [{ name: \"_id\", alias: \"ref\" }], {\n alias: \"children\",\n filters: \"{__filters}\"\n });\n childrenData.query = childrenData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + childrenData.query.replace(/{(.+)}/, \"$1}\"));\n const defaultValueOptionsData = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\"\n });\n defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + defaultValueOptionsData.query.replace(/{(.+)}/, \"$1}\"))\n let valueField = `${field.name}`;\n if(field._prefix){\n // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.\n valueField = `${field._prefix}${field.name}`;\n }\n if(ctx.fieldNamePrefix){\n // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__\n valueField = `${ctx.fieldNamePrefix}${valueField}`;\n }\n data.$value = `$${valueField}`;\n // data[\"&\"] = \"$$\";\n\n const requestAdaptor = `\n var filters = [];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"user\", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [[\"user\", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;\n const adaptor = `\n const data = payload.data;\n const rows = data.leftOptions\n data.children = data.children.map(function (child) { \n // child.defer = !!(child.children && child.children.length);\n child.defer = true;\n delete child.children;\n return child;\n });\n\n var getTreeOptions = SteedosUI.getTreeOptions\n data.leftOptions = getTreeOptions(rows);\n\n \n var defaultValueOptions = data.defaultValueOptions;\n data.children = _.union(data.children, defaultValueOptions);\n delete data.defaultValueOptions;\n payload.data = { options: [data] };\n return payload;\n `;\n return {\n \"method\": \"post\",\n // 这里需要ObjectForm在api请求成功后才显示其中的amis form,否则就会有bug\n // 见issue: https://github.com/baidu/amis/issues/6065\n // \"url\": graphql.getApi() + `?value=\\${${field.multiple ? valueField + \"|join\" : valueField}}`,\n // \"url\": graphql.getApi() + `?value=\\${editFormInited}`,\n \"url\": graphql.getApi(),\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n // \"sendOn\": `this.editFormInited`,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n }\n}\n\nasync function getDeferApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:{__object_name}(filters:{__filters}){{__fields}} }\"\n const data = await graphql.getFindQuery({ name: \"{__object_name}\" }, null, [], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n let filters = field.filters;\n if(typeof filters === \"string\"){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(typeof filters === \"function\"){\n filters = filters(field);\n }\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换\n data.query = data.query.replace(\"{_id}\", \"{{__fields}}\");\n const requestAdaptor = `\n var dep = api.query.dep;\n var ref = api.query.ref;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = \"\";\n if (dep) {\n objectName = \"${refOrgsObjectName}\";\n fields = \"value:_id,label:name,children\";\n filters = [['parent', '=', dep]];\n sort = \"${ctx.orgsSort}\";\n }\n else if (ref) { \n objectName = \"${refUsersObjectName}\";\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n fields = \"_id,value:user,label:name\";\n // fields = \"user,name,value:user,label:name\";\n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n const adaptor = `\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&ref=${ref}&dep=${value}\",\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nasync function getSearchApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}\"\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n const data = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n const filters = field.filters;\n const requestAdaptor = `\n var term = api.query.term;\n var filters;\n var sort = \"\";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n var fieldsForSearch = [\"name\", \"username\", \"email\", \"mobile\"];\n var termFilters = [];\n fieldsForSearch.forEach(function (field) {\n termFilters.push([field, 'contains', term]);\n termFilters.push(\"or\");\n });\n termFilters.pop();\n filters.push(termFilters);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"?term=${term}\",\n \"requestAdaptor\": requestAdaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getRefListViewSort(refObject){\n let listView = getLookupListView(refObject);\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n return sort;\n}\n\nexport async function getSelectUserSchema(field, readonly, ctx) {\n if (!field) {\n return {}\n }\n\n if (!ctx) {\n ctx = {};\n }\n const amisSchema = {\n \"type\": Field.getAmisStaticFieldType('select', readonly)\n };\n\n if (readonly) {\n amisSchema.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n else{\n const refUsersObjectConfig = await getUISchema(refUsersObjectName);\n ctx.usersSort = getRefListViewSort(refUsersObjectConfig);\n const refOrgsObjectConfig = await getUISchema(refOrgsObjectName);\n ctx.orgsSort = getRefListViewSort(refOrgsObjectConfig);\n Object.assign(amisSchema, {\n // \"labelField\": \"name\",\n // \"valueField\": \"user\",\n \"multiple\": field.multiple,\n \"searchable\": field.searchable,\n \"selectMode\": \"associated\",\n \"leftMode\": \"tree\",\n \"extractValue\": true,\n \"clearable\": true,\n \"source\": await getSource(field, ctx),\n \"deferApi\": await getDeferApi(field, ctx),\n \"searchApi\": await getSearchApi(field, ctx)\n });\n if(field.multiple){\n // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题\n Object.assign(amisSchema, {\n \"joinValues\": false,\n });\n }\n if (typeof amisSchema.searchable !== \"boolean\") {\n amisSchema.searchable = true;\n }\n\n if(ctx.value){\n amisSchema.value = ctx.value;\n }\n\n const onEvent = field.onEvent;\n if (onEvent) {\n amisSchema.onEvent = onEvent;\n }\n }\n return amisSchema;\n}\n","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-03-22 09:31:21\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-11-05 16:31:38\n */\nimport { get } from 'lodash'\n\nconst globalTag = '__G_L_O_B_A_L__';\n\nconst getParentPath = function (path) {\n var pathArr;\n if (typeof path === 'string') {\n pathArr = path.split('.');\n if (pathArr.length === 1) {\n return '#';\n }\n pathArr.pop();\n return pathArr.join('.');\n }\n return '#';\n}\n\nconst getValueByPath = function (formData, path) {\n if (path === '#' || !path) {\n return formData || {};\n } else if (typeof path === 'string') {\n return get(formData, path);\n } else {\n console.error('path has to be a string');\n }\n};\n\nexport const isExpression = function (func) {\n var pattern, reg1, reg2;\n if (typeof func !== 'string') {\n return false;\n }\n pattern = /^{{(.+)}}$/;\n reg1 = /^{{(function.+)}}$/;\n reg2 = /^{{(.+=>.+)}}$/;\n if (typeof func === 'string' && func.match(pattern) && !func.match(reg1) && !func.match(reg2)) {\n return true;\n }\n return false;\n};\n\nconst getMoment = () => {\n if (window.amisRequire) {\n return window.amisRequire(\"moment\");\n } else if (window.moment) {\n return window.moment;\n }\n}\n\nexport const getGlobalNowData = () => {\n let now = new Date();\n let moment = getMoment();\n let today = moment().utc();\n today.set(\"hours\", 0);\n today.set(\"minutes\", 0);\n today.set(\"seconds\", 0);\n today.set(\"milliseconds\", 0);\n today = today.toDate();\n let timeNow = moment();\n timeNow.set(\"year\", 1970);\n timeNow.set(\"month\", 0);\n timeNow.set(\"date\", 1);\n timeNow.set(\"hours\", timeNow.hours() + timeNow.utcOffset() / 60)\n timeNow.set(\"seconds\", 0);\n timeNow.set(\"milliseconds\", 0);\n timeNow = timeNow.toDate();\n return {\n now,\n today,\n timeNow\n };\n}\n\nexport const parseSingleExpression = function (func, formData, dataPath, global, userSession = {}) {\n if (global) {\n Object.assign(global, getGlobalNowData());\n }\n\n var error, funcBody, parent, parentPath, str;\n\n if (formData === void 0) {\n formData = {};\n }\n parentPath = getParentPath(dataPath);\n parent = getValueByPath(formData, parentPath) || {};\n if (typeof func === 'string') {\n funcBody = func.substring(2, func.length - 2);\n str = `\\n var $user=${JSON.stringify(userSession)}; return ` + funcBody.replace(/\\bformData\\b/g, JSON.stringify(formData).replace(/\\bglobal\\b/g, globalTag)).replace(/\\bglobal\\b/g, JSON.stringify(global)).replace(new RegExp('\\\\b' + globalTag + '\\\\b', 'g'), 'global').replace(/rootValue/g, JSON.stringify(parent));\n try {\n return Function(str)();\n } catch (_error) {\n error = _error;\n console.log(error, func, dataPath);\n return func;\n }\n } else {\n return func;\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:51:00\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-09-25 14:53:05\n * @Description: \n */\nimport { i18next } from \"../i18n\";\n\nexport const getSchema = async (uiSchema, ctx) => {\n const schemaApiAdaptor = `\n let formSchema = {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"\\${objectName}\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"layout\": \"normal\"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const fields = ${JSON.stringify(uiSchema.fields)};\n const selectedRowResponseResult = api.body.selectedRowResponseResult;\n let defaultData = {}; \n\n if(!_.isEmpty(selectedRowResponseResult)){\n const fieldsKeys = _.keys(fields);\n // 如果新建记录时复制的数据中有omit或其他不相关字段数据时不应该一起保存到数据库,\n // 原规则见:https://github.com/steedos/steedos-frontend/issues/297\n _.forEach(selectedRowResponseResult, (val, key) => {\n if (fieldsKeys.indexOf(key) > -1 && fields[key].omit !== true) {\n defaultData[key] = val;\n }\n })\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n }\n\n if(!_.isEmpty(defaultData)){\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `;\n const onDialogCancelScript = `\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击新建按钮的时候异常\n setTimeout(function(){\n doAction({\n \"actionType\": \"cancel\",\n \"componentId\": \"object_actions_drawer_${uiSchema.name}\"\n });\n }, 200);\n `;\n const getSelectedRowsScript = `\n const isLookup = event.data.isLookup;\n if(isLookup){\n // lookup弹出窗口的新建功能不需要支持复制新建\n return;\n }\n const uiSchema = event.data.uiSchema;\n const objectName = event.data.objectName;\n const listViewRef = event.context.scoped.getComponentById(\"listview_\" + objectName);\n const selectedItems = listViewRef && listViewRef.props.store.toJSON().selectedItems || [];\n event.data.selectedIds = _.map(selectedItems, uiSchema.idFieldName || '_id');\n `;\n return {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_new'),\n \"id\": \"u:standard_new\",\n \"level\": \"default\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": getSelectedRowsScript\n },\n {\n \"actionType\": \"ajax\",\n \"outputVar\": \"selectedRowResponseResult\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/api/v1/${uiSchema.name}/${selectedIds|first}\",\n \"method\": \"get\"\n }\n },\n \"expression\": \"${selectedIds.length > 0}\"\n },\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"data\": {\n \"$master\": \"$$\",\n \"_master\": \"${_master}\",\n \"_master._isRelated\": \"${_isRelated}\",\n \"_master.relatedKey\": \"${relatedKey}\",\n \"appId\": \"${appId}\",\n \"objectName\": \"${objectName}\",\n \"context\": \"${context}\",\n \"global\": \"${global}\",\n \"listViewId\": \"${listViewId}\",\n \"displayAs\": \"${displayAs}\",\n \"uiSchema\": \"${uiSchema}\",\n \"isLookup\": \"${isLookup}\",\n \"listName\": \"${listName}\",\n \"selectedRowResponseResult\": \"${selectedRowResponseResult}\",\n },\n \"title\":i18next.t('frontend_form_new') + \" ${uiSchema.label | raw}\",\n \"body\": [\n {\n \"type\": \"service\",\n \"id\": \"u:1678e148c4d2\",\n \"messages\": {},\n \"schemaApi\": {\n \"data\": {\n \"isLookup\": \"${isLookup}\",\n \"_master\": \"${_master}\",\n \"url\": \"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}\",\n \"selectedRowResponseResult\": \"${selectedRowResponseResult}\"\n },\n \"url\": \"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}\",\n \"method\": \"get\",\n \"messages\": {\n },\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"requestAdaptor\": \"return { ...api, url: api.body.url }\",\n \"adaptor\": schemaApiAdaptor\n }\n }\n ],\n \"showCloseButton\": true,\n \"id\": \"u:e11347411d2d\",\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"size\": \"lg\",\n \"onEvent\": {\n \"cancel\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onDialogCancelScript,\n \"expression\": \"${window:innerWidth < 768}\",\n }\n ]\n }\n },\n \"actions\": [\n {\n type: 'button',\n actionType: 'cancel',\n label: i18next.t('frontend_form_cancel')\n },\n {\n type: 'button',\n label: i18next.t('frontend_form_save_and_new'),\n actionType: 'confirm',\n close: false,\n id: \"confirmAndNew\"\n },\n {\n type: 'button',\n actionType: 'confirm',\n label: i18next.t('frontend_form_save'),\n primary: true\n },\n ]\n }\n }\n ]\n }\n }\n }\n ],\n \"regions\": [\n \"body\"\n ],\n \"className\": \"p-0 border-0\",\n \"id\": \"u:aef99d937b10\"\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-13 15:18:03\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-04-11 10:34:26\n * @Description: \n */\nimport { fetchAPI } from './steedos.client';\n\nexport async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){\n const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;\n const page = await fetchAPI(api);\n if (page && page.schema) {\n page.schema = JSON.parse(page.schema)\n if(page.schema.data){\n delete page.schema.data.recordId;\n delete page.schema.data.objectName;\n delete page.schema.data.context;\n delete page.schema.data.global\n }\n return page;\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:49:58\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-06-28 23:22:31\n * @Description:\n */\nimport { i18next } from \"../i18n\";\nimport { getPage } from '../lib/page'\n\nexport const getSchema = async (uiSchema, ctx) => {\n const title = i18next.t('frontend_form_edit') + \" \" + uiSchema.label;\n\n const defaultFormSchema = {\n type: \"steedos-object-form\",\n label: \"对象表单\",\n objectApiName: \"${objectName}\",\n recordId: \"${recordId}\",\n id: \"u:d2b0c083c38f\",\n mode: \"edit\",\n };\n\n let formSchema = defaultFormSchema;\n const page = await getPage({\n type: \"form\",\n appId: ctx.appId,\n objectName: ctx.objectName,\n formFactor: ctx.formFactor,\n });\n\n if (page) {\n formSchema = _.isString(page.schema)\n ? JSON.parse(page.schema)\n : page.schema;\n }\n \n const onDialogCancelScript = `\n // 这里加setTimeout是因为amis的Bug,它会先触发cancel事件执行此脚本关闭父窗口然后再关闭子窗口\n // 正确的顺序应该是先关闭子窗口再关闭父窗口,顺序错了会造成第二次点击编辑按钮的时候异常\n setTimeout(function(){\n doAction({\n \"actionType\": \"cancel\",\n \"componentId\": \"object_actions_drawer_${uiSchema.name}\"\n });\n }, 200);\n `;\n\n return {\n type: \"service\",\n body: [\n {\n type: \"button\",\n label: i18next.t('frontend_form_edit'),\n id: \"u:standard_edit\",\n onEvent: {\n click: {\n actions: [\n {\n actionType: \"dialog\",\n dialog: {\n type: \"dialog\",\n title: title,\n bodyClassName: \"\",\n body: [formSchema],\n id: \"u:ee95697baa4f\",\n closeOnEsc: false,\n closeOnOutside: false,\n showCloseButton: true,\n size: \"lg\",\n \"onEvent\": {\n \"cancel\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onDialogCancelScript,\n \"expression\": \"${window:innerWidth < 768}\",\n }\n ]\n }\n },\n },\n },\n ],\n weight: 0,\n },\n },\n },\n ],\n regions: [\"body\"],\n className: \"\",\n id: \"u:3c5cbc0429bb\",\n };\n};\n","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-03-22 09:31:21\n * @LastEditors: Please set LastEditors\n * @LastEditTime: 2023-04-12 10:35:36\n */\nimport { i18next } from \"../i18n\";\nexport const getSchema = (uiSchema)=>{\n return {\n \"type\": \"service\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_delete'),\n \"confirmText\": i18next.t('frontend_delete_many_confirm_text'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"data\": {\n \"&\": \"$$\",\n \"recordId\": \"${recordId}\",\n \"objectName\": \"${objectName}\"\n },\n \"requestAdaptor\": \"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \\\"${recordId}\\\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"adaptor\": `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n return payload;\n `,\n }\n },\n \"actionType\": \"ajax\"\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${uiSchema.name}`\n },\n \"data\": {\n \"objectName\": `${uiSchema.name}`,\n \"__deletedRecord\": true\n }\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@data.changed.${_master.objectName}\"\n },\n \"data\": {\n \"objectName\": \"${_master.objectName}\",\n \"_isRelated\": \"${_isRelated}\"\n },\n \"expression\": `\\${_master.objectName != '${uiSchema.name}' && _master.objectName}`\n }\n ]\n }\n }\n }\n ],\n \"regions\": [\n \"body\"\n ]\n }\n}","import { i18next } from \"../i18n\";\n\nexport const getSchema = (uiSchema) => {\n return {\n type: \"service\",\n body: [\n {\n type: \"button\",\n label: i18next.t('frontend_import_data'),\n id: \"u:import_data\",\n onEvent: {\n click: {\n actions: [\n {\n actionType: \"dialog\",\n dialog: {\n data: {\n \"&\": \"$$\",\n \"object_name\": \"${objectName}\"\n },\n type: \"dialog\",\n title: i18next.t('frontend_import_data'),\n body: [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"queue_import_history\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"layout\": \"normal\",\n \"defaultData\":{\n \"object_name\": \"${objectName}\"\n },\n \"fieldsExtend\":{\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n }\n },\n \"form\": {\n debug: false,\n resetAfterSubmit: false,\n initApi: {\n url: '/api/v1/queue_import_history/${recordId}?fields=[\"state\"]',\n sendOn: 'this.recordId',\n responseData: {\n importState: \"${state}\"\n }\n },\n interval: 3000,\n stopAutoRefreshWhen: \"this.importState === 'finished'\",\n initFetch: false,\n onEvent: {\n inited: {\n weight: 0,\n actions: [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${uiSchema.name}`\n },\n \"data\": {\n \"objectName\": `${uiSchema.name}`,\n \"displayAs\": \"${displayAs}\",\n \"recordId\": \"xxxx\" //不可以省略,否则会进入进入记录详细页面\n },\n \"expression\": \"this.importState === 'finished'\"\n },\n {\n \"actionType\": \"closeDialog\",\n \"expression\": \"this.importState === 'finished'\"\n }\n ]\n },\n submitSucc: {\n weight: 0,\n actions: [\n {\n args: {\n api: {\n url: \"${context.rootUrl}/api/data/initiateImport\",\n method: \"post\",\n data: {\n eventData: \"${event.data}\",\n },\n dataType: \"json\",\n requestAdaptor:\n \"\\napi.data = {\\n importObjectHistoryId: api.body.eventData.result.data.recordId\\n}\\nreturn api;\",\n adaptor:\n \"payload.status = payload.status === 'success' ? 0 : payload.status;\\nconsole.log(\\\"payload ssss==>\\\", payload)\\nreturn payload;\",\n headers: {\n Authorization:\n \"Bearer ${context.tenantId},${context.authToken}\",\n },\n },\n messages: {\n success: i18next.t('frontend_import_data_message_success'),\n failed: i18next.t('frontend_import_data_message_failed'),\n },\n },\n actionType: \"ajax\",\n expression: \"event.data.result\",\n },\n ],\n },\n },\n closeDialogOnSubmit: false,\n }\n }\n ],\n id: \"u:dc05498d3bd4\",\n closeOnEsc: false,\n closeOnOutside: false,\n showCloseButton: true,\n size: \"lg\",\n },\n },\n ],\n weight: 0,\n },\n },\n level: \"default\",\n },\n ],\n regions: [\"body\"],\n className: \"p-0\",\n id: \"u:bd2f9c4e986f\",\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-07 17:00:38\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-08-24 16:44:42\n * @Description: \n */\nimport { i18next } from \"../i18n\";\n\nexport const getSchema = (uiSchema)=>{\n return {\n \"type\": \"service\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_view'),\n \"className\": \"border-none\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n \"blank\": false,\n \"url\": \"/app/${app_id}/${objectName}/view/${_id}?side_object=${objectName}&side_listview_id=${listName}\"\n },\n \"actionType\": \"link\"\n }\n ]\n }\n },\n \"id\": \"u:ef35c9ae1d19\"\n }\n ],\n \"regions\": [\n \"body\"\n ]\n }\n}","import { i18next } from \"../i18n\";\n\nexport const getSchema = async (uiSchema, ctx) => {\n const requestAdaptor = function () {\n let uiSchema = api.body.uiSchema;\n let list_views_name = api.body.listName;\n let list_views = uiSchema.list_views;\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n const query = JSON.parse(sessionStorage.getItem(listViewPropsStoreKey));\n const { filters, sort, fields: select } = query;\n let filename = uiSchema.label + \"-\" + list_views[list_views_name].label;\n\n var url_tmp = api.url.split('?')[0];\n api.url = url_tmp + \"?$select=\" + encodeURIComponent(select.toString()) + \"&filename=\" + encodeURIComponent(filename);\n // 判断sort 和 filters\n if (sort.length > 0) {\n api.url += \"&$orderby=\" + encodeURIComponent(sort);\n }\n if (filters && filters.length > 0) {\n api.url = api.url + \"&filters=\" + encodeURIComponent(JSON.stringify(filters));\n }\n return api;\n }\n return {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_export_excel'),\n \"id\": \"u:standard_export_excel\",\n \"level\": \"default\",\n \"disabledTip\": i18next.t('frontend_export_excel_toast'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [{\n \"componentId\": \"u:standard_export_excel\",\n \"actionType\": \"disabled\"\n },\n {\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/api/record/export/${objectName}\",\n \"method\": \"get\",\n \"messages\": {},\n \"requestAdaptor\": requestAdaptor.toString().match(/function[^{]+\\{([\\s\\S]*)\\}$/)[1],\n \"data\": {\n \"uiSchema\": \"${uiSchema}\",\n \"listName\": \"${listName}\"\n },\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\"\n },\n {\n \"componentId\": \"u:standard_export_excel\",\n \"actionType\": \"enabled\"\n }\n ]\n }\n }\n }\n ]\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-11-01 15:53:07\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-28 17:06:22\n * @Description: \n */\nimport { i18next } from \"../i18n\";\nimport * as standardNew from '../schema/standard_new.amis.js'\nimport * as standardEdit from '../schema/standard_edit.amis.js'\nimport * as standardDelete from '../schema/standard_delete.amis.js'\nimport * as standardImportData from '../schema/standard_import_data.amis.js'\nimport * as standardOpenView from '../schema/standard_open_view.amis.js'\nimport * as standardExportExcel from '../schema/standard_export_excel.amis.js'\n\nexport const StandardButtons = {\n getStandardNew: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardNew.getSchema(uiSchema, ctx)\n }\n },\n getStandardEdit: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardEdit.getSchema(uiSchema, ctx)\n }\n },\n getStandardDelete: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardDelete.getSchema(uiSchema, ctx)\n }\n },\n getStandardDeleteMany: async (uiSchema, ctx)=>{\n return {\n type: 'script',\n todo: function(){\n const {\n appId,\n objectName,\n uiSchema\n } = this;\n const scopeId = this.scopeId || `amis-${appId}-${objectName}-listview`;\n const scope = this.scope || SteedosUI?.getRef(scopeId);\n //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9\n const listViewRef = scope.parent?.getComponentById(`listview_${uiSchema.name}`);\n if(_.isEmpty(listViewRef.props.store.toJSON().selectedItems)){\n listViewRef.handleAction({}, {\n \"actionType\": \"toast\",\n \"toast\": {\n \"items\": [\n {\n \"position\": \"top-right\",\n \"body\": i18next.t('frontend_delete_many_selected_required')\n }\n ]\n }\n })\n }else{\n listViewRef.handleBulkAction(listViewRef.props.store.toJSON().selectedItems,[],{},listViewRef.props.bulkActions[0]);\n }\n }\n }\n },\n getStandardImportData: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardImportData.getSchema(uiSchema, ctx)\n }\n },\n getStandardOpenView: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardOpenView.getSchema(uiSchema, ctx)\n }\n },\n getStandardExportExcel: async (uiSchema, ctx)=>{\n return {\n type: 'amis_button',\n amis_schema: await standardExportExcel.getSchema(uiSchema, ctx)\n }\n }\n}","import * as _ from 'lodash';\nimport { isExpression, parseSingleExpression } from \"./expression\";\nimport { getUISchema } from \"./objects\";\nimport { i18next } from '../i18n'\n\nimport { StandardButtons } from '../standard/button'\n\nconst getGlobalData = () => {\n return {\n now: new Date(),\n };\n};\n\nexport function getButtonVisibleOn(button){\n let visible= button.visible;\n\n if(button._visible){\n visible = button._visible;\n }\n\n if(_.isBoolean(visible)){\n visible = visible.toString();\n }\n\n if(visible){\n // if(visible.indexOf(\"Meteor.\") > 0 || visible.indexOf(\"Creator.\") > 0 || visible.indexOf(\"Session.\") > 0){\n // console.warn('无效的visible', visible)\n // return 'false';\n // }\n if(visible.trim().startsWith('function')){\n visible = `${visible}.apply({\n object: uiSchema\n }, [objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data])`\n }\n }\n\n if(button.type === 'amis_button'){\n let amisSchema = button.amis_schema;\n if(_.isString(amisSchema)){\n amisSchema = JSON.parse(amisSchema);\n }\n if(amisSchema && amisSchema.body && amisSchema.body.length > 0){\n const btn1 = amisSchema.body[0];\n if(_.hasIn(btn1, 'visibleOn')){\n /* 当含有“更多”按钮或者“下拉”箭头按钮时,单个按钮的visibleOn需要合并到 “更多”按钮或者“下拉”箭头按钮的 visibleOn 中,用||隔开。\n visibleOn的格式需要保持一致; 不能是 js 和 ${xxx} 混合的表达式;\n visibleOn的值需要是js格式,因为默认的编辑、删除等系统按钮的visibleOn的格式就是js格式(function(){}); \n */\n return btn1.visibleOn\n } \n }\n }\n return visible;\n}\n\nexport const getButtonVisible = (button, ctx) => {\n if (button._visible) {\n if (_.startsWith(_.trim(button._visible), \"function\")) {\n window.eval(\"var fun = \" + button._visible);\n button.visible = fun;\n } else if (isExpression(button._visible)) {\n button.visible = (props) => {\n parseSingleExpression(\n button._visible,\n props.record,\n \"#\",\n getGlobalData(),\n props.userSession\n );\n };\n }\n }\n if (_.isFunction(button.visible)) {\n try {\n return button.visible(ctx);\n } catch (error) {\n // console.error(`${button.name} visible error: ${error}`);\n }\n } else {\n return button.visible;\n }\n};\n\n\nexport const standardButtonsTodo = {\n // 批量删除比较特殊, CRUD组件在外部无法触发批量操作action.\n standard_delete_many: function(){\n const {\n listViewId,\n uiSchema,\n scopeId\n } = this;\n const listViewRef = SteedosUI?.getRef(scopeId || listViewId).getComponentById(`listview_${uiSchema.name}`)\n \n if(_.isEmpty(listViewRef.props.store.toJSON().selectedItems)){\n listViewRef.handleAction({}, {\n \"actionType\": \"toast\",\n \"toast\": {\n \"items\": [\n {\n \"position\": \"top-right\",\n \"body\": \"请选择要删除的项\"\n }\n ]\n }\n })\n }else{\n listViewRef.handleBulkAction(listViewRef.props.store.toJSON().selectedItems,[],{},listViewRef.props.bulkActions[0]);\n }\n }\n};\n\n\n/**\n * 按钮显隐规则: 优先使用页面布局上的配置.\n * @param {*} uiSchema \n * @param {*} ctx \n * @returns \n */\nexport const getButtons = (uiSchema, ctx) => {\n const disabledButtons = uiSchema.permissions && uiSchema.permissions.disabled_actions;\n let buttons = _.sortBy(_.values(uiSchema.actions), \"sort\");\n if (_.has(uiSchema, \"allow_customActions\")) {\n buttons = _.filter(buttons, (button) => {\n return _.include(uiSchema.allow_customActions, button.name); // || _.include(_.keys(Creator.getObject('base').actions) || {}, button.name)\n });\n }\n if (_.has(uiSchema, \"exclude_actions\")) {\n buttons = _.filter(buttons, (button) => {\n return !_.include(uiSchema.exclude_actions, button.name);\n });\n }\n\n _.each(buttons, (button) => {\n button.objectName = uiSchema.name;\n if (\n ctx.isMobile &&\n [\"record\", \"record_only\"].indexOf(button.on) > -1 &&\n button.name != \"standard_edit\"\n ) {\n if (button.on == \"record_only\") {\n button.on = \"record_only_more\";\n } else {\n button.on = \"record_more\";\n }\n }\n });\n\n if (\n ctx.isMobile &&\n [\"cms_files\", \"cfs.files.filerecord\"].indexOf(uiSchema.name) > -1\n ) {\n _.map(buttons, (button) => {\n if (button.name === \"standard_edit\") {\n button.on = \"record_more\";\n }\n if (button.name === \"download\") {\n button.on = \"record\";\n }\n });\n }\n\n return _.filter(buttons, (button) => {\n return _.indexOf(disabledButtons, button.name) < 0 && button.name != 'standard_query';\n });\n};\n\nexport const getListViewButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"list\";\n });\n return listButtons;\n};\n\nexport const getObjectDetailButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const detailButtons = _.filter(buttons, (button) => {\n return button.on == \"record\" || button.on == \"record_only\";\n });\n return _.sortBy(detailButtons, \"sort\");\n};\n\nexport const getObjectDetailMoreButtons = (uiSchema, ctx) => {\n const buttons = getButtons(uiSchema, ctx);\n const moreButtons = _.filter(buttons, (button) => {\n return button.on == \"record_more\" || button.on == \"record_only_more\";\n });\n return _.sortBy(moreButtons, \"sort\");\n};\n\nexport const getListViewItemButtons = async (uiSchema, ctx)=>{\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"record\" || button.on == \"list_item\" || button.on === 'record_more';\n });\n return listButtons;\n}\n\nexport const getObjectRelatedListButtons = (uiSchema, ctx)=>{\n // const buttons = getButtons(uiSchema, ctx);\n // const relatedListButtons = _.filter(buttons, (button) => {\n // if(button.objectName === 'cms_files'){\n // // TODO:附件对象本身没有上传按钮,需要自定义\n // }else{\n // return button.name == \"standard_new\";\n // }\n // });\n // return relatedListButtons;\n const buttons = getButtons(uiSchema, ctx);\n const listButtons = _.filter(buttons, (button) => {\n return button.on == \"list\";\n });\n return listButtons;\n}\n\n/**\n * 由此函数负责内置按钮的转换\n * @param {*} objectName \n * @param {*} buttonName \n * @param {*} ctx \n * @returns \n */\nexport const getButton = async (objectName, buttonName, ctx)=>{\n const uiSchema = await getUISchema(objectName);\n const { props } = ctx;\n if(uiSchema){\n const buttons = await getButtons(uiSchema, ctx);\n const button = _.find(buttons, (button)=>{\n return button.name === buttonName\n });\n\n if(!button){\n return ;\n }\n\n if(button.name == 'standard_edit' && (button.todo === 'standard_edit' && button.type != \"amis_button\")){ // && button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n ...await StandardButtons.getStandardEdit(uiSchema, ctx)\n };\n }\n if(objectName != 'cms_files' && button.name == 'standard_new' && (button.todo === 'standard_new' && button.type != \"amis_button\")){ //&& button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_new.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n ...await StandardButtons.getStandardNew(uiSchema, ctx)\n }\n }\n\n // 如果是standard_delete 且 _visible 中调用了 Steedos 函数, 则自动添加标准的删除功能\n if(button.name == 'standard_delete' && (button.todo === 'standard_delete' && button.type != \"amis_button\")){ // && button._visible.indexOf('Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply') > 0\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardDelete(uiSchema, ctx)\n }\n }\n\n if(uiSchema.hasImportTemplates && button.name === 'standard_import_data'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardImportData(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_export_excel'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardExportExcel(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_open_view'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardOpenView(uiSchema, ctx)\n }\n }\n\n if(button.name === 'standard_delete_many'){\n return {\n label: button.label,\n name: button.name,\n on: button.on,\n sort: button.sort,\n ...await StandardButtons.getStandardDeleteMany(uiSchema, ctx)\n }\n }\n\n return button;\n\n }\n}\n\nexport const execute = (button, props) => {\n if (!button.todo) {\n return; //TODO 弹出提示未配置todo\n }\n\n if (_.isString(button.todo)) {\n if (_.startsWith(_.trim(button.todo), \"function\")) {\n window.eval(\"var fun = \" + button.todo);\n button.todo = fun;\n }\n }\n if (_.isFunction(button.todo)) {\n const todoThis = {\n objectName: props.objectName, \n object_name: props.objectName, \n object: props.uiSchema, \n record: props.record,\n recordId: props.recordId,\n record_id: props.recordId,\n ...props,\n action: button\n }\n return button.todo.apply(todoThis, [todoThis.objectName, todoThis.recordId]);\n }\n};\n\nexport const executeButton = execute;\n\n\nconst getObjectDetailHeaderButtons = (objectSchema, recordId)=>{\n const { name } = objectSchema;\n const buttons = getObjectDetailButtons(objectSchema, {});\n const moreButtons = getObjectDetailMoreButtons(objectSchema, {\n recordId: recordId,\n objectName: name\n })\n let amisButtonsSchema = _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n })\n let moreButtonsVisibleOn = '';\n let dropdownButtons = _.map(moreButtons, (button, index) => {\n if(index === 0){\n moreButtonsVisibleOn = getButtonVisibleOn(button);\n }else{\n moreButtonsVisibleOn = moreButtonsVisibleOn + ' || ' +getButtonVisibleOn(button);\n }\n \n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n }\n })\n return {\n buttons: amisButtonsSchema,\n moreButtons: dropdownButtons,\n moreButtonsVisibleOn\n };\n}\n\nexport const getObjectDetailButtonsSchemas = (objectSchema, recordId, ctx)=>{\n const { buttons, moreButtons, moreButtonsVisibleOn } = getObjectDetailHeaderButtons(objectSchema, recordId);\n if(ctx.formFactor === 'SMALL'){\n const dropdownButtons = [\n ..._.map(buttons, (button) => {\n button.className += ' w-full';\n return button;\n }),\n ..._.map(moreButtons, (button) => {\n button.className += ' w-full';\n return button;\n })\n ];\n\n let phoneMoreButtonsVisibleOn = '';\n _.forEach(dropdownButtons, (button, index) => {\n if(index === 0){\n phoneMoreButtonsVisibleOn = button.visibleOn;\n }else{\n phoneMoreButtonsVisibleOn = phoneMoreButtonsVisibleOn + ' || ' + button.visibleOn;\n }\n })\n\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"visibleOn\": phoneMoreButtonsVisibleOn,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"id\": \"u:fd837823be5b\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": dropdownButtons,\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n if(moreButtons.length > 0){\n const dropdownButtonsSchema = {\n type: \"steedos-dropdown-button\",\n label: \"\",\n buttons: moreButtons,\n className: 'slds-icon ml-1',\n visibleOn: moreButtonsVisibleOn\n }\n buttons.push(dropdownButtonsSchema);\n }\n return buttons;\n }\n}\n\n\nexport const getObjectListViewButtonsSchemas = (objectSchema, ctx)=>{\n const buttons = getListViewButtons(objectSchema, ctx);\n if(ctx.formFactor === 'SMALL'){\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"className\": \"mr-0\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"id\": \"u:fd837823be5b\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": [\n ..._.map(buttons, (button)=>{\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name} w-full`\n }\n })\n ],\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n return _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n });\n }\n}\n\nexport const getObjectRecordDetailRelatedListButtonsSchemas = (objectSchema, ctx)=>{\n const buttons = getObjectRelatedListButtons(objectSchema, ctx);\n if(ctx.formFactor === 'SMALL'){\n return {\n \"type\": \"button\",\n \"icon\": \"fa fa-angle-down\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"drawer\",\n \"drawer\": {\n \"type\": \"drawer\",\n \"title\": i18next.t('frontend_operation'),\n \"id\": \"object_actions_drawer_\" + objectSchema.name,\n \"body\": [\n {\n \"type\": \"button-group\",\n \"vertical\": true,\n \"tiled\": true,\n \"buttons\": [\n ..._.map(buttons, (button)=>{\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name} w-full`\n }\n })\n ],\n \"btnLevel\": \"enhance\",\n \"className\": \"w-full\",\n \"btnClassName\": \"w-full\",\n \"size\": \"lg\"\n }\n ],\n \"position\": \"bottom\",\n \"closeOnOutside\": true,\n \"resizable\": false,\n \"className\": \"buttons-drawer\",\n \"bodyClassName\": \"m-none p-none\",\n \"actions\": []\n }\n }\n ]\n }\n }\n }\n }else{\n return _.map(buttons, (button) => {\n return {\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: `button_${button.name}`\n }\n });\n }\n}","import { getFieldSearchable } from \"./fields/index\";\nimport { includes, map } from \"lodash\";\nimport { i18next } from \"../../../i18n\"\nexport async function getObjectFieldsFilterButtonSchema(objectSchema) {\n // const amisListViewId = `listview_${objectSchema.name}`;\n return {\n \"type\": \"button\",\n \"label\": \"\",\n \"icon\": \"fa fa-search\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"broadcast_toggle_fields_filter\"\n }\n }\n ]\n }\n }\n }\n}\n\nexport async function getObjectFieldsFilterFormSchema(ctx) {\n\n if (!ctx) {\n ctx = {};\n }\n const formSchema = {\n \"type\": \"service\",\n \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"className\": ctx.formFactor === 'SMALL' ? \"slds-filters__body p-0 mb-2 overflow-y-auto overflow-x-hidden\" : \"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2\",\n \"style\":{\n \"max-height\":ctx.formFactor === 'SMALL'?\"30vh\":\"unset\"\n },\n \"schemaApi\": {\n method: 'post',\n url: `\\${context.rootUrl}/graphql?reload=\\${filterFormSearchableFields|join}`,\n data: {\n $self: \"$$\",\n query: \"{\\n data: objects(filters: [[\\\"_id\\\",\\\"=\\\",null]],top: 1, skip: 0){_id}\\n }\"\n },\n requestAdaptor: `\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n `,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n \"body\": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn(\"run function getFieldSearchable failed.\");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n var ctx = ${JSON.stringify(ctx)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n };\n\n return formSchema;\n}\n\nexport async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {\n if (!ctx) {\n ctx = {};\n }\n const btnSearchId = \"btn_filter_form_search_\" + new Date().getTime();\n const filterFormSchema = await getObjectFieldsFilterFormSchema(ctx);\n const keywordsSearchBoxName = ctx.keywordsSearchBoxName || \"__keywords\";\n const onSearchScript = `\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === \"\" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n // 点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n let showFieldsFilter = false;\n const isMobile = window.innerWidth < 768;\n if(event.data.__from_fields_filter_settings_confirm){\n // 如果是从设置搜索项点击确认按钮触发的搜索事件不应该自动关闭搜索栏\n showFieldsFilter = true;\n }\n else if(isMobile){\n // 如果是手机端,点击搜索后自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(event.data.displayAs === \"split\") {\n // PC上分栏模式下的列表,始终按手机上效果处理,即自动关闭搜索栏\n showFieldsFilter = false;\n }\n else if(window.innerHeight >= 1200){\n // 高分辨率屏幕(2k+),列表高度比较高,没必要自动关闭搜索栏\n showFieldsFilter = true;\n }\n filterService.setData({showFieldsFilter});\n // resizeWindow();//已迁移到搜索栏表单提交事件中执行,因为表单项change后也会触发表单提交了\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter});\n `;\n const onCancelScript = `\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listName = event.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n if(k !== \"__keywords\"){\n removedValues[k] = null;\n }\n }\n }\n }\n else{\n const keywordsSearchBoxName = \"${keywordsSearchBoxName}\";\n //lookup字段保留快速搜索条件\n removedValues[keywordsSearchBoxName] = filterFormValues[keywordsSearchBoxName];\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 100);\n // 移除搜索按钮上的红点\n let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n `;\n const dataProviderInited = `\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listName = data.listName;\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n let defaultSearchableFields = localStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(\",\");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, 'field');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.filterable;\n }), \"sort_no\"),\n \"name\"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时只显示搜索按钮上的红点,不自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let crudService = SteedosUI.getRef(data.$scopeId).parent.getComponentById(\"service_listview_\" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n // setData({ showFieldsFilter: true });//自动展开搜索栏\n }\n }\n }\n }\n `;\n const onSearchableFieldsChangeScript = `\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为\"listview-filter-form\"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === \"form\";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + \"/searchable_fields\";\n if(isLookup){\n searchableFieldsStoreKey += \"/lookup/\" + objectName;\n }\n searchableFieldsStoreKey = searchableFieldsStoreKey + \"/\" + (data.context && data.context.userId);\n localStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === \"string\"){\n preSearchableFields = preSearchableFields.split(\",\");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, \"form\", \"listview-filter-form\");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__\\.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp(\"__searchable__\\.*\" + fieldName + \"$\").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 100)\n // ===END===\n `;\n return {\n \"type\": \"service\",\n \"name\": \"service_listview_filter_form\",\n \"data\": {\n // \"showFieldsFilter\": false\n // \"filterFormSearchableFields\": [\"name\"],//默认可搜索项\n // \"filterFormValues\": {\"__searchable__name\": \"xxx\"},//搜索项表单值\n // \"listViewId\": \"${listViewId}\"\n },\n // \"id\": `service_listview_filter_form_${objectSchema.name}`,\n \"dataProvider\": {\n \"inited\": dataProviderInited\n },\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": [filterFormSchema, {\n \"type\": \"wrapper\",\n \"body\": {\n \"type\": \"wrapper\",\n \"body\": [\n {\n \"type\": \"button\",\n \"id\": btnSearchId,\n \"label\": i18next.t('frontend_fields_filter_button_search'),\n \"icon\": \"fa fa-search\",\n // \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSearchScript\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_cancel'),\n \"name\": \"btn_filter_form_cancel\",\n // \"visibleOn\": \"this.filterFormSearchableFields && this.filterFormSearchableFields.length\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onCancelScript\n }\n ]\n }\n }\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_fields_filter_button_settings'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"size\": \"md\",\n \"title\": i18next.t('frontend_fields_filter_button_settings'),\n \"body\": [\n {\n \"type\": \"form\",\n \"title\": \"\",\n \"body\": [\n {\n \"label\": \"\",\n \"type\": \"transfer\",\n \"name\": \"fields\",\n \"id\": \"u:92c0b3cccca0\",\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options\",\n \"dataType\": \"json\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"$self\": \"$$\"\n },\n \"requestAdaptor\": \"\",\n \"adaptor\": `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = ((payload.data && payload.data.options) || []).filter(function(item){\n let field = fields[item.value];\n // TODO: 暂时禁用location类型字段的列表搜索\n return !!field && window.isFieldTypeSearchable(field.type) && field.type !== 'location'\n });\n payload.data = {\n \"options\": options\n };\n return payload;\n `\n },\n \"options\": [],\n \"required\": true,\n \"placeholder\": \"-\",\n \"className\": \"col-span-2 m-0\",\n \"checkAll\": false,\n \"searchable\": true,\n \"sortable\": true,\n \"joinValues\": false,\n \"extractValue\": true,\n \"multiple\": true\n }\n ],\n \"id\": \"u:e5ac506d5683\",\n \"mode\": \"normal\",\n \"persistData\": false,\n \"promptPageLeave\": true,\n \"name\": \"form\",\n \"debug\": false,\n \"actions\": [],\n \"panelClassName\": \"m-0\",\n \"bodyClassName\": \"p-4\",\n \"className\": \"steedos-amis-form\"\n }\n ],\n \"id\": \"u:ca99fa9fe1b1\",\n \"actions\": [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_cancel'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:4e447b5ca72a\"\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_form_confirm'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSearchableFieldsChangeScript\n },\n {\n \"actionType\": \"click\",\n \"componentId\": btnSearchId,\n \"args\": {\n \"__from_fields_filter_settings_confirm\": true\n }\n },\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDrawer\"\n }\n ]\n }\n },\n \"id\": \"u:14e7388fecd3\",\n \"level\": \"primary\"\n }\n ],\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"data\": {\n \"&\": \"$$\",\n \"objectName\": \"${objectName}\",\n \"listName\": \"${listName}\",\n \"listViewId\": \"${listViewId}\",\n \"uiSchema\": \"${uiSchema}\",\n \"isLookup\": \"${isLookup}\",\n \"context\": \"${context}\",\n \"fields\": \"${filterFormSearchableFields}\"\n }\n }\n }\n ]\n }\n },\n \"id\": \"u:b96d84868a5a\",\n \"level\": \"link\"\n }\n ],\n \"size\": \"xs\",\n \"className\": \"space-x-4\"\n },\n \"size\": \"xs\",\n \"className\": \"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0\"\n }],\n \"size\": \"xs\",\n \"className\": \"slds-filters\"\n },\n \"size\": \"xs\",\n \"className\": `border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!ctx.isLookup && \"mt-2\"}`,\n \"visibleOn\": \"this.showFieldsFilter\",\n },\n \"className\": \"bg-white\"\n };\n}\n\n","import { getObjectRelatedListButtons, getButtonVisibleOn } from '../../buttons'\nimport { getObjectFieldsFilterButtonSchema, getObjectFieldsFilterBarSchema } from './fields_filter';\nimport { map, each, sortBy, compact, keys } from 'lodash';\n\nimport { getObjectDetailButtonsSchemas, getObjectListViewButtonsSchemas, getObjectRecordDetailRelatedListButtonsSchemas } from '../../buttons'\n\n/**\n * 列表视图顶部第一行amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport function getObjectListHeaderFirstLine(objectSchema, listViewName, ctx) {\n const { icon, label } = objectSchema;\n const listViewButtonOptions = [];\n each(\n objectSchema.list_views,\n (listView, name) => {\n if(name === \"lookup\"){\n // 内置lookup为弹出选择专用视图,不显示在列表切换区域\n return;\n }\n listViewButtonOptions.push({\n type: \"button\",\n label: listView.label,\n actionType: \"link\",\n link: `/app/\\${appId}/${objectSchema.name}/grid/${name}`\n });\n }\n );\n\n let amisButtonsSchema = getObjectListViewButtonsSchemas(objectSchema, {formFactor: ctx.formFactor})\n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n const standardNewButton = _.find(amisButtonsSchema, { name: \"standard_new\" });\n const buttonSchema = [{\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n \"visibleOn\": \"${display == 'split'?false:true}\"\n }]\n if(ctx.formFactor !== 'SMALL'){\n const restButtons = Array.isArray(amisButtonsSchema) ? amisButtonsSchema.filter(obj => obj.name !== \"standard_new\"):[]\n buttonSchema.push({\n \"type\": \"flex\",\n \"items\":[\n standardNewButton,\n (restButtons.length > 0) && {\n \"type\": \"dropdown-button\",\n \"buttons\": restButtons,\n \"className\": \" ml-1\",\n \"menuClassName\": \"p-none split-dropdown-buttons\",\n \"align\": \"right\",\n \"size\": \"sm\"\n }\n ],\n \"visibleOn\": \"${display == 'split'?true:false}\"\n })\n }\n return {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": {\n \"type\": \"tpl\",\n \"className\": \"block\",\n \"tpl\":`<svg class=\"slds-icon slds-icon_container slds-icon-standard-${standardIcon} slds-page-header__icon\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n },\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\",\n \"valign\": \"middle\",\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `${label}`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"text-md leading-none text-black\",\n },\n {\n \"type\": \"dropdown-button\",\n \"className\": \"\", \n \"label\": \"\\${listName ? uiSchema.list_views[listName].label : uiSchema.list_views[defaultListName].label}\",\n \"rightIcon\": \"fa fa-caret-down\",\n \"size\": \"sm\",\n \"hideCaret\": true,\n \"closeOnClick\": true,\n \"btnClassName\": \"!bg-transparent !border-none !hover:border-none text-lg h-5 font-bold p-0 text-black leading-none\",\n \"buttons\": listViewButtonOptions\n }\n ],\n \"md\": \"\",\n \"columnClassName\": \"p-l-xs\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"md\": \"auto\"\n },\n {\n \"body\": buttonSchema,\n \"md\": \"auto\",\n \"valign\": \"middle\",\n }\n ],\n \"className\": \"flex justify-between\"\n }\n}\n\n/**\n * 列表视图顶部第二行amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectListHeaderSecordLine(objectSchema, listViewName, ctx) {\n const amisListViewId = `listview_${objectSchema.name}`;\n const fieldsFilterButtonSchema = await getObjectFieldsFilterButtonSchema(objectSchema);\n // const onFilterChangeScript = `\n // const eventData = event.data;\n // const uiSchema = eventData.uiSchema;\n // const listName = eventData.listName;\n // const listViewId = eventData.listViewId;\n // var selectedListView = uiSchema.list_views[listName]\n // var filter = eventData.filter;\n // SteedosUI.ListView.showFilter(uiSchema.name, {\n // listView: selectedListView,\n // data: {\n // filters: SteedosUI.ListView.getVisibleFilter(selectedListView, filter, { listViewId }),\n // },\n // onFilterChange: (filter) => {\n // doAction({\n // componentId: \\`service_listview_\\${uiSchema.name}\\`,\n // actionType: 'setValue',\n // \"args\": {\n // \"value\": {\n // filter: filter\n // }\n // }\n // });\n // doAction({\n // componentId: \\`listview_\\${uiSchema.name}\\`,\n // actionType: 'reload',\n // \"args\": {\n // filter: filter\n // }\n // });\n // }\n // });\n // `;\n let secordLineSchema = {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": \"${$count} 个项目\",\n \"visibleOn\": \"this.$count >= 0\",\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"leading-none\",\n \"style\": {\n \"fontFamily\": \"\",\n \"fontSize\": 14\n },\n \"id\": \"u:1661f8471235\"\n }\n ],\n \"md\": \"auto\",\n \"columnClassName\": \"flex items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": \"\",\n \"icon\": \"fa fa-refresh\",\n \"actionType\": \"reload\",\n \"target\": amisListViewId,\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n },\n fieldsFilterButtonSchema,\n // {\n // \"type\": \"button\",\n // \"label\": \"\",\n // \"icon\": \"fa fa-filter\",\n // \"actionType\": \"custom\",\n // \"className\": \"bg-transparent p-2 rounded border-gray-300 text-gray-500\",\n // \"id\": \"u:c20cb87d96c9\",\n // \"onEvent\": {\n // \"click\": {\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": onFilterChangeScript\n // }\n // ],\n // \"weight\": 0\n // }\n // }\n // }\n ],\n \"md\": \"auto\"\n }\n ],\n \"className\": \"flex justify-between\"\n };\n return secordLineSchema;\n}\n\n\n/**\n * 列表视图顶部放大镜过滤条件栏amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectListHeaderFieldsFilterBar(objectSchema, listViewName, ctx) {\n const fieldsFilterBarSchema = await getObjectFieldsFilterBarSchema(objectSchema, ctx);\n return fieldsFilterBarSchema;\n}\n\n/**\n * 列表视图顶部amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport function getObjectListHeader(objectSchema, listViewName, ctx) {\n if (!ctx) {\n ctx = {};\n }\n let firstLineSchema = getObjectListHeaderFirstLine(objectSchema, listViewName, ctx);\n let body = [firstLineSchema];\n let headerSchema = [{\n \"type\": \"wrapper\",\n \"body\": body,\n \"className\": `bg-gray-100 sm:rounded-tl sm:rounded-tr p-4 -mb-4`\n }];\n return headerSchema;\n}\n\n/**\n * 记录详细界面顶部头amisSchema,也是标题面板组件的amisSchema\n * @param {*} objectSchema 对象UISchema\n * @param {*} recordId 记录id\n * @param {*} optioins: {showRecordTitle: true}\n * @returns amisSchema\n */\nexport async function getObjectRecordDetailHeader(objectSchema, recordId, options) {\n const { showRecordTitle = true } = options || {}\n // console.log('getObjectRecordDetailHeader==>', objectSchema, recordId)\n const { name, label, icon, NAME_FIELD_KEY } = objectSchema;\n \n let amisButtonsSchema = getObjectDetailButtonsSchemas(objectSchema, recordId, options);\n\n // console.log(`getObjectRecordDetailHeader==>`, amisButtonsSchema)\n \n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n\n const gridBody = [];\n if(showRecordTitle){\n gridBody.push({\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [{\n \"type\": \"service\",\n \"onEvent\": {\n \"@history_paths.changed\": {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n }\n ]\n }\n },\n \"body\":[{\n \"type\": \"button\",\n \"visibleOn\": \"${window:innerWidth > 768 && (window:historyPaths.length > 1 || window:historyPaths[0].params.record_id) && display !== 'split'}\",\n \"className\":\"flex mr-4\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"window.goBack()\"\n }\n ]\n }\n },\n \"body\": [\n {\n \"type\": \"steedos-icon\",\n \"category\": \"utility\",\n \"name\": \"back\",\n \"colorVariant\": \"default\",\n \"className\": \"slds-button_icon slds-global-header__icon w-4\"\n }\n ]\n }]\n },{\n \"type\": \"tpl\",\n \"className\": \"block\",\n // \"tpl\": `<img class='slds-icon slds-icon_container slds-icon-standard-${standardIcon}' src='\\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg'>`\n \"tpl\":`<svg class=\"slds-icon slds-icon_container slds-icon-standard-${standardIcon} slds-page-header__icon\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n }],\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `${label}`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"leading-4 text-md\"\n },\n {\n \"type\": \"tpl\",\n \"tpl\": \"${name}\",\n // \"tpl\": \"${(record && uiSchema && record[uiSchema.NAME_FIELD_KEY]) || name}\",\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"record-detail-header-name leading-5 text-xl font-bold\"\n }\n ],\n \"columnClassName\": \"p-l-xs\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"columnClassName\": \"flex-initial\",\n \"md\": \"auto\",\n })\n };\n\n gridBody.push({\n \"body\": {\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n },\n \"md\": \"auto\",\n // \"hiddenOn\": \"${recordLoaded != true}\"\n })\n\n let body = [\n {\n \"type\": \"wrapper\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": gridBody,\n \"className\": \"flex justify-between flex-nowrap\"\n }\n ],\n \"hiddenOn\": \"${recordLoaded != true}\"\n }\n ];\n\n if(showRecordTitle){\n body.push({\n \"type\": \"wrapper\",\n \"className\": \"p-0\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"columns\": [gridBody[0]],\n \"className\": \"flex justify-between\"\n }\n ],\n \"hiddenOn\": \"${recordLoaded == true}\"\n })\n }\n\n return {\n type: 'service',\n id: `page_readonly_${name}_header`,\n name: `page`,\n data: { objectName: name, _id: recordId, recordPermissions: objectSchema.permissions, uiSchema: objectSchema, record: \"${record}\" },\n body: body, \n className: ''\n }\n\n}\n\n/**\n * 记录详细界面中相关表顶部头amisSchema\n * @param {*} relatedObjectSchema 相关对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectRecordDetailRelatedListHeader(relatedObjectSchema, relatedLabel, ctx) {\n const { icon, label } = relatedObjectSchema;\n let amisButtonsSchema = getObjectRecordDetailRelatedListButtonsSchemas(relatedObjectSchema, {formFactor: ctx.formFactor});\n const reg = new RegExp('_', 'g');\n const standardIcon = icon && icon.replace(reg, '-');\n const recordRelatedListHeader = {\n \"type\": \"wrapper\",\n \"body\": [\n {\n \"type\": \"grid\",\n \"valign\": \"middle\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"grid\",\n \"valign\": \"middle\",\n \"className\": \"flex justify-between\",\n \"columns\": [\n {\n \"body\": {\n \"type\": \"tpl\",\n \"className\": \"block\",\n // \"tpl\": `<img class=\\\"slds-icon_small slds-icon_container slds-icon-standard-${standardIcon}\\\" src=\\\"\\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${icon}.svg\\\" />`\n \"tpl\":`<svg class=\"w-6 h-6 slds-icon slds-icon_container slds-icon-standard-${standardIcon}\" aria-hidden=\"true\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${icon}\"></use></svg>`\n },\n \"md\": \"auto\",\n \"className\": \"\",\n \"columnClassName\": \"flex justify-center items-center\"\n },\n {\n \"body\": [\n {\n \"type\": \"tpl\",\n \"tpl\": `<a class=\"text-black text-base font-bold hover:font-bold\" href=\"/app/\\${appId}/\\${_master.objectName}/\\${_master.recordId}/\\${objectName}/grid?related_field_name=\\${relatedKey}\">${relatedLabel}(\\${$count})</a>`,\n \"inline\": false,\n \"wrapperComponent\": \"\",\n \"className\": \"\",\n }\n ],\n \"md\": \"\",\n \"valign\": \"middle\",\n \"columnClassName\": \"p-l-xs\"\n }\n ]\n }\n ],\n \"md\": \"auto\"\n },\n {\n \"body\": {\n \"type\": \"flex\",\n \"items\": amisButtonsSchema,\n },\n \"md\": \"auto\"\n }\n ],\n \"className\": \"flex justify-between\"\n }\n ],\n \"className\": \"p-3\"\n };\n return recordRelatedListHeader;\n}\n\n/**\n * 点击记录详细界面相关表顶部标题进入的相关表页面的顶部amisSchema\n * @param {*} objectSchema \n * @param {*} recordId \n * @param {*} relatedObjectName \n * @returns amisSchema\n */\nexport async function getObjectRelatedListHeader(objectSchema, recordId, relatedObjectName) {\n}","import { i18next } from \"../../../../../i18n\"\nexport const getNewListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_new_label'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_new_title'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"all\": \"${uiSchema.list_views.all}\",\n \"list_view\": \"${uiSchema.list_views[listName]}\",\n \"appId\": \"${appId}\",\n \"global\": \"${global}\",\n \"targetObjectName\": \"${objectName}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"defaultData\": {\n \"&\": \"${list_view}\",\n \"name\":\"\",\n \"label\":\"\",\n \"filters\":\"\",\n \"shared\":false,\n \"object_name\": \"${targetObjectName}\",\n },\n \"fieldsExtend\": fieldsExtend(),\n \"fields\": fields(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n // 直接使用recordId不能拿到数据,只能通过result里面拿数据\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n },\n \"messages\": {\n \"success\": i18next.t('frontend_listview_control_new_message_success'),\n \"failed\": i18next.t('frontend_listview_control_new_message_failed')\n },\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fields(){\n return [\n \"label\",\n \"name\",\n \"object_name\",\n \"filter_scope\",\n \"show_count\",\n \"columns\",\n \"sort\",\n \"filters\",\n \"mobile_columns\",\n \"searchable_fields\",\n \"is_system\",\n \"shared\"\n ]\n}\n\nfunction fieldsExtend(){\n return {\n \"label\": {\n \"is_wide\": true\n },\n \"name\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_scope\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"columns\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"mobile_columns\":{\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"searchable_fields\":{\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"filter_fields\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"scrolling_mode\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"sort\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"show_count\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"type\": {\n \"amis\": {\n \"hidden\": true,\n \"required\": false\n }\n },\n \"shared\": {\n \"amis\": {\n \"visibleOn\": \"${global.user.is_space_admin}\"\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getCopyListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_clone_label'),\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_clone_title'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"listName\": \"${listName}\",\n \"targetObjectName\": \"${objectName}\",\n \"list_view\": \"${uiSchema.list_views[listName]}\",\n \"appId\": \"${appId}\",\n \"global\": \"${global}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"\",\n \"mode\": \"edit\",\n \"defaultData\": {\n \"&\": \"${list_view}\",\n \"name\":\"\",\n \"label\": i18next.t('frontend_listview_control_clone_defaultData_label_start') + \" ${list_view.label} \" + i18next.t('frontend_listview_control_clone_defaultData_label_end'),\n \"shared\":false,\n \"object_name\": \"${targetObjectName}\",\n },\n \"fieldsExtend\": fieldsExtend(),\n \"fields\": fields(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n }\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fields(){\n return [\n \"label\",\n \"name\",\n \"object_name\",\n \"filter_scope\",\n \"show_count\",\n \"columns.$.field\",\n \"columns.$.width\",\n \"sort.$.field_name\",\n \"sort.$.order\",\n \"filters\",\n \"mobile_columns.$.field\",\n \"searchable_fields.$.field\",\n \"is_system\",\n \"shared\"\n ]\n}\n\nfunction fieldsExtend(){\n return {\n \"label\": {\n \"is_wide\": true\n },\n \"name\": {\n \"is_wide\": true,\n \"amis\": {\n \"hidden\": true\n }\n },\n \"object_name\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_scope\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"columns\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"filter_fields\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"scrolling_mode\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"sort\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"show_count\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"type\": {\n \"amis\": {\n \"hidden\": true\n }\n },\n \"shared\": {\n \"amis\": {\n \"visibleOn\": \"${global.user.is_space_admin}\"\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getRenameListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_rename_label'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_rename_title'),\n \"data\": {\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"label\"\n ],\n \"fieldsExtend\": \"{\\n \\\"label\\\":{\\n \\\"is_wide\\\": true\\n }\\n}\",\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n },\n ]\n }\n }\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewShareButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_share'),\n \"disabledOn\": \"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_share'),\n \"data\": {\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"shared\"\n ]\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"md\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewFiltersButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_filters'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_filters'),\n \"data\": {\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fields\": [\n \"filters\"\n ],\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor(),\n \"fieldsExtend\": fieldsExtend(),\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\",\n }\n ]\n }\n }\n }\n ],\n \"className\": \"steedos-overflow-visible-dialog\",\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"closeOnEsc\": false,\n \"dataMapSwitch\": false,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\n\nfunction initApiAdaptor(){\n return `\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n `\n}\n\nfunction fieldsExtend(){\n return {\n \"filters\": {\n \"visible_on\": \"true\",\n \"amis\": {\n \"type\": \"condition-builder\",\n \"label\": i18next.t('frontend_listview_control_filters_fields_extend'),\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}\",\n \"dataType\": \"json\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}","import { i18next } from \"../../../../../i18n\"\n\nexport const getSetListviewColumnsButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_columns'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {},\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_columns'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"mode\": \"edit\",\n \"fieldsExtend\": fieldsExtend(),\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor(),\n \"fields\": [\n \"columns\",\n \"mobile_columns\"\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\"\n }\n ]\n }\n }\n }\n ],\n \"searchable\": true,\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fieldsExtend(){\n return {\n \"columns\": {\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n },\n \"mobile_columns\": {\n \"group\": i18next.t('frontend_listview_control_columns_mobile_group'),\n \"amis\": {\n \"type\": \"transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}\n\nfunction initApiAdaptor(){\n return `\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns && formData_tmp.columns.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns && formData_tmp.mobile_columns.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n `\n}","import { i18next } from \"../../../../../i18n\"\nexport const getSetListviewSortButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_sort'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"onEvent\": {\n \"click\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": i18next.t('frontend_listview_control_sort'),\n \"data\": {\n //\"&\":\"$$\",2.7、2.9、3.0在此处失效\n \"targetObjectName\": \"${objectName}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\",\n \"listName\": \"${listName}\",\n \"appId\": \"${appId}\",\n \"context\": \"${context}\"\n },\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"object_listviews\",\n \"recordId\": \"${recordId}\",\n \"className\": \"\",\n \"id\": \"u:061f158b4c5a\",\n \"mode\": \"edit\",\n \"fields\": [\n \"sort\",\n \"sort.$.field_name\",\n \"sort.$.order\"\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}\",\n \"blank\": false\n },\n \"actionType\": \"url\"\n }\n ]\n }\n },\n \"fieldsExtend\": fieldsExtend(),\n \"initApiAdaptor\": initApiAdaptor(),\n \"apiRequestAdaptor\": apiRequestAdaptor()\n }\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"id\": \"u:d3f6947b6acf\",\n \"size\": \"lg\"\n },\n \"actionType\": \"dialog\"\n }\n ]\n }\n }\n }\n}\n\nfunction fieldsExtend(){\n return {\n \"sort\": {\n \"amis\": {\n \"type\": \"tabs-transfer\",\n \"sortable\": true,\n \"searchable\": true,\n \"source\": {\n \"method\": \"get\",\n \"url\": \"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n }\n }\n}\n\nfunction initApiAdaptor(){\n return `\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n `\n}\n\nfunction apiRequestAdaptor(){\n return `\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort && formData.sort.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n `\n}","import { i18next } from \"../../../../../i18n\"\nexport const getDeleteListviewButtonSchema = ()=>{\n return {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_listview_control_delete_label'),\n \"disabledOn\": \"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)\",\n \"confirmText\": i18next.t('frontend_listview_control_delete_confirm_text'),\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"&\": \"$$\",\n \"uiSchema\": \"${uiSchema}\",\n \"recordId\": \"${uiSchema.list_views[listName]._id}\"\n },\n \"messages\": {\n \"success\": i18next.t('frontend_listview_control_delete_message_success')\n },\n \"requestAdaptor\": requestAdaptor(),\n \"adaptor\": adaptor(),\n }\n }\n },\n {\n \"actionType\": \"url\",\n \"args\": {\n \"url\": \"${context.rootUrl}/app/${appId}/${objectName}/grid/all\",\n \"blank\": false\n },\n \"expression\": \"data.delete == 1\"\n }\n ]\n }\n }\n }\n}\n\n\nfunction requestAdaptor(){\n return `\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(\\`delete:object_listviews__delete(id: \"\\${recordId}\")\\`); }\n api.data = { query: \\`mutation{\\${deleteArray.join(',')}}\\` };\n return api;\n `\n}\n\nfunction adaptor(){\n return `\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n `\n}","import { getNewListviewButtonSchema } from \"./setting_listview/new\"\nimport { getCopyListviewButtonSchema } from \"./setting_listview/copy\"\nimport { getRenameListviewButtonSchema } from \"./setting_listview/rename\"\nimport { getSetListviewShareButtonSchema } from \"./setting_listview/share\"\nimport { getSetListviewFiltersButtonSchema } from \"./setting_listview/filters\"\nimport { getSetListviewColumnsButtonSchema } from \"./setting_listview/columns\"\nimport { getSetListviewSortButtonSchema } from \"./setting_listview/sort\"\nimport { getDeleteListviewButtonSchema } from \"./setting_listview/delete\"\nimport { i18next } from \"../../../../i18n\"\n\nexport const getSettingListviewToolbarButtonSchema = ()=>{\n return {\n \"type\": \"dropdown-button\",\n \"trigger\": \"click\",\n \"icon\": \"fa fa-cog\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_listview_control_tooltip'),\n \"btnClassName\": \"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"right\",\n \"visibleOn\": \"${!isLookup}\",\n \"buttons\": [\n {\n \"label\": i18next.t('frontend_button_listview_control_label'),\n \"children\": [\n getNewListviewButtonSchema(),\n getCopyListviewButtonSchema(),\n getRenameListviewButtonSchema(),\n getSetListviewShareButtonSchema(),\n getSetListviewFiltersButtonSchema(),\n getSetListviewColumnsButtonSchema(),\n getSetListviewSortButtonSchema(),\n getDeleteListviewButtonSchema()\n ]\n }\n ]\n }\n}","import { getObjectListHeaderFieldsFilterBar } from './header';\nimport { Router } from \"@steedos-widgets/amis-lib\";\nimport { getExportExcelToolbarButtonSchema } from './toolbars/export_excel';\nimport { getSettingListviewToolbarButtonSchema } from './toolbars/setting_listview'; \nimport { i18next } from \"../../../i18n\"\nimport * as Fields from './fields/index';\n\nconst getDisplayAsButton = function(objectName, showDisplayAs){\n let displayAs = Router.getTabDisplayAs(objectName);\n let buttons = [\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_display_type_is_table'),\n \"onClick\": \"const key = 'tab_\"+objectName+\"_display';localStorage.setItem(key, 'grid');let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get(\\\"side_object\\\") && urlSearch.get(\\\"side_listview_id\\\")){url=`/app/${props.data.appId}/${urlSearch.get(\\\"side_object\\\")}/grid/${urlSearch.get(\\\"side_listview_id\\\")}`;}; props.env.jumpTo(url + '?display=grid');\",\n \"rightIcon\": displayAs != 'split' ? \"fa fa-check\" : null,\n \"rightIconClassName\": \"m-l-sm\"\n },\n {\n \"type\": \"button\",\n \"label\": i18next.t('frontend_display_type_is_split'),\n \"onClick\": \"const key = 'tab_\"+objectName+\"_display';localStorage.setItem(key, 'split');const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);\",\n \"rightIcon\": displayAs === 'split' ? \"fa fa-check\" : null,\n \"rightIconClassName\": \"m-l-sm\"\n }\n ];\n const displayAsLabel = displayAs === 'split'? i18next.t('frontend_display_type_is_split') : i18next.t('frontend_display_type_is_table');\n return {\n \"type\": \"dropdown-button\",\n \"icon\": \"fa fa-table-columns\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": `${i18next.t('frontend_display_as')} ${displayAsLabel}`,\n \"btnClassName\": \"antd-Button--iconOnly bg-white !p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"right\",\n \"visibleOn\": \"${window:innerWidth > 768 && !!!isLookup}\",\n \"buttons\": [ \n {\n \"label\": i18next.t('frontend_display_as'),\n \"children\": buttons\n }\n ]\n };\n}\n\n\nconst onFieldsFilterToggleScript = `\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === \"form\";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === \"service\";\n});\nlet toShowFieldsFilter = !!!filterService.props.data.showFieldsFilter;\nfilterService.setData({showFieldsFilter: toShowFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 1000);\n}\nresizeWindow();\n// 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\nlet crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\ncrudService && crudService.setData({showFieldsFilter: toShowFieldsFilter});\n// if(filterService.props.data.showFieldsFilter){\n// if(isMobile){\n// // 手机上只能通过取消按钮来关闭搜索栏\n// return;\n// }\n// let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"button\", { \n// direction: \"down\", \n// name: \"btn_filter_form_cancel\" \n// });\n// buttonCancel.props.dispatchEvent('click', {}).then(function(){\n// resizeWindow();\n// });\n// }\n// else{\n// if(isMobile){\n// // 手机端在显示搜索栏时隐藏crud上的刷新按钮,因为点击后crud高度显示有问题\n// let crudService = scope.getComponentById(\"service_listview_\" + event.data.objectName);\n// crudService && crudService.setData({showFieldsFilter: true});\n// }\n// }\n`;\n\nfunction getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup = false, keywordsSearchBoxName = \"__keywords\" } = {}){\n const searchableFieldsLabel = [];\n _.each(mainObject.fields, function (field) {\n if (Fields.isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {\n searchableFieldsLabel.push(field.label);\n }\n });\n\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let crudKeywords = \"\";\n if(localListViewProps && !isLookup){\n localListViewProps = JSON.parse(localListViewProps);\n crudKeywords = (localListViewProps && localListViewProps.__keywords) || \"\";\n }\n\n return {\n \"type\": \"tooltip-wrapper\",\n \"id\": \"steedos_crud_toolbar_quick_search\",\n \"align\": \"right\",\n \"title\": \"\",\n \"content\": \"可搜索字段:\" + searchableFieldsLabel.join(\",\"),\n \"placement\": \"bottom\",\n \"tooltipTheme\": \"dark\",\n \"trigger\": \"click\",\n \"className\": formFactor !== 'SMALL' ? \"mr-1\" : '',\n \"visible\": !!searchableFieldsLabel.length,\n \"body\": [\n {\n \"type\": \"search-box\",\n \"name\": keywordsSearchBoxName,\n \"placeholder\": \"搜索此列表\",\n \"value\": crudKeywords,\n \"clearable\": true,\n \"clearAndSubmit\": true,\n \"searchImediately\": false,\n \"onEvent\": {\n \"blur\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": `\n try {\n const scope = event.context.scoped;\n const filterCrud = scope.parent.getComponents().find(function(n) {\n return n.props.type === \"crud\";\n });\n if (filterCrud && typeof filterCrud.reload === 'function') {\n const keyWords = { '${keywordsSearchBoxName}': event.data.value };\n filterCrud.reload(null, keyWords);\n }\n } catch (error) {\n console.error('An error occurred:', error);\n }\n `\n }\n ]\n }\n }\n }\n ]\n }\n}\n\nexport function getObjectHeaderToolbar(mainObject, fields, formFactor, { \n showDisplayAs = false, hiddenCount = false, headerToolbarItems, \n filterVisible = true, isLookup = false, keywordsSearchBoxName } = {}){\n // console.log(`getObjectHeaderToolbar====>`, filterVisible)\n // console.log(`getObjectHeaderToolbar`, mainObject)\n\n const isMobile = window.innerWidth < 768;\n if(isMobile){\n showDisplayAs = false;\n }\n let toolbarCount;\n if(!hiddenCount){\n toolbarCount = {\n \"type\": \"tpl\",\n \"tpl\": \"${count} \" + i18next.t('frontend_record_sum')\n };\n }\n let toolbarReloadButton;\n if(formFactor === 'SMALL'){\n // const onReloadScript = `\n // const scope = event.context.scoped;\n // var listView = scope.parent.getComponents().find(function(n){\n // return n.props.type === \"crud\";\n // });\n // listView.handleChangePage(1);\n // `;\n // toolbarReloadButton = {\n // // \"type\": \"reload\",//不可以直接使用reload,因为它不会设置页码到第一页,这在加载更多按钮的翻页模式下会有问题\n // \"type\": \"button\",\n // \"align\": \"right\",\n // //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n // \"tooltipPlacement\": \"top\",\n // \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n // \"label\": \"\",\n // \"icon\": \"fa fa-sync\",\n // \"visibleOn\": \"${!showFieldsFilter}\",\n // \"onEvent\": {\n // \"click\": {\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": onReloadScript\n // }\n // ]\n // }\n // },\n // };\n\n // 后续如果换成加载更多按钮的翻页模式的话,不可以直接使用下面的reload,需要换成上面的自定义脚本模式\n toolbarReloadButton = {\n \"type\": \"reload\",\n \"align\": \"right\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n \"tooltip\":\"\",\n \"tooltipPlacement\": \"top\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n };\n }\n else{\n toolbarReloadButton = {\n \"type\": \"reload\",\n \"align\": \"right\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_reload_tooltip'),\n \"tooltip\":\"\",\n \"tooltipPlacement\": \"top\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\"\n };\n }\n let toolbarFilter;\n if(filterVisible){\n toolbarFilter ={\n \"label\": i18next.t('frontend_button_search_tooltip'),\n \"icon\": \"fa fa-filter\",\n //TODO: dropdown-button只支持在按钮上方配置提示,对于上方按钮的点击会有影响,为保持统一,暂时去除,等待amis优化,https://github.com/baidu/amis/issues/7330\n // \"tooltip\": i18next.t('frontend_button_search_tooltip'),\n // \"tooltipPlacement\": \"top\",\n \"type\": \"button\",\n \"badge\": {\n \"offset\": [\n -5,\n 1\n ],\n \"size\":8,\n \"animation\": true,\n \"visibleOn\": \"${isFieldsFilterEmpty == false && isLookup != true}\"\n },\n \"align\": \"right\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onFieldsFilterToggleScript\n }\n ]\n }\n },\n \"id\": \"steedos_crud_toolbar_filter\"\n };\n }\n let toolbarDisplayAsButton = getDisplayAsButton(mainObject?.name, showDisplayAs);\n let toolbarDQuickSearchBox = getObjectHeaderQuickSearchBox(mainObject, fields, formFactor, { isLookup, keywordsSearchBoxName });\n\n // toolbars返回的数组元素不可以是空对象{},比如hiddenCount ? {} : {\"type\": \"tpl\",...},因为空对象最终还是会生成一个空的.antd-Crud-toolbar-item dom\n // 当出现空的.antd-Crud-toolbar-item dom时会影响toolbar元素的maring-right css样式计算,如果有动态需要应该加到动态数组变量toolbars中\n let toolbars = [];\n if(formFactor === 'SMALL'){\n if(toolbarCount){\n toolbars.push(toolbarCount);\n }\n if(toolbarFilter){\n toolbars.push(toolbarFilter);\n }\n toolbars.push(toolbarReloadButton);\n toolbars.push(toolbarDisplayAsButton);\n toolbars.push(toolbarDQuickSearchBox);\n return [\n // \"bulkActions\",\n ...(headerToolbarItems || []),\n ...toolbars,\n ]\n }else{\n if(toolbarCount){\n toolbars.push(toolbarCount);\n }\n if(toolbarFilter){\n toolbars.push(toolbarFilter);\n }\n toolbars.push(toolbarReloadButton);\n toolbars.push(toolbarDisplayAsButton);\n if(mainObject?.permissions?.allowCreateListViews){\n toolbars.push(getSettingListviewToolbarButtonSchema());\n }\n toolbars.push(toolbarDQuickSearchBox);\n return [\n // \"filter-toggler\",\n ...(headerToolbarItems || []),\n \"bulkActions\",\n // 不能放开crud columns-toggler否则crud card模式会报错\n // {\n // \"type\": \"columns-toggler\",\n // \"className\": \"hidden\"\n // },\n ...toolbars,\n // {\n // \"type\": \"columns-toggler\",\n // \"className\": \"mr-2\"\n // },\n // getExportExcelToolbarButtonSchema(),\n // {\n // \"type\": \"drag-toggler\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"pagination\",\n // \"align\": \"right\"\n // }\n ]\n }\n\n\n \n}\n\nexport function getObjectFooterToolbar(mainObject, formFactor, options) {\n // crud card模式与table模式两种情况下showPageInput默认值不一样,所以需要显式设置为false\n if (formFactor === 'SMALL') {\n // return [\n // \"load-more\",\n // ]\n if(options.displayAs === 'split'){\n return [\n \"switch-per-page\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 5,\n \"showPageInput\": false\n }\n ]\n }else{\n return [\n // \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 5,\n \"showPageInput\": false\n }\n ]\n }\n }\n else {\n if(options && options.isRelated){\n return [\n \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 10,\n \"showPageInput\": false\n }\n ]\n\n }\n else{\n const no_pagination = mainObject.paging && (mainObject.paging.enabled === false);\n const is_lookup = options.isLookup;\n const commonConfig = [\n \"statistics\",\n {\n \"type\": \"pagination\",\n \"maxButtons\": 10,\n \"showPageInput\": false\n }\n ];\n\n if (no_pagination && is_lookup) {\n return commonConfig;\n } else {\n return [\"switch-per-page\", ...commonConfig];\n }\n }\n }\n}\n\nexport async function getObjectFilter(objectSchema, fields, options) {\n const fieldsFilterBarSchema = await getObjectListHeaderFieldsFilterBar(objectSchema, null, options);\n let onSubmitSuccScript = `\n let isLookup = event.data.isLookup;\n if(isLookup){\n return;\n }\n // 列表搜索栏字段值变更后立刻触发提交表单执行crud搜索,所以这里需要额外重算crud高度及筛选按钮红色星号图标显示隐藏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event(\"resize\"))\n }, 1000);\n }\n resizeWindow();\n const scope = event.context.scoped;\n // let filterFormValues = event.data;\n let filterForm = SteedosUI.getClosestAmisComponentByType(scope, \"form\");\n let filterFormService = SteedosUI.getClosestAmisComponentByType(filterForm.context, \"service\");\n // 使用event.data的话,并不能拿到本地存储中的过滤条件,所以需要从filterFormService中取。\n let filterFormValues = filterFormService.getData()\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, \"crud\");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, \"service\");\n crudService && crudService.setData({isFieldsFilterEmpty});\n `;\n return {\n \"title\": \"\",\n \"submitText\": \"\",\n \"className\": \"\",\n \"debug\": false,\n \"mode\": \"normal\",\n \"wrapWithPanel\": false,\n \"body\": [\n fieldsFilterBarSchema\n ],\n \"onEvent\": {\n \"submitSucc\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onSubmitSuccScript\n }\n ]\n }\n }\n }\n}\n","import * as graphql from '../graphql';\nimport * as Field from './index';\nimport * as Tpl from '../tpl';\nimport * as _ from 'lodash';\nimport { getUISchema, getListViewSort } from '../../../objects';\nimport { getLookupListView } from '../util';\n\nconst refUsersObjectName = \"space_users\";\nconst refOrgsObjectName = \"organizations\";\n\nasync function getSource(field, ctx) {\n // data.query 最终格式 \"{ \\tleftOptions:organizations(filters: {__filters}){value:_id,label:name,children}, children:organizations(filters: {__filters}){ref:_id,children}, defaultValueOptions:space_users(filters: {__options_filters}){user,name} }\"\n const refObjectName = ctx.objectName;\n const data = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"value\" }, { name: ctx.labelField, alias: \"label\" }, { name: \"children\" }], {\n alias: \"options\",\n filters: \"{__filters}\"\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // const childrenData = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"ref\" }], {\n // alias: \"children\",\n // filters: \"{__filters}\"\n // });\n // childrenData.query = childrenData.query.replace(/,count\\:.+/, \"}\");\n // data.query = data.query.replace(/}$/, \",\" + childrenData.query.replace(/{(.+)}/, \"$1}\"));\n const defaultValueOptionsData = await graphql.getFindQuery({ name: refObjectName }, null, [{ name: ctx.valueField, alias: \"value\" }, { name: ctx.labelField, alias: \"label\" }], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\"\n });\n defaultValueOptionsData.query = defaultValueOptionsData.query.replace(/,count\\:.+/, \"}\");\n data.query = data.query.replace(/}$/, \",\" + defaultValueOptionsData.query.replace(/{(.+)}/, \"$1}\"))\n let valueField = `${field.name}`;\n if(field._prefix){\n // field._prefix一般来object类型字段的子字段的父字段api名称,比如流程对象的字段perms.users_can_add前缀为perms.\n valueField = `${field._prefix}${field.name}`;\n }\n if(ctx.fieldNamePrefix){\n // ctx.fieldNamePrefix一般来自列表搜索,值为__searchable__\n valueField = `${ctx.fieldNamePrefix}${valueField}`;\n }\n data.$value = `$${valueField}`;\n data['$'] = `$$`;\n const requestAdaptor = `\n var filters = [['parent', '=', null]];\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"${ctx.valueField}\", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [[\"${ctx.valueField}\", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;\n const adaptor = `\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a[\"value\"]=== b[\"value\"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi(),\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n }\n}\n\nasync function getDeferApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:{__object_name}(filters:{__filters}){{__fields}} }\"\n const refObjectName = ctx.objectName;\n const data = await graphql.getFindQuery({ name: \"{__object_name}\" }, null, [], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n let filters = field.filters;\n if(typeof filters === \"string\"){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(typeof filters === \"function\"){\n filters = filters(field);\n }\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 字段要根据请求参数动态生成,写死为__fields后续在发送适配器中替换\n data.query = data.query.replace(\"{_id}\", \"{{__fields}}\");\n const requestAdaptor = `\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = \"\";\n if (dep) {\n objectName = \"${refObjectName}\";\n fields = \"_id,value:${ctx.valueField},label:${ctx.labelField},children\";\n filters = [['parent', '=', dep]];\n sort = \"${ctx.sort}\";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n const adaptor = `\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&dep=${value}\",\n \"requestAdaptor\": requestAdaptor,\n \"adaptor\": adaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nasync function getSearchApi(field, ctx) {\n // data.query 最终格式 \"{ \\toptions:space_users(filters: {__filters}){user,name,value:user,label:name}}\"\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n const data = await graphql.getFindQuery({ name: refUsersObjectName }, null, [{ name: \"user\" }, { name: \"name\" }, { name: \"user\", alias: \"value\" }, { name: \"name\", alias: \"label\" }], {\n alias: \"options\",\n // filters: \"{__filters}\",\n queryOptions: `filters: {__filters}, sort: \"{__sort}\"`\n });\n data.query = data.query.replace(/,count\\:.+/, \"}\");\n // 传入的默认过滤条件,比如[[\"name\", \"contains\", \"三\"]],将会作为基本过滤条件\n const filters = field.filters;\n const requestAdaptor = `\n var term = api.query.term;\n var filters;\n var sort = \"\";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${filters && JSON.stringify(filters)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n var fieldsForSearch = [\"name\", \"username\", \"email\", \"mobile\"];\n var termFilters = [];\n fieldsForSearch.forEach(function (field) {\n termFilters.push([field, 'contains', term]);\n termFilters.push(\"or\");\n });\n termFilters.pop();\n filters.push(termFilters);\n sort = \"${ctx.usersSort}\";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;\n return {\n \"method\": \"post\",\n \"url\": graphql.getApi() + \"&term=${term}\",\n \"requestAdaptor\": requestAdaptor,\n \"data\": data,\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getRefListViewSort(refObject){\n let listView = getLookupListView(refObject);\n \n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n return sort;\n}\n\nexport async function lookupToAmisTreeSelect(field, readonly, ctx) {\n if (!field) {\n return {}\n }\n\n if (!ctx) {\n ctx = {};\n }\n const amisSchema = {\n \"type\": Field.getAmisStaticFieldType('tree-select', readonly)\n };\n\n if (readonly) {\n amisSchema.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n else{\n const refObjectConfig = await getUISchema(ctx.objectName);\n ctx.sort = getRefListViewSort(refObjectConfig);\n Object.assign(amisSchema, {\n // \"labelField\": ctx.labelField,\n // \"valueField\": ctx.valueField,\n \"multiple\": field.multiple,\n \"searchable\": field.searchable,\n \"extractValue\": true,\n \"hideNodePathLabel\": true,\n \"clearable\": true,\n \"source\": await getSource(field, ctx),\n \"deferApi\": await getDeferApi(field, ctx),\n // \"searchApi\": await getSearchApi(field, ctx)\n });\n if(field.multiple){\n // 单选时如果配置joinValues为false,清空字段值会把字段值设置为空数组,这是amis人员单选功能的bug,普通的select没有这个问题\n Object.assign(amisSchema, {\n \"joinValues\": false,\n });\n }\n if (typeof amisSchema.searchable !== \"boolean\") {\n amisSchema.searchable = true;\n }\n const onEvent = field.onEvent;\n if (onEvent) {\n amisSchema.onEvent = onEvent;\n }\n }\n return amisSchema;\n}\n","import { getUISchema } from '../../../objects';\nimport * as _ from 'lodash'\nimport * as graphql from '../graphql'\nimport * as Tpl from '../tpl';\nimport * as Field from './index';\nimport * as Table from './table';\nimport * as List from './list';\nimport { getLookupListView } from '../util';\nimport { getSelectUserSchema } from './user';\nimport { getObjectHeaderToolbar, getObjectFooterToolbar, getObjectFilter } from './../toolbar';\nimport { getListViewSort } from './../../../objects';\nimport { lookupToAmisTreeSelect } from './tree_select';\nimport * as standardNew from '../../../../schema/standard_new.amis'\nimport { i18next } from \"../../../../i18n\";\n\nconst keywordsSearchBoxName = `__keywords_lookup`;\n\nexport const getReferenceTo = async (field)=>{\n let referenceTo = field.reference_to;\n if(!referenceTo){\n return ;\n }\n\n if(referenceTo === 'users'){\n referenceTo = 'space_users';\n field.reference_to_field = 'user'\n }\n\n const refObjectConfig = await getUISchema(referenceTo)\n\n // 如果lookup 引用的对象未定义\n if (!refObjectConfig)\n return null;\n\n let valueField = null;\n let valueFieldName = field.reference_to_field;\n if(!valueFieldName){\n valueFieldName = refObjectConfig.idFieldName || '_id';\n }\n if(valueFieldName === '_id'){\n valueField = {name: '_id', label: 'ID', type: 'text', toggled: false};\n }else{\n valueField = refObjectConfig.fields[valueFieldName] || {name: valueFieldName};\n }\n return {\n objectName: referenceTo,\n valueField: valueField,\n labelField: refObjectConfig.fields[refObjectConfig.NAME_FIELD_KEY || 'name'],\n NAME_FIELD_KEY: refObjectConfig.NAME_FIELD_KEY || 'name'\n }\n}\n\nexport function getLookupSapceUserTreeSchema(isMobile){\n const treeSchema = {\n \"type\": \"input-tree\",\n \"className\":\"steedos-select-user-tree\",\n \"inputClassName\": \"p-0\",\n \"source\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"adaptor\": \"if (payload.data.treeCache == true) {\\n return payload;\\n }\\n const records = payload.data.options;\\n const treeRecords = [];\\n const getChildren = (records, childrenIds) => {\\n if (!childrenIds) {\\n return;\\n }\\n const children = _.filter(records, (record) => {\\n return _.includes(childrenIds, record.value)\\n });\\n _.each(children, (item) => {\\n if (item.children) {\\n item.children = getChildren(records, item.children)\\n }\\n })\\n return children;\\n }\\n\\n const getRoot = (records) => {\\n for (var i = 0; i < records.length; i++){\\n records[i].noParent = 0;\\n if (!!records[i].parent) {\\n biaozhi = 1\\n for (var j = 0; j < records.length; j++){\\n if (records[i].parent == records[j].value)\\n biaozhi = 0;\\n }\\n if (biaozhi == 1) records[i].noParent = 1;\\n } else records[i].noParent = 1;\\n }\\n }\\n getRoot(records);\\n console.log(records)\\n\\n _.each(records, (record) => {\\n if (record.noParent ==1) {\\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\\n }\\n });\\n console.log(treeRecords)\\n\\n payload.data.options = treeRecords;\\n payload.data.treeCache = true;\\n return payload;\\n \",\n \"requestAdaptor\": \"\\n \",\n \"data\": {\n \"query\": \"{options:organizations(filters:[\\\"hidden\\\", \\\"!=\\\", true],sort:\\\"sort_no desc\\\"){value:_id label:name,parent,children}}\"\n },\n \"messages\": {\n },\n \"cache\": 300000\n },\n \"onEvent\": {\n \"change\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": `\n const scope = event.context.scoped;\n var filterFormValues={\n \"__searchable__organizations_parents\":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === \"crud\";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n `\n },\n {\n \"actionType\": \"custom\",\n \"script\": \" if(window.innerWidth < 768){ document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open'); }\"\n }\n ]\n }\n },\n \"label\": \"\",\n \"name\": \"organizations\",\n \"multiple\": false,\n \"joinValues\": false,\n \"clearValueOnHidden\": false,\n \"fieldName\": \"organizations\",\n \"hideRoot\": true,\n \"initiallyOpen\": false,\n \"extractValue\": true,\n \"onlyChildren\": true,\n \"treeContainerClassName\": \"no-border\",\n \"showIcon\": false,\n \"enableNodePath\": false,\n \"autoCheckChildren\": false,\n \"searchable\": true,\n \"searchConfig\": {\n \"sticky\": true,\n \"placeholder\": \"查找部门\"\n },\n \"unfoldedLevel\": 2,\n \"originPosition\": \"left-top\"\n }\n const tree = []\n if(isMobile){\n tree.push({\n type: \"action\",\n body:[\n {\n type: \"action\",\n body:[\n treeSchema\n ],\n className:\"h-full w-[240px]\"\n }\n ],\n className: \"absolute inset-0 steedos-select-user-sidebar\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.querySelector('.steedos-select-user-sidebar').classList.remove('steedos-select-user-sidebar-open')\"\n }\n ]\n }\n },\n id: \"steedos_crud_toolbar_select_user_tree\"\n })\n tree.push({\n \"type\": \"button\",\n \"label\": \"组织\",\n \"icon\": \"fa fa-sitemap\",\n \"className\": \"bg-white p-2 rounded border-gray-300 text-gray-500\",\n \"align\": \"left\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": \"document.querySelector('.steedos-select-user-sidebar').classList.toggle('steedos-select-user-sidebar-open')\"\n }\n ]\n }\n },\n \"id\": \"steedos_crud_toolbar_organization_button\"\n })\n }else{\n tree.push(treeSchema)\n }\n \n return tree;\n}\n\nexport async function lookupToAmisPicker(field, readonly, ctx){\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return ;\n }\n const refObjectConfig = await getUISchema(referenceTo.objectName);\n\n ctx.idFieldName = refObjectConfig.idFieldName\n ctx.objectName = refObjectConfig.name\n\n let tableFields = [];\n const searchableFields = [];\n\n let fieldsArr = [];\n \n const isMobile = window.innerWidth < 768;\n\n let listView = getLookupListView(refObjectConfig);\n let listName = listView && listView.name;\n if (listView && listView.columns) {\n _.each(listView.columns, function (column) {\n if (_.isString(column) && refObjectConfig.fields[column]) {\n fieldsArr.push(refObjectConfig.fields[column]);\n } else if (_.isObject(column) && refObjectConfig.fields[column.field]) {\n fieldsArr.push(\n Object.assign({}, refObjectConfig.fields[column.field], {\n width: column.width,\n wrap: column.wrap,\n })\n );\n }\n });\n }else{\n _.each(refObjectConfig.fields, (field, field_name)=>{\n if(field_name != '_id' && !field.hidden){\n if(!_.has(field, \"name\")){\n field.name = field_name\n }\n fieldsArr.push(field)\n }\n });\n // 没有视图权限时,取对象上前5个字段,按sort_no排序\n fieldsArr = _.sortBy(fieldsArr, \"sort_no\").slice(0,5);\n }\n\n _.each(fieldsArr,function(field){\n if(!_.find(tableFields, function(f){\n return f.name === field.name\n })){\n tableFields.push(field)\n }\n });\n\n _.each(refObjectConfig.fields, function (field) {\n if(Field.isFieldQuickSearchable(field, refObjectConfig.NAME_FIELD_KEY)){\n searchableFields.push(field.name);\n }\n });\n\n const fields = {\n [referenceTo.labelField.name]: referenceTo.labelField,\n [referenceTo.valueField.name]: referenceTo.valueField\n };\n\n _.each(tableFields, (tableField)=>{\n if(!tableField.hidden){\n fields[tableField.name] = tableField;\n }\n });\n\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n\n const source = await getApi(refObjectConfig, null, fields, {expand: true, alias: 'rows', queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n \n if(source.url && !ctx.inFilterForm){\n const depend_on = [];\n const sendOn = [];\n _.each(field.depend_on, (fName)=>{\n depend_on.push(`depend_on_${fName}=\\${${fName}}`)\n sendOn.push(`this.${fName}`)\n })\n if(depend_on.length > 0){\n source.url = `${source.url}?${depend_on.join('&')}`;\n source.sendOn = `${sendOn.join(' && ')}`\n }\n }\n \n source.data.$term = \"$term\";\n source.data.$self = \"$$\";\n \n source.requestAdaptor = `\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n let fieldValue;\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [[\"${referenceTo.valueField.name}\", \"=\", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [[\"${referenceTo.valueField.name}\", \"=\", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(${referenceTo?.objectName === \"space_users\"} && ${field.reference_to_field === \"user\"}){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.${keywordsSearchBoxName}, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n filters.push(keywordsFilters);\n }\n\n var fieldFilters = ${JSON.stringify(field.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${ctx.inFilterForm};\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${refObjectConfig.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `\n source.adaptor = `\n const enable_tree = ${refObjectConfig.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n // 这里不可以用_.pick函数让payload只返回labelField和valueField,因为字段上配置的amis autoFill功能可能依赖了其他字段\n /*\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, [\"${referenceTo.labelField.name}\", \"${referenceTo.valueField.name}\"]);\n })\n payload.data.rows = rows;\n */\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `;\n if(field.optionsFunction || field._optionsFunction){\n source.adaptor = `\n payload.data.rows = eval(${field.optionsFunction || field._optionsFunction})(api.data.$self);\n return payload;\n `\n }\n let top = 20;\n\n if(refObjectConfig.paging && refObjectConfig.paging.enabled === false){\n top = 1000;\n };\n\n\n let pickerSchema = null;\n if(false){\n // if(ctx.formFactor === 'SMALL'){\n pickerSchema = await List.getListSchema(tableFields, {\n top: top,\n ...ctx,\n actions: false\n })\n }else{\n let labelFieldName = refObjectConfig.NAME_FIELD_KEY || 'name';\n // organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.\n if(refObjectConfig.name === 'organizations'){\n labelFieldName = 'name';\n }\n pickerSchema = await Table.getTableSchema(tableFields, {\n labelFieldName,\n top: top,\n isLookup: true,\n ...ctx\n })\n\n pickerSchema.affixHeader = false;\n\n var headerToolbarItems = [];\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\"){\n headerToolbarItems = getLookupSapceUserTreeSchema(isMobile);\n pickerSchema.className = pickerSchema.className || \"\" + \" steedos-select-user\";\n }\n\n pickerSchema.headerToolbar = getObjectHeaderToolbar(refObjectConfig, fieldsArr, ctx.formFactor, { headerToolbarItems, isLookup: true, keywordsSearchBoxName });\n const isAllowCreate = refObjectConfig.permissions.allowCreate;\n const isCreate = _.isBoolean(field.create) ? field.create : true;\n // lookup字段配置过滤条件就强制不显示新建按钮\n let isHasFilters = (field.filters || field._filtersFunction) ? true : false;\n if (isAllowCreate && isCreate && !isHasFilters) {\n const new_button = await standardNew.getSchema(refObjectConfig, { appId: ctx.appId, objectName: refObjectConfig.name, formFactor: ctx.formFactor });\n new_button.align = \"right\";\n // 保持快速搜索放在最左侧,新建按钮往里插,而不是push到最后\n pickerSchema.headerToolbar.splice(pickerSchema.headerToolbar.length - 1, 0, new_button);\n }\n pickerSchema.footerToolbar = refObjectConfig.enable_tree ? [] : getObjectFooterToolbar(refObjectConfig,ctx.formFactor,{isLookup: true});\n if (ctx.filterVisible !== false) {\n pickerSchema.filter = await getObjectFilter(refObjectConfig, fields, {\n ...ctx,\n isLookup: true,\n keywordsSearchBoxName\n });\n }\n pickerSchema.data = Object.assign({}, pickerSchema.data, {\n \"&\": \"$$\",\n \"objectName\": refObjectConfig.name,\n \"uiSchema\": refObjectConfig,\n \"listName\": listName,// 需要按视图取可搜索项\n \"isLookup\": true\n });\n\n if(!pickerSchema.onEvent){\n pickerSchema.onEvent = {}\n }\n\n pickerSchema.onEvent[`@data.changed.${refObjectConfig.name}`] = {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n },\n {\n \"actionType\": \"custom\",\n \"script\": `\n const masterRecord = event.data._master && event.data._master.record;\n const fieldConfig = ${JSON.stringify(field)};\n let reference_to = fieldConfig.reference_to;\n let saveValue;\n const newRecord = {\n _id: event.data.result.data.recordId,\n ...event.data.__super.__super\n }\n const saveField = fieldConfig.reference_to_field || '_id';\n const saveFieldValue = newRecord[saveField];\n\n if( fieldConfig._reference_to && (_.isArray(fieldConfig._reference_to) || _.isFunction(fieldConfig._reference_to) || fieldConfig._reference_to.startsWith('function') ) ){\n \n const fieldValue = masterRecord ? masterRecord[fieldConfig.name] : {o: reference_to, ids: []};\n const baseSaveValue = {\n o: reference_to,\n ids: [saveFieldValue]\n };\n if(fieldValue && fieldValue.o){\n if(fieldValue.o === reference_to){\n saveValue = fieldConfig.multiple ? { o: reference_to, ids: fieldValue.ids.concat(saveFieldValue)} : baseSaveValue;\n }else{\n saveValue = baseSaveValue;\n }\n }else{\n saveValue = baseSaveValue;\n }\n\n }else{\n if(fieldConfig.multiple){\n // TODO: 连续新建多个记录时,因为获取的主记录不是实时的,所以只会勾选最后一个新建的记录。\n const fieldValue = (masterRecord && masterRecord[fieldConfig.name]) || [];\n saveValue = fieldValue.concat(saveFieldValue);\n }else{\n saveValue = saveFieldValue;\n }\n }\n \n const ctx = ${JSON.stringify(ctx)};\n const componentId = ctx.defaults.formSchema.id;\n doAction({\n actionType: 'setValue',\n componentId: componentId, \n args: {\n value: { [fieldConfig.name]: saveValue }\n }\n });\n `\n }\n ]\n }\n }\n\n if(field.pickerSchema){\n pickerSchema = Object.assign({}, pickerSchema, field.pickerSchema)\n }\n\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\" && isMobile){\n //手机端选人控件只保留部分toolbar\n pickerSchema.headerToolbar = pickerSchema.headerToolbar && pickerSchema.headerToolbar.filter(function(item){\n if([\"steedos_crud_toolbar_quick_search\",\"steedos_crud_toolbar_filter\",\"steedos_crud_toolbar_select_user_tree\",\"steedos_crud_toolbar_organization_button\"].indexOf(item.id) > -1){\n return true;\n }else{\n return false;\n }\n })\n pickerSchema.footerToolbar = [\"pagination\"]\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('picker', readonly),\n modalTitle: i18next.t('frontend_form_please_select') + \" \" + refObjectConfig.label,\n labelField: referenceTo.labelField.name,\n valueField: referenceTo.valueField.name,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n modalMode: 'dialog', //TODO 设置 dialog 或者 drawer,用来配置弹出方式\n source: source,\n size: \"lg\",\n pickerSchema: pickerSchema,\n joinValues: false,\n extractValue: true\n }\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}\n\nexport async function lookupToAmisSelect(field, readonly, ctx){\n let referenceTo = await getReferenceTo(field);\n const valueFieldKey = referenceTo && referenceTo.valueField?.name || '_id' ;\n // const labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';\n\n let apiInfo;\n let defaultValueOptionsQueryData;\n if(referenceTo){\n // 字段值单独走一个请求合并到source的同一个GraphQL接口中\n defaultValueOptionsQueryData = await graphql.getFindQuery({ name: referenceTo.objectName }, null, [\n Object.assign({}, referenceTo.labelField, {alias: 'label'}),\n Object.assign({}, referenceTo.valueField, {alias: 'value'})\n ], {\n alias: \"defaultValueOptions\",\n filters: \"{__options_filters}\",\n count: false\n });\n apiInfo = await getApi({\n name: referenceTo.objectName\n }, null, [\n Object.assign({}, referenceTo.labelField, {alias: 'label'}),\n Object.assign({}, referenceTo.valueField, {alias: 'value'})\n ], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: \"{__sort}\"`});\n\n apiInfo.adaptor = `\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a[\"value\"]=== b[\"value\"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n `;\n }else{\n apiInfo = {\n method: \"post\",\n url: graphql.getApi(),\n data: {query: '{objects(filters: [\"_id\", \"=\", \"-1\"]){_id}}', $: \"$$\"},\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n\n const refObjectConfig = referenceTo && await getUISchema(referenceTo.objectName);\n let listView = getLookupListView(refObjectConfig);\n\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n\n // 列表视图搜索栏中,即inFilterForm=true时,不需要执行depend_on\n if(apiInfo.url && !ctx.inFilterForm){\n const depend_on = [];\n const sendOn = [];\n _.each(field.depend_on, (fName)=>{\n depend_on.push(`depend_on_${fName}=\\${${fName}}`)\n sendOn.push(`this.${fName}`)\n })\n if(depend_on.length > 0){\n apiInfo.url = `${apiInfo.url}?${depend_on.join('&')}`;\n apiInfo.sendOn = `${sendOn.join(' && ')}`\n }\n }\n \n apiInfo.data.$term = \"$term\";\n // apiInfo.data.$value = `$${field.name}.${referenceTo ? referenceTo.valueField.name : '_id'}`;\n apiInfo.data.$value = ctx.isRefToMutiple ? `$${field.name}.ids` : `$${field.name}`;\n _.each(field.depend_on, function(fName){\n apiInfo.data[fName] = `$${fName}`;\n })\n apiInfo.data['$'] = `$$`;\n apiInfo.data['rfield'] = `\\${object_name}`;\n // [[\"_id\", \"=\", \"$${field.name}._id\"],\"or\",[\"name\", \"contains\", \"$term\"]]\n apiInfo.requestAdaptor = `\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [[\"${referenceTo?.NAME_FIELD_KEY || 'name'}\", \"contains\", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [[\"_id\", \"=\", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(field.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n if(${referenceTo?.objectName === \"space_users\"} && ${field.reference_to_field === \"user\"}){\n if(filters.length > 0){\n filters = [ [\"user_accepted\", \"=\", true], \"and\", filters ]\n }else{\n filters = [[\"user_accepted\", \"=\", true]];\n }\n }\n\n const inFilterForm = ${ctx.inFilterForm};\n const filtersFunction = ${field.filtersFunction || field._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = \"${sort}\";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = \"${field.multiple ? \"in\" : \"=\"}\";\n var optionsFilters = [[\"${valueFieldKey}\", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n const defaultValueOptionsQueryData = ${JSON.stringify(defaultValueOptionsQueryData)};\n const defaultValueOptionsQuery = defaultValueOptionsQueryData?.query?.replace(/^{/,\"\").replace(/}$/,\"\");\n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [[\"${valueFieldKey}\", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n if(defaultValueOptionsQuery){\n api.data.query = \"{\"+api.data.query.replace(/^{/,\"\").replace(/}$/,\"\")+\",\"+defaultValueOptionsQuery+\"}\";\n } \n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `\n let labelField = referenceTo ? referenceTo.labelField.name : '';\n let valueField = referenceTo ? referenceTo.valueField.name : '';\n if(field.optionsFunction || field._optionsFunction){\n apiInfo.adaptor = `\n var options = eval(${field.optionsFunction || field._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `\n labelField = 'label';\n valueField = 'value';\n }else if(field.options){\n apiInfo.adaptor = `\n var options = ${JSON.stringify(field.options)}\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `\n labelField = 'label';\n valueField = 'value';\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('select', readonly),\n joinValues: false,\n extractValue: true,\n clearable: true,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n // labelField: labelField,\n // valueField: valueField,\n // source: apiInfo,\n autoComplete: apiInfo,\n searchable: true,\n }\n //删除xlink:href中的rootUrl前缀,解决客户端svg为空的问题\n const select_menuTpl = `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-\\${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\\${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>\\${label}</span>\n </span>`\n data.menuTpl = \"${icon ? `\"+select_menuTpl+\"` : label}\"\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}\n\nasync function getApi(object, recordId, fields, options){\n const data = await graphql.getFindQuery(object, recordId, fields, options);\n return {\n method: \"post\",\n url: graphql.getApi(),\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport async function lookupToAmis(field, readonly, ctx){\n if(!ctx){\n ctx = {};\n }\n // console.log(`lookupToAmis====`, field, readonly, ctx)\n if(readonly){\n return {\n type: Field.getAmisStaticFieldType('picker', readonly),\n tpl: Tpl.getRelatedFieldTpl(field, ctx)\n }\n }\n if(field.reference_to && !_.isString(field.reference_to) && !readonly){\n return {\n type: 'steedos-field-lookup',\n field,\n readonly,\n ctx,\n }\n // return await lookupToAmisGroup(field, readonly, ctx);\n }\n\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return await lookupToAmisSelect(field, readonly, ctx);\n }\n\n if(referenceTo.objectName === \"space_users\" && field.reference_to_field === \"user\"){\n ctx = Object.assign({}, ctx, {\n onlyDisplayLookLabel: true\n });\n if(ctx.idsDependOn){\n // ids人员点选模式\n return await lookupToAmisIdsPicker(field, readonly, ctx);\n }\n // 左侧树右侧人员列表的下拉框模式,不再支持,而是执行下面的lookupToAmisPicker函数弹出选人窗口\n // return await lookupToAmisSelectUser(field, readonly, ctx);\n }\n\n const refObject = await getUISchema(referenceTo.objectName);\n\n // 优先取字段中配置的enable_enhanced_lookup,字段上没配置时,才从对象上取enable_enhanced_lookup属性\n let enableEnhancedLookup = _.isBoolean(field.enable_enhanced_lookup) ? field.enable_enhanced_lookup : refObject.enable_enhanced_lookup;\n // 默认使用下拉框模式显示lookup选项,只能配置了enable_enhanced_lookup才使用弹出增强模式\n if(enableEnhancedLookup == true){\n return await lookupToAmisPicker(field, readonly, ctx);\n }else if(refObject.enable_tree) {\n return await lookupToAmisTreeSelect(field, readonly, Object.assign({}, ctx, {\n labelField: referenceTo.labelField?.name || 'name',\n valueField: referenceTo.valueField?.name || '_id',\n objectName: referenceTo.objectName\n }));\n }else{\n return await lookupToAmisSelect(field, readonly, ctx);\n }\n}\n\nexport async function lookupToAmisSelectUser(field, readonly, ctx){\n return getSelectUserSchema(field, readonly, ctx);\n}\n\nexport async function lookupToAmisIdsPicker(field, readonly, ctx){\n return getIdsPickerSchema(field, readonly, ctx);\n}\n\nexport async function getIdsPickerSchema(field, readonly, ctx){\n if(!ctx){\n ctx = {};\n }\n let referenceTo = await getReferenceTo(field);\n if(!referenceTo){\n return ;\n }\n const refObjectConfig = await getUISchema(referenceTo.objectName);\n\n const { idsDependOn } = ctx;\n\n const fields = {\n [referenceTo.labelField.name]: referenceTo.labelField,\n [referenceTo.valueField.name]: referenceTo.valueField\n };\n\n const tableFields = [referenceTo.labelField];\n\n const source = await getApi(refObjectConfig, null, fields, {expand: true, alias: 'rows', queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n \n source.data.$term = \"$term\";\n source.data.$self = \"$$\";\n\n if(idsDependOn && source.url && !ctx.inFilterForm){\n source.sendOn = `\\${${idsDependOn} && ${idsDependOn}.length}`;\n source.url = `${source.url}&depend_on_${idsDependOn}=\\${${idsDependOn}|join}`;\n }\n\n let listView = getLookupListView(refObjectConfig);\n let sort = \"\";\n if(listView){\n sort = getListViewSort(listView);\n }\n \n source.requestAdaptor = `\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value && selfData.value.indexOf(',') > 0){\n filters = [[\"${referenceTo.valueField.name}\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"${referenceTo.valueField.name}\", \"=\", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = \"${idsDependOn}\";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push([\"${referenceTo.valueField.name}\", \"=\", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `;\n\n let top = 1000;\n\n let pickerSchema = null;\n if(ctx.formFactor === 'SMALL'){\n pickerSchema = await List.getListSchema(tableFields, {\n top: top,\n ...ctx,\n actions: false\n })\n }else{\n pickerSchema = await Table.getTableSchema(tableFields, {\n labelFieldName: refObjectConfig.NAME_FIELD_KEY,\n top: top,\n isLookup: true,\n ...ctx\n })\n\n pickerSchema.affixHeader = false;\n\n }\n\n const data = {\n type: Field.getAmisStaticFieldType('picker', readonly),\n labelField: referenceTo.labelField.name,\n valueField: referenceTo.valueField.name,\n modalMode: 'dialog', \n source: source,\n // disabledOn: this._master目的是相关表新建时禁止编辑关联字段; this.relatedKey目的是相关表编辑时禁止编辑关联字段,多选字段可以编辑。\n disabledOn: `${readonly} || ( (this._master && (this._master.relatedKey ==='${field.name}')) || ((this.relatedKey ==='${field.name}') && (${field.multiple} != true)) )`,\n size: \"lg\",\n pickerSchema: pickerSchema,\n joinValues: false,\n extractValue: true\n }\n if(field.multiple){\n data.multiple = true\n data.extractValue = true\n }\n\n if(ctx.value){\n data.value = ctx.value;\n }\n\n if(ctx.selectFirst != undefined){\n data.selectFirst = ctx.selectFirst;\n }\n\n if(readonly){\n data.tpl = await Tpl.getLookupTpl(field, ctx)\n }\n return data;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2023-01-13 17:27:54\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-08-28 17:45:38\n * @Description: \n */\nimport { i18next } from \"../../../../i18n\"\n\nexport const getMarkdownFieldSchema = (field, readonly, ctx)=>{\n if(readonly){\n return {\n \"type\": \"control\",\n \"label\": field.label,\n \"body\": {\n \"type\": \"markdown\",\n \"name\": field.name,\n \"options\": {\n \"linkify\": true,\n \"html\": true,\n \"breaks\": true\n }\n }\n }\n }else{\n return {\n \"type\": \"control\",\n \"label\": field.label,\n \"body\": [\n {\n \"type\": \"tabs\",\n \"tabsMode\": \"strong\",\n \"className\": \"steedos-markdown\",\n \"tabs\": [\n {\n \"title\": i18next.t('frontend_form_edit'),\n \"tab\": [\n {\n \"type\": \"editor\",\n \"name\": field.name,\n \"language\": \"markdown\",\n }\n ]\n },\n {\n \"title\": i18next.t('frontend_form_preview'),\n \"tab\": [\n {\n \"type\": \"markdown\",\n \"name\": field.name,\n \"options\": {\n \"linkify\": true,\n \"html\": true,\n \"breaks\": true\n }\n }\n ]\n }\n ]\n }\n ]\n }\n }\n}\n\nexport const getHtmlFieldSchema = (field, readonly, ctx)=>{\n if(readonly){\n // return {\n // \"type\": \"control\",\n // \"label\": field.label,\n // \"body\": {\n // \"type\": \"html\",\n // \"name\": field.name\n // }\n // }\n return {\n \"type\": \"input-rich-text\",\n \"receiver\": \"${context.rootUrl}/s3/images\",\n \"name\": field.name,\n \"options\": {\n \"menu\": {\n \"insert\": {\n \"title\": \"Insert\",\n \"items\": \"image link media addcomment pageembed codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents | insertdatetime\"\n }\n },\n \"plugins\": [\n \"autoresize\"\n ],\n // \"max_height\": 2000,\n \"statusbar\": false,\n \"readonly\": true,\n \"toolbar\": false,\n \"menubar\": false\n }\n }\n }else{\n return {\n \"type\": \"input-rich-text\",\n \"receiver\": \"${context.rootUrl}/s3/images\",\n \"options\":{\n \"menu\": {\n \"insert\": {\n \"title\": \"Insert\",\n \"items\": \"image link media addcomment pageembed codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents | insertdatetime\"\n }\n }\n },\n \"name\": field.name\n }\n // return {\n // \"type\": \"group\",\n // \"body\": [\n // {\n // \"type\": \"editor\",\n // \"name\": field.name,\n // \"language\": \"html\"\n // },\n // {\n // \"type\": \"html\",\n // \"name\": field.name\n // }\n // ]\n // }\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-28 14:52:55\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-07-28 16:16:29\n * @Description: \n */\nimport * as _ from 'lodash';\n\nconst AmisFormInputs = [\n 'text',\n 'date',\n 'file',\n \"avatar\",\n 'image',\n 'datetime',\n 'time',\n 'number',\n 'currency',\n 'percent',\n 'password',\n 'url',\n 'email'\n]\n\nexport function getAmisStaticFieldType(type, readonly, options){\n if(!readonly){\n if(_.includes(AmisFormInputs, type)){\n return `input-${type}`;\n }else if(type === 'location'){\n return \"location-picker\"\n }\n return type;\n }\n if(_.includes(['text','image'], type)){\n if('text' === type && options && options.amis && options.amis.tpl){\n return 'static';\n }\n if('image' === type && options && options.multiple){\n return `static-images`;\n }\n return `static-${type}`;\n }else if(type === 'url'){\n return \"input-url\"\n }else{\n return 'static';\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-28 14:15:09\n * @LastEditors: 孙浩林 sunhaolin@steedos.com\n * @LastEditTime: 2023-11-24 13:45:24\n * @Description: \n */\nimport { getAmisStaticFieldType } from './type';\n\nconst getFileTableName = (steedosField)=>{\n switch (steedosField.type ) {\n case 'avatar':\n return 'avatars'\n case 'image':\n return 'images'\n case 'file':\n return 'files'\n default:\n break;\n }\n};\n\nconst getAmisFieldType = (steedosField, readonly)=>{\n return getAmisStaticFieldType(steedosField.type === 'avatar' ? 'image' : steedosField.type, readonly, {multiple: steedosField.multiple});\n}\n\nexport const getAmisFileReadonlySchema = (steedosField)=>{\n const type = steedosField.type;\n const amisFieldType = getAmisFieldType(steedosField, true)\n if(_.includes(['avatar','image'], type)){\n return {\n type: amisFieldType,\n defaultImage: '',\n enlargeAble: true,\n showToolbar: true,\n }\n }\n if(type === 'file'){\n return {\n type: amisFieldType,\n tpl: `\n <% let fileData = data._display.${steedosField.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url+\"?download=1\" %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`\n }\n }\n}\n\nexport const getAmisFileEditSchema = (steedosField)=>{\n const tableName = getFileTableName(steedosField);\n const amisFieldType = getAmisFieldType(steedosField, false)\n let convertData = {\n type: amisFieldType,\n useChunk: false, // 关闭分块上传\n receiver: {\n method: \"post\",\n dataType: \"form-data\",\n url: `\\${context.rootUrl}/s3/${tableName}`,\n requestAdaptor: `\n const { _master, global,context } = api.body;\n // const { recordId, objectName } = _master;\n const { spaceId, userId, user } = global;\n /*\n record_id: recordId,\n parent: recordId,\n object_name: objectName,\n owner_name: user.name,\n space: spaceId,\n owner: userId\n */\n // 参考platform 2.2版本,附件字段保存时cfs.files.filerecord、cfs.images.filerecord表中的metadata下只保存space、owner两个属性值。\n api.data.append('space', spaceId);\n api.data.append('owner', userId);\n\n return api;\n `,\n adaptor: `\n const { context } = api.body; \n var rootUrl = context.rootUrl + \"/api/files/${tableName}/\";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n }\n if(steedosField.multiple){\n convertData.multiple = true;\n convertData.joinValues = false;\n convertData.extractValue = true;\n }\n return convertData;\n}\n\nexport const getAmisFileSchema = (steedosField, readonly)=>{\n return readonly ? getAmisFileReadonlySchema(steedosField) : getAmisFileEditSchema(steedosField);\n}","import { cloneDeep, includes } from 'lodash';\nimport { lookupToAmis } from './lookup';\nimport { getMarkdownFieldSchema, getHtmlFieldSchema } from './editor';\nimport * as Fields from '../fields';\nimport * as Tpl from '../tpl';\nimport * as File from './file';\nimport { getAmisStaticFieldType } from './type';\nimport * as _ from 'lodash'\n\nexport const QUICK_SEARCHABLE_FIELD_TYPES = [\"text\", \"textarea\", \"autonumber\", \"url\", \"email\"];\nexport const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];\nexport { getAmisStaticFieldType } from './type';\n// const Lookup = require('./lookup');\n\nexport function getBaseFields(readonly){\n let calssName = 'm-1';\n if(readonly){\n calssName = `${calssName}`\n }\n return [\n { \n name: \"createdInfo\", \n label: \"创建人\",\n type: \"static\",\n labelClassName: 'text-left',\n className: calssName,\n tpl: Tpl.getCreatedInfoTpl()\n },\n { \n name: \"modifiedInfo\", \n label: \"修改人\",\n type: \"static\",\n labelClassName: 'text-left',\n className: calssName,\n tpl: Tpl.getModifiedInfoTpl()\n }\n ]\n};\n\n\n\nexport function getAmisFieldType(sField){\n switch (sField.type) {\n case 'text':\n return 'text';\n case 'textarea':\n return 'textarea';\n case 'html':\n return 'html';\n case 'markdown':\n return 'markdown';\n case 'select':\n return 'select';\n case 'boolean':\n return 'checkbox';\n case 'date':\n return 'date';\n case 'datetime':\n return 'datetime';\n case 'number':\n return 'number';\n case 'currency':\n return 'number';\n case 'percent':\n return 'number'\n case 'password':\n return 'password';\n case 'lookup':\n // TODO 根据字段配置返回 select || picker\n return 'select';\n case 'master_detail':\n // TODO 根据字段配置返回 select || picker\n return 'picker';\n case 'autonumber':\n return 'text';\n case 'url':\n return 'url'\n case 'email':\n return 'email'\n case 'image':\n return 'image'\n case 'formula':\n //TODO\n break;\n case 'summary':\n //TODO\n break;\n case 'grid':\n return 'table';\n default:\n console.log('convertData default', sField.type);\n // convertData.type = field.type\n break;\n }\n\n};\n\nexport function getObjectFieldSubFields(mainField, fields){\n const newMainField = Object.assign({subFields: []}, mainField);\n const subFields = _.filter(fields, function(field){\n let result = field.name.startsWith(`${mainField.name}.`) && _.split(field.name, \".\").length < 3;\n if(result){\n field._prefix = `${mainField.name}.`\n }\n return result;\n });\n newMainField.subFields = subFields;\n return newMainField;\n}\n\nexport function getGridFieldSubFields(mainField, fields){\n const newMainField = Object.assign({subFields: []}, mainField);\n const subFields = _.filter(fields, function(field){\n let result = field.name.startsWith(`${mainField.name}.`)\n if(result){\n field._prefix = `${mainField.name}.`\n }\n return result;\n });\n newMainField.subFields = subFields;\n return newMainField;\n}\n\n/**\n * TODO 处理权限\n * @param {*} object steedos object\n * @param {*} userSession \n */\n export function getPermissionFields(object, userSession){\n const permissionFields = [];\n const fieldsArr = [];\n\t_.each(object.fields , (field, field_name)=>{\n\t\tif(!_.has(field, \"name\")){\n\t\t\tfield.name = field_name\n }\n\t\tfieldsArr.push(field)\n })\n _.each(_.sortBy(fieldsArr, \"sort_no\"), function(field){\n if(!field.hidden){\n permissionFields.push( Object.assign({}, field, {permission: {allowEdit: true}}))\n }\n })\n return permissionFields;\n}\n\n\nexport function getSelectFieldOptions(field){\n const dataType = field.data_type || 'text';\n const options = [];\n _.each(field.options, (item)=>{\n switch (dataType) {\n case 'number':\n options.push({label: item.label, value: Number(item.value), icon: item.icon});\n break;\n case 'text':\n options.push({label: item.label, value: String(item.value), icon: item.icon});\n break;\n case 'boolean':\n options.push({label: item.label, value: item.value === 'false' ? false : true, icon: item.icon});\n break;\n default:\n break;\n }\n });\n return options;\n}\n\nexport async function convertSFieldToAmisField(field, readonly, ctx) {\n // console.log('convertSFieldToAmisField====>', field, readonly, ctx)\n const isMobile = window.innerWidth <= 768;\n let rootUrl = null;\n // 创建人和修改人、创建时间和修改时间不显示\n if(_.includes(OMIT_FIELDS, field.name) && ctx.showSystemFields != true){\n return;\n }\n const baseData = {name: ctx.fieldNamePrefix ? `${ctx.fieldNamePrefix}${field.name}` : field.name, label: field.label, labelRemark: field.inlineHelpText, required: _.has(ctx, 'required') ? ctx.required : field.required};\n let convertData = {\n };\n // if(_.includes(OMIT_FIELDS, field.name)){\n // readonly = true;\n // }\n switch (field.type) {\n case 'text':\n convertData.type = getAmisStaticFieldType('text', readonly, field);\n break;\n case 'textarea':\n convertData.type = getAmisStaticFieldType('textarea', readonly);\n // convertData.tpl = `<b><%=data.${field.name}%></b>`;\n convertData.tpl = `<%=(data.${field.name} || \"\").split(\"\\\\n\").join('<br>')%>`;\n break;\n case 'html':\n convertData = getHtmlFieldSchema(field, readonly)\n break;\n // convertData = {\n // type: getAmisStaticFieldType('html', readonly)\n // }\n // break;\n case 'markdown':\n convertData = getMarkdownFieldSchema(field, readonly)\n break;\n // convertData = {\n // type: getAmisStaticFieldType('html', readonly)\n // }\n // break;\n case 'select':\n if(readonly){\n const map = Tpl.getSelectMap(field.options);\n convertData = {\n type: \"static-mapping\",\n name: field.name,\n label: field.label,\n map: map\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('select', readonly),\n joinValues: false,\n options: getSelectFieldOptions(field),\n extractValue: true,\n clearable: true,\n labelField: 'label',\n valueField: 'value'\n }\n const select_menuTpl = `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-\\${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#\\${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>\\${label}</span>\n </span>`\n convertData.menuTpl = \"${icon ? `\"+select_menuTpl+\"` : label}\"\n if(field.multiple){\n convertData.multiple = true\n convertData.extractValue = true\n }\n }\n\n break;\n case 'boolean':\n convertData = {\n type: getAmisStaticFieldType('checkbox', readonly),\n // option: field.inlineHelpText,\n tpl: readonly ? Tpl.getSwitchTpl(field) : null\n }\n break;\n case 'input-date-range':\n convertData = {\n type: \"input-date-range\",\n inputFormat: \"YYYY-MM-DD\",\n format:'YYYY-MM-DDT00:00:00.000[Z]',\n tpl: readonly ? Tpl.getDateTpl(field) : null,\n // utc: true,\n joinValues: false\n }\n break;\n case 'date':\n // convertData = isMobile && !readonly ? {\n // type: \"native-date\",\n // pipeIn: (value, data) => {\n // if (value) {\n // value = moment(value).utc().format('YYYY-MM-DD');\n // return value;\n // } else {\n // return \"\";\n // }\n\n // },\n // pipeOut: (value, oldValue, data) => {\n // if (value) {\n // value = moment(value).format('YYYY-MM-DDT00:00:00.000[Z]');\n // return value;\n // } else {\n // return \"\";\n // }\n // }\n // } : {\n // type: getAmisStaticFieldType('date', readonly),\n // inputFormat: \"YYYY-MM-DD\",\n // format:'YYYY-MM-DDT00:00:00.000[Z]',\n // tpl: readonly ? Tpl.getDateTpl(field) : null,\n // // utc: true\n // }\n convertData = {\n type: getAmisStaticFieldType('date', readonly),\n inputFormat: \"YYYY-MM-DD\",\n format:'YYYY-MM-DDT00:00:00.000[Z]',\n tpl: readonly ? Tpl.getDateTpl(field) : null,\n // utc: true\n }\n break;\n case 'input-datetime-range':\n convertData = {\n type: \"input-datetime-range\",\n inputFormat: 'YYYY-MM-DD HH:mm',\n format:'YYYY-MM-DDTHH:mm:ss.SSSZ',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n utc: true,\n joinValues: false\n }\n break;\n case 'datetime':\n // convertData = isMobile && !readonly ? {\n // type: \"combo\",\n // pipeIn: (value, data) => {\n // let revalue = {};\n // if (value && value != \"Invalid date\") {\n // value = moment(value).format('YYYY-MM-DD HH:mm:ss');\n // revalue[field.name + \"-native-date\"] = value.split(' ')[0];\n // revalue[field.name + \"-native-time\"] = value.split(' ')[1];\n // } else {\n // revalue[field.name + \"-native-date\"] = \"\";\n // revalue[field.name + \"-native-time\"] = \"\";\n // }\n // return revalue;\n // },\n // pipeOut: (value, oldValue, data) => {\n // let revalue = \"\";\n // if (value[field.name + \"-native-date\"] && value[field.name + \"-native-time\"]) {\n // revalue = value[field.name + \"-native-date\"] + \" \" + value[field.name + \"-native-time\"];\n // revalue = moment(revalue).utc().format('YYYY-MM-DDTHH:mm:ss.SSS[Z]');\n // }\n // return revalue;\n // },\n // items: [\n // {\n // type: \"native-date\",\n // name: field.name + \"-native-date\",\n // className: \"steedos-native-date\",\n // value: \"\"\n // },\n // {\n // type: \"native-time\",\n // name: field.name + \"-native-time\",\n // className: \"steedos-native-time\",\n // value: \"\"\n // }\n // ]\n // } : {\n // type: getAmisStaticFieldType('datetime', readonly),\n // inputFormat: 'YYYY-MM-DD HH:mm',\n // format: 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n // tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true,\n // }\n\n convertData = {\n type: getAmisStaticFieldType('datetime', readonly),\n inputFormat: 'YYYY-MM-DD HH:mm',\n format: 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n utc: true,\n }\n break;\n case 'input-time-range':\n convertData = {\n type: 'input-time-range',\n inputFormat: 'HH:mm',\n timeFormat:'HH:mm',\n format:'1970-01-01THH:mm:00.000[Z]',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true,\n joinValues: false\n }\n break;\n case 'time':\n // convertData = isMobile && !readonly ? {\n // type: \"native-time\",\n // pipeIn: (value, data) => {\n // if (value) {\n // value = moment(value).utc().format('HH:mm');\n // return value;\n // } else {\n // return \"\";\n // }\n\n // },\n // pipeOut: (value, oldValue, data) => {\n // if (value) {\n // value = moment('1970-01-01 ' + value).format('1970-01-01THH:mm:00.000[Z]');\n // return value;\n // } else {\n // return \"\";\n // }\n // }\n // } : {\n // type: getAmisStaticFieldType('time', readonly),\n // inputFormat: 'HH:mm',\n // timeFormat:'HH:mm',\n // format:'1970-01-01THH:mm:00.000[Z]',\n // tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // // utc: true\n // }\n convertData = {\n type: getAmisStaticFieldType('time', readonly),\n inputFormat: 'HH:mm',\n timeFormat:'HH:mm',\n format:'1970-01-01THH:mm:00.000[Z]',\n tpl: readonly ? Tpl.getDateTimeTpl(field) : null,\n // utc: true\n }\n break;\n case 'currency':\n case 'number':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getNumberTpl(field)\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('number', readonly),\n min: field.min,\n max: field.max,\n precision: field.scale\n }\n }\n \n break;\n case 'input-array':\n convertData = Object.assign({}, field, baseData);\n break;\n case 'input-range':\n convertData = {\n type: 'input-range',\n min: field.min,\n max: field.max,\n value: [0, 0],\n multiple: true,\n showInput: true\n }\n break;\n case 'percent':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }else{\n convertData = {\n type: getAmisStaticFieldType('number', readonly),\n min: field.min,\n max: field.max,\n precision: field.scale,\n suffix: \"%\",\n pipeIn: (value, data) => {\n if(value){\n // 因为例如 1.11 * 100 的值不是111,所以调整下。\n const result = value*100;\n return Number(result.toFixed(field.scale));\n }\n return value;\n },\n pipeOut: (value, oldValue, data) => {\n if(value){\n return value/100;\n }\n return value;\n },\n }\n }\n break;\n case 'password':\n convertData = {\n type: getAmisStaticFieldType('password', readonly),\n tpl: readonly ? Tpl.getPasswordTpl(field) : null\n }\n break;\n case 'lookup':\n convertData = await lookupToAmis(field, readonly, ctx) //TODO\n break;\n case 'master_detail':\n convertData = await lookupToAmis(field, readonly, ctx) //TODO\n break;\n case 'autonumber':\n if(readonly){\n convertData = {\n type: 'static-text'\n }\n }\n break;\n case 'url':\n convertData = {\n type: getAmisStaticFieldType('url', readonly, field),\n static: readonly ? true : false\n }\n if(readonly && field.show_as_qr){\n convertData = {\n type: \"control\",\n label: field.label,\n body: {\n type: \"qr-code\",\n codeSize: 128,\n name: field.name\n }\n }\n }\n break;\n case 'email':\n convertData = {\n type: getAmisStaticFieldType('email', readonly)\n }\n break;\n case 'location':\n // 申请ak后需要设置白名单; https://lbsyun.baidu.com/apiconsole/key/create#/home\n // console.log('fie==>', field.name, field);\n let ak = \"LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7\";\n let vendor = \"baidu\"; /* 'baidu' | 'gaode' */\n if(window.Meteor){\n const map_ak = Meteor.settings?.public?.amis?.map_ak;\n if(map_ak){\n ak = map_ak;\n }\n const map_vendor = Meteor.settings?.public?.amis?.map_vendor;\n if(map_vendor){\n vendor = map_vendor;\n }\n }\n \n const coordinatesType = field.coordinatesType || \"bd09\";\n convertData = {\n type: getAmisStaticFieldType('location', readonly),\n tpl: readonly ? Tpl.getLocationTpl(field) : null,\n ak,\n vendor,\n clearable: true,\n coordinatesType,\n label: field.label,\n pipeOut: (value, oldValue, data) => {\n if (value) {\n const lng = value.lng;\n const lat = value.lat;\n let coordinates = [lng,lat];\n if(window.coordtransform){\n if(coordinatesType.toLowerCase() === 'bd09'){\n const bd09togcj02 = window.coordtransform.bd09togcj02(lng,lat);\n coordinates = window.coordtransform.gcj02towgs84(bd09togcj02[0],bd09togcj02[1]);\n }else if(coordinatesType.toLowerCase() === 'gcj02'){\n coordinates = window.coordtransform.gcj02towgs84(lng,lat);\n }\n }\n value.wgs84 = {\n type: \"Point\",\n coordinates\n }\n return value; // 切换到数字之后的默认值\n }\n }\n }\n break;\n case 'avatar':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'image':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'file':\n convertData = File.getAmisFileSchema(field, readonly);\n break;\n case 'formula':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }\n break;\n case 'summary':\n if(readonly){\n convertData = {\n type: 'static-tpl',\n tpl: Tpl.getUiFieldTpl(field)\n }\n }\n break;\n case 'code':\n convertData = {\n type: \"editor\",\n disabled: readonly ? true : false,\n language: field.language,\n editorDidMount: new Function('editor', 'monaco', field.editorDidMount)\n }\n break;\n case 'toggle':\n convertData = {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: field.width,\n toggled: field.toggled,\n disabled: readonly,\n }\n break;\n case 'grid':\n if(field.subFields){\n convertData = {\n type: 'input-table',\n showIndex: true,\n columnsTogglable: false,\n strictMode:false,\n affixHeader: false, // 是否固定表头, 不固定表头, 否则form有y轴滚动条时, 表头会跟随滚动条滚动.\n needConfirm: false,\n editable: !readonly,\n addable: !readonly,\n removable: !readonly,\n draggable: !readonly,\n columns: []\n }\n // console.log(`convertData ==2====>`, field, convertData)\n for (const subField of field.subFields) {\n const subFieldName = subField.name.replace(`${field._prefix || ''}${field.name}.$.`, '').replace(`${field.name}.`, '');\n const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName, isTableField: true}), readonly, ctx);\n if(gridSub){\n delete gridSub.name\n delete gridSub.label\n const gridItemSchema = {\n name: subFieldName,\n label: subField.label,\n quickEdit: readonly ? false : gridSub\n };\n if([\"lookup\", \"boolean\", \"toggle\"].indexOf(subField.type) > -1){\n gridItemSchema.type = gridSub.type;\n gridItemSchema.tpl = gridSub.tpl;\n }\n convertData.columns.push(Object.assign({}, gridItemSchema, subField.amis, {name: subFieldName}))\n }\n }\n }\n break;\n case 'object':\n if(field.subFields){\n convertData = {\n type: 'combo',\n items: []\n };\n // console.log(`convertData ======>`, field, convertData)\n for (let subField of field.subFields) {\n let subFieldName = subField.name.replace(`${field.name}.$.`, '').replace(`${field.name}.`, '');\n if(subField.type === 'grid'){\n subField = await Fields.getGridFieldSubFields(subField, ctx.__formFields);\n }else{\n if(readonly){\n subFieldName = `${field.name}.${subFieldName}`\n }\n }\n const gridSub = await convertSFieldToAmisField(Object.assign({}, subField, {name: subFieldName}), readonly, ctx);\n if(gridSub){\n delete gridSub.name\n delete gridSub.label\n convertData.items.push(\n Object.assign({}, gridSub, {label: subField.label}, subField.amis, {\n name: subFieldName\n })\n )\n }\n }\n }\n break;\n default:\n // console.log('convertData default', field.type);\n // convertData.type = field.type\n break;\n }\n if(!_.isEmpty(convertData)){\n if(field.is_wide || convertData.type === 'group'){\n convertData.className = 'col-span-2 m-1';\n }else{\n convertData.className = 'm-1';\n }\n if(readonly){\n convertData.className = `${convertData.className} border-b`\n }\n if(readonly){\n convertData.quickEdit = false;\n }\n\n let fieldTypeClassName = ' steedos-' + convertData.type + (readonly ? '-readonly' : '-edit');\n if (convertData.className) {\n convertData.className = convertData.className + fieldTypeClassName;\n } else {\n convertData.className = fieldTypeClassName;\n }\n\n if(field.visible_on && !ctx.inFilterForm){\n // convertData.visibleOn = `\\$${field.visible_on.substring(1, field.visible_on.length -1).replace(/formData./g, '')}`;\n if(field.visible_on.startsWith(\"{{\")){\n convertData.visibleOn = `${field.visible_on.substring(2, field.visible_on.length -2).replace(/formData./g, 'data.')}`\n }else{\n convertData.visibleOn = `${field.visible_on.replace(/formData./g, 'data.')}`\n }\n }\n\n if(_.isString(baseData.required)){\n if(baseData.required.startsWith(\"{{\")){\n baseData.requiredOn = `${baseData.required.substring(2, baseData.required.length -2).replace(/formData./g, 'data.')}`;\n delete baseData.required;\n }\n }\n\n if(convertData.type === 'group'){\n convertData.body[0] = Object.assign({}, baseData, convertData.body[0], { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});\n return convertData\n }\n // if(ctx.mode === 'edit'){\n return Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name}, field.amis, {name: baseData.name});\n // }else{\n // return Object.assign({}, baseData, convertData, { labelClassName: 'text-left', clearValueOnHidden: true, fieldName: field.name});\n // }\n }\n \n}\n\nexport async function getFieldSearchable(perField, permissionFields, ctx){\n if(!ctx){\n ctx = {};\n }\n let field = perField;\n if(field.type === 'grid'){\n field = await Fields.getGridFieldSubFields(perField, permissionFields);\n }else if(perField.type === 'object'){\n field = await Fields.getObjectFieldSubFields(perField, permissionFields);\n }\n\n let fieldNamePrefix = '__searchable__';\n if(field.name.indexOf(\".\") < 0){\n let _field = cloneDeep(field)\n if(includes(['textarea', 'html', 'code', 'autonumber'], field.type)){\n _field.type = 'text'\n }\n\n if(includes(['formula', 'summary'], field.type)){\n _field.type = field.data_type;\n _field.precision = field.precision;\n _field.scale = field.scale;\n }\n else if(field.type === \"select\" && field.data_type && field.data_type != \"text\"){\n _field.type = field.data_type;\n }\n\n if(_field.type === 'number' || _field.type === 'currency'){\n _field.type = 'input-array';\n _field.inline = true;\n _field.addable = false;\n _field.removable = false;\n _field.value = [null,null];\n _field.items = {\n type: \"input-number\"\n }\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n\n if(_field.type ==='date'){\n _field.type = 'input-date-range';\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.type === 'datetime'){\n _field.type = 'input-datetime-range'\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.type === 'time'){\n _field.type = 'input-time-range'\n _field.is_wide = true;\n fieldNamePrefix = `${fieldNamePrefix}between__`\n }\n if(_field.reference_to === 'users'){\n _field.reference_to = 'space_users';\n _field.reference_to_field = 'user';\n }\n _field.readonly = false;\n _field.disabled = false;\n _field.multiple = true;\n _field.is_wide = false;\n _field.defaultValue = undefined;\n _field.required = false;\n _field.hidden = false;\n _field.omit = false;\n\n if(_field.amis){\n delete _field.amis.static;\n delete _field.amis.staticOn;\n delete _field.amis.disabled;\n delete _field.amis.disabledOn;\n delete _field.amis.required;\n delete _field.amis.requiredOn;\n delete _field.amis.visible;\n delete _field.amis.visibleOn;\n delete _field.amis.hidden;\n delete _field.amis.hiddenOn;\n delete _field.amis.autoFill;\n }\n\n const amisField = await Fields.convertSFieldToAmisField(_field, false, Object.assign({}, ctx, {fieldNamePrefix: fieldNamePrefix, required: false, showSystemFields: true, inFilterForm: true}));\n if(amisField){\n const changeActionsFields = ['select', 'boolean', 'toggle', 'date', 'datetime', 'time', 'number', 'currency', 'lookup', 'master_detail'];\n const isChangeActions = changeActionsFields.indexOf(field.type) > -1;\n let additionalProps = {\n submitOnChange: false\n }\n if (isChangeActions) {\n additionalProps.submitOnChange = true\n } else {\n additionalProps.onEvent = {\n blur: {\n actions: [\n {\n actionType: \"custom\",\n script: `\n try {\n const scope = event.context.scoped;\n const filterForm = scope.parent.parent.parent.getComponents().find(function(n) {\n return n.props.type === \"form\";\n });\n if (filterForm && typeof filterForm.handleFormSubmit === 'function') {\n filterForm.handleFormSubmit(event);\n }\n } catch (error) {\n console.error('An error occurred:', error);\n }\n `\n }\n ]\n }\n }\n }\n return Object.assign({}, amisField, additionalProps);\n }\n }\n}\n\nif(typeof window != 'undefined'){\n window.getFieldSearchable = getFieldSearchable;\n}\n\n\nexport function isFieldTypeSearchable(fieldType) {\n return !_.includes(\n [\n \"grid\",\n \"avatar\",\n \"image\",\n \"object\",\n \"[object]\",\n \"[Object]\",\n \"[grid]\",\n \"[text]\",\n \"audio\",\n \"file\",\n ],\n fieldType\n )\n}\n\nif (typeof window != 'undefined') {\n window.isFieldTypeSearchable = isFieldTypeSearchable;\n}\n\n\nexport function isFieldQuickSearchable(field, nameFieldKey) {\n let fieldSearchable = field.searchable;\n if(fieldSearchable !== false && field.name === nameFieldKey){\n // 对象上名称字段的searchable默认认为是true\n fieldSearchable = true;\n }\n if (fieldSearchable && QUICK_SEARCHABLE_FIELD_TYPES.indexOf(field.type) > -1) {\n return true;\n }\n return false;\n}","import { OMIT_FIELDS } from './fields';\nimport { absoluteUrl } from '../../steedos.client'\nimport * as graphql from './graphql'\nimport * as _ from 'lodash';\nimport { i18next } from \"../../../i18n\"\nconst API_CACHE = 100;\n\nfunction getReadonlyFormAdaptor(object, fields, options){\n let scriptStr = '';\n const selectFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && ((field.type == 'select' && field.options) || ((field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to))});\n const gridAndObjectFieldsName = _.map(_.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type === 'object' || field.type === 'grid')}), 'name');\n _.each(selectFields, function(field){\n if(!_.includes(OMIT_FIELDS, field.name)){\n const valueField = field.name;\n if(field.options){\n const options = JSON.stringify({options: field.options});\n scriptStr = scriptStr + `var ${field.name}Options= (${options}).options;`;\n }else if(field.optionsFunction){\n scriptStr = scriptStr + `var ${field.name}Options = eval(${field.optionsFunction.toString()})(api.data);`\n }else if(field._optionsFunction){\n scriptStr = scriptStr + `var ${field.name}Options = eval(${field._optionsFunction})(api.data);`\n }\n if(field.multiple){\n scriptStr = scriptStr + `data.${field.name}__label = _.map(_.filter(${field.name}Options, function(option){return _.includes(data.${field.name}, option.value)}), 'label');`\n }else{\n scriptStr = scriptStr + `var ${field.name}Selected = _.find(${field.name}Options, function(option){return data.${field.name} == option.value});`\n scriptStr = scriptStr + `data.${field.name}__label = ${field.name}Selected ? ${field.name}Selected.label:null;`\n }\n }\n });\n\n // const refFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type == 'lookup' || field.type == 'master_detail') && !field.reference_to});\n // _.each(refFields, function(field){\n // if(!_.includes(OMIT_FIELDS, field.name)){\n // const valueField = field.reference_to_field || '_id';\n // scriptStr = scriptStr + `var ${field.name}Options = eval(${field.optionsFunction.toString()})(api.data);`\n // if(field.multiple){\n // scriptStr = scriptStr + `data.${field.name}__label = _.map(_.filter(${field.name}Options, function(option){return _.includes(data.${field.name}, option.value)}), 'label');`\n // }else{\n // scriptStr = scriptStr + `var ${field.name}Selected = _.find(${field.name}Options, function(option){return data.${field.name} == option.value});`\n // scriptStr = scriptStr + `data.${field.name}__label = ${field.name}Selected ? ${field.name}Selected.label:null;`\n // }\n // }\n // })\n\n var fieldNames = _.map(fields, function(n){return n.name});\n return `\n if(payload.data.data.length === 0){\n var isEditor = !!${options && options.isEditor};\n if(isEditor){\n var fieldNames = ${JSON.stringify(fieldNames)};\n var emptyDoc = {};//这里如果不把每个字段值设置为空的话,表单上会显示上一次表单上的字段值\n fieldNames.forEach(function(n){\n emptyDoc[n] = null;\n });\n // 设计器中始终显示表单,有记录则显示第一条记录,没记录时显示为空表单\n payload.data.data = [emptyDoc];\n }\n else{\n return {\n status: 2,\n msg: \"${i18next.t('frontend_no_records_found')}\"\n }\n }\n }\n if(payload.data.data){\n var data = payload.data.data[0];\n var gridAndObjectFieldsName = ${JSON.stringify(gridAndObjectFieldsName)};\n try{\n ${scriptStr}\n ${getScriptForAddUrlPrefixForImgFields(fields)}\n ${getScriptForRewriteValueForFileFields(fields)}\n }catch(e){\n console.error(e)\n }\n // 原始记录\n var record = _.cloneDeep(data);\n try{\n _.each(gridAndObjectFieldsName, function(name){\n data[name] = data._display && data._display[name];\n })\n }catch(e){\n console.error(e)\n }\n payload.data = data;\n payload.data.__objectName = \"${object.name}\";\n payload.data.__record = record;\n window.postMessage(Object.assign({type: \"record.loaded\"}, {record: record}), \"*\")\n }\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n ${options && options.initApiAdaptor || ''}\n return payload;\n`\n}\n\nexport async function getReadonlyFormInitApi(object, recordId, fields, options){\n let findOneOptions;\n if (!recordId && options && options.isEditor) {\n // 设计器中只读表单返回第一条记录\n findOneOptions = {\n filters: [],\n queryOptions: \"top: 1\"\n };\n }\n return {\n method: \"post\",\n url: graphql.getApi() + '&objectName=${objectName}' + \"&recordId=${recordId}\",\n cache: API_CACHE,\n requestAdaptor: `\n ${options && options.initApiRequestAdaptor || ''}\n return api;\n `,\n adaptor: getReadonlyFormAdaptor(object, fields, options),\n data: await graphql.getFindOneQuery(object, recordId, fields, findOneOptions),\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nfunction getConvertDataScriptStr(fields){\n const refFields = _.filter(fields, function(field){return field.name.indexOf('.') < 0 && (field.type == 'lookup' || field.type == 'master_detail') && field.reference_to});\n let scriptStr = '';\n _.each(refFields, function(field){\n if(!_.includes(OMIT_FIELDS, field.name)){\n const valueField = field.reference_to_field || '_id';\n if(field.multiple){\n scriptStr = scriptStr + `data.${field.name} = _.map(data.${field.name}, '${valueField}');`\n }else{\n scriptStr = scriptStr + `data.${field.name} = data.${field.name} ? data.${field.name}.${valueField}:null;`\n }\n }\n })\n return scriptStr;\n}\n\n/*\n img/avatar字段值添加URL前缀使其在amis中正常显示图片。\n*/\nfunction getScriptForAddUrlPrefixForImgFields(fields){\n let imgFieldsKeys = [];\n let imgFields = {};\n fields.forEach((item)=>{\n if(_.includes(['image','avatar'], item.type)){\n imgFieldsKeys.push(item.name);\n imgFields[item.name] = {\n name: item.name,\n type: item.type,\n multiple: item.multiple\n };\n }\n })\n if(!imgFieldsKeys.length){\n return '';\n }\n return `\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(imgFieldsKeys)};\n let imgFields = ${JSON.stringify(imgFields)};\n imgFieldsKeys.forEach((item)=>{\n let imgFieldValue = data[item];\n let imgFieldDisplayValue = data._display && data._display[item];\n if(imgFieldValue && imgFieldValue.length){\n let fieldProps = imgFields[item];\n if(fieldProps.multiple){\n if(imgFieldDisplayValue instanceof Array){\n data[item] = imgFieldDisplayValue.map((i)=>{ \n const url = window.getImageFieldUrl(i.url);\n return url;\n });\n }\n }else{\n const url = imgFieldDisplayValue && window.getImageFieldUrl(imgFieldDisplayValue.url);\n data[item] = url;\n }\n }\n })\n `\n}\n\n/*\n file字段值重写使其在amis中正常显示附件名、点击附件名下载文件。\n*/\nfunction getScriptForRewriteValueForFileFields(fields){\n let fileFieldsKeys = [];\n let fileFields = {};\n fields.forEach((item)=>{\n if(item.type === 'file'){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n multiple: item.multiple\n };\n }\n })\n if(!fileFieldsKeys.length){\n return '';\n }\n return `\n // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件\n let fileFieldsKeys = ${JSON.stringify(fileFieldsKeys)};\n let fileFields = ${JSON.stringify(fileFields)};\n fileFieldsKeys.forEach((item)=>{\n let fileFieldValue = data[item];\n let fileFieldDisplayValue = data._display && data._display[item];\n if(fileFieldValue && fileFieldValue.length){\n if(fileFields[item].multiple){\n if(fileFieldDisplayValue instanceof Array){\n data[item] = fileFieldDisplayValue.map((item, index)=>{ \n return {\n value: fileFieldValue[index],\n name: item.name,\n url: item.url + \"?download=true\",\n state: \"uploaded\"\n }\n });\n }\n }else{\n data[item] = [{\n value: fileFieldValue,\n name: fileFieldDisplayValue.name,\n url: fileFieldDisplayValue.url + \"?download=true\",\n state: \"uploaded\"\n }];\n }\n }\n })\n `\n}\n\nexport async function getEditFormInitApi(object, recordId, fields, options){\n const data = await graphql.getFindOneQuery(object, recordId, fields);\n data.recordId = \"${recordId}\";\n data.objectName = \"${objectName}\";\n data.uiSchema = \"${uiSchema}\";\n data.global = \"${global}\";\n data.context = \"${context}\";\n data.defaultData = \"${defaultData}\";\n data._master = \"${_master}\";\n \n return {\n method: \"post\",\n url: graphql.getApi() + '&objectName=${objectName}' ,\n // sendOn: \"!!this.recordId\",\n cache: API_CACHE,\n requestAdaptor: `\n // 所有不想在network请求中发送的数据都应该从data中分离出来,data变量只需要留下query才需要发送出去\n var { recordId, objectName, uiSchema, global, context, ...data} = api.data;\n if(!recordId){\n // 新建则不请求任何数据\n data.query = \"{data:\" + objectName + \"(filters: \" + JSON.stringify([\"_id\", \"=\", null]) + \", top: 1){_id}}\";\n }\n api.data = data;\n ${options.initApiRequestAdaptor || ''}\n return api;\n `,\n adaptor: `\n const recordId = api.body.recordId;\n let initialValues={};\n if(recordId && payload.data.data){\n var data = payload.data.data[0];\n const dataKeys = _.keys(data);\n const uiSchema = api.body.uiSchema;\n const fieldKeys = uiSchema && _.keys(uiSchema.fields);\n\n if(data){\n ${getScriptForAddUrlPrefixForImgFields(fields)}\n ${getScriptForRewriteValueForFileFields(fields)}\n\n _.each(dataKeys, function(key){\n if(fieldKeys.indexOf(key)<0 && key !== \"_display\"){\n delete data[key];\n }\n })\n \n //初始化接口返回的字段移除字段值为null的字段\n for (key in data){\n if(data[key] === null){\n delete data[key];\n }\n }\n };\n initialValues = data;\n }\n else{\n var uiSchema = api.body.uiSchema;\n var defaultData = api.body.defaultData;\n var defaultValues = {};\n _.each(uiSchema && uiSchema.fields, function(field){\n var value = SteedosUI.getFieldDefaultValue(field, api.body.global);\n if(!_.isNil(value)){\n defaultValues[field.name] = value;\n }\n });\n if(defaultData && _.isObject(defaultData) && !_.isArray(defaultData)){\n defaultValues = Object.assign({}, defaultValues, defaultData)\n }\n if(uiSchema.form){\n try{\n var objectFormConfig = JSON.parse(uiSchema.form);\n var formInitialValuesFun = objectFormConfig.initialValues;\n if(formInitialValuesFun){\n formInitialValuesFun = new Function(\"return \" + formInitialValuesFun)();\n }\n if(typeof formInitialValuesFun === \"function\"){\n initialValues = formInitialValuesFun.apply({doc: defaultValues || {} , global: api.body.global, master: api.body._master })\n }\n }\n catch(ex){\n console.warn(ex);\n }\n }\n if(_.isObject(initialValues)){\n // uiSchema.form.initialValues为函数且执行后为json,则优先取initialValues中的默认值\n initialValues = Object.assign({}, defaultValues, initialValues);\n }\n else{\n initialValues = defaultValues;\n }\n }\n // data下的变量需要在保存接口(getSaveApi)中被删除。\n payload.data = {\n ...initialValues\n }\n ${options.initApiAdaptor || ''}\n return payload;\n `,\n responseData: {\n initialValues: \"$$\",\n editFormInited: true\n },\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\n\nexport function getSaveApi(object, recordId, fields, options){\n return {\n method: 'post',\n url: graphql.getApi(),\n data: graphql.getSaveQuery(object, recordId, fields, options),\n requestAdaptor: graphql.getSaveRequestAdaptor(fields, options),\n responseData: {\n \"recordId\": \"${record._id}\"\n },\n adaptor: `\n if(payload.errors){\n delete payload.data;\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n ${options.apiAdaptor || ''}\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport function getBatchDelete(objectName){\n return {\n method: 'post',\n url: graphql.getApi(),\n requestAdaptor: `\n var ids = api.data.ids.split(\",\");\n var deleteArray = [];\n ids.forEach((id,index)=>{\n deleteArray.push(\\`delete__\\${index}:${objectName}__delete(id: \"\\${id}\")\\`);\n })\n api.data = {query: \\`mutation{\\${deleteArray.join(',')}}\\`};\n return api;\n `,\n data: {\n ids: `\\${ids}`\n },\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}","import { getApi, getRecordPermissionsApi } from './fields/table';\nimport { getSaveApi } from './api';\nimport { each, values } from 'lodash';\nimport * as graphql from './graphql'\nimport _, { isEmpty, omitBy, isNil } from 'lodash';\nimport { i18next } from \"../../../i18n\"\n\nexport const DEFAULT_CALENDAR_OPTIONS = {\n startDateExpr: \"start\",\n endDateExpr: \"end\",\n allDayExpr: \"is_all_day\",\n textExpr: \"name\"\n};\n\nexport async function getCalendarApi(mainObject, fields, options) {\n if (!options) {\n options = {};\n }\n const calendarOptions = options.calendarOptions;\n const searchableFields = [];\n let { filter, sort, top, setDataToComponentId = '' } = options;\n\n if (!top) {\n // 日历请求不翻页\n top = 200;\n }\n\n if (_.isArray(filter)) {\n filter = _.map(filter, function (item) {\n if (item.operation) {\n return [item.field, item.operation, item.value];\n } else {\n return item\n }\n })\n }\n if (!filter) {\n filter = [];\n }\n\n _.each(fields, function (field) {\n if (field.searchable) {\n searchableFields.push(field.name);\n }\n })\n\n const idFieldName = mainObject.idFieldName || \"_id\";\n let valueField = mainObject.key_field || '_id';\n const api = await getApi(mainObject, null, fields, { alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"` });\n api.data.$term = \"$term\";\n api.data.$self = \"$$\";\n api.data.filter = \"$filter\";\n api.data.pageSize = top || 10;\n api.requestAdaptor = `\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = api.data.filter || ${JSON.stringify(filter)} || [];\n const eventFetchInfo = selfData.fetchInfo;\n const startDateExpr = \"${calendarOptions.startDateExpr}\";\n const endDateExpr = \"${calendarOptions.endDateExpr}\";\n const eventDurationFilters = [[endDateExpr, \">=\", eventFetchInfo.start], [startDateExpr, \"<=\", eventFetchInfo.end]];\n if(_.isEmpty(filters)){\n filters = eventDurationFilters;\n }else{\n filters = [filters, 'and', eventDurationFilters]\n }\n\n if(api.data.$self.additionalFilters){\n filters.push(api.data.$self.additionalFilters)\n }else if(api.data.$self.event.data.additionalFilters){\n filters.push(api.data.$self.event.data.additionalFilters)\n }\n\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [[\"${valueField.name}\", \"=\", selfData.value]];\n }\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n filters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n filters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n if(selfData.__keywords && allowSearchFields){\n const keywordsFilters = [];\n allowSearchFields.forEach(function(key, index){\n const keyValue = selfData.__keywords;\n if(keyValue){\n keywordsFilters.push([key, \"contains\", keyValue]);\n if(index < allowSearchFields.length - 1){\n keywordsFilters.push('or');\n }\n }\n })\n filters.push(keywordsFilters);\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n delete api.data.$term;\n delete api.data.filter;\n delete api.data.pageSize;\n delete api.data.pageNo;\n delete api.data.orderBy;\n delete api.data.orderDir;\n return api;\n `\n api.adaptor = `\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n const setDataToComponentId = \"${setDataToComponentId}\";\n if(setDataToComponentId){\n var scope = SteedosUI.getRef(api.body.$self.scopeId);\n var setDataToComponent = scope && scope.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n }\n const rows = payload.data.rows || [];\n const selfData = api.data.$self;\n const events = rows.map(function(n){\n return {\n id: n[\"${idFieldName}\"],\n title: n[\"${calendarOptions.textExpr}\"],\n start: n[\"${calendarOptions.startDateExpr}\"],\n end: n[\"${calendarOptions.endDateExpr}\"],\n allDay: n[\"${calendarOptions.allDayExpr}\"],\n extendedProps: n\n }\n });\n const successCallback = selfData.successCallback;\n const failureCallback = selfData.failureCallback;\n successCallback(events);\n return payload;\n `;\n return api;\n}\n\nexport function getCalendarRecordPermissionsApi(mainObject, recordId) {\n const api = getRecordPermissionsApi(mainObject, recordId, { alias: 'rows', limit: 1, fields: [\"allowEdit\"] });\n api.data.$self = \"$$\";\n api.adaptor = `\n const rows = payload.data.rows || [];\n const selfData = api.data.$self;\n const revert = selfData.revert;\n const recordPermissions = rows[0] && rows[0].recordPermissions;\n const editable = !!(recordPermissions && recordPermissions.allowEdit);\n if(!editable){\n // 没有权限时还原\n revert && revert();\n }\n payload.data.editable = editable;\n return payload;\n `;\n return api;\n}\n\nexport function getCalendarRecordSaveApi(object, calendarOptions) {\n const formData = {};\n const idFieldName = object.idFieldName || \"_id\";\n formData[idFieldName] = \"${event.data.event.id}\";\n const nameFieldKey = object.NAME_FIELD_KEY || \"name\";\n formData[nameFieldKey] = \"${event.data.event.title}\";\n formData[calendarOptions.startDateExpr] = \"${event.data.event.start}\";\n formData[calendarOptions.endDateExpr] = \"${event.data.event.end}\";\n formData[calendarOptions.allDayExpr] = \"${event.data.event.allDay}\";\n // formData[calendarOptions.textExpr] = \"${event.data.event.title}\";\n const apiData = {\n objectName: \"${objectName}\",\n $: formData,\n $self: \"$$\"\n };\n const saveDataTpl = `\n const formData = api.data.$;\n const objectName = api.data.objectName;\n let query = \\`mutation{record: \\${objectName}__update(id: \"\\${formData.${idFieldName}}\", doc: {__saveData}){${idFieldName}}}\\`;\n delete formData.${idFieldName};\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `;\n const requestAdaptor = `\n ${saveDataTpl}\n api.data.query = query.replace('{__saveData}', __saveData);\n return api;\n `;\n\n return {\n method: 'post',\n url: graphql.getApi(),\n data: apiData,\n requestAdaptor: requestAdaptor,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n const revert = api.data.$self.event.data.revert;\n revert && revert();\n }\n return payload;\n `,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n };\n}\n\n/**\n * 列表视图Calendar amisSchema\n * @param {*} objectSchema 对象UISchema\n * @returns amisSchema\n */\nexport async function getObjectCalendar(objectSchema, calendarOptions, options) {\n const permissions = objectSchema.permissions;\n if (!options) {\n options = {};\n }\n\n calendarOptions = Object.assign({}, DEFAULT_CALENDAR_OPTIONS, omitBy(calendarOptions, isNil));\n\n const titleFields = calendarOptions.title || [\n calendarOptions.startDateExpr,\n calendarOptions.endDateExpr,\n calendarOptions.allDayExpr,\n calendarOptions.textExpr\n ];\n let fields = [];\n each(titleFields, function (n) {\n if (objectSchema.fields[n]) {\n fields.push(objectSchema.fields[n]);\n }\n });\n\n if (objectSchema.fields[calendarOptions.allDayExpr]) {\n fields.push(objectSchema.fields[calendarOptions.allDayExpr]);\n }\n\n let sort = options.sort;\n if (!sort) {\n const sortField = options.sortField;\n const sortOrder = options.sortOrder;\n if (sortField) {\n let sortStr = sortField + ' ' + sortOrder || 'asc';\n sort = sortStr;\n }\n }\n let initialView = calendarOptions.currentView;\n if (initialView) {\n // day, week, month, agenda\n switch (initialView) {\n case \"day\":\n initialView = \"timeGridDay\"\n break;\n case \"week\":\n initialView = \"timeGridWeek\"\n break;\n case \"month\":\n initialView = \"dayGridMonth\"\n break;\n case \"agenda\":\n initialView = \"listWeek\"\n break;\n }\n }\n else {\n initialView = \"timeGridWeek\";\n }\n\n options.calendarOptions = calendarOptions;\n const api = await getCalendarApi(objectSchema, fields, options);\n\n const onGetEventsScript = `\n const api = ${JSON.stringify(api)};\n event.data.calendarOptions = ${JSON.stringify(calendarOptions)};\n doAction({\n \"actionType\": 'ajax',\n \"args\": {\n \"api\": api\n },\n });\n `;\n\n const onSelectScript = `\n const data = event.data;\n const doc = {};\n doc[\"${calendarOptions.startDateExpr}\"] = data.start;\n doc[\"${calendarOptions.endDateExpr}\"] = data.end;\n doc[\"${calendarOptions.allDayExpr}\"] = data.allDay;\n doc[\"${calendarOptions.textExpr}\"] = data.title;\n // ObjectForm会认作用域下的变量值\n // TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值\n // TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件\n const title = \"${i18next.t('frontend_form_new')} ${objectSchema.label}\";\n doAction(\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": title,\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"objectApiName\": \"\\${objectName}\",\n \"mode\": \"edit\",\n \"defaultData\": doc,\n //改回为通用的提交事件\n // \"onEvent\": {\n // \"submitSucc\": {\n // \"weight\": 0,\n // \"actions\": [\n // {\n // \"actionType\": \"custom\",\n // \"script\": \"event.data.view?.calendar.refetchEvents();\"\n // }\n // ]\n // }\n // }\n }\n ],\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"size\": \"lg\"\n }\n });\n `;\n\n const onEventClickScript = `\n const data = event.data;\n const eventData = data.event;\n const appId = data.appId;\n const objectName = data.objectName;\n const eventId = data.event && data.event.id;\n doAction({\n \"actionType\": \"link\",\n \"args\": {\n \"link\": \"/app/\" + appId + \"/\" + objectName + \"/view/\" + eventId\n }\n });\n // doAction({\n // \"actionType\": \"dialog\",\n // \"dialog\": {\n // \"type\": \"dialog\",\n // \"title\": \"\",\n // \"body\": [\n // {\n // \"type\": \"steedos-record-detail\",\n // \"objectApiName\": \"\\${objectName}\",\n // \"recordId\": data.event && data.event.id\n // }\n // ],\n // \"closeOnEsc\": false,\n // \"closeOnOutside\": false,\n // \"showCloseButton\": true,\n // \"size\": \"lg\",\n // \"actions\": []\n // }\n // });\n `;\n\n const recordId = \"${event.id}\";\n const recordPermissionsApi = getCalendarRecordPermissionsApi(objectSchema, recordId);\n const recordSaveApi = getCalendarRecordSaveApi(objectSchema, calendarOptions);\n\n const businessHours = {\n daysOfWeek: [1, 2, 3, 4, 5],\n startTime: '08:00',\n endTime: '18:00',\n };\n if (!isEmpty(calendarOptions.startDayHour)) {\n businessHours.startTime = `${calendarOptions.startDayHour}:00`;\n }\n if (!isEmpty(calendarOptions.endDayHour)) {\n businessHours.endTime = `${calendarOptions.endDayHour}:00`;\n }\n\n // api.trackExpression=\"\\\\\\${additionalFilters}\";\n const onEvent = {\n \"getEvents\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": onGetEventsScript\n }\n // {\n // \"actionType\": \"ajax\",\n // \"outputVar\": \"responseResult\",\n // \"args\": {\n // \"options\": {\n // },\n // \"api\": api\n // // {\n // // \"url\": \"111\",\n // // \"method\": \"post\",\n // // \"data\": {\n // // \"calendarOptions\": JSON.stringify(calendarOptions);\n // // }\n // // }\n // }\n // }\n ]\n },\n \"select\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": onSelectScript\n }\n ]\n },\n \"eventClick\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onEventClickScript\n },\n // amis 升级到 3.2后,以下的\"actionType\": \"link\"方式拿不到appId和objectName了\n // {\n // \"actionType\": \"link\",\n // \"args\": {\n // \"link\": \"/app/${appId}/${objectName}/view/${event.id}\"\n // }\n // }\n ]\n },\n \"eventAdd\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventAdd'); console.log(event);\"\n }\n ]\n },\n \"eventChange\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": 'ajax',\n \"args\": {\n \"api\": recordPermissionsApi\n }\n },\n {\n \"actionType\": \"toast\",\n \"expression\": \"!event.data.editable\",\n \"args\": {\n \"msgType\": \"error\",\n \"msg\": i18next.t('frontend_message_no_permission_to_edit'),\n \"position\": \"top-center\"\n }\n },\n {\n \"actionType\": 'ajax',\n \"expression\": \"event.data.editable\",\n \"args\": {\n \"api\": recordSaveApi,\n \"messages\": {\n \"success\": objectSchema.label + i18next.t('frontend_message_modification_successful'),\n \"failed\": objectSchema.label + i18next.t('frontend_message_modification_successful')\n }\n }\n }\n ]\n },\n \"eventRemove\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventRemove'); console.log(event);\"\n }\n ]\n },\n \"eventsSet\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {\n },\n \"actionType\": \"custom\",\n \"script\": \"console.log('eventsSet'); console.log(event);\"\n }\n ]\n },\n \"getRef\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": `service_${options.id}`,\n \"args\": {\n \"value\":{\n \"calendarRef\": \"${event.data.calendarRef}\"\n }\n },\n \"actionType\": \"setValue\",\n }\n ]\n }\n };\n\n Object.assign(onEvent, options.onEvent);\n\n const config = options.config || {};\n if(config.eventContent && typeof config.eventContent === \"string\"){\n const hasReturn = /\\breturn\\b/.test(config.eventContent);\n if(hasReturn){\n try {\n // 如果是包括return语句的字符串,则按函数解析,见 https://fullcalendar.io/docs/content-injection\n let fn = new Function(\"arg\", config.eventContent);\n config.eventContent = fn;\n } catch (e) {\n console.warn(e);\n }\n }\n }\n\n if(config.noEventsContent && typeof config.noEventsContent === \"string\"){\n const hasReturn = /\\breturn\\b/.test(config.noEventsContent);\n if(hasReturn){\n try {\n // 如果是包括return语句的字符串,则按函数解析,见 https://fullcalendar.io/docs/content-injection\n let fn = new Function(\"arg\", config.noEventsContent);\n config.noEventsContent = fn;\n } catch (e) {\n console.warn(e);\n }\n }\n }\n\n const amisSchema = {\n \"type\": \"steedos-fullcalendar\",\n \"label\": \"\",\n \"id\": options.id,\n \"name\": \"fullcalendar\",\n \"placeholder\":\"${additionalFilters}\",//用于触发reload\n \"editable\": permissions.allowEdit,\n \"selectable\": permissions.allowCreate,\n \"selectMirror\": permissions.allowCreate,\n \"initialView\": initialView,\n \"businessHours\": businessHours,\n \"views\":{\n listWeek: {\n buttonText: i18next.t('frontend_calendar_listWeek')\n }\n },\n ...config,\n \"onEvent\": onEvent\n };\n return amisSchema;\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组\n *\n * @param string 要转换的字符串\n */\n export const keyToPath = (string: string) => {\n const result = [];\n \n if (string.charCodeAt(0) === '.'.charCodeAt(0)) {\n result.push('');\n }\n \n string.replace(\n new RegExp(\n '[^.[\\\\]]+|\\\\[(?:([^\"\\'][^[]*)|([\"\\'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))',\n 'g'\n ),\n (match, expression, quote, subString) => {\n let key = match;\n if (quote) {\n key = subString.replace(/\\\\(\\\\)?/g, '$1');\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n return '';\n }\n );\n \n return result;\n };\n ","import isPlainObject from 'lodash/isPlainObject';\nimport {keyToPath} from './keyToPath';\n\n// 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。\nexport function createObject(\n superProps?: {[propName: string]: any},\n props?: {[propName: string]: any},\n properties?: any\n): object {\n if (superProps && Object.isFrozen(superProps)) {\n superProps = cloneObject(superProps);\n }\n\n const obj = superProps\n ? Object.create(superProps, {\n ...properties,\n __super: {\n value: superProps,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype, properties);\n\n props &&\n isObject(props) &&\n Object.keys(props).forEach(key => (obj[key] = props[key]));\n\n return obj;\n}\n\nexport function cloneObject(target: any, persistOwnProps: boolean = true) {\n const obj =\n target && target.__super\n ? Object.create(target.__super, {\n __super: {\n value: target.__super,\n writable: false,\n enumerable: false\n }\n })\n : Object.create(Object.prototype);\n persistOwnProps &&\n target &&\n Object.keys(target).forEach(key => (obj[key] = target[key]));\n return obj;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isObject(obj: any) {\n const typename = typeof obj;\n return (\n obj &&\n typename !== 'string' &&\n typename !== 'number' &&\n typename !== 'boolean' &&\n typename !== 'function' &&\n !Array.isArray(obj)\n );\n}\n\nexport function setVariable(\n data: {[propName: string]: any},\n key: string,\n value: any,\n convertKeyToPath?: boolean\n) {\n data = data || {};\n\n if (key in data) {\n data[key] = value;\n return;\n }\n\n const parts = convertKeyToPath !== false ? keyToPath(key) : [key];\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (Array.isArray(data[key])) {\n data[key] = data[key].concat();\n data = data[key];\n } else if (data[key]) {\n // throw new Error(`目标路径不是纯对象,不能覆盖`);\n // 强行转成对象\n data[key] = {};\n data = data[key];\n } else {\n data[key] = {};\n data = data[key];\n }\n }\n\n data[last] = value;\n}\n\nexport function deleteVariable(data: {[propName: string]: any}, key: string) {\n if (!data) {\n return;\n } else if (data.hasOwnProperty(key)) {\n delete data[key];\n return;\n }\n\n const parts = keyToPath(key);\n const last = parts.pop() as string;\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (isPlainObject(data[key])) {\n data = data[key] = {\n ...data[key]\n };\n } else if (data[key]) {\n throw new Error(`目标路径不是纯对象,不能修改`);\n } else {\n break;\n }\n }\n\n if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {\n delete data[last];\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-05-26 16:02:08\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-10-12 18:25:05\n * @Description: \n */\nimport * as Fields from '../fields';\nimport * as lodash from 'lodash';\nimport { i18next } from '../../../../i18n'\n\nconst getFieldSchemaArray = (formFields, ctx) => {\n let fieldSchemaArray = [];\n fieldSchemaArray.length = 0\n const recordId = ctx && ctx.recordId;\n\n lodash.forEach(formFields, (field) => {\n if (!field.group || field.group == 'null' || field.group == '-')\n field.group = i18next.t('frontend_field_group_generalization')\n const fieldName = field.name;\n let isObjectField = /\\w+\\.\\w+/.test(fieldName)\n if (field.type == 'grid' || field.type == 'object') {\n // field.group = field.label\n field.is_wide = true;\n }\n\n let forceHidden = false;\n if(!recordId && field.readonly && !ctx.isEditor){\n // 新建记录时,只读字段先隐藏,后续支持显示后,即任务:https://github.com/steedos/steedos-platform/issues/3164 完成后再放开\n // 表单只读时所有字段都是readonly,设计器中如果forceHidden会造成整个表单在只读的时候显示为空白了,所以要排除掉\n forceHidden = true;\n }\n\n if (!isObjectField) {\n if (!field.hidden && !forceHidden) {\n fieldSchemaArray.push(Object.assign({ name: fieldName }, field, { permission: { allowEdit: true } }))\n }\n }\n })\n return fieldSchemaArray;\n}\n\nconst getSection = async (formFields, permissionFields, fieldSchemaArray, sectionName, ctx) => {\n if (!ctx) {\n ctx = {};\n }\n const sectionFields = lodash.filter(fieldSchemaArray, { 'group': sectionName });\n if (sectionFields.length == lodash.filter(sectionFields, ['hidden', true]).length) {\n return;\n }\n\n const fieldSetBody = [];\n\n for (const perField of sectionFields) {\n let field = perField;\n if (perField.type === 'grid') {\n field = await Fields.getGridFieldSubFields(perField, formFields);\n // console.log(`perField.type grid ===> field`, field)\n } else if (perField.type === 'object') {\n field = await Fields.getObjectFieldSubFields(perField, formFields);\n // console.log(`perField.type object ===> field`, field)\n }\n if (field.name.indexOf(\".\") < 0) {\n ctx.__formFields = formFields;\n const amisField = await Fields.convertSFieldToAmisField(field, field.readonly, ctx);\n // console.log(`${field.name} amisField`, field, amisField)\n if (amisField) {\n fieldSetBody.push(amisField);\n }\n }\n }\n\n // fieldSet 已支持显隐控制\n const sectionFieldsVisibleOn = lodash.map(lodash.compact(lodash.map(fieldSetBody, 'visibleOn')), (visibleOn) => {\n let visible = visibleOn;\n if(visible.indexOf('${')>-1){\n visible = visible.substring(visible.indexOf('{')+1, visible.indexOf('}'))\n }\n return visible ? \"(\"+visible+\")\" : visible;\n });\n\n let section = {\n \"type\": \"fieldSet\",\n \"title\": sectionName,\n \"collapsable\": true,\n \"body\": fieldSetBody,\n }\n\n if (ctx.enableTabs) {\n section = {\n \"title\": sectionName,\n \"body\": fieldSetBody,\n }\n }\n\n if (sectionFieldsVisibleOn.length > 0 && fieldSetBody.length === sectionFieldsVisibleOn.length) {\n section.visibleOn = `${sectionFieldsVisibleOn.join(\" || \")}`\n }\n\n const fieldGroups = ctx.fieldGroups;\n const group = fieldGroups && fieldGroups.find(function(groupItem){\n return groupItem.group_name == sectionName;\n });\n let groupVisibleOn = group && group.visible_on;\n if (groupVisibleOn) {\n if (groupVisibleOn.startsWith(\"{{\")) {\n groupVisibleOn = `${groupVisibleOn.substring(2, groupVisibleOn.length - 2).replace(/formData./g, 'data.')}`\n } else {\n groupVisibleOn = `${groupVisibleOn.replace(/formData./g, 'data.')}`\n }\n if (section.visibleOn) {\n section.visibleOn = `${section.visibleOn + \" && \" + groupVisibleOn}`;\n }\n else {\n section.visibleOn = groupVisibleOn;\n }\n }\n return section\n}\n\nexport const getSections = async (permissionFields, formFields, ctx) => {\n if (!ctx) {\n ctx = {};\n }\n const fieldSchemaArray = getFieldSchemaArray(formFields, ctx)\n const _sections = lodash.groupBy(fieldSchemaArray, 'group');\n const sections = [];\n var sectionVisibleOns = [];\n for (const key in _sections) {\n const section = await getSection(formFields, permissionFields, fieldSchemaArray, key, ctx);\n if (section.body.length > 0) {\n if (section.visibleOn) {\n sectionVisibleOns.push(\"(\"+section.visibleOn+\")\");\n }\n else{\n sectionVisibleOns.push(\"true\");\n }\n sections.push(section)\n }\n }\n /*\n 为了实现只有一个分组时隐藏该分组标题,需要分三种情况(分组如果没有visibleon属性就代表一定显示,有visibleon需要进行判断)\n 1 当前分组为隐藏时,标题就设置为隐藏\n 2 当前分组为显示时,其他分组只要有一个是显示,就显示该分组标题\n 3 当前分组为显示时,其他分组都隐藏,就隐藏该分组标题\n */\n sections.forEach((section, index) => {\n var tempSectionVisibleOns = sectionVisibleOns.slice();\n tempSectionVisibleOns.splice(index, 1);\n section.headingClassName = {\n \"hidden\": `!((${tempSectionVisibleOns.join(\" || \") || 'false'}) && ${sectionVisibleOns[index]})`\n }\n });\n\n if (ctx.enableTabs) {\n // TODO: 以下sectionHeaderVisibleOn代码逻辑是为实现只有一个选项卡时给选项卡添加sectionHeaderVisibleOn样式类来把选项卡顶部卡头隐藏\n // 但是 amis filter过滤器有两个bug造成此功能不好实现:\n // 1.filter过滤器只支持对象数组,并不支持boolean或字符串数组,见: https://github.com/baidu/amis/issues/7078\n // 2.filter过滤器的返回结果无法进一步获取最终过滤后的数组长度,见:https://github.com/baidu/amis/issues/7077\n // let sectionHeaderVisibleOn = \"false\";\n // if(sectionVisibleOns.length){\n // sectionHeaderVisibleOn = \"[\" + sectionVisibleOns.join(\",\") + \"]\" + \"|filter:equals:true.length > 1\";\n // }\n // console.log(\"===sectionHeaderVisibleOn===\", sectionHeaderVisibleOn);\n // sectionHeaderVisibleOn = \"[true]|filter:equals:true.length > 1\";\n // sectionHeaderVisibleOn = \"false\";\n // sectionHeaderVisibleOn = \"[1,1,1]|filter:equals:1.length > 1\";\n return [\n {\n \"type\": \"tabs\",\n // \"className\": {\n // \"hiddenFormTabs\": `!(${sectionHeaderVisibleOn})`\n // },\n \"tabs\": sections,\n \"tabsMode\": ctx.tabsMode\n }\n ]\n }\n\n return sections;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-07 11:02:29\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-03-07 17:19:34\n * @Description: \n */\nimport { getSections } from './fields/sections';\n\nexport async function getFormBody(permissionFields, formFields, ctx){\n return await getSections(permissionFields, formFields, ctx);\n}","\nimport { toArray, mergeWith, isArray } from 'lodash';\n\n// lodash的defaultsDeep函数有bug,无法正确合并值为数值的节点,重写修正该函数\n// 源码出处:https://github.com/nodeutils/defaults-deep\nexport const defaultsDeep = (...args)=>{\n let output = {};\n toArray(args).reverse().forEach(item=> {\n mergeWith(output, item, (objectValue, sourceValue) => {\n return isArray(sourceValue) ? sourceValue : undefined;\n });\n });\n return output;\n};","import { getAuthToken , getTenantId, getRootUrl, getSteedosAuth } from '../../steedos.client.js';\nimport { getReadonlyFormInitApi, getSaveApi, getEditFormInitApi, getBatchDelete } from './api';\nimport { getTableSchema, getTableApi } from './fields/table';\nimport { getFormBody } from './form';\nimport { getListSchema, getCardSchema } from './fields/list';\nimport _, { map } from 'lodash';\nimport { defaultsDeep } from '../../defaultsDeep';\nimport { getObjectHeaderToolbar, getObjectFooterToolbar, getObjectFilter } from './toolbar';\nimport { i18next } from \"../../../i18n\"\nimport { createObject } from '../../../utils/object';\n\nfunction getBulkActions(objectSchema){\n return [\n {\n \"type\": \"button\",\n \"level\": \"danger\",\n \"label\": \"批量删除\",\n \"actionType\": \"ajax\",\n \"confirmText\": i18next.t('frontend_delete_many_confirm_text'),\n \"className\": \"hidden\",\n \"id\": \"batchDelete\",\n \"api\": getBatchDelete(objectSchema.name),\n }\n // {\n // \"label\": \"批量修改\",\n // \"actionType\": \"dialog\",\n // \"dialog\": {\n // \"title\": \"批量编辑\",\n // \"name\": \"sample-bulk-edit\",\n // \"body\": {\n // \"type\": \"form\",\n // \"api\": \"https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/sample/bulkUpdate2\",\n // \"controls\": [\n // {\n // \"type\": \"hidden\",\n // \"name\": \"ids\"\n // },\n // {\n // \"type\": \"text\",\n // \"name\": \"name\",\n // \"label\": \"Name\"\n // }\n // ]\n // }\n // }\n // }\n ]\n}\n\nfunction getHeaderToolbar(mainObject, formFactor){\n\n if(formFactor === 'SMALL'){\n return [\n \"bulkActions\",\n {\n \"type\": \"reload\",\n \"align\": \"right\"\n },\n {\n \"type\": \"search-box\",\n \"align\": \"right\",\n \"name\": \"__keywords\",\n \"placeholder\": \"请输入关键字\",\n \"mini\": true\n }\n ]\n }else{\n return [\n \"filter-toggler\",\n \"bulkActions\",\n // {\n // \"type\": \"export-excel\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"reload\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"columns-toggler\",\n // \"align\": \"right\"\n // },\n {\n \"type\": \"search-box\",\n \"align\": \"right\",\n \"name\": \"__keywords\",\n \"placeholder\": \"请输入关键字\",\n \"mini\": true\n },\n // {\n // \"type\": \"drag-toggler\",\n // \"align\": \"right\"\n // },\n // {\n // \"type\": \"pagination\",\n // \"align\": \"right\"\n // }\n ]\n }\n\n\n \n}\n\n\nfunction footerToolbar(){\n return [\n \"statistics\",\n // \"switch-per-page\",\n \"pagination\"\n ]\n}\n\nfunction getFilter(){\n return {\n \"title\": \"条件搜索\",\n \"submitText\": \"\",\n \"body\": [\n {\n \"type\": \"input-text\",\n \"name\": \"name\",\n \"placeholder\": \"合同名称\",\n \"addOn\": {\n \"label\": \"搜索\",\n \"type\": \"submit\"\n }\n }\n ]\n }\n}\n\nasync function getCrudSchemaWithDataFilter(crud, options = {}){\n const { crudDataFilter, amisData, env } = options;\n let onCrudDataFilter = options.onCrudDataFilter;\n if (!onCrudDataFilter && typeof crudDataFilter === 'string') {\n onCrudDataFilter = new Function(\n 'crud',\n 'env',\n 'data',\n crudDataFilter\n );\n }\n\n try {\n onCrudDataFilter && (crud = await onCrudDataFilter(crud, env, amisData) || crud);\n } catch (e) {\n console.warn(e);\n }\n return crud;\n}\n\nexport async function getObjectCRUD(objectSchema, fields, options){\n // console.time('getObjectCRUD');\n const { top, perPage, showDisplayAs = false, displayAs, crudClassName = \"\",\n crudDataFilter, onCrudDataFilter, amisData, env } = options;\n const nonpaged = objectSchema.paging && objectSchema.paging.enabled === false;\n const isTreeObject = objectSchema.enable_tree;\n const bulkActions = getBulkActions(objectSchema);\n const defaults = options.defaults;\n const listSchema = (defaults && defaults.listSchema) || {};\n\n const bodyProps = {\n // toolbar: getToolbar(),\n // headerToolbar: getObjectHeaderToolbar(objectSchema, options.formFactor, {showDisplayAs}),\n headerToolbarClassName: \"px-4 py-2 border-gray-300 bg-gray-100 border-solid border-b\",\n footerToolbar: getObjectFooterToolbar(objectSchema, options.formFactor, {\n ...options,\n disableStatistics: options.queryCount === false\n }), \n filter: options.filterVisible !== false && await getObjectFilter(objectSchema, fields, options),\n };\n if(options.formFactor !== 'SMALL' || [\"split\"].indexOf(options.displayAs) == -1){\n if(listSchema.mode !== \"cards\"){\n // card模式时默认不显示勾选框\n Object.assign(bodyProps, {\n bulkActions: options.bulkActions != false ? bulkActions : false\n });\n }\n }\n // yml里配置的 不分页和enable_tree:true 优先级最高,组件中输入的top次之。\n options.queryCount = true;\n if(nonpaged || isTreeObject){\n options.top = 5000;\n bodyProps.footerToolbar = [];\n options.queryCount = true; // 禁止翻页的时候, 需要查找总数\n }else if(top){\n bodyProps.footerToolbar = [];\n if(options.isRelated){\n options.queryCount = true;\n }else{\n options.queryCount = false;\n }\n }\n // console.log(`getObjectHeaderToolbar====2===>`, options.filterVisible)\n bodyProps.headerToolbar = getObjectHeaderToolbar(objectSchema, fields, options.formFactor, {\n showDisplayAs, \n hiddenCount: options.queryCount === false, \n headerToolbarItems: options.headerToolbarItems,\n filterVisible: options.filterVisible\n });\n\n options.amisData = createObject(options.amisData, {\n objectName: objectSchema.name,\n // _id: null,\n recordPermissions: objectSchema.permissions,\n uiSchema: objectSchema,\n // loaded: false //crud接收适配器中设置为true,否则就是刷新浏览器第一次加载\n });\n\n\n let body = null;\n const id = `listview_${objectSchema.name}`;\n if(options.formFactor === 'SMALL' && false){\n delete bodyProps.bulkActions;\n delete bodyProps.headerToolbar;\n delete bodyProps.footerToolbar;\n const card = await getCardSchema(fields, Object.assign({idFieldName: objectSchema.idFieldName, labelFieldName: objectSchema.NAME_FIELD_KEY || 'name'}, options, {actions: false}));\n body = Object.assign({}, card , {\n type: 'crud', \n primaryField: '_id', \n id: id,\n name: id,\n keepItemSelectionOnPageChange: false, \n api: await getTableApi(objectSchema, fields, options),\n hiddenOn: options.tableHiddenOn,\n }, \n bodyProps\n );\n }else{\n let labelFieldName = objectSchema.NAME_FIELD_KEY || 'name';\n // organizations 对象的历史遗留问题, fullname 被标记为了 名称字段. 在此处特殊处理.\n if(objectSchema.name === 'organizations'){\n labelFieldName = 'name';\n }\n let tableOptions = Object.assign({\n idFieldName: objectSchema.idFieldName, labelFieldName: labelFieldName, \n permissions:objectSchema.permissions,enable_inline_edit:objectSchema.enable_inline_edit,\n crudId: listSchema.id || id\n }, options);\n tableOptions.amisData = createObject(options.amisData || {}, {});\n const table = await getTableSchema(fields, tableOptions);\n // delete table.mode;\n //image与avatar需要在提交修改时特别处理\n const imageNames = _.compact(_.map(_.filter(fields, (field) => [\"image\",\"avatar\"].includes(field.type)), 'name'));\n const quickSaveApiRequestAdaptor = `\n var graphqlOrder = \"\";\n var imageNames = ${JSON.stringify(imageNames)};\n const rowsDiff = _.cloneDeep(api.data.rowsDiff);\n rowsDiff.forEach(function (item, index) {\n for(key in item){\n if(_.includes(imageNames, key)){\n if(typeof item[key] == \"string\"){\n const match = item[key].match(/\\\\/([^\\\\/]+)$/);\n item[key] = match && match.length > 1?match[1]:\"\";\n }else{\n item[key] = _.map(item[key], function(ele){\n const match = ele.match(/\\\\/([^\\\\/]+)$/);\n return match && match.length > 1?match[1]:\"\";\n })\n }\n }\n }\n item = _.omit(item, '_display');\n const itemOrder = 'update' + index + ':' + api.data.objectName + '__update(id:\"' + item._id + '\", doc:' + JSON.stringify(JSON.stringify(_.omit(item, '_id'))) + ') {_id}';\n graphqlOrder += itemOrder;\n })\n graphqlOrder = 'mutation {' + graphqlOrder + '}';\n return {\n ...api,\n data: {\n query: graphqlOrder\n }\n }\n `\n let autoFillHeight = true\n if(options.isRelated || window.innerWidth < 768){\n autoFillHeight = false\n }\n\n body = Object.assign({}, table, {\n type: 'crud', \n primaryField: '_id', \n affixHeader: false,\n id: id,\n name: id,\n keepItemSelectionOnPageChange: true, \n api: await getTableApi(objectSchema, fields, options),\n hiddenOn: options.tableHiddenOn,\n autoFillHeight,\n className: `flex-auto ${crudClassName || \"\"}`,\n bodyClassName: \"bg-white\",\n crudClassName: crudClassName,\n quickSaveApi: {\n url: `\\${context.rootUrl}/graphql`,\n method: \"post\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: quickSaveApiRequestAdaptor,\n adaptor: `\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n return payload;\n `\n },\n rowClassNameExpr: options.rowClassNameExpr\n }, bodyProps);\n\n }\n\n body = defaultsDeep({}, listSchema, body);\n body = await getCrudSchemaWithDataFilter(body, { crudDataFilter, onCrudDataFilter, amisData, env });\n\n let crudModeClassName = \"\";\n if(body.mode){\n crudModeClassName = `steedos-crud-mode-${body.mode}`;\n }\n\n if (defaults) {\n const headerSchema = defaults.headerSchema;\n const footerSchema = defaults.footerSchema;\n if (headerSchema || footerSchema) {\n let wrappedBody = [body];\n if (headerSchema) {\n if(_.isArray(headerSchema)){\n wrappedBody = _.union(headerSchema,wrappedBody);\n }\n else{\n wrappedBody.unshift(headerSchema);\n }\n }\n if (footerSchema) {\n if(_.isArray(footerSchema)){\n wrappedBody = _.union(wrappedBody,footerSchema);\n }\n else{\n wrappedBody.push(footerSchema);\n }\n }\n body = wrappedBody;\n }\n }\n // console.timeEnd('getObjectCRUD');\n // TODO: data应该只留loaded,其他属性都改为从上层传递下来\n return {\n type: 'service',\n className: crudModeClassName,\n //目前crud的service层id不认用户自定义id,只支持默认规则id,许多地方的格式都写死了service_listview_${objectname}\n id: `service_${id}`,\n name: `page`,\n data: options.amisData,\n body: body\n }\n}\n\nconst getGlobalData = (mode)=>{\n const user = getSteedosAuth();\n return {mode: mode, user: user, spaceId: user.spaceId, userId: user.userId}\n}\n\nconst getFormFields = (objectSchema, formProps)=>{\n // console.log(`getFormFields`, objectSchema, formProps)\n const { fields: objectFields } = objectSchema;\n /**\n * fieldsExtend: 重写字段定义\n * fields: 包含的字段\n * excludedFields: 排除的字段\n */\n const { fieldsExtend, fields: includedFields, excludedFields } = formProps;\n \n let fields = {};\n // 以uiSchema fields 为基础, 遍历字段, 并更新字段定义\n _.forEach(objectSchema.fields, (field, fieldName)=>{\n if(!lodash.has(field, \"name\")){\n field.name = fieldName\n }\n if(fieldsExtend && fieldsExtend[fieldName]){\n fields[field.name] = Object.assign({}, field, fieldsExtend[fieldName], {name: field.name})\n }else{\n fields[field.name] = field\n }\n });\n\n if(!_.isEmpty(includedFields) && _.isArray(includedFields)){\n const includedFieldsMap = {}\n _.each(includedFields, (fName, index)=>{\n if(fields[fName]){\n includedFieldsMap[fName] = Object.assign({}, fields[fName], {sort_no: index})\n }\n })\n fields = includedFieldsMap\n }\n\n if(!_.isEmpty(excludedFields) && _.isArray(excludedFields)){\n _.each(excludedFields, (fName)=>{\n delete fields[fName]\n })\n }\n\n return lodash.sortBy(_.values(fields), \"sort_no\");\n}\n\nasync function getFormSchemaWithDataFilter(form, options = {}){\n const { formDataFilter, amisData, env } = options;\n let onFormDataFilter = options.onFormDataFilter;\n if (!onFormDataFilter && typeof formDataFilter === 'string') {\n onFormDataFilter = new Function(\n 'form',\n 'env',\n 'data',\n formDataFilter\n );\n }\n\n try {\n onFormDataFilter && (form = await onFormDataFilter(form, env, amisData) || form);\n } catch (e) {\n console.warn(e);\n }\n return form;\n}\n\nexport async function getObjectForm(objectSchema, ctx){\n const { recordId, formFactor, layout = formFactor === 'SMALL' ? 'normal' : \"normal\", labelAlign, tabId, appId, defaults, submitSuccActions = [], \n formDataFilter, onFormDataFilter, amisData, env } = ctx;\n const fields = _.values(objectSchema.fields);\n const formFields = getFormFields(objectSchema, ctx);\n const formSchema = defaults && defaults.formSchema || {};\n if(_.has(formSchema, 'className')){\n formSchema.className = 'steedos-amis-form'\n }\n if(!formSchema.id){\n formSchema.id = 'form_' + objectSchema.name;\n }\n const amisSchema = {\n type: 'service',\n id: `service_${formSchema.id}`,\n className: 'p-0',\n name: `page_edit_${recordId}`,\n api: await getEditFormInitApi(objectSchema, recordId, fields, ctx),\n data:{\n editFormInited: false,\n ...amisData\n },\n // data: {global: getGlobalData('edit'), recordId: recordId, objectName: objectSchema.name, context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},\n initApi: null,\n initFetch: null ,\n body: [defaultsDeep({}, formSchema, {\n type: \"form\",\n mode: layout,\n data: {\n \"&\": \"${initialValues}\"\n },\n labelAlign,\n persistData: false,\n resetAfterSubmit: true,\n preventEnterSubmit: true,\n promptPageLeave: true,\n canAccessSuperData: false,\n name: `form_edit_${recordId}`,\n debug: false,\n title: \"\",\n submitText: \"\", // amis 表单不显示提交按钮, 表单提交由项目代码接管\n api: await getSaveApi(objectSchema, recordId, fields, ctx),\n initFetch: recordId != 'new',\n body: await getFormBody(fields, formFields, Object.assign({}, ctx, {fieldGroups: objectSchema.field_groups})),\n panelClassName:'m-0 sm:rounded-lg shadow-none border-none',\n bodyClassName: 'p-0',\n className: 'steedos-amis-form',\n hiddenOn: \"${editFormInited != true}\",\n onEvent: {\n \"submitSucc\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": `@data.changed.${objectSchema.name}`\n },\n \"data\": {\n \"objectName\": `${objectSchema.name}`,\n \"displayAs\": \"${displayAs}\"\n }\n },\n {\n \"actionType\": \"broadcast\",\n \"args\": {\n \"eventName\": \"@data.changed.${_master.objectName}\"\n },\n \"data\": {\n \"objectName\": \"${_master.objectName}\",\n \"_isRelated\": \"${_isRelated || _master._isRelated}\"\n },\n \"expression\": `\\${_master.objectName != '${objectSchema.name}' && _master.objectName}`\n },\n ...submitSuccActions,\n // {\n // \"actionType\": \"custom\",\n // \"script\": `setTimeout(function(){doAction({'actionType': 'setValue','componentId': '${formSchema.id}','args': {'value': {'sort_no': 879}}})}, 300)`\n // },\n // {\n // \"args\": {},\n // \"actionType\": \"closeDialog\"\n // }\n ]\n }\n }\n })]\n };\n amisSchema.body[0] = await getFormSchemaWithDataFilter(amisSchema.body[0], { formDataFilter, onFormDataFilter, amisData, env });\n return amisSchema;\n}\n\nexport async function getObjectDetail(objectSchema, recordId, ctx){\n const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : \"normal\", labelAlign, \n formDataFilter, onFormDataFilter, amisData, env } = ctx;\n const fields = _.values(objectSchema.fields);\n const formFields = getFormFields(objectSchema, ctx);\n const serviceId = `service_detail_page`;\n const amisSchema = {\n type: 'service',\n name: `page_readonly_${recordId}`,\n id: serviceId,\n data: {global: getGlobalData('read'), context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},\n api: await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx),\n body: [\n {\n \"type\": \"wrapper\", //form 的 hiddenOn 会导致 form onEvent 异常, 使用wrapper包裹一次form,并在wrapper上控制显隐\n hiddenOn: \"${recordLoaded != true}\",\n \"className\": \"p-0 m-0\",\n \"body\": {\n type: \"form\",\n mode: layout,\n labelAlign,\n persistData: false,\n promptPageLeave: false,\n name: `form_readonly_${recordId}`,\n debug: false,\n title: \"\",\n data: {\n \"formData\": \"$$\"\n },\n wrapWithPanel: false, \n body: await getFormBody(\n map(fields, (field) => { field.readonly = true; return field; }),\n map(formFields, (field) => { field.readonly = true; return field; }),\n Object.assign({}, ctx, { showSystemFields: true, fieldGroups: objectSchema.field_groups })\n ),\n className: 'steedos-amis-form bg-white',\n actions: [], // 不显示表单默认的提交按钮\n onEvent: {\n [`@data.changed.${objectSchema.name}`]: { // 由于amis service 组件的 onEvent 存在bug ,此处借助form来刷新 上层 service https://github.com/baidu/amis/issues/6294\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"componentId\": serviceId,\n \"expression\": \"this.__deletedRecord != true\"\n },\n {\n // \"args\": {\n // \"url\": \"/app/${appId}/${objectName}/grid/${side_listview_id}\",\n // \"blank\": false\n // },\n \"actionType\": \"custom\",\n \"script\": \"window.goBack()\",\n \"expression\": \"this.__deletedRecord === true\"\n }\n ]\n }\n }\n },\n }\n ],\n onEvent: {\n \"fetchInited\": {\n \"weight\": 0,\n \"actions\": [\n {\n actionType: 'broadcast',\n eventName: \"recordLoaded\",\n args: {\n eventName: \"recordLoaded\"\n },\n data: {\n objectName: \"${event.data.__objectName}\",\n record: \"${event.data.__record}\"\n },\n expression: \"${event.data.__response.error != true}\"\n },\n {\n \"actionType\": \"setValue\",\n \"args\": {\n value: {\n \"recordLoaded\": true,\n }\n },\n expression: \"${event.data.__response.error != true}\"\n }\n ]\n }\n }\n }\n\n amisSchema.body[0].body = await getFormSchemaWithDataFilter(amisSchema.body[0].body, { formDataFilter, onFormDataFilter, amisData, env });\n return amisSchema;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-01 09:00:26\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-03 13:21:38\n * @Description: \n */\nimport { fetchAPI, getSteedosAuth } from \"./steedos.client\"\nimport { each } from \"lodash\";\n\nconst getGraphqlFieldsQuery = (fields)=>{\n const fieldsName = ['_id'];\n fields.push('record_permissions');\n //TODO 此处需要考虑相关对象查询\n each(fields, (fieldName)=>{\n if(fieldName.indexOf('.') > -1){\n fieldName = fieldName.split('.')[0]\n }\n fieldsName.push(`${fieldName}`)\n })\n return `${fieldsName.join(' ')}`;\n}\n\nconst getFindOneQuery = (objectName, id, fields)=>{\n objectName = objectName.replace(/\\./g, '_');\n const queryFields = getGraphqlFieldsQuery(fields);\n let queryOptions = ''\n let alias = \"record\";\n \n const queryOptionsArray = [`id: \"${id}\"`];\n \n if(queryOptionsArray.length > 0){\n queryOptions = `(${queryOptionsArray.join(',')})`\n }\n\n return `{${alias}:${objectName}__findOne${queryOptions}{${queryFields}}}`\n}\n\nexport const getRecord = async (objectName, recordId, fields)=>{\n const result = await fetchAPI('/graphql', {\n method: 'post',\n body: JSON.stringify({\n query: getFindOneQuery(objectName, recordId, fields)\n })\n })\n return result.data.record;\n}\n\nexport const getRelatedsCount = async (masterRecordId, relateds) => {\n const relatedQuery = [];\n\n each(relateds, (relate)=>{\n relatedQuery.push(`${relate.object_name}: ${relate.object_name}__count(filters: [[\"${relate.foreign_key}\",\"=\",\"${masterRecordId}\"]])`);\n })\n\n const query = `\n {\n ${relatedQuery.join(',')}\n }\n `;\n const result = await fetchAPI('/graphql', {\n method: 'POST',\n body: JSON.stringify({ query })\n })\n\n return result.data\n}\n\nexport const getRecordPermissions = async (objectName, recordId)=>{\n const result = await fetchAPI(`/service/api/@${objectName}/recordPermissions/${recordId}`, {\n method: 'GET'\n })\n return result;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:55:39\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-11-14 15:55:32\n * @Description:\n */\n\n\nimport { getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\nimport { isEmpty, find, isString, forEach, keys, findKey, isArray, union, has, map } from \"lodash\";\nimport { getUISchema, getField, getListViewColumns, getListViewSort, getListViewFilter } from './objects'\nimport { getRecord } from './record';\nimport { i18next } from '../i18n'\n\nfunction str2function(\n contents,\n ...args\n ) {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport const getRelatedFieldValue = (masterObjectName, record_id, uiSchema, foreign_key) => {\n const relatedField = find(uiSchema.fields, (field) => {\n return foreign_key === field?.name\n });\n // console.log(`getRelatedFieldValue`, relatedField, uiSchema, foreign_key)\n if (!isString(relatedField.reference_to)) {\n return { o: masterObjectName, ids: [record_id] }\n } else if (relatedField.multiple) {\n return [record_id]\n } else {\n return record_id\n }\n}\n\n// 获取所有相关表\nexport async function getObjectRelatedList(\n objectName,\n recordId,\n formFactor\n) {\n const uiSchema = await getUISchema(objectName);\n const related = [];\n const relatedLists = [].concat(uiSchema.related_lists || []);\n if(!isEmpty(relatedLists)){\n for (const relatedList of relatedLists) {\n const arr = relatedList.related_field_fullname.split(\".\");\n const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n related.push({\n masterObjectName: objectName,\n object_name: arr[0],\n foreign_key,\n label: relatedList.label,\n columns: relatedList.field_names,\n sort: relatedList.sort,\n filters: relatedList.filters,\n visible_on: relatedList.visible_on,\n page_size: relatedList.page_size\n }); \n }\n }else{\n const details = [].concat(uiSchema.details || []);\n for (const detail of details) {\n const arr = detail.split(\".\");\n const foreign_key = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n related.push({\n masterObjectName: objectName,\n object_name: arr[0],\n foreign_key\n });\n }\n }\n\n return related;\n}\n\n// 获取单个相关表\nexport async function getRecordDetailRelatedListSchema(objectName, recordId, relatedObjectName, relatedKey, ctx){\n let { top, perPage, appId, relatedLabel, className, columns, sort, filters, visible_on } = ctx;\n // console.log('getRecordDetailRelatedListSchema==>',objectName,recordId,relatedObjectName)\n const relatedObjectUiSchema = await getUISchema(relatedObjectName);\n if(!relatedObjectUiSchema){\n // 子表对象不存在时直接返回空值.\n return {\n uiSchema: {},\n amisSchema: {}\n }\n }\n const { label , fields } = relatedObjectUiSchema;\n if(!relatedLabel){\n relatedLabel = label;\n }\n if(!relatedKey){\n let mainRelated = {};\n const mainObjectUiSchema = await getUISchema(objectName);\n if(mainObjectUiSchema){\n const mainRelatedLists = mainObjectUiSchema.related_lists || [];\n if(!isEmpty(mainRelatedLists)){\n for (const relatedList of mainRelatedLists) {\n const arr = relatedList.related_field_fullname.split(\".\");\n const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n mainRelated[arr[0]] = foreign_key_value;\n }\n }else{\n const details = union(mainObjectUiSchema.details,mainObjectUiSchema.lookup_details) || [];\n for (const detail of details) {\n const arr = detail.split(\".\");\n const foreign_key_value = arr[2] ? arr[1]+'.'+arr[2] : arr[1];\n if(!has(mainRelated,arr[0])){\n mainRelated[arr[0]] = foreign_key_value;\n }\n }\n }\n }\n relatedKey = mainRelated[relatedObjectName];\n }\n let globalFilter = null;\n // TODO: refField变量去掉,写到amis运行时脚本中,uiSchema.fields[relatedKey];可以取到\n const refField = await getField(relatedObjectName, relatedKey);\n\n if(!refField){\n return {\n uiSchema: relatedObjectUiSchema,\n amisSchema: {\n \"type\": \"alert\",\n \"body\": `${i18next.t('frontend_objects_related_alert_start')} ${relatedObjectName} ${i18next.t('frontend_objects_related_alert_end')}`,\n \"level\": \"warning\",\n \"showIcon\": true,\n \"className\": \"mb-3\"\n }\n }\n }\n\n let relatedValue = \"${recordId}\";\n // if(refField.reference_to_field && refField.reference_to_field != '_id'){\n // const masterRecord = await getRecord(objectName, recordId, [refField.reference_to_field]);\n // relatedValue = masterRecord[refField.reference_to_field]\n // }\n \n // if (\n // refField._reference_to ||\n // (refField.reference_to && !isString(refField.reference_to))\n // ) {\n // globalFilter = [\n // [`${relatedKey}/o`, \"=\", objectName],\n // [`${relatedKey}/ids`, \"=\", relatedValue],\n // ];\n // } else {\n // globalFilter = [`${relatedKey}`, \"=\", relatedValue];\n // }\n const recordRelatedListHeader = await getObjectRecordDetailRelatedListHeader(relatedObjectUiSchema, relatedLabel, ctx);\n const componentId = `steedos-record-related-list-${relatedObjectName}`;\n const isMobile = window.innerWidth < 768;\n let headerToolbar = [];\n if(!isMobile){\n headerToolbar.push(\"bulkActions\");\n }\n const options = {\n globalFilter,\n defaults: {\n listSchema: { \n headerToolbar,\n columnsTogglable: false,\n onEvent: {\n [`@data.changed.${relatedObjectName}`]: {\n \"actions\": [\n {\n \"actionType\": \"reload\"\n }\n ]\n }\n }\n },\n headerSchema: recordRelatedListHeader\n },\n showHeader: true,\n top: top,\n perPage: perPage,\n setDataToComponentId: componentId,\n // tableHiddenOn: hiddenEmptyTable ? \"this.$count === 0\" : null,\n appId: appId,\n crudClassName: 'border-t border-gray-300 hidden',\n refField,\n ...ctx\n }\n const amisSchema= (await getRelatedListSchema(relatedObjectName, 'all', options)).amisSchema;\n if(!amisSchema){\n return;\n }\n return {\n uiSchema: relatedObjectUiSchema,\n amisSchema: {\n type: \"service\",\n id: componentId,\n className: `steedos-record-related-list ${componentId} rounded border border-gray-300 bg-gray-100 mb-4 ${className}`,\n data: {\n relatedKey: relatedKey, \n listViewId: `amis-\\${appId}-${relatedObjectName}-listview`,\n _isRelated: true\n },\n body:[\n amisSchema\n ]\n }\n };\n}\n\n/**\n* \n* @param {*} uiSchema \n* @param {*} ctx \n* @returns \n* 1 对象uiSchema\n* 2 列表视图名称: (排除日历视图)当无视图传入,取is_name为true的字段显示。\n* 3 options\n*/\nfunction getDefaultRelatedListProps(uiSchema, listName, ctx) {\n // console.log('getDefaultRelatedListProps==>', uiSchema, listName, ctx)\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 日历视图不在相关子表中出现\n if(listView.type === 'calendar'){\n return false;\n }\n // 传入listViewName空值则取第一个\n if (!listName) {\n listName = name;\n }\n return name === listName;\n }\n );\n let columns = [];\n let sort = '';\n let filter = null;\n let filtersFunction = null;\n if(listView){\n columns = getListViewColumns(listView, ctx.formFactor);\n sort = getListViewSort(listView);\n filter = getListViewFilter(listView);\n // if(isArray(ctx.globalFilter) && ctx.globalFilter.length && isArray(filter) && filter.length){\n // // 都有值\n // filter = [ctx.globalFilter, 'and', filter]\n // }else if(ctx.globalFilter && (!filter || !filter.length)){\n // // globalFilter有值,filter无值\n // filter = ctx.globalFilter;\n // }\n filtersFunction = listView && listView._filters;\n }else{\n const isNameField = find(\n uiSchema.fields,\n (field,name)=>{\n return field.is_name;\n }\n )\n columns = isNameField ? [isNameField.name] : ['name'];\n // if(ctx.globalFilter){\n // filter = ctx.globalFilter;\n // }\n }\n\n return {\n columns,\n sort,\n filter,\n filtersFunction\n }\n};\n \nfunction getRelatedListProps(uiSchema, listViewName, ctx) {\n if (ctx.columns) {\n const sort = getListViewSort({sort: ctx.sort});\n let { filters , filtersFunction} = ctx;\n if(!filtersFunction && filters){\n filtersFunction = str2function(\n filters,\n 'filters',\n 'data'\n ) \n }\n return {\n columns: ctx.columns,\n sort,\n // filter: ctx.globalFilter,\n filtersFunction: filtersFunction\n }\n } else {\n return getDefaultRelatedListProps(uiSchema, listViewName, ctx);\n }\n}\n\n// 仅提供给单个相关子表内部使用\nexport async function getRelatedListSchema(\n objectName,\n listViewName,\n ctx\n ) {\n const uiSchema = await getUISchema(objectName);\n if(!uiSchema){\n return {}\n }\n const listViewNames = map(uiSchema.list_views, 'name');\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 传入listViewName空值 或者 不存在 则取第一个\n if(!listViewName || listViewNames.indexOf(listViewName)<0){\n listViewName = name;\n }\n return name === listViewName || listView._id === listViewName;\n }\n );\n const listViewProps = getRelatedListProps(uiSchema,listViewName, ctx);\n // console.log('listViewProps==>', listViewProps)\n const {columns: listViewColumns, sort: listViewSort, filter: listviewFilter, filtersFunction } = listViewProps;\n\n const refFieldName = ctx.refField && ctx.refField.name;\n\n let relatedListColumns = listViewColumns;\n if(refFieldName){\n relatedListColumns = listViewColumns.filter(function(columnItem){\n if(typeof columnItem === \"string\"){\n return columnItem !== refFieldName;\n }\n else{\n return columnItem.field !== refFieldName;\n }\n });\n }\n \n const defaults = ctx.defaults || {};\n \n if(!defaults.headerSchema && ctx.showHeader){\n defaults.headerSchema = await getObjectListHeader(uiSchema, listViewName);\n }\n \n if(!ctx.showHeader){\n defaults.headerSchema = null;\n }\n \n ctx.defaults = defaults;\n\n // 由于steedos-object-table组件的上下文覆盖规则异常,此处手动删除无需的ctx参数\n delete ctx.filtersFunction;\n delete ctx.sort;\n delete ctx.extraColumns;\n delete ctx.filters;\n\n delete ctx.globalFilter;\n\n const adaptor = `\n try{\n if(setDataToComponentId){\n if(payload.data.count){\n setTimeout(function(){\n // 设计器中获取不到window.$从而导致报错, 所以用纯js替换下。\n // window.$(\".\" + setDataToComponentId + \" .antd-Crud\").removeClass(\"hidden\");\t\t\n document.querySelectorAll(\".\" + setDataToComponentId + \" .antd-Crud\").forEach(function(element) {\n element.classList.remove(\"hidden\");\n });\n }, 10);\n }\n };\n }catch(e){\n console.log(e);\n }\n `;\n const amisSchema = {\n \"type\": \"steedos-object-table\",\n \"objectApiName\": objectName,\n \"columns\": relatedListColumns,\n \"extraColumns\": listView.extra_columns,\n \"filters\": listviewFilter,\n \"filtersFunction\": filtersFunction,\n \"sort\": listViewSort,\n \"filterVisible\": false,\n \"requestAdaptor\": ctx.requestAdaptor, \n \"adaptor\": adaptor + ctx.adaptor || '',\n \"ctx\": ctx\n };\n // console.log(`getRelatedListSchema amisSchema`, amisSchema);\n return {\n uiSchema,\n amisSchema,\n };\n }","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:55:39\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-10-20 11:38:25\n * @Description:\n */\nimport { fetchAPI, getUserId } from \"./steedos.client\";\nimport { getObjectCalendar } from './converter/amis/calendar';\nimport { i18next } from '../i18n'\nimport { createObject } from '../utils/object'\n\nimport {\n getObjectCRUD,\n getObjectDetail,\n getObjectForm,\n} from \"./converter/amis/index\";\nimport { getObjectListHeader, getObjectListHeaderFirstLine, getObjectRecordDetailHeader, getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\nimport _, { cloneDeep, slice, isEmpty, each, has, findKey, find, isString, isObject, keys, includes, isArray, isFunction, map, forEach, defaultsDeep } from \"lodash\";\nimport { getRecord } from './record';\nimport { getListViewItemButtons } from './buttons'\nimport { getObjectRelatedList } from './objectsRelated';\n\nlet UI_SCHEMA_CACHE = {};\n\nlet UISchemaFunction;\nexport const setUISchemaFunction = function(fun){\n UISchemaFunction = fun;\n};\n\nif('undefined' != typeof window){\n if(!window.UI_SCHEMA_CACHE){\n window.UI_SCHEMA_CACHE = UI_SCHEMA_CACHE;\n }\n UI_SCHEMA_CACHE = window.UI_SCHEMA_CACHE;\n}\n\nconst setUISchemaCache = (key, value) => {\n UI_SCHEMA_CACHE[key] = value;\n};\n\nconst getUISchemaCache = (key) => {\n return cloneDeep(UI_SCHEMA_CACHE[key]);\n};\n\nconst hasUISchemaCache = (key) => {\n return has(UI_SCHEMA_CACHE, key);\n};\n\nexport function getListViewColumns(listView, formFactor) {\n let listViewColumns = [];\n if (formFactor === \"SMALL\") {\n listViewColumns = !isEmpty(listView.mobile_columns)\n ? listView.mobile_columns\n : slice(listView.columns, 0, 4);\n } else {\n listViewColumns = listView.columns;\n }\n return listViewColumns;\n};\n\nexport function getListViewSort(listView) {\n let sort = '';\n if(listView && listView.sort && listView.sort.length){\n each(listView.sort,function(item,index){\n if(isArray(item)){\n const field_name = item[0];\n const order = item[1] || '';\n let sortStr = field_name + ' ' + order;\n sortStr = index > 0 ? ','+sortStr : sortStr\n sort += sortStr;\n }else{\n let sortStr = item.field_name + ' ' + item.order;\n sortStr = index > 0 ? ','+sortStr : sortStr\n sort += sortStr;\n }\n })\n }\n return sort;\n};\n\nexport function getListViewFilter(listView){\n if(!listView){\n return ;\n }\n try {\n const userId = getUserId();\n let filters = listView.filters;\n if(listView.filter_scope === 'mine'){\n if(_.isEmpty(filters)){\n filters = [[\"owner\", \"=\", userId]]\n }else{\n if(_.isString(filters) && _.startsWith(_.trim(filters), \"function\")){\n filters = new Function(`return ${filters}`);\n filters = filters();\n }\n if(_.isArray(filters)){\n filters.push([\"owner\", \"=\", userId])\n }else{\n console.debug(`listView filters is not array`, listView)\n throw new Error('filters is not array')\n }\n }\n };\n return filters;\n } catch (error) {\n console.error(error)\n }\n}\n\nfunction formatUISchemaCache(objectName, uiSchema){\n setUISchemaCache(objectName, uiSchema);\n each(uiSchema.fields, (field)=>{\n try {\n if(field.type === \"lookup\" && field._reference_to && _.isString(field._reference_to)){\n field.reference_to = eval(`(${field._reference_to})`)();\n }\n } catch (exception) {\n field.reference_to = undefined;\n console.error(exception)\n }\n })\n each(uiSchema.list_views, (v, k)=>{\n v.name = k;\n if(!has(v, 'columns')){\n v.columns = uiSchema.list_views.all.columns;\n }\n })\n}\n\nexport async function getUISchema(objectName, force) {\n if (!objectName) {\n return;\n }\n if (hasUISchemaCache(objectName) && !force) {\n return getUISchemaCache(objectName);\n }\n let uiSchema = null;\n try {\n if(UISchemaFunction){\n uiSchema = await UISchemaFunction(objectName, force);\n }\n else {\n const url = `/service/api/@${objectName.replace(/\\./g, \"_\")}/uiSchema`;\n uiSchema = await fetchAPI(url, { method: \"get\" });\n }\n if(!uiSchema){\n return ;\n }\n formatUISchemaCache(objectName, uiSchema);\n } catch (error) {\n console.error(`getUISchema`, objectName, error);\n setUISchemaCache(objectName, null);\n }\n return getUISchemaCache(objectName);\n}\n\nexport function getUISchemaSync(objectName, force) {\n if (!objectName) {\n return;\n }\n if (hasUISchemaCache(objectName) && !force) {\n return getUISchemaCache(objectName);\n }\n let uiSchema = null;\n try {\n \n const url = `/service/api/@${objectName.replace(/\\./g, \"_\")}/uiSchema`;\n uiSchema = Steedos.authRequest(url, {\n type: 'GET',\n async: false,\n });\n\n if(!uiSchema){\n return ;\n }\n formatUISchemaCache(objectName, uiSchema);\n } catch (error) {\n console.error(`getUISchema`, objectName, error);\n setUISchemaCache(objectName, null);\n }\n return getUISchemaCache(objectName);\n}\n\nexport async function getField(objectName, fieldName) {\n const uiSchema = await getUISchema(objectName);\n return uiSchema?.fields[fieldName];\n}\n\n// 获取表单页面\nexport async function getFormSchema(objectName, ctx) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectForm(uiSchema, ctx);\n console.log(`getFormSchema====>`, amisSchema)\n return {\n uiSchema,\n amisSchema,\n };\n}\n\n// 获取只读页面 recordId 已废弃, 函数签名保持不变, 但recordId变量不可再使用, 请使用运行时的${recordId}\nexport async function getViewSchema(objectName, recordId, ctx) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectDetail(uiSchema, recordId, ctx);\n // console.log(`getViewSchema amisSchema`, amisSchema)\n return {\n uiSchema,\n amisSchema\n };\n}\n\n// 获取列表视图\nexport async function getListSchema(\n appName,\n objectName,\n listViewName,\n ctx = {}\n) {\n const uiSchema = await getUISchema(objectName);\n if(!uiSchema){\n return {}\n }\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n // 传入listViewName空值则取第一个\n if(!listViewName){\n listViewName = name;\n }\n return name === listViewName || listView._id === listViewName;\n }\n );\n\n if (!listView) {\n return { uiSchema };\n }\n\n // 直接返回自定义的列表视图schema\n if(listView.enable_amis_schema && listView.amis_schema){\n const amisSchema = isString(listView.amis_schema) ? JSON.parse(listView.amis_schema) : listView.amis_schema;\n return {\n uiSchema,\n isCustomAmisSchema: true,\n amisSchema\n };\n }\n\n let listViewColumns = getListViewColumns(listView, ctx.formFactor);\n let sort = getListViewSort(listView);\n let listviewFilter = getListViewFilter(listView, ctx);\n let listview_filters = listView && listView._filters;\n // 返回 calendar 组件\n if(listView.type === \"calendar\"){\n const amisSchema = {\n \"type\": \"steedos-object-calendar\",\n \"objectApiName\": objectName,\n \"filters\": listviewFilter,\n \"filtersFunction\": listview_filters,\n \"sort\": sort,\n ...listView.options\n };\n return {\n uiSchema,\n isCalendar: true,\n amisSchema\n };\n }\n\n const defaults = ctx.defaults || {};\n\n // // 未自定义header 且显示header的时候, 使用系统header\n // if(!defaults.headerSchema && ctx.showHeader){\n // defaults.headerSchema = getObjectListHeader(uiSchema, listViewName);\n // }\n \n // // 如果不显示header,则清理掉\n // if(!ctx.showHeader){\n // defaults.headerSchema = null;\n // }\n\n defaults.headerSchema = null;\n\n /**\n * 本次存储代码段\n */\n try {\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n /**\n * localListViewProps规范来自crud请求api中api.data.$self参数值的。\n * 比如:{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:顶部放大镜搜索条件\n * filter:右侧过滤器\n * perPage:每页条数\n * page:当前页码\n * orderBy:排序字段\n * orderDir:排序方向\n */\n if (localListViewProps) {\n localListViewProps = JSON.parse(localListViewProps);\n // localListViewProps.perPage = 3;\n let listSchema = {};\n if(localListViewProps.orderBy){\n listSchema.orderBy = localListViewProps.orderBy;\n }\n if(localListViewProps.orderDir){\n listSchema.orderDir = localListViewProps.orderDir;\n }\n\n if(localListViewProps.perPage){\n listSchema.defaultParams = {\n perPage: localListViewProps.perPage\n }\n }\n defaults.listSchema = defaultsDeep({}, listSchema, defaults.listSchema || {});\n }\n }\n catch (ex) {\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n\n ctx.defaults = defaults;\n\n if (listViewName == \"recent\") {\n listview_filters = `\n function(filters, data) {\n var result = Steedos.authRequest('/graphql', {\n type: 'POST',\n async: false,\n data: JSON.stringify({\n query: '{object_recent_viewed(filters: [[\"record.o\",\"=\",\"' + data.objectName + '\"],[\"space\",\"=\",\"' + data.context.tenantId + '\"],[\"owner\",\"=\",\"' + data.context.userId + '\"]],sort:\"modified desc\",top:50){ _id,record} }'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return [\"_id\", \"=\", _ids];\n }\n `\n }\n const amisSchema = {\n \"type\": \"steedos-object-table\",\n \"objectApiName\": objectName,\n \"columns\": listViewColumns,\n \"extraColumns\": listView.extra_columns,\n \"filters\": listviewFilter,\n \"filtersFunction\": listview_filters,\n \"sort\": sort,\n \"ctx\": ctx,\n \"requestAdaptor\": listView.requestAdaptor || ctx.requestAdaptor, \n \"adaptor\": listView.adaptor || ctx.adaptor,\n \"headerToolbarItems\": ctx.headerToolbarItems,\n \"filterVisible\": ctx.filterVisible,\n \"rowClassNameExpr\": ctx.rowClassNameExpr,\n \"crudDataFilter\": ctx.crudDataFilter,\n \"onCrudDataFilter\": ctx.onCrudDataFilter\n };\n // console.log(`getListSchema===>`,amisSchema)\n return {\n uiSchema,\n amisSchema,\n };\n}\n\nasync function convertColumnsToTableFields(columns, uiSchema, ctx = {}) {\n let fields = [];\n for (const column of columns) {\n if (isString(column)) {\n if (column.indexOf('.') > 0) {\n const fieldName = column.split('.')[0];\n const displayName = column.split('.')[1];\n const filedInfo = uiSchema.fields[fieldName];\n if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {\n const rfUiSchema = await getUISchema(filedInfo.reference_to);\n const rfFieldInfo = rfUiSchema.fields[displayName];\n fields.push(Object.assign({}, rfFieldInfo, { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } }, ctx));\n }\n } else {\n if (uiSchema.fields[column]) {\n fields.push(Object.assign({}, uiSchema.fields[column], ctx));\n }\n else if(ctx.extra){\n // 配置列表视图extra_columns时允许字段是hidden的,hidden的字段在uiSchema.fields中不存在\n fields.push({\n extra: true,\n name: column\n });\n }\n }\n } else if (isObject(column)) {\n if (column.field.indexOf('.') > 0) {\n const fieldName = column.field.split('.')[0];\n const displayName = column.field.split('.')[1];\n const filedInfo = uiSchema.fields[fieldName];\n if (filedInfo && (filedInfo.type === 'lookup' || filedInfo.type === 'master_detail') && isString(filedInfo.reference_to)) {\n const rfUiSchema = await getUISchema(filedInfo.reference_to);\n const rfFieldInfo = rfUiSchema.fields[displayName];\n fields.push(Object.assign({}, rfFieldInfo, ctx,\n { name: `${fieldName}__expand.${displayName}`, expand: true, expandInfo: { fieldName, displayName } },\n {\n width: column.width,\n wrap: column.wrap, // wrap = true 是没效果的\n amis: column.amis\n }\n ));\n }\n } else {\n if (uiSchema.fields[column.field]) {\n fields.push(\n Object.assign({}, uiSchema.fields[column.field], ctx, {\n width: column.width,\n wrap: column.wrap, // wrap = true 是没效果的\n amis: column.amis\n })\n );\n }\n else if(ctx.extra){\n // 配置列表视图extra_columns时允许字段是hidden的,hidden的字段在uiSchema.fields中不存在\n fields.push({\n extra: true,\n name: column.field\n });\n }\n }\n }\n }\n return fields;\n}\n\n// 获取对象表格\nexport async function getTableSchema(\n appName,\n objectName,\n columns,\n ctx = {}\n) {\n // console.time('getTableSchema', columns);\n const uiSchema = await getUISchema(objectName);\n\n let sort = ctx.sort;\n if(!sort){\n const sortField = ctx.sortField;\n const sortOrder = ctx.sortOrder;\n if(sortField){\n let sortStr = sortField + ' ' + sortOrder || 'asc';\n sort = sortStr;\n }\n }\n\n let fields = await convertColumnsToTableFields(columns, uiSchema);\n\n const extraColumns = ctx.extraColumns;\n\n if (extraColumns) {\n let extraFields = await convertColumnsToTableFields(extraColumns, uiSchema, {extra: true});\n fields = fields.concat(extraFields);\n }\n \n let crudOptions = {\n tabId: objectName,\n appId: appName,\n objectName: objectName,\n ...ctx,\n filter: ctx.filters,\n sort,\n headerToolbarItems: ctx.headerToolbarItems,\n buttons: await getListViewItemButtons(uiSchema, ctx)\n };\n crudOptions.amisData = createObject(ctx.amisData || {}, {});\n const amisSchema = await getObjectCRUD(uiSchema, fields, crudOptions);\n // console.timeEnd('getTableSchema');\n return {\n uiSchema,\n amisSchema,\n };\n}\n\n// 获取对象日历\nexport async function getCalendarSchema(\n appName,\n objectName,\n calendarOptions,\n ctx = {}\n) {\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectCalendar(uiSchema, calendarOptions, {\n tabId: objectName,\n appId: appName,\n objectName: objectName,\n ...ctx\n });\n return {\n uiSchema,\n amisSchema\n };\n}\n\nexport async function getRecordDetailHeaderSchema(objectName,recordId, options){\n const uiSchema = await getUISchema(objectName);\n const amisSchema = await getObjectRecordDetailHeader(uiSchema, recordId, options);\n return {\n uiSchema,\n amisSchema,\n };\n}\n\nexport async function getRecordDetailSchema(objectName, appId, props = {}){\n const uiSchema = await getUISchema(objectName);\n const relatedLists = await getObjectRelatedList(objectName, null, null);\n const detailed = {\n \"title\": i18next.t('frontend_record_detail_tab_detailed'),\n \"className\": \"px-0 py-4\",\n \"body\": [\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:d4a495811d57\",\n appId: appId\n }\n ],\n \"id\": \"u:5d4e7e3f6ecc\"\n };\n const related = {\n \"title\": i18next.t('frontend_record_detail_tab_related'),\n \"className\": \"px-0 pt-4\",\n \"body\": [\n {\n \"type\": \"steedos-object-related-lists\",\n \"label\": \"相关列表\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:3b85b7b7a7f6\",\n appId: appId\n }\n ],\n \"id\": \"u:1a0326aeec2b\"\n }\n const content = {\n \"type\": \"tabs\",\n \"className\": \"sm:mt-3 bg-white sm:rounded sm:border border-gray-300 p-4\",\n \"tabs\": [\n detailed\n ],\n \"id\": \"u:a649e4094a12\"\n };\n if(relatedLists.length){\n content.tabs.push(related)\n }\n return {\n uiSchema,\n amisSchema: {\n \"type\": \"service\",\n \"body\": [\n {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"id\": \"u:48d2c28eb755\"\n },\n content\n ],\n data: {\n \"_master.objectName\": \"${objectName}\", \n \"_master.recordId\": \"${recordId}\"\n },\n onEvent: {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,\n \"_master.record\": `\\${record}`, \n // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId\n \"_master.objectName\": \"${objectName}\", \n \"_master.recordId\": \"${recordId}\"\n }\n }\n ]\n },\n ...props.onEvent\n },\n }\n }\n}\n\nexport async function getRecordServiceSchema(objectName, appId, props = {}) {\n const uiSchema = await getUISchema(objectName);\n return {\n uiSchema,\n amisSchema: {\n \"type\": \"service\",\n \"body\": [],\n data: {\n \"_master.objectName\": \"${objectName}\",\n \"_master.recordId\": \"${recordId}\"\n },\n \"style\": {\n \"padding\": \"var(--Page-body-padding)\",\n ...props.style\n },\n onEvent: {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema.NAME_FIELD_KEY || 'name'}}`,\n \"_master.record\": `\\${record}`,\n // 不清楚reload 如何给对象下的某个key复制, 所以此处重复设置_master的objectName、recordId\n \"_master.objectName\": \"${objectName}\",\n \"_master.recordId\": \"${recordId}\"\n }\n }\n ]\n },\n ...props.onEvent\n }\n }\n }\n}\n\n// 获取单个相关表\nexport async function getObjectRelated(\n {appName,\n masterObjectName,\n objectName,\n relatedFieldName,\n recordId,\n formFactor}\n) {\n let filter = null;\n const refField = await getField(objectName, relatedFieldName);\n if (\n refField._reference_to ||\n (refField.reference_to && !isString(refField.reference_to))\n ) {\n filter = [\n [`${relatedFieldName}/o`, \"=\", masterObjectName],\n [`${relatedFieldName}/ids`, \"=\", recordId],\n ];\n } else {\n filter = [`${relatedFieldName}`, \"=\", recordId];\n }\n const masterObjectUISchema = await getUISchema(masterObjectName);\n return {\n masterObjectName: masterObjectName,\n object_name: objectName,\n foreign_key: relatedFieldName,\n schema: await getListSchema(appName, objectName, \"all\", {\n globalFilter: filter,\n formFactor: formFactor,\n }),\n record: await getRecord(masterObjectName, recordId, [\n masterObjectUISchema.NAME_FIELD_KEY,\n ]),\n masterObjectUISchema: masterObjectUISchema,\n };\n}\n\n\nif(typeof window != 'undefined'){\n window.getUISchema = getUISchema;\n window.getUISchemaSync = getUISchemaSync;\n window.getListSchema = getListSchema;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-05-23 09:53:08\n * @LastEditors: liaodaxue\n * @LastEditTime: 2023-10-11 17:32:17\n * @Description: \n */\nimport { Router } from '../../router'\n import { getUISchema } from '../../objects'\nimport { forEach } from 'lodash';\nimport { getContrastColor } from './util'\n\nexport function getCreatedInfoTpl(formFactor){\n const href = Router.getObjectDetailPath({\n formFactor, appId: \"admin\", objectName: 'users', recordId: '${created_by._id}'\n })\n return `<span><a href='${href}'>\\${_display.created_by.label}</a>\\${_display.created}</span>`\n}\n\nexport function getModifiedInfoTpl(formFactor){\n const href = Router.getObjectDetailPath({\n formFactor, appId: \"admin\", objectName: 'users', recordId: '${modified_by._id}'\n })\n return `<span><a href='${href}'>\\${_display.modified_by.label}</a>\\${_display.modified}</span>`\n}\n\nexport function getNumberTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getTimeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getDateTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\n\nexport function getDateTimeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getUiFieldTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\nexport function getUiFileSizeTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\n\n//TODO 处理name字段\nexport async function getRefObjectNameFieldName(field){\n const refUiSchema = await getUISchema(field.reference_to)\n const NAME_FIELD_KEY = refUiSchema.NAME_FIELD_KEY || 'name';\n return NAME_FIELD_KEY;\n}\n\nexport function getSelectTpl(field){\n return `<span>\\${_display.${field.name}}</span>`\n}\nexport function getSelectMap(selectOptions){\n let map = {};\n forEach(selectOptions,(option)=>{\n const optionValue = option.value + '';\n const optionColor = option.color + '';\n if(optionColor){\n const background = optionColor.charAt(0) === '#' ? optionColor : '#'+optionColor;\n const color = getContrastColor(background);\n const optionColorStyle = 'background:'+background+';color:'+color+';line-height:1.5rem';\n map[optionValue] = `<span class=\"rounded-xl px-2 py-1\" style='${optionColorStyle}'>${option.label}</span>`\n }else{\n map[optionValue] = option.label;\n }\n })\n return map;\n}\n\nexport function getNameTplUrl(field, ctx){\n if(ctx.objectName === 'cms_files'){\n return `\\${context.rootUrl}/api/files/files/\\${versions[0]}?download=true`\n }\n const href = Router.getObjectDetailPath({\n ...ctx, formFactor: ctx.formFactor, appId: \"${appId}\", objectName: ctx.objectName || \"${objectName}\", recordId: `\\${${ctx.idFieldName}}`\n })\n return href;\n}\n\nexport function getNameTpl(field, ctx){\n const href = getNameTplUrl(field, ctx);\n let linkTarget = \"\";\n if(ctx && ctx.isLookup){\n linkTarget = \"target='_blank'\"\n }\n return `<a href=\"${href}\" ${linkTarget}>\\${${field.name}}</a>`\n}\n\nexport function getRelatedFieldTpl(field, ctx){\n let tpl = '';\n if(!field.reference_to && (field.optionsFunction || field._optionsFunction || field.options)){\n if(field.isTableField){\n return `\\${${field.name}}`\n }else{\n return `\\${${field.name}__label}`\n }\n }\n\n let linkTarget = \"\";\n if(ctx && ctx.isLookup){\n linkTarget = \"target='_blank'\"\n }\n\n const onlyDisplayLookLabel = ctx.onlyDisplayLookLabel;\n\n let fieldDataStrTpl = `data._display.${field.name}`;\n\n if(field.isTableField){\n fieldDataStrTpl = `data.${field.name}`;\n }\n\n if(_.isString(field.reference_to) || !field.reference_to){\n if(field.multiple){\n let labelTpl = `<%=item.label%>`;\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"<%=data.appId%>\", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: \"JavaScript\"\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}><%=item.label%></a>`;\n }\n tpl = `\n <% if (${fieldDataStrTpl} && ${fieldDataStrTpl}.length) { %><% ${fieldDataStrTpl}.forEach(function(item,index) { %> <% if(index>0 && index<${fieldDataStrTpl}.length){ %> , <% } %> ${labelTpl} <% }); %><% } %>\n `\n }else{\n let labelTpl = `\\${_display.${field.name}.label}`;\n let objectNameTpl = `\\${_display.${field.name}.objectName}`;\n let recordIdTpl = `\\${_display.${field.name}.value}`;\n if(field.isTableField){\n labelTpl = `\\${${field.name}.label}`;\n objectNameTpl = `\\${${field.name}.objectName}`;\n recordIdTpl = `\\${${field.name}.value}`;\n }\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"${appId}\", objectName: `${objectNameTpl}`, recordId: `${recordIdTpl}`\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}>${labelTpl}</a>`;\n }\n tpl = labelTpl;\n }\n\n \n }else{\n let labelTpl = `<%=item.label%>`;\n if(!onlyDisplayLookLabel){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: \"<%=data.appId%>\", objectName: `<%=item.objectName%>`, recordId: `<%=item.value%>`, _templateType: \"JavaScript\"\n })\n labelTpl = `<a href=\"${href}\" ${linkTarget}><%=item.label%></a>`;\n }\n tpl = `\n <% if (${fieldDataStrTpl} && ${fieldDataStrTpl}.length) { %><% ${fieldDataStrTpl}.forEach(function(item) { %> ${labelTpl} <% }); %><% } %>\n `\n }\n return tpl\n}\n\nexport async function getLookupTpl(field, ctx){\n if(!field.reference_to){\n return getSelectTpl(field)\n }\n const NAME_FIELD_KEY = await getRefObjectNameFieldName(field);\n if(field.multiple){\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: ctx.appId, objectName: field.reference_to, recordId: `<%=item._id%>`, _templateType: \"JavaScript\"\n })\n return `\n <% if (data.${field.name} && data.${field.name}.length) { %><% data.${field.name}.forEach(function(item) { %> <a href=\"${href}\"><%=item.${NAME_FIELD_KEY}%></a> <% }); %><% } %>\n `\n }else{\n const href = Router.getObjectDetailPath({\n formFactor: ctx.formFactor, appId: ctx.appId, objectName: field.reference_to, recordId: `\\${${field.name}._id}`\n })\n return `<a href=\"${href}\">\\${${field.name}.${NAME_FIELD_KEY}}</a>`\n }\n \n}\n\nexport function getSwitchTpl(field){\n let fieldDataStrTpl = `data._display.${field.name}`;\n if(field.isTableField){\n fieldDataStrTpl = `data.${field.name}`;\n }\n return `<% if (data.${field.name}) { %>\n <span class=\"slds-icon_container slds-icon-utility-check slds-current-color\" title=\"<%=${fieldDataStrTpl}%>\">\n <span ><%= ${fieldDataStrTpl} === \"√\" ? \"<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>\" : ${fieldDataStrTpl} %></span>\n </span>\n <% } %>`\n}\n\nexport function getPasswordTpl(field){\n return `<% if (data.${field.name}) { %>\n <span>······</span>\n <% } %>`\n}\n\nexport function getLocationTpl(field){\n return `\\${${field.name} ? ${field.name}.address : ''}`\n}\n\nexport async function getFieldTpl (field, options){\n if((field.is_name || field.name === options.labelFieldName) && !options.onlyDisplayLookLabel){\n return getNameTpl(field, options)\n }\n switch (field.type) {\n case 'password':\n return getPasswordTpl(field);\n case 'boolean':\n return getSwitchTpl(field);\n case 'toggle':\n return getSwitchTpl(field);\n case 'select':\n return getSelectTpl(field);\n case 'time':\n return getTimeTpl(field);\n case 'date':\n return getDateTpl(field);\n case 'datetime':\n return getDateTimeTpl(field);\n case 'lookup':\n return await getRelatedFieldTpl(field, options);\n case 'master_detail':\n return await getRelatedFieldTpl(field, options);\n case 'location':\n return await getLocationTpl(field);\n case 'number':\n case 'currency':\n return await getNumberTpl(field);\n case 'percent':\n case 'formula':\n case 'summary':\n return getUiFieldTpl(field)\n case 'filesize':\n return getUiFileSizeTpl(field)\n default:\n break;\n }\n};","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-04 10:42:49\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-25 10:28:47\n * @Description: \n */\nexport default {\n listView: {\n newRecordMode: 'modal',\n editRecordMode: 'modal',\n perPage: 20\n }\n}","import * as _ from 'lodash'\nimport * as Tpl from '../tpl';\nimport * as Fields from '../fields/index';\nimport * as graphql from '../graphql';\nimport config from '../../../../config'\nimport { each, forEach, isBoolean, isEmpty } from 'lodash';\nimport { getAmisFileReadonlySchema } from './file'\nimport { Router } from '../../../router'\nimport { i18next } from '../../../../i18n'\n\nfunction getOperation(fields){\n const controls = [];\n _.each(fields, function(field){\n controls.push(Fields.convertSFieldToAmisField(field, true));\n })\n return {\n \"type\": \"operation\",\n \"label\": \"操作\",\n \"width\": 100,\n fixed: \"right\",\n \"buttons\": [\n {\n \"type\": \"button\",\n \"icon\": \"fa fa-eye\",\n \"actionType\": \"dialog\",\n \"tooltip\": \"查看\",\n \"dialog\": {\n \"title\": \"查看\",\n \"body\": {\n \"type\": \"form\",\n \"controls\": controls\n }\n }\n }]\n }\n}\n\n//获取name字段,如果没有,则_index字段添加链接\nfunction getDetailColumn(){}\n\nasync function getQuickEditSchema(field, options){\n //判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑\n let isAmisVersionforBatchEdit = false;\n if(window.amisRequire && window.amisRequire('amis')){\n isAmisVersionforBatchEdit = window.amisRequire('amis').version[0] >= 3 && window.amisRequire('amis').version[2] >= 2;\n }else if(window.Amis){\n isAmisVersionforBatchEdit = window.Amis.version[0] >= 3 && window.Amis.version[2] >= 2;\n }\n const quickEditId = options.objectName + \"_\" + field.name + \"_quickEdit\";//定义快速编辑的表单id,用于setvalue传值\n var quickEditSchema = { body: [], id: quickEditId };\n //select,avatar,image,file等组件无法行记录字段赋值,暂不支持批量编辑;\n if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){\n const submitEvent = {\n submit: {\n actions: [\n {\n actionType: \"custom\",\n script: `\n let items = _.cloneDeep(event.data.items);\n let selectedItems = _.cloneDeep(event.data.selectedItems);\n if(event.data.isBatchEdit){\n selectedItems.forEach(function(selectedItem){\n selectedItem._display.${field.name} = event.data._display.${field.name};\n doAction({actionType: 'setValue', \"args\": {\"value\": selectedItem._display},componentId: \"_display_\" + selectedItem._index});\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data.${field.name}},componentId: \"${options.objectName + \"_\" + field.name + \"_\"}\" + selectedItem._index});\n })\n }else{\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data._display},componentId: \"_display_\" + event.data._index});\n doAction({actionType: 'setValue', \"args\": {\"value\": event.data.${field.name}},componentId: \"${options.objectName + \"_\" + field.name + \"_\"}\" + event.data._index});\n }\n `\n },\n {\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n }\n quickEditSchema.onEvent = submitEvent;\n }\n \n if (field.disabled) {\n quickEditSchema = false;\n } else {\n var fieldSchema = await Fields.convertSFieldToAmisField(field, false, _.omit(options, 'buttons'));\n //存在属性上可编辑,实际不可编辑的字段,convertSFieldToAmisField函数可能会返回undefined,如summary\n if (!!fieldSchema) {\n quickEditSchema.body.push(fieldSchema);\n //以下字段使用_display的数据,因此在触发change等事件时对数据_display进行修改,以实现保存前的回显\n var TempDisplayField = ``;\n quickEditSchema.body[0].onEvent = {};\n const quickEditOnEvent = function (displayField) {\n const EventType = {\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": `\n var _display = _.cloneDeep(event.data._display);\n ${displayField}\n doAction({actionType: 'setValue', \"args\": {\"value\": {_display}},componentId: \"${quickEditId}\"});\n `\n }\n ]\n };\n return EventType;\n }\n switch (field.type) {\n //TODO: amis的picker组件直接点击选项x时不会触发change事件,待处理\n case \"lookup\":\n case \"master_detail\":\n let labelField = quickEditSchema.body[0].labelField || \"label\";\n let valueField = quickEditSchema.body[0].valueField || \"value\";\n if (field.multiple) {\n /*\n 多选分两种情况。\n 第一种是减少选项时(判断新的数据是否比老的数据短),按照index删除_display中对应选项,保证回显没问题;\n 第二种是增加选项时,按照value的值,找到对应选项,并按照_display的规则为其赋值\n */\n TempDisplayField = `\n const preData = _.cloneDeep(event.data.__super.${field.name});\n if(preData && event.data.${field.name}.length < preData.length){\n let deletedIndex;\n preData.forEach(function(item,index){\n if(_.indexOf(event.data.${field.name}, item) == -1) _display[\"${field.name}\"].splice(index, 1);\n })\n }else{\n _display[\"${field.name}\"] = [];\n event.data.value.forEach(function(val,index){\n const item = _.find(event.data.selectedItems, { ${valueField}: val });\n _display[\"${field.name}\"].push(\n {\n \"label\": item.${labelField},\n \"value\": item[event.data.uiSchema.idFieldName],\n \"objectName\": \"${field.reference_to}\"\n }\n )\n })\n }\n \n `\n } else {\n TempDisplayField = `\n if(event.data.value){\n _display[\"${field.name}\"] = {\n \"label\": event.data.selectedItems.${labelField},\n \"value\": event.data.selectedItems[event.data.uiSchema.idFieldName],\n \"objectName\": \"${field.reference_to}\"\n }\n }else{\n _display[\"${field.name}\"] = {}\n }\n `\n }\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"select\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.selectedItems.label;\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"percent\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value.toFixed(${field.scale}) + '%';\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"time\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).utc().format('HH:mm');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"date\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).utc().format('YYYY-MM-DD');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"datetime\":\n TempDisplayField = `\n _display[\"${field.name}\"] = moment(event.data.value).format('YYYY-MM-DD HH:mm');\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"boolean\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value?\"√\":\"\";\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n break;\n case \"number\":\n case \"currency\":\n TempDisplayField = `\n _display[\"${field.name}\"] = event.data.value && event.data.value.toFixed(${field.scale});\n `\n quickEditSchema.body[0].onEvent[\"change\"] = quickEditOnEvent(TempDisplayField)\n\n break;\n case \"file\":\n var removeDisplayField = ``;\n if (field.multiple) {\n TempDisplayField = `\n _display[\"${field.name}\"].push({\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n });\n `\n removeDisplayField = `\n _.remove(_display[\"${field.name}\"], function(file){return file.url == event.data.item.url});\n `\n } else {\n TempDisplayField = ` \n _display[\"${field.name}\"] = {\n \"name\": event.data.result.name,\n \"url\": event.data.result.url,\n \"type\": event.data.item.type,\n \"size\": event.data.item.size\n };\n `\n removeDisplayField = `\n if(_display[\"${field.name}\"].url == event.data.item.url){\n _display[\"${field.name}\"] = {};\n }\n `\n }\n quickEditSchema.body[0].onEvent[\"success\"] = quickEditOnEvent(TempDisplayField)\n quickEditSchema.body[0].onEvent[\"remove\"] = quickEditOnEvent(removeDisplayField)\n break;\n case \"avatar\":\n case \"image\":\n quickEditSchema.body[0].receiver.adaptor = `\n const { context } = api.body; \n var rootUrl = context.rootUrl + \"/api/files/${field.type}s/\";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: rootUrl + payload._id,//为了实现图片crud的回显,需要将value从id改为url,当保存数据数据时,再在发送适配器内重新将id提取出来\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `\n break;\n default:\n break;\n }\n quickEditSchema.body[0].visibleOn = \"${quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\"\n quickEditSchema.body.push({\n \"type\":\"service\",\n \"body\":[\n {\n \"type\": \"tpl\",\n \"tpl\": i18next.t('frontend_records_no_allowedit'),\n \"visibleOn\": \"${!quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\"\n },\n {\n \"type\": \"spinner\",\n \"showOn\": \"${quickedit_record_permissions_loading}\"\n }\n ],\n \"onEvent\":{\n \"init\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions_loading\": true\n }\n }\n },\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/service/api/@\\${objectName}/recordPermissions/${_id}\",\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"cache\": 30000,\n \"messages\": {\n \"failed\": \"失败了呢。。\"\n }\n }\n }\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions_loading\": false\n }\n }\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": `service_listview_${options.objectName}`,\n \"args\": {\n \"value\":{\n \"quickedit_record_permissions\": \"${event.data}\"\n }\n }\n }\n ]\n }\n }\n \n })\n if(field.type != 'avatar' && field.type != 'image' && field.type != 'file' && isAmisVersionforBatchEdit){\n quickEditSchema.body.push({\n \"name\": \"isBatchEdit\",\n \"type\": \"checkbox\",\n \"option\": [\n {\n \"type\": \"tpl\",\n \"tpl\": \"更新${COUNT(selectedItems)}个选定记录\"\n },\n {\n \"type\": \"spinner\",\n \"showOn\": \"${batchPermissionLoading}\",\n \"size\": \"sm\",\n \"className\": \"mr-4\"\n }\n ],\n \"visibleOn\": \"${ARRAYSOME(selectedItems, item => item._id === _id) && COUNT(selectedItems)>1 && quickedit_record_permissions.allowEdit && quickedit_record_permissions_loading == false}\",\n \"disabledOn\": \"${batchPermissionLoading}\",\n \"onEvent\":{\n \"change\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"batchPermissionLoading\": true\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"ajax\",\n \"args\": {\n \"api\": {\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"data\": {\n \"query\": \"{rows:${objectName}(filters:[\\\"_id\\\",\\\"in\\\",${selectedItems | pick:_id | split | json}]){_id,_permissions{allowEdit}}}\"\n },\n \"adaptor\": `\n const noPermission = [];\n payload.data.rows.forEach(function (row) {\n if(!row._permissions.allowEdit){\n noPermission.push(row._id);\n }\n })\n payload.data.noPermission = noPermission;\n return payload;\n `\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"batchPermissionLoading\": false\n }\n },\n \"expression\":\"${event.data.value}\"\n },\n {\n \"actionType\": \"dialog\",\n \"dialog\":{\n \"title\": \"记录权限\",\n \"showCloseButton\": false,\n \"body\":[\n {\n \"type\": \"tpl\",\n \"tpl\": \"当前选中记录中,有${COUNT(noPermission)}条记录无编辑权限,是否需要批量编辑其他记录?\"\n }\n ],\n \"onEvent\":{\n \"confirm\":{\n \"actions\":[\n {\n \"actionType\": \"custom\",\n \"script\": `\n const noPermission = event.data.noPermission;\n const crudComponent = event.context.scoped.getComponentById(\"${options.crudId}\");\n const selectedItems = crudComponent && crudComponent.props.store.selectedItems.concat();\n noPermission.forEach(function (item) {\n crudComponent && crudComponent.unSelectItem(_.find(selectedItems,{_id:item}));\n })\n `\n },\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"isBatchEdit\": true\n }\n },\n }\n ]\n },\n \"cancel\":{\n \"actions\":[\n {\n \"actionType\": \"setValue\",\n \"componentId\": quickEditId,\n \"args\": {\n \"value\":{\n \"isBatchEdit\": false\n }\n },\n }\n ]\n }\n }\n },\n \"expression\":\"${COUNT(event.data.noPermission)>0}\"\n }\n ]\n }\n }\n })\n }\n } else {\n quickEditSchema = false;\n }\n //amis3.2以下禁用lookup的单元格编辑\n if(field.type == \"lookup\" && !isAmisVersionforBatchEdit){\n quickEditSchema = false;\n }\n //TODO:附件多选时会覆盖老数据,暂时禁用\n if(field.type == \"file\" && field.multiple){\n quickEditSchema = false;\n }\n //TODO:location字段在列表中快速编辑后存在bug,保存时可能会丢失部分数据,暂时禁用\n if(field.type == \"location\"){\n quickEditSchema = false;\n }\n }\n return quickEditSchema;\n}\n\nfunction getFieldWidth(width){\n const defaultWidth = \"unset\";//用于使table内的td标签下生成div,实现将快速编辑按钮固定在右侧的效果,并不是为了unset效果\n if(typeof width == 'string'){\n if(isNaN(width)){\n return width;\n }else{\n return Number(width);\n }\n }else if(typeof width == 'number'){\n return width;\n }else{\n return defaultWidth;\n }\n}\n\nexport async function getTableColumns(fields, options){\n const columns = [];\n if(!options.isLookup && !options.isInputTable){\n //将_display放入crud的columns中,可以通过setvalue修改行内数据域的_display,而不影响上层items的_display,用于批量编辑\n columns.push({name: '_display',type: 'static', width: 32, placeholder: \"\",id: \"_display_${_index}\", className: \"hidden\"});\n columns.push({name: '_index',type: 'text', width: 32, placeholder: \"\"});\n }\n const allowEdit = options.permissions?.allowEdit && !options.isLookup && options.enable_inline_edit != false;\n \n for (const field of fields) {\n //增加quickEdit属性,实现快速编辑\n const quickEditSchema = allowEdit ? await getQuickEditSchema(field, options) : allowEdit;\n let className = \"\";\n if(field.wrap != true){\n className += \" whitespace-nowrap \"\n }else{\n className += \" break-all \"\n }\n let columnItem;\n if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){\n const previewFileScript = `\n var data = event.data;\n var file_name = data.versions ? data.name : \"${field.label}\";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;\n columnItem = {\n \"type\": \"button\",\n \"label\": `<%=data.versions ? data.name : \"${field.label}\"%>`,\n className,\n \"level\": \"link\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"url\": \"${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}\",\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\",\n // \"expression\": \"!!!window?.nw?.require\"//浏览器上直接下载\n \"expression\": \"!!!(window && window.nw && window.nw.require)\"//浏览器上直接下载\n },\n {\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": previewFileScript,\n // \"expression\": \"!!window?.nw?.require\" //PC客户端预览附件\n \"expression\": \"!!!(window && window.nw && window.nw.require)\"//PC客户端预览附件\n }\n ]\n }\n }\n };\n }else if(field.type === 'toggle'){\n columnItem = Object.assign({}, {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n static: true,\n className,\n }, field.amis, {name: field.name});\n }else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){\n columnItem = Object.assign({}, {\n type: \"switch\",\n name: field.name,\n label: field.label,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n static: true,\n className,\n ...getAmisFileReadonlySchema(field)\n }, field.amis, {name: field.name});\n }\n else if(field.type === 'select'){\n const map = Tpl.getSelectMap(field.options);\n columnItem = Object.assign({}, {\n type: \"static-mapping\",\n name: field.name,\n label: field.label,\n map: map,\n sortable: field.sortable,\n width: getFieldWidth(field.width),\n toggled: field.toggled,\n className,\n static: true,\n }, field.amis, {name: field.name});\n }\n else{\n const tpl = await Tpl.getFieldTpl(field, options);\n let type = 'static-text';\n if(tpl){\n type = 'static';\n }else if(field.type === 'html'){\n type = 'static-markdown';\n }else if(field.type === 'url'){\n if(field.show_as_qr){\n type = 'static-qr-code';\n }else{\n type = 'input-url'\n }\n }\n if(field.type === 'textarea'){\n className += 'min-w-56';\n }\n if(field.type === 'date'){\n className += 'date-min-w';\n }\n if(field.type === 'datetime'){\n className += 'datetime-min-w';\n }\n if(!field.hidden && !field.extra){\n columnItem = Object.assign({}, {\n name: field.name,\n label: field.label,\n sortable: field.sortable,\n // searchable: field.searchable,\n width: getFieldWidth(field.width),\n type: type,\n tpl: tpl,\n toggled: field.toggled,\n className,\n static: true,\n options: field.type === 'html' ? {html: true} : null\n // toggled: true \n }, field.amis, {name: field.name});\n }\n }\n if(columnItem){\n if(quickEditSchema){\n columnItem.quickEdit = quickEditSchema;\n columnItem.quickEditEnabledOn = \"${is_system !== true}\";\n }\n columnItem.id = `${options.objectName}_${field.name}_\\${_index}`\n columns.push(columnItem);\n }\n };\n\n // columns.push(getOperation(fields));\n if(!options.isLookup && !options.isInputTable && !_.some(columns, { name: options.labelFieldName })){\n // 没有名称字段时显示序号字段为链接,lookup弹出的picker不需要此功能\n const href = Router.getObjectDetailPath({\n ...options, formFactor: options.formFactor, appId: \"${appId}\", objectName: options.objectName || \"${objectName}\", recordId: `\\${${options.idFieldName}}`\n })\n columns[0].type = \"tpl\";\n columns[0].tpl = `<a href=\"${href}\">\\${${columns[0].name}}</a>`\n }\n return columns;\n}\n\n/**\n * 生成移动端列表每行显示的amis行\n * @param {*} tpls 要显示的每个字段的tpl\n * @returns {\n \"type\": \"wrapper\",\n \"body\": [{\n \"type\": \"tpl\",\n \"tpl\": tpls[index].tpl,\n \"className\": \"truncate\"//左侧样式类\n },{\n \"type\": \"tpl\",\n \"tpl\": tpls[index + 1].tpl,\n \"className\": \"truncate ml-2 flex flex-shrink-0\"//右侧样式类\n }],\n \"size\": \"none\",\n \"className\": \"flex items-center justify-between\"//每行样式类\n }\n */\nfunction getMobileLines(tpls){\n let lines = [];\n let maxLineCount = 3;\n let lineChildren = [];\n let isNewLine = false;\n let isLeft = true;\n let lineChildrenClassName = \"\";\n let lineClassName = \"flex items-center justify-between\";\n tpls.forEach(function(item){\n if(isNewLine && lines.length < maxLineCount){\n lines.push({\n \"type\": \"wrapper\",\n \"body\": lineChildren,\n \"size\": \"none\",\n \"className\": lineClassName\n });\n lineChildren = [];\n }\n if(isLeft){\n // 左侧半行\n lineChildrenClassName = \"steedos-listview-item-left truncate\";\n if(item.field.is_wide){\n // 左侧全行样式可以单独写,如果需要配置两行省略号效果,可以加样式类 two-lines-truncate\n lineChildrenClassName = \"steedos-listview-item-wide\";\n }\n if(lines.length === 0){\n // 第一个字段加粗黑色显示\n lineChildrenClassName += \" font-bold text-gray-800\";\n }\n }\n else{\n // 右侧半行,这里加样式类 flex flex-shrink-0,是为了省略号只显示在左半行,右半行文字一般比较短,如果也加省略号效果的话,左侧文字多的话,右侧没几个字就显示省略号了\n lineChildrenClassName = \"steedos-listview-item-right truncate ml-2 flex flex-shrink-0\";\n }\n lineChildren.push({\n \"type\": \"tpl\",\n \"tpl\": item.tpl,\n \"className\": lineChildrenClassName\n });\n\n if(item.field.is_wide){\n // 宽字段占整行\n isLeft = true;\n isNewLine = true;\n }\n else{\n isLeft = !isLeft;\n isNewLine = isLeft;\n }\n });\n \n if(lineChildren.length && lines.length < maxLineCount){\n lines.push({\n \"type\": \"wrapper\",\n \"body\": lineChildren,\n \"size\": \"none\",\n \"className\": lineClassName\n });\n }\n \n return lines;\n}\n\nasync function getMobileTableColumns(fields, options){\n const columns = [];\n let nameField = {};\n let tpls = [];\n for (const field of fields) {\n let tpl = \"\";\n if(field.is_name || field.name === options.labelFieldName){\n nameField = field;\n options = Object.assign({}, options, {\n onlyDisplayLookLabel: true\n });\n tpl = await Tpl.getFieldTpl(field, options);\n }\n else if(field.type === 'avatar' || field.type === 'image' || field.type === 'file'){\n // 图片和附件类型字段暂时显示为附件名称,后续需要再优化\n tpl = `\\${_display.${field.name}.name}`;\n }\n else{\n if(field.type === 'lookup' || field.type === 'master_detail'){\n options = Object.assign({}, options, {\n onlyDisplayLookLabel: true\n });\n }\n tpl = await Tpl.getFieldTpl(field, options);\n }\n if(!tpl){\n //qhd需求简易处理,加上raw以支持审批王名称字段通过颜色区分缓急,若之后手机端列表支持配置amis,则可以去掉\n tpl = `\\${${field.name} | raw}`;\n }\n if(!field.hidden && !field.extra){\n tpls.push({ field, tpl });\n }\n };\n\n const url = Tpl.getNameTplUrl(nameField, options)\n\n const columnLines = getMobileLines(tpls);\n\n\n let column = {\n name: nameField.name,\n label: nameField.label,\n sortable: nameField.sortable,\n type: \"button\",\n level: \"link\",\n actionType: \"link\",\n link: url,\n innerClassName: {\n \"steedos-listview-item block text-gray-500\":\"true\",\n \"max-w-[360px]\": \"${display == 'split'}\",\n },\n body: {\n \"type\": \"wrapper\",\n \"body\": columnLines,\n \"size\": \"none\",\n \"className\": \"p-1\"\n }\n }\n \n if(options.objectName === 'cms_files'){\n if(window.Meteor?.isCordova){\n column = {\n ...column,\n actionType: \"\",\n link: \"\",\n onEvent: {\n \"click\": {\n \"actions\": [\n {\n \"script\": `\n let cms_url = \"/api/files/files/\"+event.data.versions[0]+\"?download=true\"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n `,\n \"actionType\": \"custom\"\n }\n ],\n \"weight\": 0\n }\n }\n }\n }else{\n column = {\n ...column,\n actionType: \"\",\n link: \"\",\n onEvent: {\n \"click\": {\n \"actions\": [\n {\n \"args\": {\n \"api\": {\n \"url\": url,\n \"method\": \"get\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n },\n \"actionType\": \"download\"\n }\n ],\n \"weight\": 0\n }\n }\n }\n }\n \n }\n\n columns.push(column);\n \n\n return columns;\n}\n\nfunction getDefaultParams(options){\n return {\n perPage: options.top || options.perPage || config.listView.perPage\n }\n}\n\nfunction getButtonVisibleOn(button){\n let visible= button.visible;\n\n if(button._visible){\n visible = button._visible;\n }\n\n if(isBoolean(visible)){\n visible = visible.toString();\n }\n\n if(visible){\n // if(visible.indexOf(\"Meteor.\") > 0 || visible.indexOf(\"Creator.\") > 0 || visible.indexOf(\"Session.\") > 0){\n // console.warn('无效的visible', visible)\n // return 'false';\n // }\n if(visible.trim().startsWith('function')){\n return `${visible}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`\n }\n return visible;\n }\n\n if(button.type === 'amis_button'){\n const amisSchema = button.amis_schema;\n if(amisSchema && amisSchema.body && amisSchema.body.length > 0){\n const btn1 = amisSchema.body[0];\n return btn1.visibleOn\n }\n }\n}\n\nasync function getTableOperation(ctx){\n const buttons = ctx.buttons;\n const operationButtons = [];\n each(buttons, (button)=>{\n if(isBoolean(button.visible)){\n button.visible = button.visible.toString();\n }\n // operationButtons.push({\n // type: 'button',\n // label: button.label,\n // visibleOn: button.visible ? `${button.visible}` : (button._visible ? `${button._visible}` : null),\n // onEvent: {\n // click: {\n // actions: []\n // }\n // }\n // })\n\n operationButtons.push({\n type: 'steedos-object-button',\n name: button.name,\n objectName: button.objectName,\n visibleOn: getButtonVisibleOn(button),\n className: 'antd-Button--default'\n })\n })\n if(operationButtons.length < 1){\n return ;\n }\n return {\n type: 'operation',\n label: \" \",\n fixed: 'right',\n labelClassName: 'text-center',\n className: 'text-center steedos-listview-operation w-10',\n buttons: [\n {\n \"type\": \"steedos-dropdown-button\",\n \"label\": \"xxx\",\n \"buttons\": operationButtons,\n \"placement\": \"bottomRight\",\n \"overlayClassName\": \"shadow !min-w-[160px]\",\n \"trigger\": [\"click\"],\n \"id\": \"u:c2140a365019\",\n onOpenApi: {\n url: `\\${context.rootUrl}/service/api/@\\${objectName}/recordPermissions/\\${_id}`,\n method: \"get\",\n requestAdaptor: \"api.data={}; return api;\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n },\n adaptor: `\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n `,\n }\n }\n ]\n }\n}\n\nasync function getDefaultCrudCard(columns, options) {\n let labelFieldName = options?.labelFieldName || \"name\";\n let titleColumn, bodyColumns = [];\n columns.forEach(function (item) {\n delete item.quickEdit;\n delete item.width;\n if (item.name === labelFieldName) {\n titleColumn = item;\n }\n else {\n if (item.name !== \"_index\") {\n bodyColumns.push(item);\n }\n }\n });\n let card = {\n \"header\": {\n \"title\": titleColumn.tpl\n },\n body: bodyColumns,\n // useCardLabel: false,\n toolbar: []\n };\n let hideToolbarOperation = options.formFactor === 'SMALL' || [\"split\"].indexOf(options.displayAs) > -1;\n if(!hideToolbarOperation){\n let toolbarOperation = await getTableOperation(options);\n if (toolbarOperation) {\n toolbarOperation.className += \" inline-block w-auto\";\n }\n card.toolbar.push(toolbarOperation);\n }\n return card;\n}\n\nexport async function getTableSchema(fields, options){\n if(!options){\n options = {};\n }\n let { isLookup, hiddenColumnOperation } = options;\n const defaults = options.defaults;\n const listSchema = (defaults && defaults.listSchema) || {};\n\n let columns = [];\n let useMobileColumns = options.formFactor === 'SMALL' || [\"split\"].indexOf(options.displayAs) > -1;\n if(isLookup){\n // 在lookup手机端列表模式调式好之前不使用getMobileTableColumns\n useMobileColumns = false;\n }\n if(listSchema.mode && listSchema.mode !== \"table\"){\n // 如果指定的mode,则不走我们内置的手机端列表效果,使用steedos组件内部开发的默认card/list效果,或者由用户自己实现card/list模式的crud列表\n useMobileColumns = false;\n }\n if(useMobileColumns){\n columns = await getMobileTableColumns(fields, options);\n }\n else{\n columns = await getTableColumns(fields, options);\n\n if(listSchema.mode === \"cards\"){\n let card = listSchema.card;\n if(!card){\n card = await getDefaultCrudCard(columns, options);\n }\n return {\n mode: \"cards\",\n perPageAvailable: [5, 10, 20, 50, 100, 500],\n name: \"thelist\",\n headerToolbarClassName: \"py-2 px-2 border-gray-300 border-solid border-b\",\n className: \"\",\n draggable: false,\n defaultParams: getDefaultParams(options),\n card: card,\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: isLookup ? true : false,\n labelTpl: `\\${${options.labelFieldName}}`,\n autoFillHeight: false, // 自动高度效果不理想,先关闭\n columnsTogglable: false\n }\n }\n\n if(!isLookup && !hiddenColumnOperation){\n columns.push(await getTableOperation(options));\n }\n }\n\n return {\n mode: \"table\",\n perPageAvailable: [5, 10, 20, 50, 100, 500],\n name: \"thelist\",\n headerToolbarClassName: \"py-2 px-2 border-gray-300 border-solid border-b\",\n className: \"\",\n draggable: false,\n defaultParams: getDefaultParams(options),\n columns: columns,\n syncLocation: false,\n keepItemSelectionOnPageChange: true,\n checkOnItemClick: isLookup ? true : false,\n labelTpl: `\\${${options.labelFieldName}}`,\n autoFillHeight: false, // 自动高度效果不理想,先关闭\n columnsTogglable: false,\n }\n}\n\n\n\n/**\n * \n * @param {*} mainObject \n * @param {*} fields \n * @param {*} options = {filter: listview 过滤条件, ...}\n * @returns \n */\nexport async function getTableApi(mainObject, fields, options){\n const searchableFields = [];\n let { filter, filtersFunction, sort, top, setDataToComponentId = '' } = options;\n\n if(_.isArray(filter)){\n filter = _.map(filter, function(item){\n if(item.operation){\n return [item.field, item.operation, item.value];\n }else{\n return item\n }\n })\n }\n if(!filter){\n filter = [];\n }\n let baseFilters = null;\n if(filter){\n baseFilters = filter;\n }\n\n _.each(mainObject.fields, function (field) {\n if (Fields.isFieldQuickSearchable(field, mainObject.NAME_FIELD_KEY)) {\n searchableFields.push(field.name);\n }\n })\n\n const fileFields = {};\n const fileFieldsKeys = [];\n // 含有optionsFunction属性, 无reference_to属性的lookup字段\n const lookupFields = {};\n fields.forEach((item)=>{\n if(_.includes(['image','avatar','file'], item.type)){\n fileFieldsKeys.push(item.name);\n fileFields[item.name] = {\n name: item.name,\n type: item.type,\n multiple: item.multiple\n };\n }\n if(_.includes(['lookup'], item.type) && !item.reference_to ){\n lookupFields[item.name] = item;\n }\n })\n\n let valueField = mainObject.key_field || '_id';\n const api = await getApi(mainObject, null, fields, {count: options.queryCount, alias: 'rows', limit: top, queryOptions: `filters: {__filters}, top: {__top}, skip: {__skip}, sort: \"{__sort}\"`});\n\n api.url += \"&objectName=${objectName}\";//设计器上对象表格组件需要切换对象重新请求列表数据\n if(options.isRelated){\n api.url += \"&recordId=${_master.recordId}\";\n }\n api.cache = 3000;\n\n api.data.$term = \"$term\";\n api.data.term = \"$term\";\n api.data.$self = \"$$\";\n api.data.self = \"$$\";\n api.data.filter = \"$filter\"\n api.data.loaded = \"${loaded}\";\n api.data.listViewId = \"${listViewId}\";\n api.data.listName = \"${listName}\";\n api.requestAdaptor = `\n // selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n // 保留一份初始data,以供自定义发送适配器中获取原始数据。\n const data = _.cloneDeep(api.data);\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listName = api.data.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData);\n if(!api.data.filter){\n api.data.filter = localListViewProps.filter;\n }\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n let formFactor = \"${options.formFactor}\";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n // api.data.pageNo = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n // 移动端暂时去除加载更多,放开翻页\n api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n ${baseFilters ? `var systemFilters = ${JSON.stringify(baseFilters)};` : 'var systemFilters = [];'}\n var _ids = []\n const filtersFunction = ${filtersFunction};\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\n if(api.data.listName == \"recent\"){\n _ids = _filters[2]\n }\n if(_filters && _filters.length > 0){\n if(_.isEmpty(systemFilters)){\n systemFilters = _filters || [];\n }else{\n systemFilters = [systemFilters, 'and', _filters];\n }\n }\n }\n let userFilters =[];\n \n if(_.isEmpty(systemFilters)){\n systemFilters = api.data.filter || [];\n }else{\n if(!_.isEmpty(api.data.filter)){\n systemFilters = [systemFilters, 'and', api.data.filter];\n }\n }\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : \"${sort || ''}\";\n var allowSearchFields = ${JSON.stringify(searchableFields)};\n if(api.data.$term){\n userFilters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [[\"${valueField.name}\", \"=\", selfData.value]];\n }\n \n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(userFilters.length > 0 ){\n userFilters = [userFilters, 'and', searchableFilter];\n }else{\n userFilters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(_.isString(keyValue)){\n userFilters.push([key, \"contains\", keyValue]);\n }else if(_.isArray(keyValue) || _.isBoolean(keyValue) || keyValue){\n userFilters.push([key, \"=\", keyValue]);\n }\n })\n }\n\n var keywordsFilters = SteedosUI.getKeywordsSearchFilter(selfData.__keywords, allowSearchFields);\n if(keywordsFilters && keywordsFilters.length > 0){\n userFilters.push(keywordsFilters);\n }\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n };\n if(api.data.$self.additionalFilters){\n if(_.isString(api.data.$self.additionalFilters)){\n userFilters.push(eval(api.data.$self.additionalFilters))\n }else{\n userFilters.push(api.data.$self.additionalFilters)\n }\n }\n\n if(api.data.$self._isRelated){\n const self = api.data.$self;\n const relatedKey = self.relatedKey;\n const refField = self.uiSchema.fields[relatedKey];\n const masterRecord = self._master.record;\n const masterObjectName = self._master.objectName;\n let relatedValue = self._master.recordId;\n if(refField && refField.reference_to_field && refField.reference_to_field != '_id'){\n relatedValue = masterRecord[refField.reference_to_field]\n }\n let relatedFilters;\n if (\n refField && (refField._reference_to ||\n (refField.reference_to && !_.isString(refField.reference_to)))\n ) {\n relatedFilters = [\n [relatedKey + \"/o\", \"=\", masterObjectName],\n [relatedKey + \"/ids\", \"=\", relatedValue],\n ];\n } else {\n relatedFilters = [relatedKey, \"=\", relatedValue];\n }\n userFilters.push(relatedFilters)\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters = [filters, 'and', userFilters]\n }\n }\n api.data._ids = _ids;\n api.data = {\n query: api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim())\n }\n ${options.requestAdaptor || ''};\n\n //写入本次存储filters、sort\n const listViewPropsStoreKey = location.pathname + \"/crud/query\";\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify({\n filters: filters,\n sort: sort.trim(),\n pageSize: pageSize,\n skip: skip,\n fields: ${JSON.stringify(_.map(fields, 'name'))}\n }));\n return api;\n `\n api.adaptor = `\n if(api.body.listName == \"recent\"){\n payload.data.rows = _.sortBy(payload.data.rows, function(item){\n return _.indexOf(api.body._ids, item._id)\n });\n }\n const enable_tree = ${mainObject.enable_tree};\n if(!enable_tree){\n _.each(payload.data.rows, function(item, index){\n const {pageNo, pageSize} = api.body;\n const skip = (pageNo - 1) * pageSize;\n item._index = skip + index + 1;\n })\n }\n window.postMessage(Object.assign({type: \"listview.loaded\"}), \"*\");\n let fileFields = ${JSON.stringify(fileFields)};\n let lookupFields = ${JSON.stringify(lookupFields)};\n _.each(payload.data.rows, function(item, index){\n _.each(fileFields , (field, key)=>{\n if(item[key] && item._display && item._display[key]){\n let value = item._display[key];\n if(!_.isArray(value)){\n value = [value]\n };\n if(field.type === 'file'){\n item[key] = value\n }else{\n item[key] = _.map(value, (item)=>{\n if(field.type === 'image'){\n const url = window.getImageFieldUrl(item.url);\n return url;\n }\n return item.url;\n })\n }\n }\n })\n _.each(lookupFields , (field, key)=>{\n if(item[key]){\n if(field._optionsFunction){\n const optionsFunction = eval(\"(\" + field._optionsFunction+ \")\")(item);\n item[key + '__label'] = _.map(_.filter(optionsFunction, function(option){return item[key] == option.value}), 'label').join(' ');\n }else if(field.options){\n const options = field.options;\n item[key + '__label'] = _.map(_.filter(options, function(option){return item[key] == option.value}), 'label').join(' ');\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows || [];\n const getTreeOptions = SteedosUI.getTreeOptions\n payload.data.rows = getTreeOptions(records,{\"valueField\":\"_id\"});\n }\n\n\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listName = api.body.listName;\n const listViewPropsStoreKey = location.pathname + \"/crud\";\n /**\n * localListViewProps规范来自crud请求api中api.data.$self参数值的。\n * 比如:{\"perPage\":20,\"page\":1,\"__searchable__name\":\"7\",\"__searchable__between__n1__c\":[null,null],\"filter\":[[\"name\",\"contains\",\"a\"]]}\n * __searchable__...:顶部放大镜搜索条件\n * filter:右侧过滤器\n * perPage:每页条数\n * page:当前页码\n * orderBy:排序字段\n * orderDir:排序方向\n */\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.body.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.body.filter });\n if(!api.body.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n let formFactor = \"${options.formFactor}\";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n // selfData.page = formFactor === \"SMALL\" ? 1 : (localListViewProps.page || 1);\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(selfData));\n // 返回页码到UI界面\n payload.data.page= selfData.page;\n }\n catch(ex){\n console.error(\"本地存储中crud参数解析异常:\", ex);\n }\n // 标记加载过,后续优先从本地存储中加载相关参数\n payload.data.loaded= true;\n\n const setDataToComponentId = \"${setDataToComponentId}\";\n if(setDataToComponentId){\n //https://github.com/baidu/amis/pull/6807 .parent的改动是为适应3.2getComponentById的规则改动,不影响2.9\n var scope = SteedosUI.getRef(api.body.$self.$scopeId);\n var scopeParent = scope && scope.parent;\n var setDataToComponent = scopeParent && scopeParent.getComponentById(setDataToComponentId);\n if(setDataToComponent){\n setDataToComponent.setData({$count: payload.data.count});\n }\n // SteedosUI.getRef(api.body.$self.$scopeId)?.parent?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ${options.adaptor || ''}\n return payload;\n `;\n return api;\n}\n\nexport async function getApi(object, recordId, fields, options){\n const data = await graphql.getFindQuery(object, recordId, fields, options);\n return {\n method: \"post\",\n url: graphql.getApi(), // + \"&recordId=${recordId}\"\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}\n\nexport function getRecordPermissionsApi(object, recordId, options){\n const data = graphql.getRecordPermissionsQuery(object, recordId, options);\n return {\n method: \"post\",\n url: graphql.getApi(),\n data: data,\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n }\n }\n}","/*\n * @Author: 殷亮辉 yinlianghui@hotoa.com\n * @Date: 2023-11-15 09:50:22\n * @LastEditors: 殷亮辉 yinlianghui@hotoa.com\n * @LastEditTime: 2023-11-17 20:17:56\n */\n\nimport { getTableColumns } from './converter/amis/fields/table';\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nfunction getFormFields(props, mode = \"edit\") {\n return (props.fields || []).map(function (item) {\n return {\n \"type\": \"steedos-field\",\n \"config\": item\n }\n }) || [];\n}\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nasync function getInputTableColumns(props) {\n // return props.fields.map(function(item){\n // return {\n // \"type\": \"steedos-field\",\n // \"config\": item,\n // \"static\": true,\n // \"readonly\": true\n // }\n // }) || [];\n\n let columns = await getTableColumns(props.fields || [], {\n isInputTable: true,\n permissions: {\n allowEdit: false //快速编辑开关与权限有关\n }\n });\n // columns = columns.map(function(item){\n // if([\"text\"].indexOf(item.type) > -1){\n // return Object.assign({}, item, {\n // \"type\": \"static\"\n // });\n // }\n // else{\n // return item;\n // }\n // }) || [];\n return columns;\n}\n\n/**\n * @param {*} props \n * @param {*} mode edit/new/readonly\n */\nfunction getForm(props, mode = \"edit\") {\n let schema = {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": getFormFields(props, mode)\n };\n if (mode === \"edit\") {\n Object.assign(schema, {\n \"onEvent\": {\n \"submit\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"index\": \"${index}\",\n \"value\": {\n \"&\": \"$$\"\n }\n },\n \"componentId\": props.id\n }\n ]\n }\n }\n });\n }\n else if (mode === \"new\") {\n let onNewItemSubmitScript = `\n event.data[\"${props.name}\"].push(JSON.parse(JSON.stringify(event.data)));\n doAction({\n \"componentId\": \"${props.id}\",\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": event.data[\"${props.name}\"]\n }\n });\n `;\n Object.assign(schema, {\n \"onEvent\": {\n \"submit\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"actionType\": \"custom\",\n \"script\": onNewItemSubmitScript\n },\n // {\n // \"componentId\": props.id,\n // \"actionType\": \"addItem\",//input-table组件的needConfirm属性为true时,addItem动作会把新加的行显示为编辑状态,所以只能使用上面的custom script来setValue实现添加行\n // \"args\": {\n // \"index\": `\\${${props.name}.length || 9000}`,//这里加9000是因为字段如果没放在form组件内,props.name.length拿不到值\n // \"item\": {\n // \"&\": \"$$\"\n // }\n // }\n // }\n ]\n }\n }\n });\n }\n return schema;\n}\n\nfunction getButtonNew(props) {\n return {\n \"label\": \"新增\",\n \"type\": \"button\",\n \"icon\": \"fa fa-plus\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"弹框标题\",\n \"body\": [\n getForm(props, \"new\")\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"className\": \"app-popover\",\n \"closeOnEsc\": false\n }\n }\n ]\n }\n },\n \"level\": \"primary\"\n };\n}\n\nfunction getButtonEdit(props) {\n return {\n \"type\": \"button\",\n \"label\": \"编辑\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": \"弹框标题\",\n \"body\": [\n getForm(props, \"edit\")\n ],\n \"showCloseButton\": true,\n \"showErrorMsg\": true,\n \"showLoading\": true,\n \"className\": \"app-popover\",\n \"closeOnEsc\": false\n }\n }\n ]\n }\n }\n };\n}\n\nfunction getButtonDelete(props) {\n return {\n \"type\": \"button\",\n \"label\": \"删除\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"deleteItem\",\n \"args\": {\n \"index\": \"${index+','}\" //这里不加逗号后续会报错,语法是逗号分隔可以删除多行\n },\n \"componentId\": props.id\n }\n ]\n }\n }\n };\n}\n\nexport const getAmisInputTableSchema = async (props, readonly) => {\n if (!props.id) {\n props.id = \"steedos_input_table_\" + props.name + \"_\" + Math.random().toString(36).substr(2, 9);\n }\n let buttonNewSchema = getButtonNew(props);\n let buttonEditSchema = getButtonEdit(props);\n let buttonDeleteSchema = getButtonDelete(props);\n let buttonsForColumnOperations = [];\n if (props.editable) {\n buttonsForColumnOperations.push(buttonEditSchema)\n }\n if (props.removable) {\n buttonsForColumnOperations.push(buttonDeleteSchema)\n }\n let inputTableSchema = {\n \"type\": \"input-table\",\n \"label\": props.label,\n \"name\": props.name,\n //不可以addable/editable/removable设置为true,因为会在原生的操作列显示操作按钮图标,此开关实测只控制这个按钮显示不会影响功能\n // \"addable\": props.addable,\n // \"editable\": props.editable,\n // \"removable\": props.removable, \n \"draggable\": props.draggable,\n \"showIndex\": props.showIndex,\n \"perPage\": props.perPage,\n \"id\": props.id,\n \"columns\": await getInputTableColumns(props),\n // \"needConfirm\": false, //不可以配置为false,否则,单元格都是可编辑状态,且很多static类型无法正常显示,比如static-mapping\n \"strictMode\": true,\n \"showTableAddBtn\": false,\n \"showFooterAddBtn\": false\n };\n if (buttonsForColumnOperations.length) {\n inputTableSchema.columns.push({\n \"name\": \"__op__\",\n \"type\": \"operation\",\n \"buttons\": buttonsForColumnOperations\n });\n }\n let schema = {\n \"type\": \"wrapper\",\n \"size\": \"none\",\n \"body\": [\n inputTableSchema\n ]\n };\n if (props.addable) {\n schema.body.push(buttonNewSchema);\n }\n return schema;\n}","import { first, keys, map, find } from 'lodash';\nimport { getUISchema, getRecordDetailHeaderSchema, getFormSchema, getViewSchema, getListViewColumns, getListViewSort, getTableSchema } from './objects';\nimport { getObjectRelatedList } from './objectsRelated';\n\nimport { getObjectListHeader,getObjectRecordDetailRelatedListHeader } from './converter/amis/header';\n// import { getListSchema } from './objects';\n\nfunction getScopeId(objectApiName,type){\n return `page_${objectApiName}_${type}`;\n}\n\n// 获取表单初始化amisSchema\nexport async function getFormPageInitSchema(objectApiName) {\n const schema = await getFormSchema(objectApiName, {recordId: '${recordId}'});\n return {\n type: 'page',\n name: getScopeId(objectApiName,\"form\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n body:[\n schema.amisSchema\n ]\n }\n}\n\n// 获取列表页面初始化amisSchema\nexport async function getListPageInitSchema(objectApiName, formFactor, userSession) {\n // let schema = await getListSchema(null, objectApiName, null, { showHeader: true });\n // let amisSchema = schema && schema.amisSchema;\n // if (amisSchema) {\n // return {\n // type: 'page',\n // bodyClassName: 'p-0',\n // regions: [\n // \"body\"\n // ],\n // // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n // body: amisSchema\n // }\n // }\n\n // const uiSchema = await getUISchema(objectApiName);\n // const listViewName = first(keys(uiSchema.list_views));\n // const headerSchema = await getObjectListHeader(uiSchema, listViewName);\n\n return {\n type: 'page',\n name: getScopeId(objectApiName,\"list\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n body: [{\n \"type\": \"steedos-object-listview\",\n \"objectApiName\": objectApiName,\n // \"listName\": \"${listName}\",\n // \"headerToolbar\": [],\n \"columnsTogglable\": false,\n \"showHeader\": true,\n // \"headerSchema\": headerSchema\n className: \"sm:border bg-white sm:rounded border-gray-300 border-solid\"\n }]\n }\n}\n\n// 获取\nexport async function getRecordPageInitSchema(objectApiName){\n // console.log('getRecordPageSchema==>', objectApiName, ctx, formFactor, userSession);\n // const detailHeaderAmisSchema = (await getRecordDetailHeaderSchema(objectApiName, \"${recordId}\")).amisSchema;\n // const objectFormAmisSchema = (await getViewSchema(objectApiName, \"${recordId}\", {labelAlign:\"left\"})).amisSchema;\n \n const recordId = '${recordId}';\n const relatedList = await getObjectRelatedList(objectApiName, recordId, null);\n const uiSchema = await getUISchema(objectApiName);\n let body = [\n // detailHeaderAmisSchema,\n {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"onEvent\": {\n \"recordLoaded\": {\n \"actions\": [\n {\n \"actionType\": \"setValue\",\n \"args\": {\n \"value\": {\n \"recordLoaded\": true,\n }\n }\n },\n {\n \"actionType\": \"reload\",\n \"data\": {\n \"name\": `\\${record.${uiSchema?.NAME_FIELD_KEY || 'name'}}`,\n \"record\": `\\${record}`,\n \"recordLoaded\": true,\n }\n }\n ]\n }\n }\n }\n ];\n let contentBody = {\n \"type\": \"tabs\",\n \"tabs\": [\n {\n \"title\": \"详情\",\n \"body\": [\n // objectFormAmisSchema\n {\n \"type\": \"steedos-object-form\",\n \"label\": \"对象表单\",\n \"mode\": \"read\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n \"labelAlign\": \"left\"\n }\n ]\n }\n ],\n \"className\": \"sm:mt-3 flex flex-col region-main bg-white sm:rounded sm:border border-gray-300\",\n \"linksClassName\": \"pl-4 pt-2\"\n };\n if(relatedList.length){\n contentBody.tabs.push({\n \"title\": \"相关\",\n \"body\": {\n \"type\": \"steedos-object-related-lists\",\n \"label\": \"所有相关表\",\n \"objectApiName\": \"${objectName}\",\n \"recordId\": \"${recordId}\",\n },\n })\n }\n body.push(contentBody);\n return {\n type: 'page',\n id: `page_${objectApiName}_record_detail`,\n name: getScopeId(objectApiName,\"record_detail\"),\n bodyClassName: '',\n regions: [\n \"body\"\n ],\n body\n }\n}\n\n// 获取对象的某个列表视图初始化amisSchema\nexport async function getListviewInitSchema(objectApiName, listViewName, ctx) {\n if(!ctx){\n ctx = {};\n }\n const uiSchema = await getUISchema(objectApiName);\n const listView = find(\n uiSchema.list_views,\n (listView, name) => {\n return name === listViewName;\n }\n );\n\n let amisSchema = {};\n\n if (listView) {\n const listViewColumns = getListViewColumns(listView, ctx.formFactor);\n const sort = getListViewSort(listView);\n \n // amisSchema = {\n // \"type\": \"steedos-object-table\",\n // \"objectApiName\": objectApiName,\n // \"columns\": listViewColumns,\n // \"extraColumns\": listView.extra_columns,\n // \"filters\": listView.filters,\n // \"sort\": sort,\n // \"headerSchema\": headerSchema\n // };\n\n const defaults = ctx.defaults || {};\n if(!defaults.headerSchema){\n //传入isListviewInit是区别于对象列表类型的微页面,即getListPageInitSchema函数中该属性为false\n const headerSchema = await getObjectListHeader(uiSchema, listViewName, {\n onlySecordLine: true,\n isListviewInit: true\n });\n defaults.headerSchema = headerSchema;\n }\n ctx.defaults = defaults;\n let setDataToComponentId = ctx.setDataToComponentId;\n if(!setDataToComponentId){\n setDataToComponentId = `service_listview_${objectApiName}`;\n }\n const schema = await getTableSchema(null, objectApiName, listViewColumns, {\n sort,\n ...ctx,\n setDataToComponentId\n });\n amisSchema = schema.amisSchema;\n // TODO: 下面这些data下的无用属性在底层代码中就不应该加,待底层移除后下面的删除语句就可以去掉了\n delete amisSchema.data.$master;\n delete amisSchema.data._id;\n delete amisSchema.data.recordPermissions;\n delete amisSchema.data.uiSchema;\n }\n // 不可以外面包一层page,否则列表视图渲染时的data无法传入顶部第一行造成按钮显示异常\n return amisSchema;\n\n // return {\n // type: 'page',\n // bodyClassName: 'p-0',\n // regions: [\n // \"body\"\n // ],\n // // name: `page_${readonly ? 'readonly':'edit'}_${recordId}`\n // body: [amisSchema],\n // data:{\n // listName: listViewName\n // }\n // }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-07-05 15:54:17\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-07-05 16:30:29\n * @Description: \n */\nimport { fetchAPI } from './steedos.client';\n\nexport async function getApps(){\n const APPS_API = '/service/api/apps/menus';\n const apps = await fetchAPI(APPS_API);\n return apps;\n}\n\nexport async function getApp(appName){\n const appApi = `/service/api/apps/${appName}/menus`;\n const app = await fetchAPI(appApi);\n return app;\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-15 11:53:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-27 16:54:21\n * @Description: \n */\nimport { fetchAPI, getSteedosAuth } from \"./steedos.client\"\n\nexport const getNotifications = async () => {\n const auth = getSteedosAuth();\n const query = `\n {\n notifications(filters: [\"owner\",\"=\",\"${auth.userId}\"], sort: \"created desc,name\", top : 10){\n _id,name,body,related_to,related_name,url,owner,is_read,from,created\n },\n unReadCount: notifications__count(filters: [[\"owner\",\"=\",\"${auth.userId}\"], [\"is_read\", \"!=\", true]])\n }\n `;\n const result = await fetchAPI('/graphql', {\n method: 'POST',\n body: JSON.stringify({ query })\n })\n\n return result.data\n}\n\nexport const markReadAll = async ()=>{\n return await fetchAPI('/api/v4/notifications/all/markReadAll', {\n method: 'POST'\n });\n}","import { map } from 'lodash';\n\nconst PUBLIC_ENV = {};\n\nexport const setEnv = (k, v)=>{\n PUBLIC_ENV[k] = v;\n}\n\nexport const getEnv = (k) =>{\n return PUBLIC_ENV[k];\n}\n\nexport const setEnvs = (data) =>{\n map(data, (v, k)=>{\n PUBLIC_ENV[k] = v;\n });\n}\n\nexport const getEnvs = () =>{\n return PUBLIC_ENV;\n}","import { getUISchema } from './objects';\n\nexport async function getSpaceUsersPickerAmisSchema(spaceUserSchema, name, options) {\n return {\n \"type\": \"picker\",\n \"label\": \"人员\",\n \"name\": name,\n \"id\": options.id,\n \"modalMode\": \"dialog\",\n \"joinValues\": false,\n \"source\": {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n \"data\": {\n \"orderBy\": \"${orderBy}\",\n \"orderDir\": \"${orderDir}\",\n \"pageNo\": \"${page}\",\n \"pageSize\": \"${perPage}\",\n \"query\": \"{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: \\\"{__sort}\\\"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}\",\n \"$term\": \"$term\",\n \"$self\": \"$$\"\n },\n \"requestAdaptor\": \"\\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\\n var filters = [];\\n var pageSize = api.data.pageSize || 10;\\n var pageNo = api.data.pageNo || 1;\\n var skip = (pageNo - 1) * pageSize;\\n var orderBy = api.data.orderBy || '';\\n var orderDir = api.data.orderDir || '';\\n var sort = orderBy + ' ' + orderDir;\\n var allowSearchFields = [\\\"name\\\"];\\n if(api.data.$term){\\n filters = [[\\\"name\\\", \\\"contains\\\", \\\"'+ api.data.$term +'\\\"]];\\n }else if(selfData.op === 'loadOptions' && selfData.value){\\n filters = [[\\\"_id\\\", \\\"=\\\", selfData.value]];\\n }\\n if(allowSearchFields){\\n allowSearchFields.forEach(function(key){\\n const keyValue = selfData[key];\\n if(keyValue){\\n filters.push([key, \\\"contains\\\", keyValue]);\\n }\\n })\\n }\\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\\n return api;\\n \"\n },\n \"pickerSchema\": {\n \"mode\": \"table\",\n \"name\": \"thelist\",\n \"draggable\": false,\n \"headerToolbar\": [\n \"switch-per-page\",\n \"pagination\"\n ],\n \"defaultParams\": {\n \"perPage\": 50\n },\n \"columns\": [\n {\n \"name\": \"_index\",\n \"type\": \"text\",\n \"width\": 32,\n \"placeholder\": \"\"\n },\n {\n \"name\": \"_id\",\n \"label\": \"ID\",\n \"type\": \"text\",\n \"toggled\": false\n },\n {\n \"name\": \"name\",\n \"label\": \"姓名\",\n \"sortable\": true,\n \"searchable\": true,\n \"type\": \"text\"\n },\n {\n \"name\": \"email\",\n \"label\": \"邮件\",\n \"sortable\": true,\n \"type\": \"text\",\n \"searchable\": true\n },\n {\n \"name\": \"mobile\",\n \"label\": \"手机\",\n \"type\": \"text\",\n \"sortable\": true,\n \"searchable\": true\n }\n ],\n \"syncLocation\": false,\n \"keepItemSelectionOnPageChange\": true\n },\n \"labelField\": \"name\",\n \"valueField\": \"_id\",\n \"size\": \"lg\",\n \"extractValue\": true,\n \"className\": \"m-0\",\n \"labelClassName\": \"text-left\"\n }\n}\n\nexport async function getSpaceUsersPickerSchema(name, options) {\n const uiSchema = await getUISchema(\"space_users\");\n const amisSchema = await getSpaceUsersPickerAmisSchema(uiSchema, name, options);\n return {\n uiSchema,\n amisSchema,\n };\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-08-02 11:19:09\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-08-05 11:15:42\n * @Description:\n */\n// # 日期类型: date, datetime 支持操作符: \"=\", \"<>\", \"<\", \">\", \"<=\", \">=\"\n// # 文本类型: text, textarea, html 支持操作符: \"=\", \"<>\", \"contains\", \"notcontains\", \"startswith\"\n// # 选择类型: lookup, master_detail, select 支持操作符: \"=\", \"<>\"\n// # 数值类型: currency, number 支持操作符: \"=\", \"<>\", \"<\", \">\", \"<=\", \">=\"\n// # 布尔类型: boolean 支持操作符: \"=\", \"<>\"\n// # 数组类型: checkbox, [text] 支持操作符: \"=\", \"<>\"\nimport lodash from 'lodash';\n\nconst DATE_DATETIME_BETWEEN_VALUES = [\n \"last_year\",\n \"this_year\",\n \"next_year\",\n \"last_quarter\",\n \"this_quarter\",\n \"next_quarter\",\n \"last_month\",\n \"this_month\",\n \"next_month\",\n \"last_week\",\n \"this_week\",\n \"next_week\",\n \"yestday\",\n \"today\",\n \"tomorrow\",\n \"last_7_days\",\n \"last_30_days\",\n \"last_60_days\",\n \"last_90_days\",\n \"last_120_days\",\n \"next_7_days\",\n \"next_30_days\",\n \"next_60_days\",\n \"next_90_days\",\n \"next_120_days\",\n];\n\n/**\n *\n */\n\nconst opMaps = {\n equal: \"=\",\n not_equal: \"!=\",\n less: \"<\",\n less_or_equal: \"<=\",\n greater: \">\",\n greater_or_equal: \">=\",\n between: \"between\",\n not_between: \"not_between\", // TODO 不支持待@steedos/filters 增强\n is_empty: \"is_empty\", // TODO 不支持待@steedos/filters 增强\n is_not_empty: \"is_not_empty\", // TODO 不支持待@steedos/filters 增强\n select_equals: \"=\",\n select_not_equals: \"!=\",\n select_any_in: \"in\",\n select_not_any_in: \"<>\",\n like: \"contains\",\n not_like: \"notcontains\",\n starts_with: \"startswith\",\n ends_with: \"endswith\",\n};\n\nconst isGroup = (item) => {\n return _.has(item, \"conjunction\");\n};\n\nconst conditionGroupToFilters = (group) => {\n const filters = [];\n const { conjunction, children } = group;\n if (conjunction && children) {\n children.forEach((item) => {\n if (filters.length > 0) {\n filters.push(conjunction);\n }\n if (isGroup(item)) {\n const filter = conditionGroupToFilters(item);\n if (filter && filter.length > 0) {\n filters.push(filter);\n }\n } else {\n const filter = conditionItemToFilters(item);\n if (filter) {\n filters.push(filter);\n }\n }\n });\n }\n return filters;\n};\n\nconst conditionItemToFilters = (item) => {\n const { left, op, right } = item;\n if (left && left.type === \"field\") {\n if (op) {\n if (op.startsWith(\"between:\")) {\n const array = op.split(\":\");\n return [left.field, array[0], array[1]];\n } else {\n if (right != null) {\n return [left.field, opMaps[op], right];\n }\n }\n }\n }\n};\n\n// const conditionChildrenToFilters = (children)=>{\n\n// }\nconst filterToConditionItem = (filter) => {\n if (filter.length === 3) {\n const op = lodash.findKey(opMaps, (value) => {\n return value === filter[1];\n });\n if (\n op === \"between\" &&\n lodash.includes(DATE_DATETIME_BETWEEN_VALUES, filter[2])\n ) {\n return {\n left: {\n type: \"field\",\n field: filter[0],\n },\n op: `${op}:${filter[2]}`,\n };\n } else {\n return {\n left: {\n type: \"field\",\n field: filter[0],\n },\n op: op,\n right: filter[2],\n };\n }\n } else {\n console.warn(`无效的filter:${JSON.stringify(filter)}`);\n }\n};\n\nconst filterObjectToArray = (filter) => {\n if (!lodash.isArray(filter) && lodash.isObject(filter)) {\n return [filter.field, filter.operation, filter.value];\n }\n return filter;\n};\n\nconst filtersToConditionGroup = (filters) => {\n filters = filterObjectToArray(filters);\n\n const conditions = {\n conjunction: \"and\",\n children: [],\n };\n if (!filters || filters.length == 0) {\n return conditions;\n }\n filters.forEach((filter) => {\n filter = filterObjectToArray(filter);\n if (filter === \"or\" || filter === \"and\") {\n conditions.conjunction = filter;\n } else {\n if (\n filter.length === 3 &&\n filter.indexOf(\"and\") == -1 &&\n filter.indexOf(\"or\") == -1\n ) {\n conditions.children.push(filterToConditionItem(filter));\n } else {\n conditions.children.push(filtersToConditionGroup(filter));\n }\n }\n });\n return conditions;\n};\n\nexport const conditionsToFilters = (conditions) => {\n return conditionGroupToFilters(conditions);\n};\n\nexport const filtersToConditions = (filters) => {\n return filtersToConditionGroup(filters);\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-13 14:34:18\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-13 14:59:00\n * @Description: 加载资产包,并返回所有可用资产\n */\nimport { isString, filter, map } from 'lodash';\n\nexport const registerRemoteAssets = async (assetUrls)=>{\n if(assetUrls && assetUrls.length > 0){\n let assetUrlsArray = assetUrls;\n if(isString(assetUrlsArray)){\n assetUrlsArray = assetUrlsArray.split(',');\n }\n await Builder.registerRemoteAssets(assetUrlsArray);\n const amisComps = filter(Builder.registry['meta-components'], function(item){ return item.componentName && item.amis?.render});\n return map(amisComps, (item)=>{\n return { componentType: item.componentType, componentName: item.componentName, ...item.amis.render}\n })\n }else{\n return []\n }\n}","import { getRootUrl, getSteedosAuth } from \"./lib/steedos.client\";\n\n/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-12-17 17:03:40\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-22 18:19:44\n * @Description: \n */\nexport const getDefaultRenderData = ()=>{\n const steedosAuth = getSteedosAuth();\n return {\n context: {\n rootUrl: getRootUrl(),\n userId: steedosAuth.userId,\n tenantId: steedosAuth.tenantId,\n authToken: steedosAuth.authToken,\n user: steedosAuth\n },\n global: {\n userId: steedosAuth.userId,\n spaceId: steedosAuth.tenantId,\n user: steedosAuth, \n now: new Date(),\n // mode: mode //由表单提供\n }\n }\n }","import {\n lookupToAmisPicker,\n getSteedosAuth, Router\n} from \"@steedos-widgets/amis-lib\";\n//TODO Meteor.settings.public?.workflow?.hideCounterSignJudgeOptions\n\nconst HIDE_COUNTER_SIGN_JUDGE_OPTIONS = false;\n\nconst getJudgeOptions = async (instance) => {\n const { step } = instance;\n const options = [];\n if (step.step_type === \"sign\") {\n options.push({\n label: \"核准\",\n value: \"approved\",\n });\n options.push({\n label: \"驳回\",\n value: \"rejected\",\n });\n } else if (\n step.step_type === \"counterSign\" &&\n HIDE_COUNTER_SIGN_JUDGE_OPTIONS != true\n ) {\n options.push({\n label: \"核准\",\n value: \"approved\",\n });\n options.push({\n label: \"驳回\",\n value: \"rejected\",\n });\n options.push({\n label: \"已阅\",\n value: \"readed\",\n });\n }\n return options;\n};\n\nconst getJudgeInput = async (instance) => {\n const judgeOptions = await getJudgeOptions(instance);\n if (judgeOptions.length > 0 && instance.approve.type != 'cc') {\n return {\n type: \"radios\",\n label: false,\n name: \"judge\",\n value: \"approved\",\n options: judgeOptions,\n id: \"u:444dbad76e90\",\n required: true,\n \"onEvent\": {\n \"change\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"instance_approval\",\n \"args\": {\n \"value\": {\n new_judge: \"${event.data.value}\",\n next_step: undefined,\n }\n },\n \"actionType\": \"setValue\"\n },\n {\n // \"componentId\": \"u:next_step\",\n \"args\": {\n judge: \"${event.data.value}\"\n },\n \"actionType\": \"broadcast\",\n eventName: \"approve_judge_change\"\n },\n ]\n }\n }\n };\n }\n};\n\n//TODO 只有一个下一步时,默认选中,并且禁止修改.\nconst getNextStepInput = async (instance) => {\n if(instance.approve?.type == 'cc'){\n return ;\n }\n return {\n type: \"grid\",\n columns: [\n {\n body: [\n {\n type: \"tpl\",\n tpl: \"下一步\",\n inline: true,\n wrapperComponent: \"\",\n id: \"u:0a85de51480f\",\n },\n ],\n id: \"u:bf75adfb544e\",\n md: \"auto\",\n valign: \"middle\",\n },\n {\n body: [\n {\n type: \"list-select\",\n label: \"\",\n name: \"next_step\",\n id: \"u:next_step\",\n multiple: false,\n required: true,\n // selectFirst: true,\n autoFill: {\n \"new_next_step\": \"${step}\",\n \"next_users\": null\n },\n \"source\": {\n \"url\": \"${context.rootUrl}/api/workflow/v2/nextStep?judge=${new_judge}\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"method\": \"post\",\n \"messages\": {\n },\n \"requestAdaptor\": \"let { context, judge } = api.data; if(!judge){judge='approved'}\\nconst formValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\\\"instance_form\\\").getValues();\\n\\napi.data = {\\nflowVersionId: context.flowVersion._id,\\n instanceId: context._id,\\n flowId: context.flow._id,\\n step: context.step,\\n judge: judge,\\n values: formValues\\n}\\n\\n\\n return api;\",\n \"adaptor\": `\n payload.data = {\n value: payload.nextSteps.length === 1 ? payload.nextSteps[0]._id : null, \n options: _.map(payload.nextSteps, (item)=>{\n return {\n label: item.name, \n value: item._id,\n step: item\n }\n })\n };\n return payload;\n `,\n \"data\": {\n // \"&\": \"$$\",\n \"context\": \"${context}\",\n \"$scopeId\": \"${scopeId}\",\n \"judge\": \"${new_judge}\",\n }\n },\n // \"onEvent\": {\n // \"change\": {\n // \"weight\": 0,\n // \"actions\": [\n // {\n // \"componentId\": \"instance_approval\",\n // \"args\": {\n // \"value\": {\n // new_next_step: \"${event.data.value}\",\n // }\n // },\n // \"actionType\": \"setValue\"\n // },\n // // {\n // // \"args\": {\n // // next_step: \"${event.data.value}\",\n // // },\n // // \"actionType\": \"broadcast\",\n // // eventName: \"approve_next_step_change\"\n // // },\n // ]\n // }\n // }\n },\n ],\n id: \"u:4d3a884b437c\",\n },\n ],\n id: \"u:016c56efe5fd\",\n className: \"b-a b-1x m-none p-xs\",\n subFormMode: \"\",\n };\n};\n\n//TODO 只有一个处理人时,默认选中,禁止修改. 部分情况不需要显示下一步处理人\nconst getNextStepUsersInput = async (instance) => {\n if(instance.approve?.type == 'cc'){\n return ;\n }\n return {\n type: \"grid\",\n columns: [\n {\n body: [\n {\n type: \"tpl\",\n tpl: \"处理人\",\n inline: true,\n wrapperComponent: \"\",\n id: \"u:3203cc281b3c\",\n },\n ],\n id: \"u:8eece76a9e4c\",\n md: \"auto\",\n valign: \"middle\",\n },\n {\n body: [\n // TODO 处理下一步处理人默认值\n Object.assign({}, \n {\n \"type\": \"steedos-select-user\"\n },\n {\n name: \"next_users\", \n hiddenOn: \"this.new_next_step.deal_type != 'pickupAtRuntime'\",\n required: true\n }),\n {\n type: \"steedos-select-user\",\n label: \"\",\n name: \"next_users\",\n id: \"u:next_users\",\n required: true,\n hiddenOn: \"this.new_next_step.deal_type === 'pickupAtRuntime'\",\n amis: {\n multiple: \"this.new_next_step.deal_type === 'counterSign'\",\n \"source\": {\n \"url\": \"${context.rootUrl}/api/workflow/v2/nextStepUsers\",\n \"method\": \"post\",\n \"sendOn\": \"!!this.new_next_step && this.new_next_step.step_type != 'end'\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"messages\": {\n },\n \"requestAdaptor\": \"\\nconst { context, next_step, $scopeId } = api.data;\\nconst formValues = SteedosUI.getRef($scopeId).getComponentById(\\\"instance_form\\\").getValues();\\n\\napi.data = {\\n instanceId: context._id,\\n nextStepId: next_step._id,\\n values: formValues\\n}\\n\\n\\n return api;\",\n \"adaptor\": \"\\npayload.data = {value: payload.nextStepUsers.length === 1 ? payload.nextStepUsers[0].id : null, options: payload.nextStepUsers};\\nreturn payload;\",\n \"data\": {\n \"&\": \"$$\",\n \"$scopeId\": \"$scopeId\",\n \"context\": \"${context}\",\n \"next_step\": \"${new_next_step}\",\n }\n },\n \"labelField\": \"name\",\n \"valueField\": \"id\",\n }\n }\n ],\n id: \"u:81a4913c61cc\",\n },\n ],\n id: \"u:ffff15b76c89\",\n className: \"b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm\",\n subFormMode: \"\",\n hiddenOn: \"!!!this.new_next_step || (this.new_next_step && this.new_next_step.step_type === 'end')\"\n };\n};\n\nconst getCCSubmitRequestAdaptor = async (instance) => {\n return ` \n const instanceForm = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\");\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n api.data = {\n instanceId: \"${instance._id}\", \n traceId: \"${instance.trace._id}\", \n approveId: \"${instance.approve._id}\", \n description: approveValues.suggestion \n };\n return api;\n `;\n};\n\nconst getPostSubmitRequestAdaptor = async (instance) => {\n return ` const instanceForm = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\");\n const formValues = instanceForm.getValues();\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n let nextUsers = approveValues.next_users;\n if(_.isString(nextUsers)){\n nextUsers = [approveValues.next_users];\n }\n const body = {Instances: [{\n _id: \"${instance._id}\",\n flow: \"${instance.flow._id}\",\n applicant: formValues.applicant,\n submitter: formValues.submitter,\n traces: [{\n _id: \"${instance.trace._id}\",\n step: \"${instance.step._id}\",\n approves: [{\n _id: \"${instance.approve._id}\",\n next_steps: [{\n step: approveValues.next_step._id,\n users: nextUsers,\n }],\n description: approveValues.suggestion,\n values: formValues\n }]\n }]\n }]};\n api.data = body;\n return api;\n `;\n};\n\nconst getPostEngineRequestAdaptor = async (instance) => {\n return ` \n const formValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_form\").getValues();\n const approveValues = SteedosUI.getRef(api.data.$scopeId).getComponentById(\"instance_approval\").getValues();\n let nextUsers = approveValues.next_users;\n if(_.isString(nextUsers)){\n nextUsers = [approveValues.next_users];\n }\n const body = {Approvals: [{\n instance: \"${instance._id}\",\n judge: approveValues.judge,\n trace: \"${instance.approve.trace}\",\n _id: \"${instance.approve._id}\",\n next_steps: [{\n step: approveValues.next_step._id,\n users: nextUsers,\n }],\n description: approveValues.suggestion,\n values: formValues\n }]};\n api.data = body;\n return api;\n `;\n};\n\n/**\n * 1 TODO 处理传阅提交\n * 2 草稿状态提交. TODO 申请单的表单、流程升级\n * 3 待审核提交\n * @param instance\n * @returns\n */\nconst getSubmitActions = async (instance) => {\n // console.log(`getSubmitActions instance====`, instance)\n let api = \"\";\n let requestAdaptor = \"\";\n if(instance.approve?.type == \"cc\"){\n api = \"/api/workflow/v2/cc_submit\";\n requestAdaptor = await getCCSubmitRequestAdaptor(instance);\n }else{\n if (instance.state === \"draft\") {\n api = \"/api/workflow/submit\";\n requestAdaptor = await getPostSubmitRequestAdaptor(instance);\n } else if (instance.state === \"pending\") {\n api = \"/api/workflow/engine\";\n requestAdaptor = await getPostEngineRequestAdaptor(instance);\n } else {\n return null; //TODO 考虑异常情况?\n }\n }\n\n return [\n // 校验表单\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": `\n // console.log(\"======getSubmitActions\");\n const form = event.context.scoped.getComponentById(\"instance_form\");\n return form.validate().then((instanceFormValidate)=>{\n event.setData({...event.data, instanceFormValidate})\n })\n `\n },\n // 校验审批表单\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"custom\",\n \"script\": `\n const form = event.context.scoped.getComponentById(\"instance_approval\");\n return form.validate().then((approvalFormValidate)=>{\n event.setData({...event.data, approvalFormValidate})\n })\n `,\n expression: \"${event.data.instanceFormValidate}\"\n },\n {\n componentId: \"\",\n args: {\n api: {\n url: `\\${context.rootUrl}${api}`,\n method: \"post\",\n dataType: \"json\",\n data: {\n \"&\": \"$$\",\n \"$scopeId\": \"${$scopeId}\"\n },\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: requestAdaptor,\n },\n messages: {\n success: \"提交成功!\",\n },\n },\n actionType: \"ajax\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n },\n {\n \"componentId\": \"\",\n \"args\": {\n \"blank\": false,\n \"url\": Router.getObjectListViewPath({appId: \"${appId}\", objectName: \"${objectName}\", listViewName: \"${side_listview_id}\"})\n },\n \"actionType\": \"url\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n },\n {\n \"actionType\": \"closeDialog\",\n expression: \"${event.data.instanceFormValidate && event.data.approvalFormValidate}\"\n }\n ];\n};\n\nexport const getApprovalDrawerSchema = async (instance) => {\n // console.log(\"=============getApprovalDrawerSchema=============\")\n return {\n type: \"drawer\",\n overlay: true,\n resizable: false,\n closeOnEsc: true,\n closeOnOutside: true,\n size: \"sm\",\n title: `${instance.step.name}`,\n className: \"approval-drawer absolute\",\n headerClassName: 'p-2',\n bodyClassName: 'p-2',\n footerClassName: 'p-2 pt-0',\n drawerContainer: ()=>{\n return window.$(\".antd-Page-content\",window.$(\".steedos-instance-wrapper\"))[0];\n },\n body: [\n {\n type: \"form\",\n debug: false,\n id: \"instance_approval\",\n resetAfterSubmit: true,\n clearPersistDataAfterSubmit: true,\n persistData: `workflow_approve_form_${instance.approve._id}`,\n body: [\n {\n type: 'hidden',\n name: 'new_next_step'\n },\n await getJudgeInput(instance),\n {\n type: \"textarea\",\n label: false,\n name: \"suggestion\",\n id: \"u:cd344f708ddc\",\n minRows: 3,\n maxRows: 20,\n placeholder: \"请填写意见\",\n requiredOn: \"${judge === 'rejected'}\"\n },\n await getNextStepInput(instance),\n await getNextStepUsersInput(instance),\n ],\n onEvent: {\n \"approve_judge_change\": {\n \"actions\": [\n {\n \"actionType\": \"reload\",\n \"componentId\": \"u:next_step\",\n \"args\": {\n }\n }\n ]\n },\n // \"approve_next_step_change\": {\n // \"actions\": [\n // {\n // \"actionType\": \"reload\",\n // \"componentId\": \"u:nex_users\",\n // \"args\": {\n // }\n // }\n // ]\n // },\n validateError: {\n weight: 0,\n actions: [\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"info\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"title\": \"提交失败\",\n \"msg\": \"请填写必填字段\"\n },\n \"actionType\": \"toast\"\n }\n ],\n }\n },\n \n },\n ],\n id: \"u:approve_8861156e0b23\",\n position: \"bottom\",\n actions: [\n {\n type: \"button\",\n label: \"提交\",\n onEvent: {\n click: {\n actions: await getSubmitActions(instance),\n },\n },\n id: \"u:f6f8c3933f6c\",\n level: \"primary\",\n },\n {\n type: \"button\",\n label: \"取消\",\n onEvent: {\n click: {\n actions: [\n {\n componentId: \"\",\n args: {},\n actionType: \"closeDrawer\",\n },\n ],\n },\n },\n id: \"u:127ff1da7283\",\n },\n ]\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-16 17:27:24\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-08 10:13:06\n * @Description: \n */\nimport { getSteedosAuth } from '@steedos-widgets/amis-lib'\n// TODO attachments\nexport const getAttachments = async (instance)=>{\n\n return {\n \"type\": \"panel\",\n className: \"border-none bg-none shadow-none\",\n headerClassName: \"p-0 border-none mb-1\",\n bodyClassName: \"p-0\",\n \"title\": [\n await getAttachmentUploadInput(instance)\n ],\n \"body\": [\n {\n type: 'service',\n id: 'u:attachmentsService',\n api: {\n \"method\": \"post\",\n \"url\": \"${context.rootUrl}/graphql\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n requestAdaptor: `\n api.data.query = 'query{attachments:cfs_instances_filerecord(filters: [[\"metadata.instance\", \"=\", \"${instance._id}\"], \"metadata.current\", \"=\", true]){ _id,original,metadata}}';\n return api;\n `\n },\n body: [\n {\n \"type\": \"list\",\n \"source\": \"${attachments}\",\n title: false,\n \"listItem\": {\n \"body\": [\n {\n type: 'tpl',\n inline: true,\n tpl: `<a href='\\${context.rootUrl}/api/files/instances/\\${_id}?download=true' target='_blank'>\\${original.name}</a>`\n }\n ],\n \"actions\": [\n {\n \"icon\": \"fa fa-eye\",\n \"type\": \"button\",\n \"id\": \"u:ef52fa8940a8\"\n }\n ],\n \"id\": \"u:550b3fdc8788\"\n },\n \"id\": \"u:f538be693fad\"\n }\n ]\n }\n ]\n }\n}\n\nexport const getAttachmentUploadInput = async (instance)=>{\n if(!instance.approve){\n return {\n type: 'tpl',\n tpl: \"附件\"\n }\n }\n const auth = getSteedosAuth();\n return {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": [\n {\n \"type\": \"input-file\",\n labelClassName: \"antd-List-heading\",\n className: \"flex items-center\",\n \"label\": \"附件\",\n mode:\"inline\",\n \"name\": \"file\",\n \"id\": \"u:a58d02614e04\",\n \"btnLabel\": \"上传\",\n \"btnClassName\": \"m-0\", \n \"multiple\": true,\n \"maxLength\": 10,\n \"submitType\": \"asUpload\",\n \"uploadType\": \"fileReceptor\",\n \"proxy\": false,\n \"drag\": false,\n \"autoUpload\": true,\n \"useChunk\": false,\n \"joinValues\": false,\n \"extractValue\": false,\n \"valueField\": \"version_id\",\n \"receiver\": {\n \"url\": \"${context.rootUrl}/api/v4/instances/s3\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"method\": \"post\",\n \"messages\": {},\n \"dataType\": \"form-data\",\n \"requestAdaptor\": `\n api.data.append('space', '${instance.space}');\n api.data.append('instance', '${instance._id}');\n api.data.append('approve', '${instance.approve?._id}');\n api.data.append('owner', '${auth.userId}');\n api.data.append('owner_name', '${auth.name}');\n return api;\n `\n },\n \"onEvent\": {\n \"success\": {\n \"weight\": 0,\n \"actions\": [\n {\n \"componentId\": \"u:5f901c0b917b\",\n \"args\": {},\n \"actionType\": \"clear\"\n },\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"success\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"msg\": \"上传成功\"\n },\n \"actionType\": \"toast\"\n },\n {\n \"componentId\": \"u:attachmentsService\",\n \"args\": {},\n \"actionType\": \"reload\",\n }\n ]\n }\n }\n }\n ],\n \"id\": \"u:5f901c0b917b\",\n \"wrapWithPanel\": false\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-16 17:26:12\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-02-09 09:48:18\n * @Description: \n */\nimport { map, isEmpty } from 'lodash'\nimport { getSteedosAuth } from '@steedos-widgets/amis-lib';\nexport const getRelatedRecords = async (instance)=>{\n if(!instance.record_ids || isEmpty(instance.record_ids)){\n return ;\n }\n return map(instance.record_ids, (item)=>{\n return {\n type: 'tpl',\n tpl: `<a href='/app/-/${item.o}/view/${item.ids[0]}' target='_blank'>相关台账信息</a>`\n }\n })\n}\n\n// TODO delete button\nexport const getRelatedInstances = async (instance)=>{\n // if(!instance.related_instances || isEmpty(instance.related_instances)){\n // return ;\n // }\n const spaceId = getSteedosAuth().tenantId;\n \n return {\n \"type\": \"list\",\n \"name\": \"relatedInstances\",\n \"source\": \"${related_instances}\",\n title: \"相关文件\",\n \"listItem\": {\n \"body\": [\n {\n type: 'tpl',\n inline: true,\n tpl: `<a href='\\${context.rootUrl}/workflow/space/${spaceId}/view/readonly/\\${_id}' target='_blank'>\\${name}</a>`\n }\n ],\n \"actions\": [\n {\n \"icon\": \"fa fa-eye\",\n \"type\": \"button\",\n \"id\": \"u:ef52fa8940a8\"\n }\n ],\n \"id\": \"u:550b3fdc8788\"\n },\n \"id\": \"related_instances\"\n }\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-24 16:48:28\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-09-27 16:45:58\n * @Description: \n */\n\nimport _, { each } from 'lodash';\n\nexport const getInstanceApprovalHistory = async ()=>{\n return {\n \"type\": \"table\",\n \"headerClassName\": \"hidden\",\n \"title\": \"签批历程\",\n \"source\": \"${historyApproves}\",\n \"className\": \"m-b-none instance-approve-history\",\n \"columnsTogglable\": false,\n \"footable\": {\n \"expand\": \"all\"\n },\n \"columns\": [\n {\n \"name\": \"name\",\n \"label\": \"name\"\n },\n {\n \"name\": \"user_name\",\n \"label\": \"user_name\",\n \"type\": \"tpl\",\n \"tpl\": \"<div><div>${opinion}</div>${user_name}</div>\"\n },\n {\n \"name\": \"finish_date\",\n \"label\": \"finish_date\",\n \"classNameExpr\": \"<%= data.finish_date == '已读' ? 'text-[blue]' : (data.finish_date == '未处理' ? 'text-[red]' : '') %>\"\n // \"type\": \"datetime\",\n // \"format\": \"YYYY-MM-DD HH:mm\"\n },\n {\n \"name\": \"judge\",\n \"label\": \"judge\",\n \"classNameExpr\": \"<%= data.judge == '已核准' ? 'text-green-600' : (data.judge == '已驳回' ? 'text-[red]' : '') %>\"\n }\n ]\n }\n}\n\n\nconst getTrs = (instance)=>{\n const { traces } = instance;\n _.each(traces, (trace)=>{\n console.log(`trace`, trace)\n })\n}\n\nexport const getINstanceApproveHistory2 = async (instance)=>{\n \n return {\n type: \"table-view\",\n className: \"instance-history\",\n trs: await getTrs(instance),\n id: \"u:instance-history\",\n };\n}","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-07 16:20:45\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-03-23 16:49:44\n * @Description:\n */\nimport {\n lookupToAmis,\n getSteedosAuth,\n} from \"@steedos-widgets/amis-lib\";\n\nimport { each, startsWith, includes } from \"lodash\";\n\nimport { getApprovalDrawerSchema } from \"./approve\";\n\nimport { getAttachments } from './attachment';\n\nimport { getRelatedRecords, getRelatedInstances } from './related';\n\nimport { getInstanceApprovalHistory } from './history';\n\n\nconst getSelectOptions = (field) => {\n const options = [];\n each(field.options.split(\"\\n\"), (item) => {\n var foo = item.split(\":\");\n if (foo.length == 2) {\n options.push({ label: foo[0], value: foo[1] });\n } else {\n options.push({ label: item, value: item });\n }\n });\n return options;\n};\n\nconst isOpinionField = (field)=>{\n const field_formula = field.formula;\n return (field_formula?.indexOf(\"{traces.\") > -1 || field_formula?.indexOf(\"{signature.traces.\") > -1 || field_formula?.indexOf(\"{yijianlan:\") > -1 || field_formula?.indexOf(\"{\\\"yijianlan\\\":\") > -1 || field_formula?.indexOf(\"{'yijianlan':\") > -1)\n}\n\nconst getFieldEditTpl = async (field, label)=>{\n const tpl = {\n label: label === true ? field.name : false,\n name: field.code,\n mode: \"horizontal\",\n className: \"m-none p-none form-control\",\n disabled: field.permission !== \"editable\",\n required: field.is_required\n };\n if(isOpinionField(field)){\n tpl.type = 'input-group';\n tpl.body = [\n {\n \"type\": \"textarea\",\n \"inputClassName\": \"b-r-none p-r-none\",\n \"name\": \"input-group\",\n \"id\": `yijian-${field.code}`,\n \"minRows\": 3,\n \"maxRows\": 20,\n \"mode\": \"normal\",\n \"size\": \"full\"\n },\n {\n \"type\": \"button\",\n \"label\": \"签批\",\n \"level\": \"link\",\n \"id\": \"u:2592111d236d\",\n \"block\": false,\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": `${field.name || field.code}`,\n \"body\": [\n {\n \"type\": \"form\",\n \"title\": \"表单\",\n \"body\": [\n {\n \"label\": \"\",\n \"type\": \"textarea\",\n \"name\": \"yijian\",\n \"id\": \"u:1d5a60623000\",\n \"minRows\": 6,\n \"maxRows\": 20,\n \"mode\": \"normal\",\n \"placeholder\": \"请填写意见\"\n },\n {\n \"type\": \"grid\",\n \"columns\": [\n {\n \"body\": [\n {\n \"type\": \"button\",\n \"label\": \"已阅\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"已阅\",\n \"value\": \"已阅\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:13498f8d2882\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"已办\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"已办\",\n \"value\": \"已办\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:cfa2e3c54a21\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"同意\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"u:1d5a60623000\",\n \"args\": {\n \"valueInput\": \"同意\",\n \"value\": \"同意\"\n },\n \"actionType\": \"setValue\"\n }\n ]\n }\n },\n \"id\": \"u:06e0037dcd23\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n },\n {\n \"type\": \"button\",\n \"label\": \"其他常用意见\",\n \"onEvent\": {\n \"click\": {\n \"actions\": []\n }\n },\n \"id\": \"u:3a781bc550a2\",\n \"level\": \"link\",\n \"className\": \"m-r\"\n }\n ],\n \"id\": \"u:3def7a5b7cd5\"\n }\n ],\n \"id\": \"u:ecbefa51b638\"\n }\n ],\n \"id\": \"u:dd32ae67b5c7\"\n }\n ],\n \"id\": \"u:a5d06d3a61b9\",\n \"closeOnEsc\": false,\n \"closeOnOutside\": false,\n \"showCloseButton\": true,\n \"actions\": [\n {\n \"type\": \"button\",\n \"label\": \"确认\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": `yijian-${field.code}`,\n \"args\": {\n \"valueInput\": \"${yijian}\",\n \"value\": \"${yijian}\"\n },\n \"actionType\": \"setValue\"\n },\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:87e22efe707a\",\n \"level\": \"primary\"\n },\n {\n \"type\": \"button\",\n \"label\": \"取消\",\n \"onEvent\": {\n \"click\": {\n \"actions\": [\n {\n \"componentId\": \"\",\n \"args\": {},\n \"actionType\": \"closeDialog\"\n }\n ]\n }\n },\n \"id\": \"u:d0e6550a848e\"\n }\n ]\n }\n }\n ],\n \"weight\": 0\n }\n },\n \"className\": \"instance-sign-text-btn\",\n }\n ]\n }else{\n switch (field.type) {\n case \"input\":\n if (field.is_textarea) {\n tpl.type = \"textarea\";\n } else {\n tpl.type = \"input-text\";\n }\n break;\n case \"number\":\n tpl.type = \"input-number\";\n break;\n case \"date\":\n tpl.type = \"input-date\";\n tpl.inputFormat = \"YYYY-MM-DD\";\n tpl.format = 'YYYY-MM-DDT00:00:00.000[Z]';\n break;\n case \"dateTime\":\n tpl.type = \"input-datetime\";\n tpl.inputFormat = \"YYYY-MM-DD HH:mm\";\n tpl.format = 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n break;\n case \"checkbox\":\n tpl.type = \"checkbox\";\n break;\n case \"email\":\n tpl.type = \"input-email\";\n tpl.validations = {\n isEmail: true,\n };\n break;\n case \"url\":\n tpl.type = \"input-url\";\n tpl.validations = {\n isUrl: true,\n };\n break;\n case \"password\":\n tpl.type = \"input-password\";\n tpl.showCounter = true;\n break;\n case \"select\":\n tpl.type = \"select\";\n tpl.options = getSelectOptions(field);\n break;\n case \"user\":\n const useTpl = await lookupToAmis(\n {\n name: field.code,\n label: field.name,\n reference_to: \"space_users\",\n reference_to_field: 'user',\n multiple: field.is_multiselect,\n },\n false,\n {}\n );\n Object.assign(tpl, useTpl);\n break;\n case \"group\":\n const orgTpl = await lookupToAmis(\n {\n name: field.code,\n label: field.name,\n reference_to: \"organizations\",\n multiple: field.is_multiselect,\n },\n false,\n {}\n );\n Object.assign(tpl, orgTpl);\n break;\n case \"radio\":\n tpl.type = \"radios\";\n tpl.options = getSelectOptions(field);\n break;\n case \"multiSelect\":\n tpl.type = \"checkboxes\";\n tpl.options = getSelectOptions(field);\n break;\n case \"odata\":\n var labelField = field.formula.substr(1, field.formula.length - 2);\n labelField = labelField.substr(labelField.indexOf(\".\") + 1);\n tpl.type = \"select\";\n tpl.multiple = field.is_multiselect;\n // tpl.labelField = labelField;\n // tpl.valueField = \"_value\";\n tpl.source = {\n url: startsWith(field.url, \"http\")\n ? field.url\n : `\\${context.rootUrl}${field.url}`,\n method: \"get\",\n dataType: \"json\",\n headers: {\n Authorization: \"Bearer ${context.tenantId},${context.authToken}\",\n },\n adaptor:`\n payload.data = {\n options: _.map(payload.value, (item)=>{\n const value = item;\n item[\"@label\"] = item[\"${labelField}\"]\n delete item['@odata.editLink'];\n delete item['@odata.etag'];\n delete item['@odata.id'];\n return {\n label: item[\"@label\"],\n value: value\n }\n })\n }\n return payload;\n `\n };\n break;\n case \"html\":\n if (tpl.disabled) {\n tpl.type = 'html';\n } else {\n tpl.type = \"input-rich-text\";\n }\n break;\n case \"table\":\n tpl.type = \"input-table\"; //TODO\n tpl.addable = field.permission === \"editable\";\n tpl.editable = tpl.addable;\n tpl.copyable = tpl.addable;\n tpl.removable = tpl.addable;\n tpl.columns = [];\n for (const sField of field.fields) {\n if (sField.type != \"hidden\") {\n sField.permission = field.permission\n const column = await getTdInputTpl(sField, true);\n tpl.columns.push(column);\n }\n }\n break;\n case \"section\":\n tpl.type = \"input-text\";\n break;\n default:\n break;\n }\n }\n // console.log('getFieldEditTpl ', label, tpl)\n return tpl;\n};\n\nconst getFieldReadonlyTpl = async (field, label)=>{\n // console.log(`getFieldReadonlyTpl`, label, field)\n const tpl = {\n label: label === true ? field.name : false,\n name: field.code,\n mode: \"horizontal\",\n className: \"m-none p-none form-control\",\n };\n if(includes(['text'], field.type)){\n tpl.type = `static-${field.type}`;\n }else if(field.type === 'select'){\n const options = getSelectOptions(field);\n const map = {};\n each(options , (item)=>{\n map[item.value] = item.label;\n })\n tpl.type = 'static';\n tpl.tpl = `<% var options = ${JSON.stringify(map)}; return (options && options[data.${field.code}]) || ''%>`\n }else if(field.type === 'odata'){\n tpl.type = 'static';\n tpl.tpl = `<div>\\${${field.code}['@label']}</div>`\n }else if(field.type === 'checkbox'){\n tpl.type = 'static';\n tpl.tpl = `\\${${field.code} ? '是': '否'}`\n }else if(field.type === 'email'){\n tpl.type = 'static'\n tpl.tpl = `<a href=\"mailto:\\${${field.code}}\">\\${${field.code}}</a>`\n }else if(field.type === 'url'){\n tpl.type = 'static'\n tpl.tpl = `<a href=\"\\${${field.code}}\" target=\"_blank\">\\${${field.code}}</a>`\n }else if(field.type === 'password'){\n tpl.type = 'static'\n tpl.tpl = `******`\n }else if(field.type === 'date'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `<%=data.${field.code} ? date(new Date(data.${field.code}), 'YYYY-MM-DD') : '' %>`\n }else if(field.type === 'dateTime'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `<%=data.${field.code} ? date(new Date(data.${field.code}), 'YYYY-MM-DD HH:mm') : '' %>`\n }else if(field.type === 'user'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n if(field.is_multiselect){\n tpl.tpl = `\\${_.map(${field.code}, 'name')}`\n }else{\n tpl.tpl = `\\${${field.code} && ${field.code}.name}`\n }\n }else if(field.type === 'group'){\n tpl.type = 'static'\n // tpl.format = 'YYYY-MM-DD HH:mm'\n tpl.tpl = `\\${${field.code}.name}`\n }else if(field.type === 'table'){\n tpl.type = \"input-table\"; //TODO\n tpl.addable = field.permission === \"editable\";\n tpl.editable = tpl.addable;\n tpl.removable = tpl.addable;\n tpl.copyable = tpl.addable;\n tpl.columns = [];\n for (const sField of field.fields) {\n if (sField.type != \"hidden\") {\n const column = await getTdInputTpl(sField, true);\n tpl.columns.push(column);\n }\n }\n }else if(field.type === 'html'){\n tpl.type = 'tpl';\n }\n else{\n tpl.type = 'static';\n }\n return tpl;\n};\n\n/**\n * TODO 先将申请单上的字段转化为 steedos field 类型, 只读、编辑 使用 steedos field tpl\n * @param {*} field \n * @param {*} label \n * @returns \n */\nconst getTdInputTpl = async (field, label) => {\n const edit = field.permission === \"editable\";\n if(edit){\n return await getFieldEditTpl(field, label)\n }else{\n return await getFieldReadonlyTpl(field, label)\n }\n};\n\nconst getTdField = async (field, fieldsCount) => {\n return {\n background: field.permission !== \"editable\" ? \"#FFFFFF\" : \"rgba(255,255,0,.1)\",\n colspan: field.type === \"table\" ? 4 : 3 - (fieldsCount - 1) * 2,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [await getTdInputTpl(field)],\n style: {\n marginTop: \"0\",\n paddingTop: \"0\",\n paddingRight: \"0\",\n paddingBottom: \"0\",\n paddingLeft: \"0\",\n marginRight: \"0\",\n marginBottom: \"0\",\n marginLeft: \"0\",\n borderLeftColor: \"#000000\",\n borderTopColor: \"#000000\",\n borderRightColor: \"#000000\",\n borderBottomColor: \"#000000\",\n },\n // \"id\": \"u:9b001b7ff92d\"\n };\n};\n\nconst getTdTitle = (field) => {\n return {\n className: \"td-title\",\n align: field.type != \"section\" ? \"center\" : \"left\",\n width: field.type != \"section\" ? \"16%\" : \"\",\n colspan: field.type == \"section\" ? 4 : \"\",\n background: \"#FFFFFF\",\n body: [\n {\n type: \"tpl\",\n tpl: `<div>${field.name || field.code} ${field.is_required ? '<span class=\"antd-Form-star\">*</span>' : ''}</div>`,\n },\n ],\n // \"id\": \"u:9b001b7ff92d\",\n style: {\n borderLeftColor: \"#000000\",\n borderTopColor: \"#000000\",\n borderRightColor: \"#000000\",\n borderBottomColor: \"#000000\",\n },\n };\n};\n\nconst getTds = async (tdFields) => {\n const tds = [];\n for (const field of tdFields) {\n if (field.type != \"table\") {\n tds.push(getTdTitle(field));\n }\n if (field.type != \"section\") {\n tds.push(await getTdField(field, tdFields.length));\n }\n }\n return tds;\n};\n\nconst getFormTrs = async (instance) => {\n const trsSchema = [];\n const trs = [];\n let tdFields = [];\n let fields = [];\n each(instance.fields, (field) => {\n fields.push(field);\n if (field.type === \"section\" && field.fields) {\n fields = fields.concat(field.fields);\n }\n });\n each(fields, (field, index) => {\n if (field.is_wide) {\n if (tdFields.length != 0) {\n trs.push(tdFields);\n }\n if (field.type == \"table\") {\n trs.push([Object.assign({}, field, { type: \"section\" })]);\n }\n tdFields = [];\n tdFields.push(field);\n trs.push(tdFields);\n tdFields = [];\n } else {\n tdFields.push(field);\n if (tdFields.length == 2 || index === fields.length - 1) {\n trs.push(tdFields);\n tdFields = [];\n }\n }\n });\n for (const tdFields of trs) {\n trsSchema.push({\n background: \"#F7F7F7\",\n tds: await getTds(tdFields),\n });\n }\n return trsSchema;\n};\n\nconst getFormTableView = async (instance) => {\n const formSchema = {\n type: \"table-view\",\n className: \"instance-form-view\",\n trs: await getFormTrs(instance),\n id: \"u:047f3669468b\",\n };\n return formSchema;\n};\n\nconst getApplicantTableView = async (instance) => {\n let applicantInput = null;\n if(instance.state === 'draft'){\n applicantInput = Object.assign({name: \"applicant\", value: getSteedosAuth().userId, disabled: instance.box !== 'draft'}, await lookupToAmis(\n {\n name: \"applicant\",\n label: false,\n reference_to: \"space_users\",\n reference_to_field: 'user',\n multiple: false\n },\n false,\n {}\n ));\n }else{\n applicantInput = {\n label: false,\n mode: \"horizontal\",\n className: \"m-none p-none\",\n disabled: true,\n type: \"tpl\",\n tpl: '<div>${applicant_name}</div>',\n id: \"u:2016b04355f4\",\n }\n }\n\n return {\n type: \"table-view\",\n className: \"instance-applicant-view\",\n trs: [\n {\n background: \"#FFFFFF\",\n tds: [\n {\n className: \"td-title\",\n background: \"#FFFFFF\",\n align: \"left\",\n width: \"16%\",\n colspan: \"\",\n body: [\n {\n type: \"tpl\",\n tpl: \"<div>提交人</div>\",\n id: \"u:ee62634201bf\",\n },\n ],\n id: \"u:6c24c1bb99c9\",\n style: {\n padding: \"none\",\n },\n },\n {\n background: \"#FFFFFF\",\n colspan: 1,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [\n applicantInput\n ],\n id: \"u:45d65d91905c\",\n },\n {\n className: \"td-title\",\n background: \"#FFFFFF\",\n align: \"left\",\n width: \"16%\",\n colspan: \"\",\n body: [\n {\n type: \"tpl\",\n tpl: \"<div>提交日期</div>\",\n id: \"u:6d0a7763d527\",\n },\n ],\n id: \"u:c8b8214ac931\",\n style: {\n padding: \"none\",\n },\n },\n {\n background: \"#FFFFFF\",\n colspan: 1,\n align: \"left\",\n className: \"td-field\",\n width: \"32%\",\n body: [\n {\n label: false,\n mode: \"horizontal\",\n className: \"m-none p-none\",\n disabled: true,\n type: \"tpl\",\n inputFormat: \"YYYY-MM-DD\",\n valueFormat: \"YYYY-MM-DDT00:00:00.000[Z]\",\n tpl: '<div>${submit_date}</div>',\n id: \"u:2016b04355f4\",\n },\n ],\n id: \"u:81b07d82a5e4\",\n },\n ],\n },\n ],\n id: \"u:047f3669468b\",\n style: {\n borderLeftStyle: \"none\",\n borderTopStyle: \"none\",\n borderRightStyle: \"none\",\n borderBottomStyle: \"none\",\n },\n };\n};\n\nconst getApproveButton = async (instance)=>{\n if(!instance.approve || ( instance.box != 'inbox' && instance.box != 'draft')){\n return null;\n }\n return {\n type: \"button\",\n label: \"签批\",\n onEvent: {\n click: {\n actions: [\n {\n componentId: \"\",\n args: {},\n actionType: \"drawer\",\n drawer: await getApprovalDrawerSchema(instance),\n },\n ],\n },\n },\n id: \"steedos-approve-button\",\n level: \"primary\",\n className:\n \"approve-button w-14 h-14 rounded-full fixed bottom-4 right-4 shadow-lg text-white text-base text-center font-semibold bg-blue-500 p-0\",\n }\n}\n\nexport const getFlowFormSchema = async (instance, box) => {\n return {\n type: \"page\",\n name: \"instancePage\",\n className: \"steedos-amis-instance-view\",\n bodyClassName: \"overflow-y-auto h-full\",\n \"title\": {\n \"type\": \"steedos-record-detail-header\",\n \"label\": \"标题面板\",\n \"objectApiName\": \"instances\",\n \"recordId\": instance._id,\n \"id\": \"u:e6b2adbe0e21\",\n \"showRecordTitle\": false,\n \"className\": \"p-0 m-0 p0 m0\"\n },\n \"css\": {\n \".instance-approve-history .antd-Table-table thead\": {\n \"display\": \"none\"\n },\n \".instance-approve-history .antd-Table-heading\": {\n \"font-size\": \"14px\",\n \"font-weight\": \"500\",\n \"padding-left\": \"0px\"\n },\n \".antd-List-heading\": {\n \"font-size\": \"14px\",\n \"font-weight\": \"500\"\n }\n },\n body: [\n await getAttachments(instance),\n await getRelatedInstances(instance),\n await getRelatedRecords(instance),\n {\n type: \"form\",\n debug: false,\n wrapWithPanel: false,\n resetAfterSubmit: true,\n body: [\n {\n type: \"tpl\",\n id: \"u:f5bb0ad602a6\",\n tpl: `<div class=\"instance-name\">${instance.title}</div>`,\n inline: true,\n wrapperComponent: \"\",\n style: {\n fontFamily: \"\",\n fontSize: 12,\n textAlign: \"center\",\n },\n },\n await getFormTableView(instance),\n await getApplicantTableView(instance),\n \n ],\n id: \"instance_form\",\n onEvent: {\n validateError: {\n weight: 0,\n actions: [\n {\n \"componentId\": \"\",\n \"args\": {\n \"msgType\": \"info\",\n \"position\": \"top-right\",\n \"closeButton\": true,\n \"showIcon\": true,\n \"title\": \"提交失败\",\n \"msg\": \"请填写必填字段\"\n },\n \"actionType\": \"toast\"\n }\n ],\n }\n }\n },\n await getInstanceApprovalHistory(),\n await getApproveButton(instance)\n ],\n id: \"u:63849ea39e12\",\n messages: {},\n pullRefresh: {},\n regions: [\n \"body\",\n \"header\"\n ],\n onEvent: {\n \"@data.@instanceDetail.changed\": {\n actions: [\n {\n actionType: \"reload\"\n }\n ]\n }\n // inited: {\n // weight: 0,\n // actions: [\n // // {\n // // componentId: \"steedos-approve-button\",\n // // actionType: \"click\",\n // // },\n // // {\n // // \"componentId\": \"\",\n // // \"args\": {},\n // // \"actionType\": \"drawer\",\n // // \"drawer\": await getApprovalDrawerSchema()\n // // }\n // ],\n // }\n },\n initApi:{\n \"url\": \"${context.rootUrl}/graphql\",\n \"method\": \"post\",\n \"headers\": {\n \"Authorization\": \"Bearer ${context.tenantId},${context.authToken}\"\n },\n \"messages\": {\n },\n \"requestAdaptor\": `\n const { context } = api.data;\n api.data = {\n query: \\`\n {\n instance: instances__findOne(id:\"${instance._id}\"){\n related_instances: related_instances__expand{\n _id,\n name\n }\n }\n }\n \\`\n }\n return api;\n `,\n \"adaptor\": `\n payload.data = {\n related_instances: payload.data.instance.related_instances\n };\n return payload;\n `,\n \"data\": {\n // \"&\": \"$$\",\n \"context\": \"${context}\",\n \"judge\": \"${new_judge}\",\n }\n },\n initFetch: true\n };\n};\n","/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-10-08 16:26:26\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2022-10-08 16:28:42\n * @Description: \n */\n\nconst isOpinionField = (field_formula)=>{\n return (field_formula?.indexOf(\"{traces.\") > -1 || field_formula?.indexOf(\"{signature.traces.\") > -1 || field_formula?.indexOf(\"{yijianlan:\") > -1 || field_formula?.indexOf(\"{\\\"yijianlan\\\":\") > -1 || field_formula?.indexOf(\"{'yijianlan':\") > -1)\n}\n\nexport const getOpinionFieldStepsName = (field, top_keywords) => {\n const field_formula = field.formula;\n var foo1, opinionFields;\n opinionFields = new Array();\n if (isOpinionField(field_formula)) {\n if (field_formula) {\n foo1 = field_formula.split(\";\");\n foo1.forEach(function(foo) {\n var json_formula, s1, sf, _ref, _ref1;\n json_formula = {};\n try {\n json_formula = eval(\"(\" + foo + \")\");\n } catch (_error) {\n json_formula = {};\n }\n if (json_formula != null ? json_formula.yijianlan : void 0) {\n sf = {};\n sf.stepName = json_formula.yijianlan.step;\n sf.image_sign = json_formula.yijianlan.image_sign || false;\n sf.only_cc_opinion = json_formula.yijianlan.only_cc || false;\n sf.default_description = json_formula.yijianlan[\"default\"];\n sf.only_handler = json_formula.yijianlan.only_handler;\n sf.top_keywords = json_formula.yijianlan.top_keywords || top_keywords;\n return opinionFields.push(sf);\n } else if ((field_formula != null ? field_formula.indexOf(\"{traces.\") : void 0) > -1 || (field_formula != null ? field_formula.indexOf(\"{signature.traces.\") : void 0) > -1) {\n sf = {\n only_cc_opinion: false,\n image_sign: false,\n top_keywords: top_keywords\n };\n if (foo.indexOf(\"{signature.\") > -1) {\n sf.image_sign = true;\n foo = foo.replace(\"{signature.\", \"\");\n }\n s1 = foo.replace(\"{\", \"\").replace(\"}\", \"\");\n if (s1.split(\".\").length > 1) {\n sf.stepName = s1.split(\".\")[1];\n if (opinionFields.filterProperty(\"stepName\", sf.stepName).length > 0) {\n if ((_ref = opinionFields.findPropertyByPK(\"stepName\", sf.stepName)) != null) {\n _ref.only_cc_opinion = true;\n }\n } else {\n if (s1.split(\".\").length > 2) {\n if (((_ref1 = s1.split(\".\")[2]) != null ? _ref1.toLocaleLowerCase() : void 0) === 'cc') {\n sf.only_cc_opinion = true;\n }\n }\n }\n }\n return opinionFields.push(sf);\n }\n });\n }\n }\n return opinionFields;\n}\n","import { fetchAPI, getSteedosAuth } from \"@steedos-widgets/amis-lib\";\nimport _, { find, isEmpty } from \"lodash\";\nimport { getOpinionFieldStepsName } from './util';\n/*\n * @Author: baozhoutao@steedos.com\n * @Date: 2022-09-09 17:47:37\n * @LastEditors: baozhoutao@steedos.com\n * @LastEditTime: 2023-10-10 13:57:02\n * @Description:\n */\n\nconst getMoment = ()=>{\n if(window.amisRequire){\n return window.amisRequire(\"moment\");\n }else if(window.moment){\n return window.moment;\n }\n}\n\nconst getTrace = ({ instance, traceId }) => {\n return find(instance.traces, (trace) => {\n return trace._id === traceId;\n });\n};\n\nconst getUserApprove = ({ instance, userId }) => {\n const currentTrace = find(instance.traces, (trace) => {\n return trace.is_finished != true;\n });\n let currentApprove = null;\n if (currentTrace) {\n currentApprove = find(currentTrace.approves, (approve) => {\n return approve.is_finished != true && approve.handler == userId;\n });\n }\n\n //传阅的approve返回最新一条\n if (!currentApprove || currentApprove.type == \"cc\") {\n // 当前是传阅\n _.each(instance.traces, function (t) {\n _.each(t.approves, function (a) {\n if (a.type == \"cc\" && a.handler == userId && a.is_finished == false) {\n currentApprove = a;\n }\n });\n });\n }\n\n if (!currentApprove) return;\n\n if (currentApprove._id) {\n currentApprove.id = currentApprove._id;\n }\n return currentApprove;\n};\n\nconst getApproveValues = ({ instance, trace, step, approve, box }) => {\n let instanceValues = null;\n if (!approve || approve.type === \"cc\") {\n instanceValues = instance.values;\n } else {\n if (box === \"draft\") {\n instanceValues = approve.values;\n } else if (box === \"inbox\") {\n if (\n step.step_type == \"counterSign\" ||\n (step.cc_has_edit_permission && !trace.is_finished)\n ) {\n //TODO\n instanceValues = instance.values;\n } else {\n if (isEmpty(approve.values)) {\n instanceValues = instance.values;\n } else {\n instanceValues = approve.values;\n }\n }\n } else if (\n box === \"outbox\" ||\n box === \"pending\" ||\n box == \"completed\" ||\n box == \"monitor\"\n ) {\n instanceValues = instance.values;\n } else {\n instanceValues = instance.values;\n }\n }\n return instanceValues;\n};\n\nconst getFlowVersion = (instance) => {\n if (instance.flow.current._id === instance.flow_version) {\n return instance.flow.current;\n } else {\n return find(instance.flow.historys, (history) => {\n return history._id === instance.flow_version;\n });\n }\n};\n\nconst getFormVersion = (instance) => {\n if (instance.form.current._id === instance.form_version) {\n return instance.form.current;\n } else {\n return find(instance.form.historys, (history) => {\n return history._id === instance.form_version;\n });\n }\n};\n\nconst getStep = ({ flowVersion, stepId }) => {\n return find(flowVersion.steps, (step) => {\n return step._id === stepId;\n });\n};\n\nconst getLastCCStep = ({ traces }, userId) => {\n var i, step_id, trace_id, user_id;\n\n user_id = userId;\n\n trace_id = null;\n\n step_id = null;\n\n i = traces.length - 1;\n\n while (i >= 0) {\n if (!trace_id && traces[i].is_finished) {\n _.each(traces[i].approves, function (ap) {\n if (!trace_id) {\n if (\n ap.is_finished &&\n ap.user === user_id &&\n (!ap.type || ap.type == \"cc\") &&\n [\"approved\", \"submitted\", \"rejected\"].includes(ap.judge)\n ) {\n trace_id = ap.trace;\n }\n if (trace_id) {\n step_id = traces[i].step;\n }\n }\n });\n }\n i--;\n }\n\n return step_id;\n};\n\nconst isCurrentStepOpinionField = (field, currentStep)=>{\n return _.includes(_.map(getOpinionFieldStepsName(field), 'stepName'), currentStep?.name);\n}\n\nexport const getInstanceInfo = async ({ instanceId, box }) => {\n const userId = getSteedosAuth().userId;\n const query = `{\n instance: instances__findOne(id:\"${instanceId}\"){\n _id,\n space,\n name,\n state,\n values,\n applicant,\n cc_users,\n applicant_name,\n submitter,\n submit_date,\n record_ids,\n forward_from_instance,\n related_instances: related_instances__expand{\n _id,\n name\n },\n traces,\n form_version,\n form:form__expand{\n _id,\n name\n current,\n historys\n },\n flow_version,\n flow:flow__expand{\n _id,\n name,\n perms,\n current,\n historys\n }\n }\n }\n `;\n\n const result = await fetchAPI(\"/graphql\", {\n method: \"post\",\n body: JSON.stringify({\n query: query,\n }),\n });\n \n\n let userApprove = null;\n let trace = null;\n let step = null;\n const instance = result.data.instance;\n if (!instance) {\n return undefined;\n }\n if (box === \"inbox\" || box === \"draft\") {\n userApprove = getUserApprove({ instance, userId });\n }\n const flowVersion = getFlowVersion(instance);\n const formVersion = getFormVersion(instance);\n\n if (userApprove) {\n trace = getTrace({ instance, traceId: userApprove.trace });\n step = getStep({ flowVersion, stepId: trace.step });\n }\n\n let currentStep = getStep({ flowVersion, stepId: _.last(instance.traces).step });\n\n const lastCCStep = getLastCCStep(instance, userId);\n\n const values = getApproveValues({\n instance,\n trace,\n step,\n approve: userApprove,\n box,\n });\n\n const flowPermissions = await fetchAPI(`/api/workflow/v2/flow_permissions/${instance.flow._id}`, {\n method: \"get\",\n });\n\n const moment = getMoment();\n\n return {\n box: box,\n _id: instanceId,\n space: instance.space,\n flow: instance.flow,\n form: instance.form,\n applicant: instance.applicant,\n applicant_name: instance.applicant_name,\n submitter: instance.submitter,\n submit_date: instance.submit_date\n ? (moment && moment(instance.submit_date).format(\"YYYY-MM-DD\"))\n : \"\",\n state: instance.state,\n approveValues: values,\n title: instance.name || instance.form.name,\n name: instance.name || instance.form.name,\n fields: _.map(formVersion.fields, (field) => {\n return Object.assign({}, field, {\n permission: userApprove?.type != 'cc' && (step?.permissions[field.code] || ( isCurrentStepOpinionField(field, step) ? 'editable' : '')),\n }) ;\n }),\n flowVersion: flowVersion,\n formVersion: formVersion,\n step: step,\n lastCCStep: lastCCStep,\n trace: trace,\n currentStep,\n flowPermissions: flowPermissions?.permissions || [],\n approve: userApprove,\n record_ids: instance.record_ids,\n related_instances: instance.related_instances,\n forward_from_instance: instance.forward_from_instance,\n cc_users: instance.cc_users,\n traces: instance.traces,\n historyApproves: _.map(instance.traces, (trace) => {\n return Object.assign(\n {\n children: _.map(trace.approves, (approve) => {\n let finishDate = approve.finish_date;\n let judge = approve.judge;\n let userName = approve.user_name;\n let opinion = approve.description;\n if(approve.type === 'cc'){\n userName = `${userName} (传阅)`\n opinion = approve.cc_description;\n }\n if (!finishDate) {\n finishDate = approve.is_read ? \"已读\" : \"未处理\";\n judge = null;\n } else {\n finishDate = moment && moment(finishDate).format(\"YYYY-MM-DD HH:mm\");\n }\n\n switch (judge) {\n case \"submitted\":\n judge = \"\";\n break;\n case \"returned\":\n judge = \"已退回\";\n break;\n case \"terminated\":\n judge = \"被取回\";\n break;\n case \"pending\":\n judge = \"审核中\";\n break;\n case \"approved\":\n judge = \"已核准\";\n break;\n case \"rejected\":\n judge = \"已驳回\";\n break;\n case \"finished\":\n judge = \"已完成\";\n break;\n case \"reassigned\":\n judge = \"转签核\";\n break;\n case \"inhand\":\n judge = \"处理中\";\n break;\n case \"relocated\":\n judge = \"重定位\";\n break;\n case \"readed\":\n judge = \"已阅\";\n break;\n default:\n break;\n }\n return {\n name: \"\",\n user_name: userName,\n finish_date: finishDate,\n judge: judge,\n opinion: opinion,\n };\n }),\n },\n { name: trace.name, judge: \"\" }\n );\n }),\n };\n};\n"],"names":["_","getFindOneQuery","getApi","i18n","Tpl.getFieldTpl","getDefaultParams","getListSchema","getSource","graphql.getFindQuery","graphql.getApi","getDeferApi","getRefListViewSort","Field.getAmisStaticFieldType","Tpl.getLookupTpl","getMoment","getSchema","standardNew.getSchema","standardEdit.getSchema","standardDelete.getSchema","standardImportData.getSchema","standardOpenView.getSchema","standardExportExcel.getSchema","getGlobalData","getButtonVisibleOn","getObjectListHeader","fieldsExtend","fields","initApiAdaptor","apiRequestAdaptor","Router","Fields.isFieldQuickSearchable","Field.isFieldQuickSearchable","Table.getTableSchema","Tpl.getRelatedFieldTpl","List.getListSchema","getAmisFieldType","Tpl.getCreatedInfoTpl","Tpl.getModifiedInfoTpl","Tpl.getSelectMap","Tpl.getSwitchTpl","Tpl.getDateTpl","Tpl.getDateTimeTpl","Tpl.getNumberTpl","Tpl.getUiFieldTpl","Tpl.getPasswordTpl","Tpl.getLocationTpl","File.getAmisFileSchema","Fields.getGridFieldSubFields","Fields.getObjectFieldSubFields","Fields.convertSFieldToAmisField","graphql.getFindOneQuery","graphql.getSaveQuery","graphql.getSaveRequestAdaptor","lodash","getFormFields","defaultsDeep","isObject","getTableSchema","Tpl.getNameTplUrl","graphql.getRecordPermissionsQuery","getSteedosAuth","isOpinionField","lookupToAmis","fetchAPI"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,OAAO,EAAE;AACf,QAAQ,aAAa,EAAE,iDAAiD;AACxE,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC;AACD;AACO,eAAe,8BAA8B,CAAC,YAAY,EAAE,GAAG,EAAE;AACxE,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,yBAAyB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACvE,EAAE,MAAM,gBAAgB,GAAG,MAAM,+BAA+B,CAAC,GAAG,CAAC,CAAC;AACtE,EAAE,MAAM,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,IAAI,YAAY,CAAC;AAC1E,EAAE,MAAM,cAAc,GAAG,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE,qBAAqB,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN,EAAE,MAAM,kBAAkB,GAAG,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,8BAA8B,GAAG,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,MAAM,EAAE,8BAA8B;AAC1C,IAAI,MAAM,EAAE;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,cAAc,EAAE;AACpB,MAAM,QAAQ,EAAE,kBAAkB;AAClC,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,MAAM,EAAE,SAAS;AACvB,MAAM,MAAM,EAAE;AACd,QAAQ,MAAM,EAAE,SAAS;AACzB,QAAQ,MAAM,EAAE,CAAC,gBAAgB,EAAE;A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;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,IAAI,CAAC;AACxC,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,6BAA6B,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE,WAAW,EAAE,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,KAAK,MAAM,CAAC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,EAAE,qBAAqB,CAAC;AACjG;AACA;AACA;AACA;AACA,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA,6BAA6B,EAAE,GAAG,CAAC,YAAY,CAAC;AAChD,gCAAgC,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,gBAAgB,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,eAAe,CAAC,WAAW,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAC;AACL,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;AACtB,wBAAwB,EAAE,eAAe,CAAC,WAAW,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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IAAI,CAAC;AAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,UAAS;AAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;AAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;AACtC,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE,OAAO,CAAC,UAAU,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,WAAW,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAC1G;AACA,gCAAgC,EAAE,eAAe,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,IAAI,IAAI,EAAE,CAAC;AAC9C,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AACnE;AACA;AACA;AACA,6BAA6B,EAAE,UAAU,CAAC,IAAI,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAACA,GAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,IAAI,EAAC;AACL,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,UAAU,CAAC,WAAW,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAClD,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,OAAO,CAAC,UAAU,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE,oBAAoB,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5B;AACA,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACO,eAAe,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/D,IAAI,MAAM,IAAI,GAAG,MAAMQ,YAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/E,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAEC,QAAc,EAAE;AAC7B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,OAAO,EAAE;AACjB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACO,SAAS,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAClE,IAAI,MAAM,IAAI,GAAGkD,yBAAiC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9E,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAElD,QAAc,EAAE;AAC7B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,OAAO,EAAE;AACjB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,SAAS;AACT,KAAK;AACL;;ACx3CA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE;AAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;AACpD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,eAAe;AACnC,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS;AACT,KAAK,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB,CAAC,KAAK,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE;AAC5D,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,WAAW,EAAE;AACrB,YAAY,SAAS,EAAE,KAAK;AAC5B,SAAS;AACT,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE;AACvC,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;AAC1C,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,UAAU;AACpD,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,EAAE,UAAU;AACnD,gCAAgC,OAAO,EAAE;AACzC,oCAAoC,GAAG,EAAE,IAAI;AAC7C,iCAAiC;AACjC,6BAA6B;AAC7B,4BAA4B,aAAa,EAAE,KAAK,CAAC,EAAE;AACnD,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE;AAC7B,QAAQ,IAAI,qBAAqB,GAAG,CAAC;AACrC,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC;AACrC;AACA,gCAAgC,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3C;AACA;AACA,yCAAyC,EAAE,KAAK,CAAC,IAAI,CAAC;AACtD;AACA;AACA,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,QAAQ,EAAE,CAAC;AAC/B,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,QAAQ;AAClD,4BAA4B,QAAQ,EAAE,qBAAqB;AAC3D,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,MAAM,EAAE,YAAY;AAC5B,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,QAAQ;AAC9C,wBAAwB,QAAQ,EAAE;AAClC,4BAA4B,MAAM,EAAE,QAAQ;AAC5C,4BAA4B,OAAO,EAAE,MAAM;AAC3C,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACrD,6BAA6B;AAC7B,4BAA4B,iBAAiB,EAAE,IAAI;AACnD,4BAA4B,cAAc,EAAE,IAAI;AAChD,4BAA4B,aAAa,EAAE,IAAI;AAC/C,4BAA4B,WAAW,EAAE,aAAa;AACtD,4BAA4B,YAAY,EAAE,KAAK;AAC/C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS;AAC1B,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,QAAQ;AAC9C,wBAAwB,QAAQ,EAAE;AAClC,4BAA4B,MAAM,EAAE,QAAQ;AAC5C,4BAA4B,OAAO,EAAE,MAAM;AAC3C,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AACtD,6BAA6B;AAC7B,4BAA4B,iBAAiB,EAAE,IAAI;AACnD,4BAA4B,cAAc,EAAE,IAAI;AAChD,4BAA4B,aAAa,EAAE,IAAI;AAC/C,4BAA4B,WAAW,EAAE,aAAa;AACtD,4BAA4B,YAAY,EAAE,KAAK;AAC/C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS,EAAE;AACnB,YAAY,OAAO,EAAE;AACrB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,YAAY,EAAE,YAAY;AAClD,wBAAwB,MAAM,EAAE;AAChC,4BAA4B,OAAO,EAAE,cAAc;AACnD,yBAAyB;AACzB,wBAAwB,aAAa,EAAE,KAAK,CAAC,EAAE;AAC/C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACY,MAAC,uBAAuB,GAAG,OAAO,KAAK,EAAE,QAAQ,KAAK;AAClE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;AACnB,QAAQ,KAAK,CAAC,EAAE,GAAG,sBAAsB,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,IAAI,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,IAAI,IAAI,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,IAAI,0BAA0B,GAAG,EAAE,CAAC;AACxC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,EAAC;AACzD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;AACzB,QAAQ,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,EAAC;AAC3D,KAAK;AACL,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5B,QAAQ,MAAM,EAAE,KAAK,CAAC,IAAI;AAC1B;AACA;AACA;AACA;AACA,QAAQ,WAAW,EAAE,KAAK,CAAC,SAAS;AACpC,QAAQ,WAAW,EAAE,KAAK,CAAC,SAAS;AACpC,QAAQ,SAAS,EAAE,KAAK,CAAC,OAAO;AAChC,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAE;AACtB,QAAQ,SAAS,EAAE,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACpD;AACA,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,iBAAiB,EAAE,KAAK;AAChC,QAAQ,kBAAkB,EAAE,KAAK;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,0BAA0B,CAAC,MAAM,EAAE;AAC3C,QAAQ,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,SAAS,EAAE,0BAA0B;AACjD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,EAAE,SAAS;AACzB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE;AAChB,YAAY,gBAAgB;AAC5B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACvB,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;ACvPA;AACA;AACA,SAAS,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE;AAC3D,IAAI,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACjF,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT,QAAQ,IAAI,CAAC;AACb,YAAY,MAAM,CAAC,UAAU;AAC7B,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,EAAE,CAAC;AACf,YAAY,MAAM,EAAE,yBAAyB;AAC7C,YAAY,eAAe,EAAE,aAAa;AAC1C;AACA;AACA,YAAY,kBAAkB,EAAE,KAAK;AACrC,YAAY,YAAY,EAAE,IAAI;AAC9B;AACA,YAAY,SAAS,EAAE,4DAA4D;AACnF,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,uBAAuB,CAAC,aAAa,CAAC;AAM5D,IAAI,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,aAA6B,CAAC,CAAC;AAClF,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,GAAG;AACf;AACA,QAAQ;AACR,YAAY,MAAM,EAAE,8BAA8B;AAClD,YAAY,OAAO,EAAE,MAAM;AAC3B,YAAY,eAAe,EAAE,eAAe;AAC5C,YAAY,UAAU,EAAE,aAAa;AACrC,YAAY,SAAS,EAAE;AACvB,gBAAgB,cAAc,EAAE;AAChC,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,UAAU;AACpD,4BAA4B,MAAM,EAAE;AACpC,8BAA8B,OAAO,EAAE;AACvC,gCAAgC,cAAc,EAAE,IAAI;AACpD,+BAA+B;AAC/B,6BAA6B;AAC7B,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,YAAY,EAAE,QAAQ;AAClD,4BAA4B,MAAM,EAAE;AACpC,gCAAgC,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;AAC1F,gCAAgC,QAAQ,EAAE,CAAC,UAAU,CAAC;AACtD,gCAAgC,cAAc,EAAE,IAAI;AACpD,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE;AAChB,YAAY;AACZ,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE;AACxB;AACA,oBAAoB;AACpB,wBAAwB,MAAM,EAAE,qBAAqB;AACrD,wBAAwB,OAAO,EAAE,MAAM;AACvC,wBAAwB,MAAM,EAAE,MAAM;AACtC,wBAAwB,eAAe,EAAE,eAAe;AACxD,wBAAwB,UAAU,EAAE,aAAa;AACjD,wBAAwB,YAAY,EAAE,MAAM;AAC5C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,WAAW,EAAE,iFAAiF;AACtG,QAAQ,gBAAgB,EAAE,WAAW;AACrC,KAAK,CAAC;AACN,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;AAC1B,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,MAAM,EAAE;AACpB,cAAc,MAAM,EAAE,8BAA8B;AACpD,cAAc,OAAO,EAAE,OAAO;AAC9B,cAAc,eAAe,EAAE,eAAe;AAC9C,cAAc,UAAU,EAAE,aAAa;AACvC,aAAa;AACb,SAAS,EAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC;AACjD,QAAQ,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC;AACvD,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM;AAClB,SAAS;AACT,QAAQ,IAAI;AACZ,KAAK;AACL,CAAC;AACD;AACA;AACO,eAAe,qBAAqB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE;AAC9E,IAAI,GAAG,CAAC,GAAG,CAAC;AACZ,QAAQ,GAAG,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,MAAM,QAAQ,IAAI,IAAI;AAC1B,QAAQ,QAAQ,CAAC,UAAU;AAC3B,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK;AAC5B,YAAY,OAAO,IAAI,KAAK,YAAY,CAAC;AACzC,SAAS;AACT,KAAK,CAAC;AACN;AACA,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC;AACxB;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7E,QAAQ,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC5C,QAAQ,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAClC;AACA,YAAY,MAAM,YAAY,GAAG,MAAMe,qBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE;AACnF,gBAAgB,cAAc,EAAE,IAAI;AACpC,gBAAgB,cAAc,EAAE,IAAI;AACpC,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;AACjD,SAAS;AACT,QAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,QAAQ,IAAI,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,GAAG,CAAC,oBAAoB,CAAC;AACjC,UAAU,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAMiC,gBAAc,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE;AAClF,YAAY,IAAI;AAChB,YAAY,GAAG,GAAG;AAClB,YAAY,oBAAoB;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC;AACA,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACjD,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,KAAK;AACL;AACA,IAAI,OAAO,UAAU,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,eAAe,OAAO,EAAE;AAC/B,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC/C,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1C,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACO,eAAe,MAAM,CAAC,OAAO,CAAC;AACrC,IAAI,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,CAAC;AACf;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACY,MAAC,gBAAgB,GAAG,YAAY;AAC5C,IAAI,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB;AACA,6CAA6C,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3D;AACA;AACA,kEAAkE,EAAE,IAAI,CAAC,MAAM,CAAC;AAChF;AACA,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE;AAC9C,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;AACvC,KAAK,EAAC;AACN;AACA,IAAI,OAAO,MAAM,CAAC,IAAI;AACtB,EAAC;AACD;AACY,MAAC,WAAW,GAAG,UAAU;AACrC,IAAI,OAAO,MAAM,QAAQ,CAAC,uCAAuC,EAAE;AACnE,QAAQ,MAAM,EAAE,MAAM;AACtB,KAAK,CAAC,CAAC;AACP;;AC7BA,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB;AACY,MAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG;AAC9B,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,EAAC;AACD;AACY,MAAC,MAAM,GAAG,CAAC,CAAC,IAAI;AAC5B,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,EAAC;AACD;AACY,MAAC,OAAO,GAAG,CAAC,IAAI,IAAI;AAChC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG;AACtB,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK,CAAC,CAAC;AACP,EAAC;AACD;AACY,MAAC,OAAO,GAAG,KAAK;AAC5B,IAAI,OAAO,UAAU,CAAC;AACtB;;AClBO,eAAe,6BAA6B,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;AACpF,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,IAAI,EAAE,OAAO,CAAC,EAAE;AACxB,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,QAAQ,EAAE;AAClB,YAAY,QAAQ,EAAE,MAAM;AAC5B,YAAY,KAAK,EAAE,4BAA4B;AAC/C,YAAY,MAAM,EAAE;AACpB,gBAAgB,SAAS,EAAE,YAAY;AACvC,gBAAgB,UAAU,EAAE,aAAa;AACzC,gBAAgB,QAAQ,EAAE,SAAS;AACnC,gBAAgB,UAAU,EAAE,YAAY;AACxC,gBAAgB,OAAO,EAAE,iKAAiK;AAC1L,gBAAgB,OAAO,EAAE,OAAO;AAChC,gBAAgB,OAAO,EAAE,IAAI;AAC7B,aAAa;AACb,YAAY,gBAAgB,EAAE,goCAAgoC;AAC9pC,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,MAAM,EAAE,SAAS;AAC7B,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,eAAe,EAAE;AAC7B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,aAAa;AACb,YAAY,eAAe,EAAE;AAC7B,gBAAgB,SAAS,EAAE,EAAE;AAC7B,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,QAAQ;AACpC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,aAAa,EAAE,EAAE;AACrC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,KAAK;AACjC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,SAAS,EAAE,KAAK;AACpC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,YAAY,EAAE,IAAI;AACtC,oBAAoB,MAAM,EAAE,MAAM;AAClC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,YAAY,EAAE,IAAI;AACtC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,QAAQ;AACpC,oBAAoB,OAAO,EAAE,IAAI;AACjC,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,YAAY,EAAE,IAAI;AACtC,iBAAiB;AACjB,aAAa;AACb,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,+BAA+B,EAAE,IAAI;AACjD,SAAS;AACT,QAAQ,YAAY,EAAE,MAAM;AAC5B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,cAAc,EAAE,IAAI;AAC5B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,gBAAgB,EAAE,WAAW;AACrC,KAAK;AACL,CAAC;AACD;AACO,eAAe,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/D,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACtD,IAAI,MAAM,UAAU,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACpF,IAAI,OAAO;AACX,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA,MAAM,4BAA4B,GAAG;AACrC,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,GAAG;AACf,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,gBAAgB,EAAE,IAAI;AACxB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,YAAY,EAAE,cAAc;AAC9B,EAAE,aAAa,EAAE,GAAG;AACpB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,aAAa,EAAE,IAAI;AACrB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,WAAW,EAAE,YAAY;AAC3B,EAAE,SAAS,EAAE,UAAU;AACvB,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,CAAC,IAAI,KAAK;AAC1B,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACpC,CAAC,CAAC;AACF;AACA,MAAM,uBAAuB,GAAG,CAAC,KAAK,KAAK;AAC3C,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC1C,EAAE,IAAI,WAAW,IAAI,QAAQ,EAAE;AAC/B,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/B,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACrD,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,sBAAsB,GAAG,CAAC,IAAI,KAAK;AACzC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACnC,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACrC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AACrC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,OAAO,MAAM;AACb,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,UAAU,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,MAAM,qBAAqB,GAAG,CAAC,MAAM,KAAK;AAC1C,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,EAAE,GAAGJ,UAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACjD,MAAM,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,IAAI;AACJ,MAAM,EAAE,KAAK,SAAS;AACtB,MAAMA,UAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM;AACN,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE;AACd,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,OAAO,CAAC;AACR,KAAK,MAAM;AACX,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE;AACd,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,EAAE,EAAE,EAAE;AACd,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACxB,OAAO,CAAC;AACR,KAAK;AACL,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,mBAAmB,GAAG,CAAC,MAAM,KAAK;AACxC,EAAE,IAAI,CAACA,UAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAIA,UAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA,MAAM,uBAAuB,GAAG,CAAC,OAAO,KAAK;AAC7C,EAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACzC;AACA,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,QAAQ,EAAE,EAAE;AAChB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC9B,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE;AAC7C,MAAM,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;AACtC,KAAK,MAAM;AACX,MAAM;AACN,QAAQ,MAAM,CAAC,MAAM,KAAK,CAAC;AAC3B,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAQ;AACR,QAAQ,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACY,MAAC,mBAAmB,GAAG,CAAC,UAAU,KAAK;AACnD,EAAE,OAAO,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAC7C,EAAE;AACF;AACY,MAAC,mBAAmB,GAAG,CAAC,OAAO,KAAK;AAChD,EAAE,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACY,MAAC,oBAAoB,GAAG,OAAO,SAAS,GAAG;AACvD,IAAI,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,QAAQ,IAAI,cAAc,GAAG,SAAS,CAAC;AACvC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AACpC,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,MAAM,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAC3D,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACvI,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG;AACtC,YAAY,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/G,SAAS,CAAC;AACV,KAAK,KAAI;AACT,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL;;ACrBA;;;;;;AAMG;AACU,IAAA,oBAAoB,GAAG,YAAA;AAChC,IAAA,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO;AACL,QAAA,OAAO,EAAE;YACL,OAAO,EAAE,UAAU,EAAE;YACrB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;AAChC,YAAA,IAAI,EAAE,WAAW;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,QAAQ;AAC7B,YAAA,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,IAAI,IAAI,EAAE;;AAElB,SAAA;KACF,CAAA;AACH;;ACvBF;AACA;AACA,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C;AACA,MAAM,eAAe,GAAG,OAAO,QAAQ,KAAK;AAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AAC5B,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa;AACpC,IAAI,+BAA+B,IAAI,IAAI;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,KAAK,EAAE,QAAQ;AACrB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,OAAO,QAAQ,KAAK;AAC1C,EAAE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;AACvD,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AAChE,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,KAAK,EAAE,UAAU;AACvB,MAAM,OAAO,EAAE,YAAY;AAC3B,MAAM,EAAE,EAAE,gBAAgB;AAC1B,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,SAAS,EAAE;AACjB,QAAQ,QAAQ,EAAE;AAClB,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS,EAAE;AACrB,YAAY;AACZ,cAAc,aAAa,EAAE,mBAAmB;AAChD,cAAc,MAAM,EAAE;AACtB,gBAAgB,OAAO,EAAE;AACzB,kBAAkB,SAAS,EAAE,qBAAqB;AAClD,kBAAkB,SAAS,EAAE,SAAS;AACtC,iBAAiB;AACjB,eAAe;AACf,cAAc,YAAY,EAAE,UAAU;AACtC,aAAa;AACb,YAAY;AACZ;AACA,cAAc,MAAM,EAAE;AACtB,gBAAgB,KAAK,EAAE,qBAAqB;AAC5C,eAAe;AACf,cAAc,YAAY,EAAE,WAAW;AACvC,cAAc,SAAS,EAAE,sBAAsB;AAC/C,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,QAAQ;AACZ,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,EAAE,EAAE,MAAM;AAClB,QAAQ,MAAM,EAAE,QAAQ;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,aAAa;AAC/B,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,EAAE,EAAE,aAAa;AAC7B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,QAAQ,EAAE,IAAI;AAC1B;AACA,YAAY,QAAQ,EAAE;AACtB,cAAc,eAAe,EAAE,SAAS;AACxC,cAAc,YAAY,EAAE,IAAI;AAChC,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,cAAc,KAAK,EAAE,gEAAgE;AACrF,cAAc,SAAS,EAAE;AACzB,gBAAgB,eAAe,EAAE,iDAAiD;AAClF,eAAe;AACf,cAAc,QAAQ,EAAE,MAAM;AAC9B,cAAc,UAAU,EAAE;AAC1B,eAAe;AACf,cAAc,gBAAgB,EAAE,+WAA+W;AAC/Y,cAAc,SAAS,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC;AACf,cAAc,MAAM,EAAE;AACtB;AACA,gBAAgB,SAAS,EAAE,YAAY;AACvC,gBAAgB,UAAU,EAAE,YAAY;AACxC,gBAAgB,OAAO,EAAE,cAAc;AACvC,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,SAAS,EAAE,sBAAsB;AACrC,IAAI,WAAW,EAAE,EAAE;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,QAAQ;AACZ,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,KAAK;AACtB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,EAAE,EAAE,MAAM;AAClB,QAAQ,MAAM,EAAE,QAAQ;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE;AACd;AACA,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE;AAC1B,UAAU;AACV,YAAY,MAAM,EAAE,qBAAqB;AACzC,WAAW;AACX,UAAU;AACV,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,QAAQ,EAAE,mDAAmD;AACzE,YAAY,QAAQ,EAAE,IAAI;AAC1B,WAAW,CAAC;AACZ,UAAU;AACV,YAAY,IAAI,EAAE,qBAAqB;AACvC,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,oDAAoD;AAC1E,YAAY,IAAI,EAAE;AAClB,cAAc,QAAQ,EAAE,gDAAgD;AACxE,cAAc,QAAQ,EAAE;AACxB,gBAAgB,KAAK,EAAE,kDAAkD;AACzE,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,QAAQ,EAAE,+DAA+D;AACzF,gBAAgB,SAAS,EAAE;AAC3B,kBAAkB,eAAe,EAAE,iDAAiD;AACpF,iBAAiB;AACjB,gBAAgB,UAAU,EAAE;AAC5B,iBAAiB;AACjB,gBAAgB,gBAAgB,EAAE,0QAA0Q;AAC5S,gBAAgB,SAAS,EAAE,qJAAqJ;AAChL,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,GAAG,EAAE,IAAI;AAC3B,kBAAkB,UAAU,EAAE,UAAU;AACxC,kBAAkB,SAAS,EAAE,YAAY;AACzC,kBAAkB,WAAW,EAAE,kBAAkB;AACjD,iBAAiB;AACjB,eAAe;AACf,cAAc,YAAY,EAAE,MAAM;AAClC,cAAc,YAAY,EAAE,IAAI;AAChC,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,SAAS,EAAE,iDAAiD;AAChE,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,QAAQ,EAAE,yFAAyF;AACvG,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,yBAAyB,GAAG,OAAO,QAAQ,KAAK;AACtD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA,2BAA2B,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC1C,wBAAwB,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7C,0BAA0B,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACjD;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA,MAAM,2BAA2B,GAAG,OAAO,QAAQ,KAAK;AACxD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC;AACrC,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C;AACA;AACA;AACA,0BAA0B,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,2BAA2B,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C;AACA,8BAA8B,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA,MAAM,2BAA2B,GAAG,OAAO,QAAQ,KAAK;AACxD,EAAE,OAAO,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxC;AACA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,CAAC,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;AACpC,IAAI,GAAG,GAAG,4BAA4B,CAAC;AACvC,IAAI,cAAc,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC/D,GAAG,KAAI;AACP,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE;AACpC,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACnE,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;AAC7C,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,cAAc,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AACnE,KAAK,MAAM;AACX,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT;AACA,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,YAAY,EAAE,QAAQ;AAC5B,MAAM,QAAQ,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,KAAK;AACL;AACA,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,YAAY,EAAE,QAAQ;AAC5B,MAAM,QAAQ,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,UAAU,EAAE,oCAAoC;AACtD,KAAK;AACL,IAAI;AACJ,MAAM,WAAW,EAAE,EAAE;AACrB,MAAM,IAAI,EAAE;AACZ,QAAQ,GAAG,EAAE;AACb,UAAU,GAAG,EAAE,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAC1C,UAAU,MAAM,EAAE,MAAM;AACxB,UAAU,QAAQ,EAAE,MAAM;AAC1B,UAAU,IAAI,EAAE;AAChB,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,UAAU,EAAE,aAAa;AACrC,WAAW;AACX,UAAU,OAAO,EAAE;AACnB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,WAAW;AACX,UAAU,cAAc,EAAE,cAAc;AACxC,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,UAAU,OAAO,EAAE,OAAO;AAC1B,SAAS;AACT,OAAO;AACP,MAAM,UAAU,EAAE,MAAM;AACxB,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,IAAI;AACJ,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,MAAM,EAAE;AACd,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,KAAK,EAAExB,QAAM,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;AAClI,OAAO;AACP,MAAM,YAAY,EAAE,KAAK;AACzB,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,IAAI;AACJ,MAAM,YAAY,EAAE,aAAa;AACjC,MAAM,UAAU,EAAE,uEAAuE;AACzF,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACO,MAAM,uBAAuB,GAAG,OAAO,QAAQ,KAAK;AAC3D;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,cAAc,EAAE,IAAI;AACxB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,SAAS,EAAE,0BAA0B;AACzC,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,eAAe,EAAE,IAAI;AACzB,MAAM,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM;AACN,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,EAAE,EAAE,mBAAmB;AAC/B,QAAQ,gBAAgB,EAAE,IAAI;AAC9B,QAAQ,2BAA2B,EAAE,IAAI;AACzC,QAAQ,WAAW,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpE,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,eAAe;AACjC,WAAW;AACX,UAAU,MAAM,aAAa,CAAC,QAAQ,CAAC;AACvC,UAAU;AACV,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,WAAW,EAAE,OAAO;AAChC,YAAY,UAAU,EAAE,yBAAyB;AACjD,WAAW;AACX,UAAU,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AAC1C,UAAU,MAAM,qBAAqB,CAAC,QAAQ,CAAC;AAC/C,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,UAAU,sBAAsB,EAAE;AAClC,YAAY,SAAS,EAAE;AACvB,cAAc;AACd,gBAAgB,YAAY,EAAE,QAAQ;AACtC,gBAAgB,aAAa,EAAE,aAAa;AAC5C,gBAAgB,MAAM,EAAE;AACxB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,aAAa,EAAE;AACzB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,SAAS,EAAE,MAAM;AACnC,kBAAkB,UAAU,EAAE,WAAW;AACzC,kBAAkB,aAAa,EAAE,IAAI;AACrC,kBAAkB,UAAU,EAAE,IAAI;AAClC,kBAAkB,OAAO,EAAE,MAAM;AACjC,kBAAkB,KAAK,EAAE,SAAS;AAClC,iBAAiB;AACjB,gBAAgB,YAAY,EAAE,OAAO;AACrC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,wBAAwB;AAChC,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,OAAO,EAAE;AACb,MAAM;AACN,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,OAAO,EAAE;AACjB,UAAU,KAAK,EAAE;AACjB,YAAY,OAAO,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AACrD,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,KAAK,EAAE,SAAS;AACxB,OAAO;AACP,MAAM;AACN,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,OAAO,EAAE;AACjB,UAAU,KAAK,EAAE;AACjB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,WAAW,EAAE,EAAE;AAC/B,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,UAAU,EAAE,aAAa;AACzC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,CAAC;;ACxhBD;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACO,MAAM,cAAc,GAAG,OAAO,QAAQ,GAAG;AAChD;AACA,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,SAAS,EAAE,iCAAiC;AACpD,QAAQ,eAAe,EAAE,sBAAsB;AAC/C,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,OAAO,EAAE;AACjB,UAAU,MAAM,wBAAwB,CAAC,QAAQ,CAAC;AAClD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,UAAU;AACV,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,EAAE,EAAE,sBAAsB;AACtC,YAAY,GAAG,EAAE;AACjB,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,KAAK,EAAE,4BAA4B;AACnD,gBAAgB,QAAQ,EAAE,MAAM;AAChC,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,aAAa,EAAE,iDAAiD;AACpF,iBAAiB;AACjB,gBAAgB,cAAc,EAAE,CAAC;AACjC,uHAAuH,EAAE,QAAQ,CAAC,GAAG,CAAC;AACtI;AACA,gBAAgB,CAAC;AACjB,aAAa;AACb,YAAY,IAAI,EAAE;AAClB,gBAAgB;AAChB,oBAAoB,MAAM,EAAE,MAAM;AAClC,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,UAAU,EAAE;AAChC,sBAAsB,MAAM,EAAE;AAC9B,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,KAAK;AACvC,4BAA4B,MAAM,EAAE,IAAI;AACxC,4BAA4B,GAAG,EAAE,CAAC,6GAA6G,CAAC;AAChJ,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,SAAS,EAAE;AACjC,wBAAwB;AACxB,0BAA0B,MAAM,EAAE,WAAW;AAC7C,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,oBAAoB,IAAI,EAAE,gBAAgB;AAC1C,iBAAiB;AACjB,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,EAAC;AACD;AACO,MAAM,wBAAwB,GAAG,OAAO,QAAQ,GAAG;AAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AACzB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS;AACT,KAAK;AACL,IAAI,MAAM,IAAI,GAAG+B,gBAAc,EAAE,CAAC;AAClC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,MAAM,EAAE;AAChB,UAAU;AACV,YAAY,MAAM,EAAE,YAAY;AAChC,YAAY,cAAc,EAAE,mBAAmB;AAC/C,YAAY,SAAS,EAAE,mBAAmB;AAC1C,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,IAAI,CAAC,QAAQ;AACzB,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,YAAY,EAAE,UAAU;AACpC,YAAY,YAAY,EAAE,cAAc;AACxC,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,UAAU,EAAE,KAAK;AAC7B,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,cAAc,EAAE,KAAK;AACjC,YAAY,YAAY,EAAE,YAAY;AACtC,YAAY,UAAU,EAAE;AACxB,cAAc,KAAK,EAAE,wCAAwC;AAC7D,cAAc,OAAO,EAAE;AACvB,gBAAgB,aAAa,EAAE,iDAAiD;AAChF,eAAe;AACf,cAAc,QAAQ,EAAE,MAAM;AAC9B,cAAc,UAAU,EAAE,EAAE;AAC5B,cAAc,UAAU,EAAE,WAAW;AACrC,cAAc,gBAAgB,EAAE,CAAC;AACjC,0CAA0C,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC3D,6CAA6C,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5D,4CAA4C,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;AACpE,0CAA0C,EAAE,IAAI,CAAC,MAAM,CAAC;AACxD,+CAA+C,EAAE,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA,cAAc,CAAC;AACf,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,cAAc,SAAS,EAAE;AACzB,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,SAAS,EAAE;AAC3B,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,gBAAgB;AACnD,oBAAoB,MAAM,EAAE,EAAE;AAC9B,oBAAoB,YAAY,EAAE,OAAO;AACzC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,EAAE;AACrC,oBAAoB,MAAM,EAAE;AAC5B,sBAAsB,SAAS,EAAE,SAAS;AAC1C,sBAAsB,UAAU,EAAE,WAAW;AAC7C,sBAAsB,aAAa,EAAE,IAAI;AACzC,sBAAsB,UAAU,EAAE,IAAI;AACtC,sBAAsB,KAAK,EAAE,MAAM;AACnC,qBAAqB;AACrB,oBAAoB,YAAY,EAAE,OAAO;AACzC,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB,aAAa,EAAE,sBAAsB;AACzD,oBAAoB,MAAM,EAAE,EAAE;AAC9B,oBAAoB,YAAY,EAAE,QAAQ;AAC1C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,eAAe,EAAE,KAAK;AAC9B,OAAO;AACP;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAM,iBAAiB,GAAG,OAAO,QAAQ,GAAG;AACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,QAAQ;AAChB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG;AAC5C,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,GAAG,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;AAC5F,SAAS;AACT,KAAK,CAAC;AACN,EAAC;AACD;AACA;AACO,MAAM,mBAAmB,GAAG,OAAO,QAAQ,GAAG;AACrD;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAGA,gBAAc,EAAE,CAAC,QAAQ,CAAC;AAC9C;AACA,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,kBAAkB;AAClC,QAAQ,QAAQ,EAAE,sBAAsB;AACxC,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,UAAU,EAAE;AACpB,UAAU,MAAM,EAAE;AAClB,YAAY;AACZ,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,GAAG,EAAE,CAAC,4CAA4C,EAAE,OAAO,CAAC,oDAAoD,CAAC;AACjI,aAAa;AACb,WAAW;AACX,UAAU,SAAS,EAAE;AACrB,YAAY;AACZ,cAAc,MAAM,EAAE,WAAW;AACjC,cAAc,MAAM,EAAE,QAAQ;AAC9B,cAAc,IAAI,EAAE,gBAAgB;AACpC,aAAa;AACb,WAAW;AACX,UAAU,IAAI,EAAE,gBAAgB;AAChC,SAAS;AACT,QAAQ,IAAI,EAAE,mBAAmB;AACjC,KAAK;AACL;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACO,MAAM,0BAA0B,GAAG,UAAU;AACpD,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,iBAAiB,EAAE,QAAQ;AACnC,QAAQ,OAAO,EAAE,MAAM;AACvB,QAAQ,QAAQ,EAAE,oBAAoB;AACtC,QAAQ,WAAW,EAAE,mCAAmC;AACxD,QAAQ,kBAAkB,EAAE,KAAK;AACjC,QAAQ,UAAU,EAAE;AACpB,YAAY,QAAQ,EAAE,KAAK;AAC3B,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,UAAU;AACV,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE,MAAM;AAC3B,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,OAAO,EAAE,WAAW;AAChC,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,KAAK,EAAE,8CAA8C;AACjE,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,aAAa;AACjC,YAAY,OAAO,EAAE,aAAa;AAClC,YAAY,eAAe,EAAE,mGAAmG;AAChI;AACA;AACA,WAAW;AACX,UAAU;AACV,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,eAAe,EAAE,2FAA2F;AACxH,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;AACA;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACpC,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK;AAC5C,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;AACzB,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAMC,gBAAc,GAAG,CAAC,KAAK,GAAG;AAChC,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AACtC,EAAE,QAAQ,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACvP,EAAC;AACD;AACA,MAAM,eAAe,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG;AAC9C,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK;AAC9C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,QAAQ,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU;AAC7C,IAAI,QAAQ,EAAE,KAAK,CAAC,WAAW;AAC/B,GAAG,CAAC;AACJ,EAAE,GAAGA,gBAAc,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AAC7B,IAAI,GAAG,CAAC,IAAI,GAAG;AACf,MAAM;AACN,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,gBAAgB,EAAE,mBAAmB;AAC7C,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,SAAS,EAAE,CAAC;AACpB,QAAQ,SAAS,EAAE,EAAE;AACrB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,MAAM,EAAE,MAAM;AACtB,OAAO;AACP,MAAM;AACN,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,OAAO,EAAE,MAAM;AACvB,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,SAAS,EAAE;AACnB,UAAU,OAAO,EAAE;AACnB,YAAY,SAAS,EAAE;AACvB,cAAc;AACd,gBAAgB,YAAY,EAAE,QAAQ;AACtC,gBAAgB,QAAQ,EAAE;AAC1B,kBAAkB,MAAM,EAAE,QAAQ;AAClC,kBAAkB,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AACxD,kBAAkB,MAAM,EAAE;AAC1B,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,MAAM;AACpC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,MAAM,EAAE;AAC9B,wBAAwB;AACxB,0BAA0B,OAAO,EAAE,EAAE;AACrC,0BAA0B,MAAM,EAAE,UAAU;AAC5C,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,0BAA0B,SAAS,EAAE,CAAC;AACtC,0BAA0B,SAAS,EAAE,EAAE;AACvC,0BAA0B,MAAM,EAAE,QAAQ;AAC1C,0BAA0B,aAAa,EAAE,OAAO;AAChD,yBAAyB;AACzB,wBAAwB;AACxB,0BAA0B,MAAM,EAAE,MAAM;AACxC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,MAAM,EAAE;AACtC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,IAAI;AAC/C,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE;AACjD,wCAAwC;AACxC,0CAA0C,aAAa,EAAE,gBAAgB;AACzE,0CAA0C,MAAM,EAAE;AAClD,4CAA4C,YAAY,EAAE,IAAI;AAC9D,4CAA4C,OAAO,EAAE,IAAI;AACzD,2CAA2C;AAC3C,0CAA0C,YAAY,EAAE,UAAU;AAClE,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,gCAAgC;AAChC,kCAAkC,MAAM,EAAE,QAAQ;AAClD,kCAAkC,OAAO,EAAE,QAAQ;AACnD,kCAAkC,SAAS,EAAE;AAC7C,oCAAoC,OAAO,EAAE;AAC7C,sCAAsC,SAAS,EAAE,EAAE;AACnD,qCAAqC;AACrC,mCAAmC;AACnC,kCAAkC,IAAI,EAAE,gBAAgB;AACxD,kCAAkC,OAAO,EAAE,MAAM;AACjD,kCAAkC,WAAW,EAAE,KAAK;AACpD,iCAAiC;AACjC,+BAA+B;AAC/B,8BAA8B,IAAI,EAAE,gBAAgB;AACpD,6BAA6B;AAC7B,2BAA2B;AAC3B,0BAA0B,IAAI,EAAE,gBAAgB;AAChD,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,mBAAmB;AACnB,kBAAkB,IAAI,EAAE,gBAAgB;AACxC,kBAAkB,YAAY,EAAE,KAAK;AACrC,kBAAkB,gBAAgB,EAAE,KAAK;AACzC,kBAAkB,iBAAiB,EAAE,IAAI;AACzC,kBAAkB,SAAS,EAAE;AAC7B,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,QAAQ;AACtC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,SAAS,EAAE;AACjC,wBAAwB,OAAO,EAAE;AACjC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,8BAA8B,MAAM,EAAE;AACtC,gCAAgC,YAAY,EAAE,WAAW;AACzD,gCAAgC,OAAO,EAAE,WAAW;AACpD,+BAA+B;AAC/B,8BAA8B,YAAY,EAAE,UAAU;AACtD,6BAA6B;AAC7B,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,EAAE;AAC/C,8BAA8B,MAAM,EAAE,EAAE;AACxC,8BAA8B,YAAY,EAAE,aAAa;AACzD,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,sBAAsB,OAAO,EAAE,SAAS;AACxC,qBAAqB;AACrB,oBAAoB;AACpB,sBAAsB,MAAM,EAAE,QAAQ;AACtC,sBAAsB,OAAO,EAAE,IAAI;AACnC,sBAAsB,SAAS,EAAE;AACjC,wBAAwB,OAAO,EAAE;AACjC,0BAA0B,SAAS,EAAE;AACrC,4BAA4B;AAC5B,8BAA8B,aAAa,EAAE,EAAE;AAC/C,8BAA8B,MAAM,EAAE,EAAE;AACxC,8BAA8B,YAAY,EAAE,aAAa;AACzD,6BAA6B;AAC7B,2BAA2B;AAC3B,yBAAyB;AACzB,uBAAuB;AACvB,sBAAsB,IAAI,EAAE,gBAAgB;AAC5C,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,QAAQ,EAAE,CAAC;AACvB,WAAW;AACX,SAAS;AACT,QAAQ,WAAW,EAAE,wBAAwB;AAC7C,OAAO;AACP,MAAK;AACL,GAAG,KAAI;AACP,IAAI,QAAQ,KAAK,CAAC,IAAI;AACtB,MAAM,KAAK,OAAO;AAClB,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE;AAC/B,UAAU,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;AAChC,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC;AAClC,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC;AACvC,QAAQ,GAAG,CAAC,MAAM,GAAG,4BAA4B,CAAC;AAClD,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACpC,QAAQ,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAC7C,QAAQ,GAAG,CAAC,MAAM,GAAG,0BAA0B,CAAC;AAChD,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;AAC9B,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AACjC,QAAQ,GAAG,CAAC,WAAW,GAAG;AAC1B,UAAU,OAAO,EAAE,IAAI;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,KAAK;AAChB,QAAQ,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;AAC/B,QAAQ,GAAG,CAAC,WAAW,GAAG;AAC1B,UAAU,KAAK,EAAE,IAAI;AACrB,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,UAAU;AACrB,QAAQ,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACpC,QAAQ,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;AAC/B,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,MAAM,MAAM,GAAG,MAAMC,cAAY;AACzC,UAAU;AACV,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,KAAK,EAAE,KAAK,CAAC,IAAI;AAC7B,YAAY,YAAY,EAAE,aAAa;AACvC,YAAY,kBAAkB,EAAE,MAAM;AACtC,YAAY,QAAQ,EAAE,KAAK,CAAC,cAAc;AAC1C,WAAW;AACX,UAAU,KAAK;AACf,UAAU,EAAE;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,MAAM,MAAM,GAAG,MAAMA,cAAY;AACzC,UAAU;AACV,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,KAAK,EAAE,KAAK,CAAC,IAAI;AAC7B,YAAY,YAAY,EAAE,eAAe;AACzC,YAAY,QAAQ,EAAE,KAAK,CAAC,cAAc;AAC1C,WAAW;AACX,UAAU,KAAK;AACf,UAAU,EAAE;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,aAAa;AACxB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,QAAQ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC5B,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5C;AACA;AACA,QAAQ,GAAG,CAAC,MAAM,GAAG;AACrB,UAAU,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;AAC5C,cAAc,KAAK,CAAC,GAAG;AACvB,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,UAAU,MAAM,EAAE,KAAK;AACvB,UAAU,QAAQ,EAAE,MAAM;AAC1B,UAAU,OAAO,EAAE;AACnB,YAAY,aAAa,EAAE,iDAAiD;AAC5E,WAAW;AACX,UAAU,OAAO,CAAC,CAAC;AACnB;AACA;AACA;AACA,uCAAuC,EAAE,UAAU,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC;AACX,SAAS,CAAC;AACV,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC1B,UAAU,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;AAC5B,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;AACvC,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,OAAO;AAClB,QAAQ,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AACjC,QAAQ,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AACtD,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AACpC,QAAQ,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACzB,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AAC3C,UAAU,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AACvC,YAAY,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAU;AAChD,YAAY,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,YAAY,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,SAAS;AACpB,QAAQ,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;AAChC,QAAQ,MAAM;AAGd,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA,MAAM,mBAAmB,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG;AAClD;AACA,EAAE,MAAM,GAAG,GAAG;AACd,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK;AAC9C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,GAAG,CAAC;AACJ,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnC,IAAI,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACnC,KAAK,EAAC;AACN,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAC;AAChH,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAC;AACtD,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAC;AAC5C,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAC;AACxE,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;AAChC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAC;AACjF,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAC;AACtB,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAC;AAChG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACrC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,8BAA8B,EAAC;AACtG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5B,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAC;AAClD,KAAK,KAAI;AACT,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AACzD,KAAK;AACL,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,SAAQ;AACvB;AACA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAC;AACtC,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAClC,IAAI,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AAC7B,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AAClD,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AAChC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AAC/B,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACvC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AACnC,QAAQ,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,OAAO;AACP,KAAK;AACL,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;AACrB,GAAG;AACH,OAAM;AACN,IAAI,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,OAAO,KAAK,EAAE,KAAK,KAAK;AAC9C,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AAC/C,EAAE,GAAG,IAAI,CAAC;AACV,IAAI,OAAO,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9C,GAAG,KAAI;AACP,IAAI,OAAO,MAAM,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,WAAW,KAAK;AACjD,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU,GAAG,SAAS,GAAG,oBAAoB;AAClF,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;AACnE,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,KAAK,EAAE;AACX,MAAM,SAAS,EAAE,GAAG;AACpB,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,YAAY,EAAE,GAAG;AACvB,MAAM,aAAa,EAAE,GAAG;AACxB,MAAM,WAAW,EAAE,GAAG;AACtB,MAAM,WAAW,EAAE,GAAG;AACtB,MAAM,YAAY,EAAE,GAAG;AACvB,MAAM,UAAU,EAAE,GAAG;AACrB,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,iBAAiB,EAAE,SAAS;AAClC,KAAK;AACL;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAC9B,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,QAAQ,GAAG,MAAM;AACtD,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE;AAC/C,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE;AAC7C,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,IAAI,EAAE;AACV,MAAM;AACN,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,uCAAuC,GAAG,EAAE,CAAC,MAAM,CAAC;AACzH,OAAO;AACP,KAAK;AACL;AACA,IAAI,KAAK,EAAE;AACX,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,iBAAiB,EAAE,SAAS;AAClC,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK;AACnC,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACjB,EAAE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;AAC/B,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;AACjC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,KAAK;AACL,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK;AACvC,EAAE,MAAM,SAAS,GAAG,EAAE,CAAC;AACvB,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACnC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;AAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;AACjC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACvB,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AAChC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;AACjC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,OAAO;AACP,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAQ,QAAQ,GAAG,EAAE,CAAC;AACtB,OAAO;AACP,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE;AAC9B,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,MAAM,UAAU,EAAE,SAAS;AAC3B,MAAM,GAAG,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK;AAC7C,EAAE,MAAM,UAAU,GAAG;AACrB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,oBAAoB;AACnC,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC;AACnC,IAAI,EAAE,EAAE,gBAAgB;AACxB,GAAG,CAAC;AACJ,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACA,MAAM,qBAAqB,GAAG,OAAO,QAAQ,KAAK;AAClD,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,GAAG,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC;AAChC,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAEF,gBAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,MAAME,cAAY;AAC9I,MAAM;AACN,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,YAAY,EAAE,aAAa;AACnC,QAAQ,kBAAkB,EAAE,MAAM;AAClC,QAAQ,QAAQ,EAAE,KAAK;AACvB,OAAO;AACP,MAAM,KAAK;AACX,MAAM,EAAE;AACR,KAAK,CAAC,CAAC;AACP,GAAG,KAAI;AACP,IAAI,cAAc,GAAG;AACrB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,IAAI,EAAE,YAAY;AACxB,MAAM,SAAS,EAAE,eAAe;AAChC,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,GAAG,EAAE,8BAA8B;AACzC,MAAM,EAAE,EAAE,gBAAgB;AAC1B,MAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,SAAS,EAAE,yBAAyB;AACxC,IAAI,GAAG,EAAE;AACT,MAAM;AACN,QAAQ,UAAU,EAAE,SAAS;AAC7B,QAAQ,GAAG,EAAE;AACb,UAAU;AACV,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,GAAG,EAAE,gBAAgB;AACrC,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,OAAO,EAAE,MAAM;AAC7B,aAAa;AACb,WAAW;AACX,UAAU;AACV,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE;AAClB,cAAc,cAAc;AAC5B,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,UAAU;AACV,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,GAAG,EAAE,iBAAiB;AACtC,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,OAAO,EAAE,MAAM;AAC7B,aAAa;AACb,WAAW;AACX,UAAU;AACV,YAAY,UAAU,EAAE,SAAS;AACjC,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,SAAS,EAAE,UAAU;AACjC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,IAAI,EAAE;AAClB,cAAc;AACd,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,SAAS,EAAE,eAAe;AAC1C,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,WAAW,EAAE,YAAY;AACzC,gBAAgB,WAAW,EAAE,4BAA4B;AACzD,gBAAgB,GAAG,EAAE,2BAA2B;AAChD,gBAAgB,EAAE,EAAE,gBAAgB;AACpC,eAAe;AACf,aAAa;AACb,YAAY,EAAE,EAAE,gBAAgB;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,KAAK,EAAE;AACX,MAAM,eAAe,EAAE,MAAM;AAC7B,MAAM,cAAc,EAAE,MAAM;AAC5B,MAAM,gBAAgB,EAAE,MAAM;AAC9B,MAAM,iBAAiB,EAAE,MAAM;AAC/B,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,GAAG;AAC3C,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,OAAO,EAAE;AACb,MAAM,KAAK,EAAE;AACb,QAAQ,OAAO,EAAE;AACjB,UAAU;AACV,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,UAAU,EAAE,QAAQ;AAChC,YAAY,MAAM,EAAE,MAAM,uBAAuB,CAAC,QAAQ,CAAC;AAC3D,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,EAAE,EAAE,wBAAwB;AAChC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,SAAS;AACb,MAAM,uIAAuI;AAC7I,GAAG;AACH,EAAC;AACD;AACY,MAAC,iBAAiB,GAAG,OAAO,QAAQ,EAAE,GAAG,KAAK;AAC1D,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,SAAS,EAAE,4BAA4B;AAC3C,IAAI,aAAa,EAAE,wBAAwB;AAC3C,IAAI,OAAO,EAAE;AACb,MAAM,MAAM,EAAE,8BAA8B;AAC5C,MAAM,OAAO,EAAE,MAAM;AACrB,MAAM,eAAe,EAAE,WAAW;AAClC,MAAM,UAAU,EAAE,QAAQ,CAAC,GAAG;AAC9B,MAAM,IAAI,EAAE,gBAAgB;AAC5B,MAAM,iBAAiB,EAAE,KAAK;AAC9B,MAAM,WAAW,EAAE,eAAe;AAClC,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,mDAAmD,EAAE;AAC3D,QAAQ,SAAS,EAAE,MAAM;AACzB,OAAO;AACP,MAAM,+CAA+C,EAAE;AACvD,QAAQ,WAAW,EAAE,MAAM;AAC3B,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,cAAc,EAAE,KAAK;AAC7B,OAAO;AACP,MAAM,oBAAoB,EAAE;AAC5B,QAAQ,WAAW,EAAE,MAAM;AAC3B,QAAQ,aAAa,EAAE,KAAK;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,MAAM,cAAc,CAAC,QAAQ,CAAC;AACpC,MAAM,MAAM,mBAAmB,CAAS,CAAC;AACzC,MAAM,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AACvC,MAAM;AACN,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,gBAAgB,EAAE,IAAI;AAC9B,QAAQ,IAAI,EAAE;AACd,UAAU;AACV,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,EAAE,EAAE,gBAAgB;AAChC,YAAY,GAAG,EAAE,CAAC,2BAA2B,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACrE,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,gBAAgB,EAAE,EAAE;AAChC,YAAY,KAAK,EAAE;AACnB,cAAc,UAAU,EAAE,EAAE;AAC5B,cAAc,QAAQ,EAAE,EAAE;AAC1B,cAAc,SAAS,EAAE,QAAQ;AACjC,aAAa;AACb,WAAW;AACX,UAAU,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AAC1C,UAAU,MAAM,qBAAqB,CAAC,QAAQ,CAAC;AAC/C;AACA,SAAS;AACT,QAAQ,EAAE,EAAE,eAAe;AAC3B,QAAQ,OAAO,EAAE;AACjB,UAAU,aAAa,EAAE;AACzB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,OAAO,EAAE;AACrB,cAAc;AACd,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,MAAM,EAAE;AACxB,kBAAkB,SAAS,EAAE,MAAM;AACnC,kBAAkB,UAAU,EAAE,WAAW;AACzC,kBAAkB,aAAa,EAAE,IAAI;AACrC,kBAAkB,UAAU,EAAE,IAAI;AAClC,kBAAkB,OAAO,EAAE,MAAM;AACjC,kBAAkB,KAAK,EAAE,SAAS;AAClC,iBAAiB;AACjB,gBAAgB,YAAY,EAAE,OAAO;AACrC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,MAAM,0BAA0B,EAAE;AACxC,MAAM,MAAM,gBAAgB,CAAC,QAAQ,CAAC;AACtC,KAAK;AACL,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,OAAO,EAAE;AACb,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,+BAA+B,EAAE;AACvC,QAAQ,OAAO,EAAE;AACjB,UAAU;AACV,YAAY,UAAU,EAAE,QAAQ;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,OAAO,CAAC;AACZ,MAAM,KAAK,EAAE,4BAA4B;AACzC,MAAM,QAAQ,EAAE,MAAM;AACtB,MAAM,SAAS,EAAE;AACjB,QAAQ,eAAe,EAAE,iDAAiD;AAC1E,OAAO;AACP,MAAM,UAAU,EAAE;AAClB,OAAO;AACP,MAAM,gBAAgB,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,+CAA+C,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,SAAS,EAAE,CAAC;AAClB;AACA;AACA;AACA;AACA,MAAM,CAAC;AACP,MAAM,MAAM,EAAE;AACd;AACA,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,OAAO,EAAE,cAAc;AAC/B,OAAO;AACP,KAAK;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC;AACJ;;AC32BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,aAAa,GAAG;AACxC,IAAI,QAAQ,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AACzP,EAAC;AACD;AACO,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACjE,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;AACxC,IAAI,IAAI,IAAI,EAAE,aAAa,CAAC;AAC5B,IAAI,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC;AAChC,IAAI,IAAI,cAAc,CAAC,aAAa,CAAC,EAAE;AACvC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AACnC,UAAU,IAAI,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;AAChD,UAAU,YAAY,GAAG,EAAE,CAAC;AAC5B,UAAU,IAAI;AACd,YAAY,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACjD,WAAW,CAAC,OAAO,MAAM,EAAE;AAC3B,YAAY,YAAY,GAAG,EAAE,CAAC;AAC9B,WAAW;AACX,UAAU,IAAI,YAAY,IAAI,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;AACtE,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,EAAE,CAAC,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;AACtD,YAAY,EAAE,CAAC,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;AACvE,YAAY,EAAE,CAAC,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC;AACzE,YAAY,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACvE,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC;AAClE,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,IAAI,YAAY,CAAC;AAClF,YAAY,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,WAAW,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AACvL,YAAY,EAAE,GAAG;AACjB,cAAc,eAAe,EAAE,KAAK;AACpC,cAAc,UAAU,EAAE,KAAK;AAC/B,cAAc,YAAY,EAAE,YAAY;AACxC,aAAa,CAAC;AACd,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;AACjD,cAAc,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,cAAc,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACnD,aAAa;AACb,YAAY,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACvD,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,cAAc,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpF,gBAAgB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;AAC9F,kBAAkB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9C,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,kBAAkB,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE;AAC1G,oBAAoB,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9C,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,WAAW;AACX,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK;AACL,IAAI,OAAO,aAAa,CAAC;AACzB;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG,IAAI;AACtB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;AACxB,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACxC,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACzB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB,GAAG;AACH,EAAC;AACD;AACA,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AAC1C,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC;AACjC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;AACjD,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACxD,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;AACrC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AAC9D,MAAM,OAAO,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;AACtE,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE;AACtD;AACA,IAAI9D,UAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACzC,MAAMA,UAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;AACtC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,EAAE;AAC7E,UAAU,cAAc,GAAG,CAAC,CAAC;AAC7B,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO;AAC9B;AACA,EAAE,IAAI,cAAc,CAAC,GAAG,EAAE;AAC1B,IAAI,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AACF;AACA,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AACtE,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;AAC5B,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;AACzC,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,GAAG,MAAM;AACT,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;AACzB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AACtC,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;AAChC,MAAM;AACN,QAAQ,IAAI,CAAC,SAAS,IAAI,aAAa;AACvC,SAAS,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC3D,QAAQ;AACR;AACA,QAAQ,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACzC,OAAO,MAAM;AACb,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrC,UAAU,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3C,SAAS,MAAM;AACf,UAAU,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1C,SAAS;AACT,OAAO;AACP,KAAK,MAAM;AACX,MAAM,GAAG,KAAK,QAAQ;AACtB,MAAM,GAAG,KAAK,SAAS;AACvB,MAAM,GAAG,IAAI,WAAW;AACxB,MAAM,GAAG,IAAI,SAAS;AACtB,MAAM;AACN,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,KAAK,MAAM;AACX,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK;AACrC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE;AAC3D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACrD,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK;AACrC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,EAAE;AAC3D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACrD,MAAM,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,YAAY,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK;AAC7C,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK;AAC3C,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC;AAC/B,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK;AAC9C,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;AACpC;AACA,EAAE,OAAO,GAAG,MAAM,CAAC;AACnB;AACA,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClB;AACA,EAAE,OAAO,GAAG,IAAI,CAAC;AACjB;AACA,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACxB;AACA,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC5C,MAAMA,UAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;AAC/C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU;AACV,YAAY,EAAE,CAAC,WAAW;AAC1B,YAAY,EAAE,CAAC,IAAI,KAAK,OAAO;AAC/B,aAAa,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;AACzC,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;AACpE,YAAY;AACZ,YAAY,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC;AAChC,WAAW;AACX,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,CAAC,EAAE,CAAC;AACR,GAAG;AACH;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG;AACxD,EAAE,OAAOA,UAAC,CAAC,QAAQ,CAACA,UAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3F,EAAC;AACD;AACY,MAAC,eAAe,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK;AAC9D,EAAE,MAAM,MAAM,GAAG4D,gBAAc,EAAE,CAAC,MAAM,CAAC;AACzC,EAAE,MAAM,KAAK,GAAG,CAAC;AACjB,uCAAuC,EAAE,UAAU,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN;AACA,EAAE,MAAM,MAAM,GAAG,MAAMG,UAAQ,CAAC,UAAU,EAAE;AAC5C,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,MAAM,KAAK,EAAE,KAAK;AAClB,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC;AAClB,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE;AAC1C,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;AAC/D,IAAI,IAAI,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,GAAG;AACH;AACA,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE/D,UAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnF;AACA,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACrD;AACA,EAAE,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAClC,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,GAAG;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,eAAe,GAAG,MAAM+D,UAAQ,CAAC,CAAC,kCAAkC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACnG,IAAI,MAAM,EAAE,KAAK;AACjB,GAAG,CAAC,CAAC;AACL;AACA,EAAE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC7B;AACA,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzB,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI;AACvB,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI;AACvB,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS;AACjC,IAAI,cAAc,EAAE,QAAQ,CAAC,cAAc;AAC3C,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS;AACjC,IAAI,WAAW,EAAE,QAAQ,CAAC,WAAW;AACrC,SAAS,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACpE,QAAQ,EAAE;AACV,IAAI,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzB,IAAI,aAAa,EAAE,MAAM;AACzB,IAAI,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI;AAC9C,IAAI,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI;AAC7C,IAAI,MAAM,EAAE/D,UAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACjD,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,QAAQ,UAAU,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;AAChJ,OAAO,CAAC,EAAE;AACV,KAAK,CAAC;AACN,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,WAAW;AACf,IAAI,eAAe,EAAE,eAAe,EAAE,WAAW,IAAI,EAAE;AACvD,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,UAAU,EAAE,QAAQ,CAAC,UAAU;AACnC,IAAI,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;AACjD,IAAI,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;AACzD,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC/B,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3B,IAAI,eAAe,EAAEA,UAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACvD,MAAM,OAAO,MAAM,CAAC,MAAM;AAC1B,QAAQ;AACR,UAAU,QAAQ,EAAEA,UAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK;AACvD,YAAY,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;AACjD,YAAY,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACtC,YAAY,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;AAC7C,YAAY,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;AAC9C,YAAY,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;AACrC,cAAc,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAC;AAC3C,cAAc,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/C,aAAa;AACb,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,cAAc,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAC1D,cAAc,KAAK,GAAG,IAAI,CAAC;AAC3B,aAAa,MAAM;AACnB,cAAc,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACnF,aAAa;AACb;AACA,YAAY,QAAQ,KAAK;AACzB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,KAAK,GAAG,EAAE,CAAC;AAC3B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,SAAS;AAC5B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,QAAQ;AAC3B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,KAAK,GAAG,KAAK,CAAC;AAC9B,gBAAgB,MAAM;AACtB,cAAc,KAAK,QAAQ;AAC3B,gBAAgB,KAAK,GAAG,IAAI,CAAC;AAC7B,gBAAgB,MAAM;AAGtB,aAAa;AACb,YAAY,OAAO;AACnB,cAAc,IAAI,EAAE,EAAE;AACtB,cAAc,SAAS,EAAE,QAAQ;AACjC,cAAc,WAAW,EAAE,UAAU;AACrC,cAAc,KAAK,EAAE,KAAK;AAC1B,cAAc,OAAO,EAAE,OAAO;AAC9B,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS;AACT,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACvC,OAAO,CAAC;AACR,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;;;;"}
|