@steedos-widgets/amis-object 1.0.37 → 1.0.38

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),___default=require("lodash"),antd=require("antd"),ReactDOM=require("react-dom");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var React__default=_interopDefaultLegacy(React),___default__default=_interopDefaultLegacy(___default),___default__namespace=_interopNamespace(___default),ReactDOM__default=_interopDefaultLegacy(ReactDOM),__assign$2=function(){return __assign$2=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},__assign$2.apply(this,arguments)};function __rest(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(a[n[i]]=e[n[i]])}return a}function __awaiter(e,t,a,n){return new(a||(a=Promise))((function(i,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function s(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,s)}l((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var a,n,i,r,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(r){return function(s){return function(r){if(a)throw new TypeError("Generator is already executing.");for(;o;)try{if(a=1,n&&(i=2&r[0]?n.return:r[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,r[1])).done)return i;switch(n=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,n=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){o=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){o.label=r[1];break}if(6===r[0]&&o.label<i[1]){o.label=i[1],i=r;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(r);break}i[2]&&o.ops.pop(),o.trys.pop();continue}r=t.call(e,o)}catch(e){r=[6,e],n=0}finally{a=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,s])}}}function __values(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,i,r=a.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=r.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(a=r.return)&&a.call(r)}finally{if(i)throw i.error}}return o}function __spreadArray(e,t,a){if(a||2===arguments.length)for(var n,i=0,r=t.length;i<r;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol,objectProto$2=Object.prototype,hasOwnProperty$1=objectProto$2.hasOwnProperty,nativeObjectToString$1=objectProto$2.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag$1(e){var t=hasOwnProperty$1.call(e,symToStringTag$1),a=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var n=!0}catch(e){}var i=nativeObjectToString$1.call(e);return n&&(t?e[symToStringTag$1]=a:delete e[symToStringTag$1]),i}var _getRawTag=getRawTag$1,objectProto$1=Object.prototype,nativeObjectToString=objectProto$1.toString;function objectToString$1(e){return nativeObjectToString.call(e)}var _objectToString=objectToString$1,Symbol$1=_Symbol,getRawTag=_getRawTag,objectToString=_objectToString,nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag$1(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}var _baseGetTag=baseGetTag$1;function overArg$1(e,t){return function(a){return e(t(a))}}var _overArg=overArg$1,overArg=_overArg,getPrototype$1=overArg(Object.getPrototypeOf,Object),_getPrototype=getPrototype$1;function isObjectLike$1(e){return null!=e&&"object"==typeof e}var isObjectLike_1=isObjectLike$1,baseGetTag=_baseGetTag,getPrototype=_getPrototype,isObjectLike=isObjectLike_1,objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag)return!1;var t=getPrototype(e);if(null===t)return!0;var a=hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&funcToString.call(a)==objectCtorString}var isPlainObject_1=isPlainObject;const RegisterRenders=[],normalizeLink=(e,t=window.location)=>{(e=e||"")&&"#"===e[0]?e=t.pathname+t.search+e:e&&"?"===e[0]&&(e=t.pathname+e);var a=e.indexOf("?"),n=e.indexOf("#");let i=~a?e.substring(0,a):~n?e.substring(0,n):e;if(a=~a?e.substring(a,~n?n:void 0):"",e=~n?e.substring(n):t.hash,i){if("/"!=i[0]&&!/^https?\:\/\//.test(i)){var r,o=t.pathname.split("/");for(o.pop();r=/^\.\.?\//.exec(i);)"../"===r[0]&&o.pop(),i=i.substring(r[0].length);i=o.concat(i).join("/")}}else i=t.pathname;return i+a+e},amisRootClick=(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},getEvn=e=>({theme:"antd",notify:(e,t)=>{t.props?.schema.tpl?SteedosUI.message[e](t.props?.schema.tpl):"string"==typeof t?SteedosUI.message[e](t):console.warn("notify",e,t)},confirm:e=>new Promise(((t,a)=>SteedosUI.Modal.confirm({title:e,onOk:()=>{t(!0)},okText:"确认",cancelText:"取消"}))),jumpTo:(t,a)=>{if("goBack"===t)return window.history.back();t=normalizeLink(t),a&&"url"===a.actionType?!0===a.blank?window.open(t):e.push(t):a&&t&&a.target?window.open(t,a.target):/^https?:\/\//.test(t)?window.location.replace(t):e.push(t)}}),registerRenders=e=>{if(!___default.isEmpty(e)&&___default.isArray(e)){var t=amisRequire("amis");const a={renderer:t.Renderer,formitem:t.FormItem,options:t.OptionsControl};let n=amisRequire("react");___default.each(e,(e=>{if(!___default.find(RegisterRenders,(t=>t===e.componentName))){let t=Builder.components.find((t=>t.name===e.componentName)),i=t.class;"amisSchema"===e.componentType&&(i=e=>{var{body:a,render:i}=e;const[r,o]=n.useState(null);return n.useEffect((()=>{var a=t.class(e);a&&a.then&&"function"==typeof a.then?a.then((e=>{o(e)})):o(a)}),[]),n.createElement(n.Fragment,null,n.createElement(n.Fragment,null,r&&i?i("body",r):""),n.createElement(n.Fragment,null,i?i("body",a):""))}),a[e.usage]?(a[e.usage]({test:new RegExp("(^|/)"+e.type),type:e.type,weight:e.weight,autoVar:!0})(i),console.info("注册了一个自定义amis组件:",{type:e.type,weight:e.weight,component:i,framework:e.framework,usage:e.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${e.usage}自定义组件类型。`),RegisterRenders.push(e.componentName)}}))}},amisRender=(e,t,a={},n={},i)=>{var r=amisRequire("amis/embed"),{router:i,assets:o}=i;return registerRenders(o),r.embed(e,t,a,Object.assign(getEvn(i),n))},STEEDOS_AUTH={},getBuilderContext$1=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings,setSteedosAuth=e=>{Object.assign(STEEDOS_AUTH,e)};async function fetchAPI(e,t={credentials:"include"}){var a,n={"Content-Type":"application/json"};if(401===(a=((a=getAuthorization())&&(n.Authorization=a),t.headers=Object.assign({},n,t.headers),t.credentials="include",await fetch(""+getRootUrl()+e,t))).status)throw new Error(401);if((n=await a.json()).errors)throw console.error(n.errors),new Error("Failed to fetch API");return n}function getFileSrc(e){return getRootUrl()+"/api/files/files/"+e}function getImageSrc(e){return getRootUrl()+"/api/files/images/"+e}function getTenantId(){try{let e=getBuilderContext$1().tenantId;return window.location.search&&!e&&(e=new URLSearchParams(window.location.search).get("X-Space-Id")),e||null}catch(e){console.error(e)}}function getAuthToken(){try{var e=getBuilderContext$1().authToken;return e||null}catch(e){console.error(e)}}function getAuthorization(){try{var e=getBuilderContext$1(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function getUserId(){try{var e=getBuilderContext$1().userId;return e||null}catch(e){console.error(e)}}function absoluteUrl(e){return""+getRootUrl()+e}function getRootUrl(e){return getBuilderContext$1().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}function setRootUrl(e){___default.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)}const getSteedosAuth=()=>Object.assign({},___default.cloneDeep(STEEDOS_AUTH)||{},getBuilderContext$1()||{}),Router$1={getTabDisplayAs:e=>(e=localStorage.getItem(`tab.${e}.display`))||"grid",setTabDisplayAs(e,t){localStorage.setItem(`tab.${e}.display`,t)},getAppPath:({appId:e})=>"/app/"+e,getPagePath(){},getObjectListViewPath:({appId:e,objectName:t,listViewName:a})=>`/app/${e}/${t}/grid/`+a,getObjectDetailPath(e){var{appId:e,objectName:t,recordId:a,_templateType:n}=e,i=Router$1.getTabDisplayAs(t);return"JavaScript"===n?`/app/${e}/${t}/view/${a}?display=${i}&side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${e}/${t}/view/${a}?display=${i}&side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:i})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+i};function getCreatedInfoTpl(e){return`<div><a href='${Router$1.getObjectDetailPath({formFactor:e,appId:"admin",objectName:"users",recordId:"${created_by._id}"})}'>\${_display.created_by.label}</a>\${_display.created}</div>`}function getModifiedInfoTpl(e){return`<div><a href='${Router$1.getObjectDetailPath({formFactor:e,appId:"admin",objectName:"users",recordId:"${modified_by._id}"})}'>\${_display.modified_by.label}</a>\${_display.modified}</div>`}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getNameTplUrl(e,t){return"cms_files"===t.objectName?"${context.rootUrl}/api/files/files/${versions[0]}?download=true":Router$1.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){return`<a href="${getNameTplUrl(e,t)}">\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let a="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;var n,i=t.onlyDisplayLabel;let r="data._display."+e.name;if(e.isTableField&&(r="data."+e.name),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";i||(e=`<a href="${n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`),a=`\n <% if (${r} && ${r}.length) { %><% ${r}.forEach(function(item,index) { %> <% if(index>0 && index<${r}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let r=`\${_display.${e.name}.label}`,o=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;e.isTableField&&(r=`\${${e.name}.label}`,o=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),i||(n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:""+o,recordId:""+s}),r=`<a href="${n}">${r}</a>`),a=r}else{let n="<%=item.label%>";i||(n=`<a href="${e=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`),a=`\n <% if (${r} && ${r}.length) { %><% ${r}.forEach(function(item) { %> ${n} <% }); %><% } %>\n `}return a}async function getLookupTpl(e,t){var a,n;return e.reference_to?(a=await getRefObjectNameFieldName(e),e.multiple?(n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"}),`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${n}"><%=item.${a}%></a> <% }); %><% } %>\n `):`<a href="${Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):getSelectTpl(e)}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<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>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return getRelatedFieldTpl(e,t);case"number":case"currency":return getNumberTpl(e);case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){0!=t&&(t=!0);let a=["_id"],n=[];for(const i of ___default__namespace.isArray(e)?e:___default__namespace.values(e))i.name.indexOf(".")<0&&(!t||"lookup"!=i.type&&"master_detail"!=i.type?a.push(i.alias?i.alias+":"+i.name:i.name):(a.push(""+i.name),n.push(""+i.name)),___default.includes(["time","date","datetime","boolean","number","currency"],i.type)&&a.push(""+i.name),___default.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],i.type)&&n.push(""+i.name));return n=___default__namespace.uniq(n),a=___default__namespace.uniq(a),0<n.length?`${a.join(",")},_display:_ui{${n.join(",")}}`:""+a.join(" ")}function getRecordPermissionsTemplate(){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 "}async function getFindOneQuery$1(e,t,a,n){let i="",r=(t&&(i=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return n&&(n.alias&&(r=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`)),{query:`{${r}:${e.name}${i}{${await getFieldsTemplate(a)}, ${getRecordPermissionsTemplate()}}}`}}function getSaveQuery(e,t,a,n){return{objectName:e.name,$:"$$",recordId:t,modalName:"${modalName}"}}function getScriptForReadonlyFields(e){var t=[];return e.forEach((e=>{e.readonly&&e.name.indexOf(".")<0&&t.push(`delete formData.${e.name};`)})),t.join("\r\n")}function getScriptForRemoveUrlPrefixForImgFields(e){let t=[],a={};return e.forEach((e=>{___default.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n let imgFieldsKeys = ${JSON.stringify(t)};\n let imgFields = ${JSON.stringify(a)};\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?.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 `:""}function getScriptForSimplifiedValueForFileFields(e){let t=[],a={};return e.forEach((e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\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 `:""}function getSaveDataTpl(e){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 ${getScriptForReadonlyFields(e)}\n ${getScriptForRemoveUrlPrefixForImgFields(e)}\n ${getScriptForSimplifiedValueForFileFields(e)}\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._id}", doc: {__saveData}){_id}}\`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `}function getSaveRequestAdaptor(e){return`\n ${getSaveDataTpl(e)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n `}async function getFindQuery(e,t,a,n){let i=`(top: ${o=n.limit||10})`,r=(t&&(i=`(filters:["_id", "=", "${t}"], top: ${o})`),"data");n&&(n.alias&&(r=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`));t="";var o=(e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(t=",parent,children"),""),s=("cms_files"===e.name&&(o=",versions"),!1===n.count?"":`,count:${e.name}__count(filters:{__filters})`),l=n.moreQueries?.length?","+n.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${r}:${e.name}${i}{${await getFieldsTemplate(a,n.expand)}${t}${o}}${s}${l}}`}}function getRecordPermissionsQuery(e,t,a){let n="",i=(t&&(n=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data"),r=(a&&(a.alias&&(i=a.alias),a.filters&&(n=`(filters:${a.filters})`),a.queryOptions&&(n=`(${a.queryOptions})`)),getRecordPermissionsTemplate());return a?.fields&&a.fields.length&&(r=`\n recordPermissions: _permissions{\n ${a.fields.join(",")}\n }\n `),{query:`{${i}:${e.name}${n}{${e.idFieldName},${r}}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql"}async function getListBody(e,t){var a=[];for(const i of e){var n=await getFieldTpl(i,t);let e=n?"tpl":"text";i.hidden||i.extra||a.push({name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:n,toggled:i.toggled})}return{type:"hbox",columns:a}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){return e=(await getListBody(e,t)).columns,{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}const refUsersObjectName="space_users",refOrgsObjectName="organizations";async function getSource$1(e,t){var a,n=await getFindQuery({name:refOrgsObjectName},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"});(a=((a=(n.query=n.query.replace(/,count\:.+/,"}"),await getFindQuery({name:refOrgsObjectName},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await getFindQuery({name:refUsersObjectName},null,[{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=""+e.name;return e._prefix&&(i=""+e._prefix+e.name),t.fieldNamePrefix&&(i=""+t.fieldNamePrefix+i),n.$value="$"+i,a=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.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 `,{method:"post",url:getApi$2(),requestAdaptor:a,adaptor:"\n const data = payload.data;\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 data.leftOptions = data.leftOptions.map(function (leftOption) {\n leftOption.defer = !!(leftOption.children && leftOption.children.length);\n delete leftOption.children;\n return leftOption;\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 ",data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi$1(e,t){var a=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let n=e.filters;return"function"==typeof(n="string"==typeof n?(n=new Function("return "+n))():n)&&(n=n(e)),a.query=a.query.replace(/,count\:.+/,"}"),a.query=a.query.replace("{_id}","{{__fields}}"),e=`\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 = "${t.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 = ${n&&JSON.stringify(n)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n sort = "${t.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 `,{method:"post",url:getApi$2()+"?ref=${ref}&dep=${value}",requestAdaptor:e,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 ",data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSearchApi(e,t){var a=await getFindQuery({name:refUsersObjectName},null,[{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});e=`\n var term = api.query.term;\n var filters;\n var sort = "";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${(e=(a.query=a.query.replace(/,count\:.+/,"}"),e.filters))&&JSON.stringify(e)};\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 = "${t.usersSort}";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"?term=${term}",requestAdaptor:e,data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort$1(e){e=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let t="";return e?getListViewSort(e):t}async function getSelectUserSchema(e,t,a){if(!e)return{};a=a||{};var n={type:getAmisStaticFieldType("select",t)};return t?n.tpl=await getLookupTpl(e,a):(t=await getUISchema(refUsersObjectName),a.usersSort=getRefListViewSort$1(t),t=await getUISchema(refOrgsObjectName),a.orgsSort=getRefListViewSort$1(t),Object.assign(n,{multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",extractValue:!0,clearable:!0,source:await getSource$1(e,a),deferApi:await getDeferApi$1(e,a),searchApi:await getSearchApi(e,a)}),e.multiple&&Object.assign(n,{joinValues:!1}),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const globalTag="__G_L_O_B_A_L__",getParentPath=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))},getValueByPath=function(e,t){return"#"!==t&&t?"string"==typeof t?___default.get(e,t):void console.error("path has to be a string"):e||{}},isExpression$1=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},parseSingleExpression$1=function(e,t,a,n,i={}){var r,o;if(void 0===t&&(t={}),o=getParentPath(a),o=getValueByPath(t,o)||{},"string"!=typeof e)return e;r=e.substring(2,e.length-2),i=`\n var $user=${JSON.stringify(i)}; return `+r.replace(/\bformData\b/g,JSON.stringify(t).replace(/\bglobal\b/g,globalTag)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+globalTag+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(o));try{return Function(i)()}catch(t){return console.log(t,e,a),e}};var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const getSchema$4=async(e,t)=>({type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",defaultData:"${defaultData}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:"新建 ${uiSchema.label}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"",adaptor:'\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 return {\n data: formSchema\n };\n '}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg"}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"});async function getPage({type:e,pageId:t="",appId:a,objectName:n="",recordId:i="",formFactor:r="LARGE"}){if((e=await fetchAPI(`/api/pageSchema/${e}?app=${a}&objectApiName=${n}&recordId=${i}&pageId=${t}&formFactor=`+r))&&e.schema)return e}const getSchema$3=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d2b0c083c38f",mode:"edit"};return{type:"service",body:[{type:"button",label:"编辑",id:"u:standard_edit",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:e="编辑 "+e.label,bodyClassName:"",body:[a=(t=await getPage({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:ee95697baa4f",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"",id:"u:3c5cbc0429bb"}},getSchema$2=e=>({type:"service",className:"p-0",body:[{type:"button",label:"删除",confirmText:"确定要删除此项目?",onEvent:{click:{actions:[{args:{api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",recordId:"${recordId}",objectName:"${objectName}"},requestAdaptor:"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \"${recordId}\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"},{actionType:"broadcast",args:{eventName:"@data.changed."+e.name},data:{objectName:""+e.name,__deletedRecord:!0}}]}}}],regions:["body"]}),getSchema$1=e=>({type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{data:{"&":"$$",object_name:"${objectName}"},type:"dialog",title:"导入数据",body:[{type:"form",mode:"edit",persistData:!1,promptPageLeave:!0,name:"form_edit_data_import",debug:!1,title:"",submitText:"",api:{method:"post",url:"${context.rootUrl}/graphql",data:{objectName:"queue_import_history",$:"$$"},requestAdaptor:"\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.success_count;\ndelete formData.failure_count;\ndelete formData.total_count;\ndelete formData.start_time;\ndelete formData.end_time;\ndelete formData.state;\ndelete formData.error;\ndelete formData.created;\ndelete formData.created_by;\ndelete formData.modified;\ndelete formData.modified_by;\n \n \n let fileFieldsKeys = [\"file\"];\n let fileFields = {\"file\":{\"name\":\"file\"}};\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 let query = `mutation{record: ${objectName}__insert(doc: {__saveData}){_id}}`;\n if(formData.recordId && formData.recordId !='new'){\n query = `mutation{record: ${objectName}__update(id: \"${formData._id}\", doc: {__saveData}){_id}}`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n ",responseData:{recordId:"${record._id}"},adaptor:"console.log('payload', payload)\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},dataType:"json"},initFetch:!0,body:[{type:"fieldSet",title:"通用",collapsable:!0,body:[{name:"object_name",label:"导入对象",required:!1,type:"select",joinValues:!1,extractValue:!0,autoComplete:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:"{options:objects(filters: {__filters}, top: {__top}){_id label:label value:name},count:objects__count(filters:{__filters})}",$term:"$term",$value:"$object_name.name",$:"$$",rfield:"${object_name}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n "},className:"m-1",labelClassName:"text-left",clearValueOnHidden:!1,id:"u:04295fee3896",multiple:!1,hidden:!0},{name:"queue_import",label:"数据导入",required:!0,type:"picker",labelField:"description",valueField:"_id",modalMode:"dialog",source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:queue_import(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,description,object_name,encoding,template_url,_display:_ui{object_name,encoding}},count:queue_import__count(filters:{__filters})}',$term:"$term",$self:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},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 = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\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\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\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 ",adaptor:"\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n "},size:"lg",pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:20},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"description",label:"导入描述",type:"tpl",tpl:'<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',className:"whitespace-nowrap",html:null},{name:"object_name",label:"导入对象",type:"tpl",tpl:'<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',className:"whitespace-nowrap",html:null},{name:"encoding",label:"字符代码",type:"tpl",tpl:"<div>${_display.encoding}</div>",className:"whitespace-nowrap",html:null},{name:"template_url",label:"导入模板",type:"tpl",className:"whitespace-nowrap"},null],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,autoFillHeight:!1},joinValues:!1,extractValue:!0,className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,id:"u:401df27113e0"},{name:"file",label:"Excel文件",required:!0,type:"input-file",className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/files",data:{$:"$$",context:"${context}"},adaptor:'\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/files/";\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 ',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},id:"u:0213f2cc365b"}],id:"u:4899c260d667"}],panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form",label:"对象表单",objectApiName:"queue_import_history",id:"u:e4ef598eed61",onEvent:{submitSucc:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/data/initiateImport",method:"post",data:{eventData:"${event.data}"},dataType:"json",requestAdaptor:"\napi.data = {\n importObjectHistoryId: api.body.eventData.result.data.recordId\n}\nreturn api;",adaptor:"payload.status = payload.status === 'success' ? 0 : payload.status;\nconsole.log(\"payload ssss==>\", payload)\nreturn payload;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已开始导入...",failed:"导入失败"}},actionType:"ajax",expression:"event.data.result"}]}},closeDialogOnSubmit:!0}],id:"u:dc05498d3bd4",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}},level:"default"}],regions:["body"],className:"p-0",id:"u:bd2f9c4e986f"}),getSchema$5=e=>({type:"service",className:"p-0",body:[{type:"button",label:"查看",className:"border-none",onEvent:{click:{actions:[{componentId:"",args:{blank:!1,url:"/app/${app_id}/${objectName}/view/${_id}"},actionType:"link"}]}},id:"u:ef35c9ae1d19"}],regions:["body"]}),StandardButtons={getStandardNew:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$4()}),getStandardEdit:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$3(e,t)}),getStandardDelete:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$2(e)}),getStandardDeleteMany:async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=this.scopeId||`amis-${e}-${t}-listview`,t=(this.scope||SteedosUI?.getRef(e)).getComponentById("listview_"+a.name);_.isEmpty(t.props.store.toJSON().selectedItems)?t.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):t.handleBulkAction(t.props.store.toJSON().selectedItems,[],{},t.props.bulkActions[0])}}),getStandardImportData:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$1()}),getStandardOpenView:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$5()})},getGlobalData$1=()=>({now:new Date});function getButtonVisibleOn$1(e){let t=e.visible;return e._visible&&(t=e._visible),(t=___default__default.default.isBoolean(t)?t.toString():t)?t.trim().startsWith("function")?t+".apply({\n object: uiSchema\n }, [objectName, _id, recordPermissions, data])":t:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}const getButtonVisible=(e,t)=>{if(e._visible&&(___default__default.default.startsWith(___default__default.default.trim(e._visible),"function")?(window.eval("var fun = "+e._visible),e.visible=fun):isExpression$1(e._visible)&&(e.visible=t=>{parseSingleExpression$1(e._visible,t.record,"#",getGlobalData$1(),t.userSession)})),!___default__default.default.isFunction(e.visible))return e.visible;try{return e.visible(t)}catch(t){}},standardButtonsTodo={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);___default__default.default.isEmpty(a.props.store.toJSON().selectedItems)?a.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):a.handleBulkAction(a.props.store.toJSON().selectedItems,[],{},a.props.bulkActions[0])}},getButtons=(e,t)=>{const a=e.permissions&&e.permissions.disabled_actions;let n=___default__default.default.sortBy(___default__default.default.values(e.actions),"sort");return ___default__default.default.has(e,"allow_customActions")&&(n=___default__default.default.filter(n,(t=>___default__default.default.include(e.allow_customActions,t.name)))),___default__default.default.has(e,"exclude_actions")&&(n=___default__default.default.filter(n,(t=>!___default__default.default.include(e.exclude_actions,t.name)))),___default__default.default.each(n,(a=>{a.objectName=e.name,t.isMobile&&-1<["record","record_only"].indexOf(a.on)&&"standard_edit"!=a.name&&("record_only"==a.on?a.on="record_only_more":a.on="record_more")})),t.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(e.name)&&___default__default.default.map(n,(e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")})),___default__default.default.filter(n,(e=>___default__default.default.indexOf(a,e.name)<0&&"standard_query"!=e.name))},getListViewButtons=(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"list"==e.on))),getObjectDetailButtons=(e,t)=>(e=getButtons(e,t),t=___default__default.default.filter(e,(e=>"record"==e.on||"record_only"==e.on)),___default__default.default.sortBy(t,"sort")),getObjectDetailMoreButtons=(e,t)=>(e=getButtons(e,t),t=___default__default.default.filter(e,(e=>"record_more"==e.on||"record_only_more"==e.on)),___default__default.default.sortBy(t,"sort")),getListViewItemButtons=async(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on))),getObjectRelatedListButtons=async(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"list"==e.on))),getButton=async(e,t,a)=>{var n=await getUISchema(e);if(n){var i=await getButtons(n,a);i=___default__default.default.find(i,(e=>e.name===t));if(i)return"standard_edit"==i.name&&"standard_edit"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,...await StandardButtons.getStandardEdit(n,a)}:"cms_files"!=e&&"standard_new"==i.name&&"standard_new"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,...await StandardButtons.getStandardNew(n,a)}:"standard_delete"==i.name&&"standard_delete"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardDelete(n,a)}:n.hasImportTemplates&&"standard_import_data"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardImportData(n,a)}:"standard_open_view"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardOpenView(n,a)}:"standard_delete_many"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardDeleteMany(n,a)}:i}},execute=(e,t)=>{if(e.todo)return ___default__default.default.isString(e.todo)&&___default__default.default.startsWith(___default__default.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),___default__default.default.isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},executeButton=execute;async function getObjectFieldsFilterButtonSchema(e){return{type:"button",label:"",icon:"fa fa-search",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"broadcast",args:{eventName:"broadcast_toggle_fields_filter"}}]}}}}async function getObjectFieldsFilterFormSchema(e,t,a){a=a||{};var n,i,r=[];for(n of t)___default.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],n.type)||(delete n.defaultValue,delete n.required,delete n.is_wide,delete n.readonly,delete n.hidden,delete n.omit,(i=await getFieldSearchable(n,t,a))&&r.push(i));return ___default.map(r,"name"),a.enableSearchableFieldsVisibleOn&&r.forEach((function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`})),r}async function getObjectFieldsFilterBarSchema(e,t,a){return a=a||{},t=await getObjectFieldsFilterFormSchema(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a)),{type:"service",name:"service_listview_filter_form",data:{},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(!defaultSearchableFields && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n defaultSearchableFields = listView && listView.searchable_fields;\n if(defaultSearchableFields && defaultSearchableFields.length){\n defaultSearchableFields = _.map(defaultSearchableFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.filter(_.values(data.uiSchema.fields), (field) => {\n return field.searchable;\n }),\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/" + data.listViewId ;\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 setData({ showFieldsFilter: true });\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===a.formFactor?"slds-filters__body p-0 mb-2":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2"},{type:"wrapper",body:{type:"wrapper",body:[{type:"button",label:"搜索",icon:"fa fa-search",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",onEvent:{click:{actions:[{actionType:"custom",script:'\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] = "";\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n '}]}}},{type:"button",label:"设置搜索项",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:"设置搜索项",body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:null,requestAdaptor:"",adaptor:""},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:"确认",onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\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 else{\n searchableFieldsStoreKey += listViewId;\n }\n sessionStorage.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] = "";\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n // const removedValues = {};\n removedKeys.forEach(function(key){\n delete localListViewProps[key];\n // removedValues[key] = "";\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n // ===END===\n '},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:"border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap "+(!a.isLookup&&"mt-2"),visibleOn:"this.showFieldsFilter"},className:"bg-white"}}function getObjectListHeaderFirstLine(e,t,a){var{icon:n,label:i}=e;const r=[];___default.each(e.list_views,((t,a)=>{r.push({type:"button",label:t.label,actionType:"link",link:`/app/\${appId}/${e.name}/grid/`+a})}));var o=getListViewButtons(e,{}),s=(o=___default.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),new RegExp("_","g"));return{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="slds-icon slds-icon_container slds-icon-standard-${n&&n.replace(s,"-")} slds-page-header__icon" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${n}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center",valign:"middle"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",className:"text-md leading-none text-black"},{type:"dropdown-button",className:"",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",size:"sm",hideCaret:!0,btnClassName:"!bg-transparent !border-none !hover:border-none text-lg h-5 font-bold p-0 text-black leading-none",buttons:r}],md:"",columnClassName:"p-l-xs"}],className:"flex justify-between"}],md:"auto"},{body:{type:"flex",items:o},md:"auto",valign:"middle"}],className:"flex justify-between"}}async function getObjectListHeaderSecordLine(e,t,a){return e="listview_"+e.name,{type:"grid",columns:[{body:[{type:"tpl",tpl:"${$count} 个项目",visibleOn:"this.$count >= 0",inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:14},id:"u:1661f8471235"}],md:"auto",columnClassName:"flex items-center"},{body:[await getObjectFieldsFilterButtonSchema(),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:e,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:"flex justify-between"}}async function getObjectListHeaderFieldsFilterBar(e,t,a){var n=___default.keys(e.fields);n=___default.sortBy(___default.compact(___default.map(n,(t=>e.fields[t]))),"sort_no");return await getObjectFieldsFilterBarSchema(e,n,a)}async function getObjectListHeader$1(e,t,a){return[{type:"wrapper",body:[getObjectListHeaderFirstLine(e)],className:"bg-gray-100 sm:rounded-tl sm:rounded-tr p-4 -mb-4"}]}async function getObjectRecordDetailHeader(e,t,a){var{showRecordTitle:a=!0}=a||{},{name:n,label:i,icon:r}=e,o=getObjectDetailButtons(e,{}),s=getObjectDetailMoreButtons(e,{recordId:t,objectName:n}),l=(o=___default.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),s=___default.map(s,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e)}))),s=(o.push({type:"steedos-dropdown-button",label:"",buttons:s,className:"slds-icon"}),new RegExp("_","g")),s=r&&r.replace(s,"-"),[]);a&&l.push({body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="slds-icon slds-icon_container slds-icon-standard-${s} slds-page-header__icon" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${r}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",className:"leading-4 text-md"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",className:"leading-5 text-xl font-bold"}],columnClassName:"p-l-xs"}],className:"flex justify-between"}],md:"auto"}),l.push({body:{type:"flex",items:o},md:"auto"}),s=[{type:"service",id:`page_readonly_${n}_header`,data:{"&":"$$",objectName:n,_id:t,recordPermissions:"${record.recordPermissions}",uiSchema:e},body:[{type:"grid",columns:l,className:"flex justify-between"}],messages:{},hiddenOn:"${recordLoaded != true}"}];return a&&s.push({type:"service",body:[{type:"grid",columns:[l[0]],className:"flex justify-between"}],messages:{},hiddenOn:"${recordLoaded == true}"}),{type:"service",bodyClassName:"",name:"page",data:{"&":"$$",objectName:n,_id:t,recordPermissions:e.permissions,uiSchema:e,record:"${record}"},body:s,className:""}}async function getObjectRecordDetailRelatedListHeader(e,t){var a=e.icon,n=(e=await getObjectRelatedListButtons(e,{}),e=___default.map(e,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),new RegExp("_","g"));return{type:"wrapper",body:[{type:"grid",valign:"middle",columns:[{body:[{type:"grid",valign:"middle",className:"flex justify-between",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="w-6 h-6 slds-icon slds-icon_container slds-icon-standard-${a&&a.replace(n,"-")}" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${a}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a class="text-black text-base font-bold" href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${t}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:""}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:e},md:"auto"}],className:"flex justify-between"}],className:"p-3"}}async function getObjectRelatedListHeader(e,t,a){}const getDisplayAsButton=function(e){return{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",buttons:[{label:"显示为",children:[{type:"button",label:"表格",onClick:"const url = document.location.pathname + '?display=grid'; props.env.jumpTo(url);"},{type:"button",label:"分栏视图",onClick:"const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);"}]}]}},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});\nfilterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n';function getObjectHeaderToolbar(e,t,{showDisplayAs:a=!1,hiddenCount:n=!1}={}){return"SMALL"===t?[n?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",onEvent:{click:{actions:[{actionType:"custom",script:'\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 '}]}}},{label:"",icon:"fa fa-search",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}},a?getDisplayAsButton():{}]:["bulkActions",{type:"columns-toggler",className:"hidden"},n?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"reload",align:"right",tooltipPlacement:"bottom",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},{type:"button",label:"",icon:"fa fa-download",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",tooltipPlacement:"bottom",visibleOn:"${!isLookup && global.user.is_space_admin}",tooltip:"导出Excel",onEvent:{click:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/record/export/${object_name}",method:"get",messages:{},requestAdaptor:'// 获取列表视图的属性\nlet uiSchema = api.body.uiSchema;\nlet list_views = uiSchema.list_views;\nlet list_views_name = api.body.listName;\nlet col = list_views[list_views_name].columns;\nlet sort_test = list_views[list_views_name].sort;\n\n// 获取下载字段\nlet select = [];\n_.each(col, (col) => {\n if (typeof(col.field) == \'undefined\')\n select.push(col);\n else select.push(col.field);\n});\n// 获取排序字段\nlet sort = [];\n_.forEach(sort_test, (sortField) => {\n if (typeof(sortField.field_name) == \'undefined\')\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n})\n\nlet orders = [];\n_.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == "desc")\n order_tmp = value[0] + \' desc\';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n});\nlet order = orders.join(\',\');\n\nlet filename = uiSchema.label + "-" + list_views[list_views_name].label;\nurl_tmp = api.url.split(\'?\')[0];\napi.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;\n\n// 判断sort\nif (sort.length > 0)\n api.url += "&$orderby=" + order;\nlet filter = JSON.stringify(list_views[list_views_name].filters);\nif (filter)\n api.url = api.url + "&filters=" + filter; \n return api;',data:{uiSchema:"${uiSchema}",listName:"${listName}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}]}}},{label:"",icon:"fa fa-search",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}},a?getDisplayAsButton():{}]}function getObjectFooterToolbar(e,t){return"SMALL"===t?["load-more"]:["statistics","pagination"]}async function getObjectFilter(e,t,a){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,a)]}}async function getSource(e,t){var a=t.objectName,n=await getFindQuery({name:a},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});(a=(n.query=n.query.replace(/,count\:.+/,"}"),await getFindQuery({name:a},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=""+e.name;return e._prefix&&(i=""+e._prefix+e.name),t.fieldNamePrefix&&(i=""+t.fieldNamePrefix+i),n.$value="$"+i,a=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,{method:"post",url:getApi$2(),requestAdaptor:a,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 ',data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){var a=t.objectName,n=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let i=e.filters;return"function"==typeof(i="string"==typeof i?(i=new Function("return "+i))():i)&&(i=i(e)),n.query=n.query.replace(/,count\:.+/,"}"),n.query=n.query.replace("{_id}","{{__fields}}"),e=`\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 = "${a}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.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 `,{method:"post",url:getApi$2()+"?dep=${value}",requestAdaptor:e,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 ",data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){e=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let t="";return e?getListViewSort(e):t}async function lookupToAmisTreeSelect(e,t,a){if(!e)return{};a=a||{};var n={type:getAmisStaticFieldType("tree-select",t)};return t?n.tpl=await getLookupTpl(e,a):(t=await getUISchema(a.objectName),a.sort=getRefListViewSort(t),Object.assign(n,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,a),deferApi:await getDeferApi(e,a)}),e.multiple&&Object.assign(n,{joinValues:!1}),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const getReferenceTo=async e=>{let t=e.reference_to;if(t){"users"===t&&(t="space_users",e.reference_to_field="user");var a=await getUISchema(t);if(!a)return null;let n=null,i=e.reference_to_field;return i=i||a.idFieldName||"_id",n="_id"===i?{name:"_id",label:"ID",type:"text",toggled:!1}:a.fields[i]||{name:i},{objectName:t,valueField:n,labelField:a.fields[a.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:a.NAME_FIELD_KEY||"name"}}};async function lookupToAmisPicker(e,t,a){var n=await getReferenceTo(e);if(n){const o=await getUISchema(n.objectName),s=[];let l=0;const d=[],c=[];var i=___default__namespace.find(o.list_views,((e,t)=>"all"===t));i&&i.columns?___default__namespace.each(i.columns,(function(e){___default__namespace.isString(e)&&o.fields[e]?c.push(o.fields[e]):___default__namespace.isObject(e)&&o.fields[e.field]&&c.push(Object.assign({},o.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(o.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),c.push(e))})),___default__namespace.each(___default__namespace.sortBy(c,"sort_no"),(function(e){l<5&&(___default__namespace.find(s,(function(t){return t.name===e.name}))||(l++,s.push(e),e.searchable&&d.push(e.name)))}));const u={[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField};___default__namespace.each(s,(e=>{e.hidden||(u[e.name]=e)}));let p="";if(i&&(p=getListViewSort(i)),(i=await getApi$1(o,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).url){const t=[],a=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),a.push("this."+e)})),0<t.length&&(i.url=i.url+"?"+t.join("&"),i.sendOn=""+a.join(" && "))}i.data.$term="$term",i.data.$self="$$",i.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 : "${p}";\n var allowSearchFields = ${JSON.stringify(d)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${n.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${n.valueField.name}", "=", selfData.value]];\n }\n }\n\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const filtersFunction = ${e._filtersFunction};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\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 `,i.adaptor=`\n const enable_tree = ${o.enable_tree};\n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `;let m=20,f=(o.paging&&!1===o.paging.enabled&&(m=1e3),null);"SMALL"===a.formFactor?f=await getListSchema$1(s,{top:m,...a,actions:!1}):((f=await getTableSchema$1(s,{labelFieldName:o.NAME_FIELD_KEY,top:m,...a})).headerToolbar=getObjectHeaderToolbar(o,a.formFactor),o.permissions.allowCreate&&((r=await getSchema$4(o,{appId:a.appId,objectName:o.name,formFactor:a.formFactor})).align="right",f.headerToolbar.push(r)),f.footerToolbar=getObjectFooterToolbar(),!1!==a.filterVisible&&(r=a.filterLoopCount||0,r++,f.filter=await getObjectFilter(o,u,{isLookup:!0,...a,filterLoopCount:r})),f.data=Object.assign({},f.data,{"&":"$$",objectName:o.name,uiSchema:o,listName:"all",isLookup:!0}),f.onEvent||(f.onEvent={}),f.onEvent["@data.changed."+o.name]={actions:[{actionType:"reload"}]});var r={type:getAmisStaticFieldType("picker",t),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:i,size:"lg",pickerSchema:f,joinValues:!1,extractValue:!0};return e.multiple&&(r.multiple=!0,r.extractValue=!0),t&&(r.tpl=await getLookupTpl(e,a)),r}}async function lookupToAmisSelect(e,t,a){var n=await getReferenceTo(e),i=n&&n.valueField?.name||"_id";let r;n?(o=await getFindQuery({name:n.objectName},null,{[n.labelField.name]:Object.assign({},n.labelField,{alias:"label"}),[n.valueField.name]:Object.assign({},n.valueField,{alias:"value"})},{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),(r=await getApi$1({name:n.objectName},null,{[n.labelField.name]:Object.assign({},n.labelField,{alias:"label"}),[n.valueField.name]:Object.assign({},n.valueField,{alias:"value"})},{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[o.query]})).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 '):r={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}};var o=(o=n&&await getUISchema(n.objectName))&&___default__namespace.find(o.list_views,((e,t)=>"all"===t));let s="";if(o&&(s=getListViewSort(o)),r.url){const t=[],a=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),a.push("this."+e)})),0<t.length&&(r.url=r.url+"?"+t.join("&"),r.sendOn=""+a.join(" && "))}return r.data.$term="$term",r.data.$value=a.isRefToMutiple?`$${e.name}.ids`:"$"+e.name,___default__namespace.each(e.depend_on,(function(e){r.data[e]="$"+e})),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${n?.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(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${s}";\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 = "${e.multiple?"in":"="}";\n var optionsFilters = [["${i}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${i}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,n&&n.labelField.name,n&&n.valueField.name,(e.optionsFunction||e._optionsFunction)&&(r.adaptor=`\n payload.data.options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n return payload;\n `),(o={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,source:r,autoComplete:r,searchable:!0}).menuTpl="${icon ? `<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='${context.rootUrl}/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>` : label}",e.multiple&&(o.multiple=!0,o.extractValue=!0),t&&(o.tpl=await getLookupTpl(e,a)),o}async function getApi$1(e,t,a,n){return e=await getFindQuery(e,t,a,n),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,a){var n,i;return t?{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,a)}:!e.reference_to||___default__namespace.isString(e.reference_to)||t?(n=await getReferenceTo(e))?(i=await getUISchema(n.objectName),"space_users"===n.objectName&&"user"===e.reference_to_field?lookupToAmisSelectUser(e,t,a):1==i.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?lookupToAmisPicker(e,t,a):i.enable_tree?lookupToAmisTreeSelect(e,t,Object.assign({},a,{labelField:n.labelField?.name||"name",valueField:n.valueField?.name||"_id",objectName:n.objectName})):lookupToAmisSelect(e,t,a)):lookupToAmisSelect(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function lookupToAmisSelectUser(e,t,a){return getSelectUserSchema(e,t,a)}const getMarkdownFieldSchema=(e,t,a)=>t?{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:e.name,language:"markdown"},{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]},getHtmlFieldSchema=(e,t,a)=>t?{type:"html",name:e.name}:{type:"input-rich-text",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,a){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":___default__namespace.includes(AmisFormInputs,e)?"input-"+e:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{var t=e.type,a=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`\n <% let fileData = data.${e.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 <% });} %>`}:void 0},getAmisFileEditSchema=e=>{var t=getFileTableName(e);t={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/"+t,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\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 `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},getAmisFileSchema=(e,t)=>(t?getAmisFileReadonlySchema:getAmisFileEditSchema)(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getBaseFields(e){let t="m-1";return[{name:"createdInfo",label:"创建人",type:"static",labelClassName:"text-left",className:t=e?""+t:t,tpl:getCreatedInfoTpl()},{name:"modifiedInfo",label:"修改人",type:"static",labelClassName:"text-left",className:t,tpl:getModifiedInfoTpl()}]}function getAmisFieldType(e){switch(e.type){case"text":case"autonumber":return"text";case"textarea":return"textarea";case"html":return"html";case"markdown":return"markdown";case"select":case"lookup":return"select";case"boolean":return"checkbox";case"date":return"date";case"datetime":return"datetime";case"number":case"currency":case"percent":return"number";case"password":return"password";case"master_detail":return"picker";case"url":return"url";case"email":return"email";case"image":return"image";case"formula":case"summary":break;case"grid":return"table";default:console.log("convertData default",e.type)}}function getObjectFieldSubFields(e,t){var a=Object.assign({subFields:[]},e);t=___default__namespace.filter(t,(function(t){var a=t.name.startsWith(e.name+".")&&___default__namespace.split(t.name,".").length<3;return a&&(t._prefix=e.name+"."),a}));return a.subFields=t,a}function getGridFieldSubFields(e,t){var a=Object.assign({subFields:[]},e);t=___default__namespace.filter(t,(function(t){var a=t.name.startsWith(e.name+".");return a&&(t._prefix=e.name+"."),a}));return a.subFields=t,a}function getPermissionFields(e,t){const a=[],n=[];return ___default__namespace.each(e.fields,((e,t)=>{___default__namespace.has(e,"name")||(e.name=t),n.push(e)})),___default__namespace.each(___default__namespace.sortBy(n,"sort_no"),(function(e){e.hidden||a.push(Object.assign({},e,{permission:{allowEdit:!0}}))})),a}function getSelectFieldOptions(e){const t=e.data_type||"text",a=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":a.push({label:e.label,value:Number(e.value)});break;case"text":a.push({label:e.label,value:String(e.value)});break;case"boolean":a.push({label:e.label,value:"false"!==e.value})}})),a}async function convertSFieldToAmisField(e,t,a){if(!___default__namespace.includes(OMIT_FIELDS,e.name)||1==a.showSystemFields){var n={name:a.fieldNamePrefix?""+a.fieldNamePrefix+e.name:e.name,label:e.label,labelRemark:e.inlineHelpText,required:(___default__namespace.has(a,"required")?a:e).required};let l={};switch(e.type){case"text":l.type=getAmisStaticFieldType("text",t);break;case"textarea":l.type=getAmisStaticFieldType("textarea",t),l.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":l=getHtmlFieldSchema(e,t);break;case"markdown":l=getMarkdownFieldSchema(e,t);break;case"select":l={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:t?getSelectTpl(e):null},e.multiple&&(l.multiple=!0,l.extractValue=!0);break;case"boolean":l={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":l={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":l={type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":l={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":l={type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":l={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":l={type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":l=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":l=Object.assign({},e,n);break;case"input-range":l={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":l={type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":l={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":l=await lookupToAmis(e,t,a);break;case"autonumber":t&&(l={type:"static-text"});break;case"url":l={type:getAmisStaticFieldType("url",t)};break;case"email":l={type:getAmisStaticFieldType("email",t)};break;case"avatar":case"image":case"file":l=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(l.type=getAmisStaticFieldType(e.data_type,t));break;case"code":l={type:"editor",language:e.language};break;case"toggle":l={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){l={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const n of e.subFields){var i=n.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(e.name+".",""),r=await convertSFieldToAmisField(Object.assign({},n,{name:i,isTableField:!0}),t,a);r&&(delete r.name,delete r.label,i={name:i,label:n.label,quickEdit:!t&&r},"lookup"===n.type&&(i.type=r.type,i.tpl=r.tpl),l.columns.push(i))}}break;case"object":if(e.subFields)for(var o of(l={type:"combo",items:[]},e.subFields)){let n=o.name.replace(e.name+".$.","").replace(e.name+".","");"grid"===o.type?o=await getGridFieldSubFields(o,a.__permissionFields):t&&(n=e.name+"."+n);var s=await convertSFieldToAmisField(Object.assign({},o,{name:n}),t,a);s&&(delete s.name,delete s.label,l.items.push(Object.assign({},s,{name:n,label:o.label})))}}return ___default__namespace.isEmpty(l)?void 0:(e.is_wide||"group"===l.type?l.className="col-span-2 m-1":l.className="m-1",t&&(l.className=l.className+" md:border-b"),t&&(l.quickEdit=!1),e.visible_on&&(e.visible_on.startsWith("{{")?l.visibleOn=""+e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data."):l.visibleOn=""+e.visible_on.replace(/formData./g,"data.")),"group"===l.type?(l.body[0]=Object.assign({},n,l.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),l):Object.assign({},n,l,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:n.name}))}}async function getFieldSearchable(e,t,a){var n=a.filterLoopCount||0;let i=e,r=("grid"===i.type?i=await getGridFieldSubFields(e,t):"object"===e.type&&(i=await getObjectFieldSubFields(e,t)),"__searchable__");if(i.name.indexOf(".")<0&&(e=___default.cloneDeep(i),___default.includes(["textarea","html","code","autonumber"],i.type)&&(e.type="text"),"number"!==i.type&&"currency"!==i.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,r+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,r+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,r+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,r+="between__"),"users"===i.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,t=await convertSFieldToAmisField(e,!1,Object.assign({},a,{fieldNamePrefix:r,required:!1,showSystemFields:!0,filterVisible:n<5}))))return t}var index=Object.freeze({__proto__:null,OMIT_FIELDS:OMIT_FIELDS,getBaseFields:getBaseFields,getAmisFieldType:getAmisFieldType,getObjectFieldSubFields:getObjectFieldSubFields,getGridFieldSubFields:getGridFieldSubFields,getPermissionFields:getPermissionFields,getSelectFieldOptions:getSelectFieldOptions,convertSFieldToAmisField:convertSFieldToAmisField,getFieldSearchable:getFieldSearchable,getAmisStaticFieldType:getAmisStaticFieldType});const API_CACHE=100;function getReadonlyFormAdaptor(e){let t="";var a=___default__namespace.filter(e,(function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)})),n=___default__namespace.map(___default__namespace.filter(e,(function(e){return e.name.indexOf(".")<0&&("object"===e.type||"grid"===e.type)})),"name");return ___default__namespace.each(a,(function(e){var a;___default__namespace.includes(OMIT_FIELDS,e.name)||(e.name,e.options?(a=JSON.stringify({options:e.options}),t+=`var ${e.name}Options= (${a}).options;`):e.optionsFunction?t+=`var ${e.name}Options = eval(${e.optionsFunction.toString()})(api.data);`:e._optionsFunction&&(t+=`var ${e.name}Options = eval(${e._optionsFunction})(api.data);`),e.multiple?t+=`data.${e.name}__label = _.map(_.filter(${e.name}Options, function(option){return _.includes(data.${e.name}, option.value)}), 'label');`:t=(t+=`var ${e.name}Selected = _.find(${e.name}Options, function(option){return data.${e.name} == option.value});`)+`data.${e.name}__label = ${e.name}Selected ? ${e.name}Selected.label:null;`)})),`\n if(payload.data.data){\n var data = payload.data.data[0];\n var gridAndObjectFieldsName = ${JSON.stringify(n)};\n try{\n ${t}\n ${getScriptForAddUrlPrefixForImgFields(e)}\n ${getScriptForRewriteValueForFileFields(e)}\n }catch(e){\n console.error(e)\n }\n\n try{\n _.each(gridAndObjectFieldsName, function(name){\n data[name] = data._display[name];\n })\n }catch(e){\n console.error(e)\n }\n payload.data = data;\n window.postMessage(Object.assign({type: "record.loaded"}, {record: data}), "*")\n }\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n`}async function getReadonlyFormInitApi(e,t,a,n){return{method:"post",url:getApi$2()+"?rf="+(new Date).getTime(),cache:API_CACHE,adaptor:getReadonlyFormAdaptor(a),data:await getFindOneQuery$1(e,t,a,n),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getScriptForAddUrlPrefixForImgFields(e){let t=[],a={};return e.forEach((e=>{___default__namespace.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),t.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(t)};\n let imgFields = ${JSON.stringify(a)};\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)=>{ return i.url });\n }\n }else{\n data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;\n }\n }\n })\n `:""}function getScriptForRewriteValueForFileFields(e){let t=[],a={};return e.forEach((e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\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 `:""}async function getEditFormInitApi(e,t,a){return(e=await getFindOneQuery$1(e,t,a)).recordId="${recordId}",e.objectName="${objectName}",e.uiSchema="${uiSchema}",e.global="${global}",e.context="${context}",e.defaultData="${defaultData}",{method:"post",url:getApi$2(),cache:API_CACHE,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 return api;\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 _.each(dataKeys, function(key){\n if(fieldKeys.indexOf(key)<0){\n delete data[key];\n }\n })\n\n if(data){\n ${getScriptForAddUrlPrefixForImgFields(a)}\n ${getScriptForRewriteValueForFileFields(a)}\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?.fields, function(field){\n var value = SteedosUI.getFieldDefaultValue(field, api.body.global);\n if(value){\n defaultValues[field.name] = value;\n }\n });\n if(defaultData && _.isObject(defaultData) && !_.isArray(defaultData)){\n defaultValues = Object.assign({}, defaultValues, defaultData)\n }\n initialValues = defaultValues;\n }\n // data下的变量需要在保存接口(getSaveApi)中被删除。\n payload.data = {\n initialValues,\n editFormInited: true\n }\n return payload;\n `,data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getSaveApi(e,t,a,n){return{method:"post",url:getApi$2(),data:getSaveQuery(e,t),requestAdaptor:getSaveRequestAdaptor(a),responseData:{recordId:"${record._id}"},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 ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getBatchDelete(e){return{method:"post",url:getApi$2(),requestAdaptor:`\n var ids = api.data.ids.split(",");\n var deleteArray = [];\n ids.forEach((id,index)=>{\n deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);\n })\n api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};\n return api;\n `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let t=[];return t.length=0,___default__namespace.forEach(e,(e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var a=e.name,n=/\w+\.\w+/.test(a);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),n||e.hidden||t.push(Object.assign({name:a},e,{permission:{allowEdit:!0}}))})),t},getSection=async(e,t,a,n)=>{if((t=___default__namespace.filter(t,{group:a})).length!=___default__namespace.filter(t,["hidden",!0]).length){var i,r=[];for(const a of t){let t=a;"grid"===a.type?t=await getGridFieldSubFields(a,e):"object"===a.type&&(t=await getObjectFieldSubFields(a,e)),t.name.indexOf(".")<0&&(n.__permissionFields=e,(i=await convertSFieldToAmisField(t,t.readonly,n))&&r.push(i))}return a={type:"fieldSet",title:a,collapsable:!0,body:r},0<(t=___default__namespace.map(___default__namespace.compact(___default__namespace.map(r,"visibleOn")),(e=>e))).length&&r.length===t.length&&(a.visibleOn=""+t.join(" || ")),a}},getSections=async(e,t,a)=>{var n=getFieldSchemaArray(t),i=[];for(const t in ___default__namespace.groupBy(n,"group")){var r=await getSection(e,n,t,a);0<r.body.length&&i.push(r)}return i};async function getFormBody(e,t,a){return getSections(e,t,a)}const defaultsDeep=(...e)=>{let t={};return ___default.toArray(e).reverse().forEach((e=>{___default.mergeWith(t,e,((e,t)=>___default.isArray(t)?t:void 0))})),t};function getBulkActions(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",className:"hidden",id:"batchDelete",api:getBatchDelete(e.name)}]}async function getObjectCRUD(e,t,a){var{top:n,showDisplayAs:i=!1,crudClassName:r=""}=a,o=e.paging&&!1===e.paging.enabled,s=e.enable_tree,l=getBulkActions(e),d={headerToolbarClassName:"px-4 py-2 border-gray-300 bg-gray-100 border-solid border-b",footerToolbar:getObjectFooterToolbar(e,a.formFactor,{disableStatistics:!1===a.queryCount}),filter:!!a.filterVisible&&await getObjectFilter(e,t,a)};"SMALL"!==a.formFactor&&Object.assign(d,{bulkActions:0!=a.bulkActions&&l}),a.queryCount=!0,o||s?(a.top=5e4,d.footerToolbar=[],a.queryCount=!0):n&&(d.footerToolbar=[],a.queryCount=!1),d.headerToolbar=getObjectHeaderToolbar(e,a.formFactor,{showDisplayAs:i,hiddenCount:!1===a.queryCount});let c=null;l="listview_"+e.name,a.formFactor;{let n=e.NAME_FIELD_KEY||"name";"organizations"===e.name&&(n="name"),o=await getTableSchema$1(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:n},a)),delete o.mode,c=Object.assign({},o,{type:"crud",primaryField:"_id",affixHeader:!1,id:l,name:l,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a),hiddenOn:a.tableHiddenOn,autoFillHeight:!1,className:"flex-auto "+(r||""),crudClassName:r},d)}if((s=a.defaults)&&(n=s.listSchema||{},c=defaultsDeep({},n,c),i=s.headerSchema,o=s.footerSchema,i||o)){let e=[c];i&&(___default__default.default.isArray(i)?e=___default__default.default.union(i,e):e.unshift(i)),o&&(___default__default.default.isArray(o)?e=___default__default.default.union(e,o):e.push(o)),c=e}return{type:"service",className:"",id:"service_"+l,name:"page",data:{objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:c}}const getGlobalData=e=>{var t=getSteedosAuth();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}},getFormFields=(e,t)=>{const{fieldsExtend:a,includedFields:n,excludedFields:i}=t;let r={};if(___default__default.default.forEach(e.fields,((e,t)=>{lodash.has(e,"name")||(e.name=t),a&&a[t]?r[e.name]=Object.assign({},e,a[t],{name:e.name}):r[e.name]=e})),!___default__default.default.isEmpty(n)&&___default__default.default.isArray(n)){const e={};___default__default.default.each(n,((t,a)=>{r[t]&&(e[t]=Object.assign({},r[t],{sort_no:a}))})),r=e}return!___default__default.default.isEmpty(i)&&___default__default.default.isArray(i)&&___default__default.default.each(i,(e=>{delete r[e]})),lodash.sortBy(___default__default.default.values(r),"sort_no")};async function getObjectForm(e,t){var{recordId:a,layout:n="normal",labelAlign:i,defaults:r}=t,o=___default__default.default.values(e.fields),s=getFormFields(e,t),r=r&&r.formSchema||{},n=(___default__default.default.has(r,"className")&&(r.className="steedos-amis-form"),{type:"service",className:"p-0",name:"page_edit_"+a,api:await getEditFormInitApi(e,a,o),data:{editFormInited:!1},initApi:null,initFetch:null,body:[defaultsDeep({},r,{type:"form",mode:n,data:{"&":"${initialValues}"},labelAlign:i,persistData:!1,promptPageLeave:!0,canAccessSuperData:!1,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,o),initFetch:"new"!=a,body:await getFormBody(o,s,t),panelClassName:"m-0 sm:rounded-lg shadow-none border-none",bodyClassName:"p-0",className:"steedos-amis-form",hiddenOn:"${editFormInited != true}",onEvent:{submitSucc:{weight:0,actions:[{actionType:"broadcast",args:{eventName:"@data.changed."+e.name},data:{objectName:""+e.name}}]}}})]});return r.id&&(n.id="service-"+r.id),n}async function getObjectDetail(e,t,a){var{layout:n="normal",labelAlign:i,formInitProps:r}=a,o=___default__default.default.values(e.fields),s=getFormFields(e,a),l="detail_"+t;return{type:"service",name:"page_readonly_"+t,id:l,data:{global:getGlobalData("read"),context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},api:await getReadonlyFormInitApi(e,t,o,r),body:[{type:"wrapper",hiddenOn:"${recordLoaded != true}",className:"p-0 m-0",body:{type:"form",mode:n,labelAlign:i,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(___default.map(o,(e=>(e.readonly=!0,e))),s,Object.assign({},a,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[],onEvent:{["@data.changed."+e.name]:{actions:[{actionType:"reload",componentId:l,expression:"this.__deletedRecord != true"},{args:{url:"/app/${appId}/${objectName}/grid/${side_listview_id}",blank:!1},actionType:"link",expression:"this.__deletedRecord === true"}]}}}}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}},{actionType:"setValue",args:{value:{recordLoaded:!0}}}]}}}}async function getTableColumns(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const i of e)if(!i.is_name&&i.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===i.type||"image"===i.type||"file"===i.type)a.push({type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(i)});else{var n=await getFieldTpl(i,t);let e="text";n?e="tpl":"html"===i.type&&(e="markdown"),i.hidden||i.extra||a.push({name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:n,toggled:i.toggled,className:"textarea"===i.type?"min-w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===i.type||null})}else n=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${i.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `,a.push({type:"button",label:`<%=data.versions ? data.name : "${i.label}"%>`,className:"whitespace-nowrap",level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:n,expression:"!!window?.nw?.require"}]}}});return a}function getMobileLines(e){let t=[],a=[],n=!1,i=!0,r="",o="flex items-center justify-between h-[20px]";return e.forEach((function(e){n&&t.length<2&&(t.push({type:"wrapper",body:a,size:"none",className:o}),a=[]),i?(r="steedos-listview-item-left truncate",e.field.is_wide&&(r="steedos-listview-item-wide truncate"),0===t.length&&(r+=" font-bold text-gray-800")):r="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",a.push({type:"tpl",tpl:e.tpl,className:r}),n=i=!!e.field.is_wide||!i})),a.length&&t.length<2&&t.push({type:"wrapper",body:a,size:"none",className:o}),t}async function getMobileTableColumns(e,t){var a=[];let n={};var i=[];for(const a of e){let e="";e=(e=a.is_name||a.name===t.labelFieldName?(n=a,t.onlyDisplayLabel=!0,await getFieldTpl(a,t)):"avatar"===a.type||"image"===a.type||"file"===a.type?`\${_display.${a.name}.name}`:("lookup"!==a.type&&"master_detail"!==a.type||(t.onlyDisplayLabel=!0),await getFieldTpl(a,t)))||`\${${a.name}}`,a.hidden||a.extra||i.push({field:a,tpl:e})}e=getNameTplUrl(n,t);var r=getMobileLines(i);return a.push({name:n.name,label:n.label,sortable:n.sortable,type:"button",level:"link",actionType:"link",link:e,innerClassName:"steedos-listview-item block text-gray-500",body:{type:"wrapper",body:r,size:"none",className:"p-1"}}),a}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;return e._visible&&(t=e._visible),(t=___default.isBoolean(t)?t.toString():t)?t.trim().startsWith("function")?t+"(objectName, _id, recordPermissions, data)":t:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}async function getTableOperation(e){e=e.buttons;const t=[];if(___default.each(e,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(t.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload.recordPermissions = payload;\n return payload;\n "}}]}}async function getTableSchema$1(e,t){let a=[];return"SMALL"===(t=t||{}).formFactor?a=await getMobileTableColumns(e,t):(a=await getTableColumns(e,t)).push(await getTableOperation(t)),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:a,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}async function getTableApi(e,t,a){const n=[];let{filter:i,filtersFunction:r,sort:o,top:s,setDataToComponentId:l=""}=a,d=null;(i=(i=___default__namespace.isArray(i)?___default__namespace.map(i,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):i)||[])&&(d=i),___default__namespace.each(t,(function(e){e.searchable&&n.push(e.name)}));const c={},u=[];t.forEach((e=>{___default__namespace.includes(["image","avatar","file"],e.type)&&(u.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})}));var p=e.key_field||"_id";return(t=await getApi(e,null,t,{count:a.queryCount,alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.data.listViewId="${listViewId}",t.requestAdaptor=`\n // selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\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 = "${a.formFactor}";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);\n }\n }\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n ${d?`var systemFilters = ${JSON.stringify(d)};`:"var systemFilters = [];"}\n const filtersFunction = ${r};\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\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 : "${o||""}";\n var allowSearchFields = ${JSON.stringify(n)};\n if(api.data.$term){\n userFilters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [["${p.name}", "=", selfData.value]];\n }\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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 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 userFilters.push(keywordsFilters);\n };\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters.push('and');\n filters.push(userFilters)\n }\n }\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 ${a.requestAdaptor||""}\n return api;\n `,t.adaptor=`\n const enable_tree = ${e.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(c)};\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, 'url')\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n\n\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.body.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\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 = "${a.formFactor}";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n selfData.page = formFactor === "SMALL" ? 1 : (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 = "${l}";\n if(setDataToComponentId){\n SteedosUI.getRef(api.body.$self.$scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ${a.adaptor||""}\n return payload;\n `,t}async function getApi(e,t,a,n){return e=await getFindQuery(e,t,a,n),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRecordPermissionsApi(e,t,a){return e=getRecordPermissionsQuery(e,t,a),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const DEFAULT_CALENDAR_OPTIONS={startDateExpr:"start",endDateExpr:"end",allDayExpr:"is_all_day",textExpr:"name"};async function getCalendarApi(e,t,a){var n=(a=a||{}).calendarOptions;const i=[];let{filter:r,sort:o,top:s,setDataToComponentId:l=""}=a;s=s||200,r=(r=___default__default.default.isArray(r)?___default__default.default.map(r,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):r)||[],___default__default.default.each(t,(function(e){e.searchable&&i.push(e.name)}));a=e.idFieldName||"_id";var d=e.key_field||"_id";return(e=await getApi(e,null,t,{alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",e.data.$self="$$",e.data.filter="$filter",e.data.pageSize=s||10,e.requestAdaptor=`\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = api.data.filter || ${JSON.stringify(r)} || [];\n const eventFetchInfo = selfData.fetchInfo;\n const startDateExpr = "${n.startDateExpr}";\n const endDateExpr = "${n.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 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 : "${o}";\n var allowSearchFields = ${JSON.stringify(i)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [["${d.name}", "=", selfData.value]];\n }\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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 `,e.adaptor=`\n window.postMessage(Object.assign({type: "listview.loaded"}), "*");\n const setDataToComponentId = "${l}";\n if(setDataToComponentId){\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["${a}"],\n title: n["${n.textExpr}"],\n start: n["${n.startDateExpr}"],\n end: n["${n.endDateExpr}"],\n allDay: n["${n.allDayExpr}"]\n }\n });\n const successCallback = selfData.successCallback;\n const failureCallback = selfData.failureCallback;\n successCallback(events);\n return payload;\n `,e}function getCalendarRecordPermissionsApi(e,t){return(e=getRecordPermissionsApi(e,t,{alias:"rows",limit:1,fields:["allowEdit"]})).data.$self="$$",e.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 ",e}function getCalendarRecordSaveApi(e,t){var a={},n=e.idFieldName||"_id";a[n]="${event.data.event.id}",e=e.NAME_FIELD_KEY||"name",a[e]="${event.data.event.title}",a[t.startDateExpr]="${event.data.event.start}",a[t.endDateExpr]="${event.data.event.end}",a[t.allDayExpr]="${event.data.event.allDay}",e={objectName:"${objectName}",$:a,$self:"$$"},t=`\n \n const formData = api.data.$;\n const objectName = api.data.objectName;\n let query = \`mutation{record: \${objectName}__update(id: "\${formData.${n}}", doc: {__saveData}){${n}}}\`;\n delete formData.${n};\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data.query = query.replace('{__saveData}', __saveData);\n return api;\n `;return{method:"post",url:getApi$2(),data:e,requestAdaptor:t,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 ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getObjectCalendar(e,t,a){var n=e.permissions,i=(a=a||{},(t=Object.assign({},DEFAULT_CALENDAR_OPTIONS,___default.omitBy(t,___default.isNil))).title||[t.startDateExpr,t.endDateExpr,t.allDayExpr,t.textExpr]);let r=[],o=(___default.each(i,(function(t){e.fields[t]&&r.push(e.fields[t])})),e.fields[t.allDayExpr]&&r.push(e.fields[t.allDayExpr]),a.sort||(i=a.sortField,a.sortOrder),t.currentView);if(o)switch(o){case"day":case"agenda":o="timeGridDay";break;case"week":o="timeGridWeek";break;case"month":o="dayGridMonth"}else o="timeGridWeek";a.calendarOptions=t;i=await getCalendarApi(e,r,a),a=`\n const api = ${JSON.stringify(i)};\n event.data.calendarOptions = ${JSON.stringify(t)};\n doAction({\n "actionType": 'ajax',\n "args": {\n "api": api\n },\n });\n `,i=`\n const data = event.data;\n const doc = {};\n doc["${t.startDateExpr}"] = data.start;\n doc["${t.endDateExpr}"] = data.end;\n doc["${t.allDayExpr}"] = data.allDay;\n doc["${t.textExpr}"] = data.title;\n // ObjectForm会认作用域下的变量值\n // TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值\n // TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件\n event.data = doc;\n const title = "新建 ${e.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 "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 `;var s=getCalendarRecordPermissionsApi(e,"${event.id}"),l=getCalendarRecordSaveApi(e,t),d={daysOfWeek:[1,2,3,4,5],startTime:"08:00",endTime:"18:00"};return t=(___default.isEmpty(t.startDayHour)||(d.startTime=t.startDayHour+":00"),___default.isEmpty(t.endDayHour)||(d.endTime=t.endDayHour+":00"),{type:"steedos-fullcalendar",label:"",name:"fullcalendar",editable:n.allowEdit,selectable:n.allowCreate,selectMirror:n.allowCreate,initialView:o,businessHours:d,onEvent:{getEvents:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:a}]},select:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:i}]},eventClick:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:'\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": "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 '}]},eventAdd:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventAdd'); console.log(event);"}]},eventChange:{weight:0,actions:[{actionType:"ajax",args:{api:s}},{actionType:"toast",expression:"!event.data.editable",args:{msgType:"error",msg:"您没有编辑该记录的权限!",position:"top-center"}},{actionType:"ajax",expression:"event.data.editable",args:{api:l,messages:{success:e.label+"修改成功",failed:e.label+"修改失败!"}}}]},eventRemove:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventRemove'); console.log(event);"}]},eventsSet:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventsSet'); console.log(event);"}]}}})}const getGraphqlFieldsQuery$1=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)})),""+t.join(" ")},getFindOneQuery$2=(e,t,a)=>{e=e.replace(/\./g,"_"),a=getGraphqlFieldsQuery$1(a);let n="";return`{record:${e}__findOne${n=0<(t=[`id: "${t}"`]).length?`(${t.join(",")})`:n}{${a}}}`},getRecord=async(e,t,a)=>(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery$2(e,t,a)})})).data.record,getRelatedsCount=async(e,t)=>{const a=[];return ___default.each(t,(t=>{a.push(`${t.object_name}: ${t.object_name}__count(filters: [["${t.foreign_key}","=","${e}"]])`)})),t=`\n {\n ${a.join(",")}\n }\n `,(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:t})})).data},getRecordPermissions=async(e,t)=>await fetchAPI(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"});function str2function(e,...t){try{return new Function(...t,e)}catch(e){return console.warn(e),null}}const getRelatedFieldValue=(e,t,a,n)=>(a=___default.find(a.fields,(e=>n===e?.name)),___default.isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]});async function getObjectRelatedList(e,t,a){var n=await getUISchema(e),i=[],r=[].concat(n.related_lists||[]);if(___default.isEmpty(r))for(const t of[].concat(n.details||[])){var o=t.split(".");i.push({masterObjectName:e,object_name:o[0],foreign_key:o[1]})}else for(const t of r){var s=t.related_field_fullname.split(".");i.push({masterObjectName:e,object_name:s[0],foreign_key:s[1],label:t.label,columns:t.field_names,sort:t.sort,filters:t.filters,visible_on:t.visible_on,page_size:t.page_size})}return i}async function getRecordDetailRelatedListSchema(e,t,a,n,i){let{top:r,perPage:o,hiddenEmptyTable:s,appId:l,relatedLabel:d,className:c}=i;var u=await getUISchema(a),{label:p,fields:m}=u;d=d||p;let f=null;if(p=await getField(a,n=n||___default.findKey(m,(function(t){return-1<["lookup","master_detail"].indexOf(t.type)&&t.reference_to===e}))),!p)return{uiSchema:u,amisSchema:{type:"alert",body:`未找到与相关列表对象${a}关联的相关表字段`,level:"warning",showIcon:!0,className:"mb-3"}};let _=t;return p.reference_to_field&&"_id"!=p.reference_to_field&&(_=(m=await getRecord(e,t,[p.reference_to_field]))[p.reference_to_field]),f=p._reference_to||p.reference_to&&!___default.isString(p.reference_to)?[[n+"/o","=",e],[n+"/ids","=",_]]:[""+n,"=",_],t=await getObjectRecordDetailRelatedListHeader(u,d),m="steedos-record-related-list-"+a,(p=(await getRelatedListSchema(a,"all",{globalFilter:f,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1,onEvent:{["@data.changed."+a]:{actions:[{actionType:"reload"}]}}},headerSchema:t},showHeader:!0,top:r,perPage:o,setDataToComponentId:m,tableHiddenOn:s?"this.$count === 0":null,appId:l,crudClassName:"border-t border-slate-300",...i})).amisSchema)?{uiSchema:u,amisSchema:{type:"service",id:m,className:"steedos-record-related-list rounded border border-slate-300 bg-gray-100 mb-4 "+c,data:{"&":"$$",appId:"${appId}",app_id:"${appId}",masterObjectName:e,masterRecordId:"${recordId}",relatedKey:n,objectName:a,listViewId:`amis-\${appId}-${a}-listview`,_isRelated:!0},body:[{...p,data:{"&":"$$",appId:"${appId}",app_id:"${appId}",relatedKey:n,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[n]:getRelatedFieldValue(e,_,u,n)}}}]}}:void 0}function getDefaultRelatedListProps(e,t,a){var n=___default.find(e.list_views,((e,a)=>"calendar"!==e.type&&a===(t=t||a)));let i=[],r="",o=null,s=null;return n?(i=getListViewColumns(n,a.formFactor),r=getListViewSort(n),o=getListViewFilter(n),___default.isArray(a.globalFilter)&&a.globalFilter.length&&___default.isArray(o)&&o.length?o=[a.globalFilter,"and",o]:!a.globalFilter||o&&o.length||(o=a.globalFilter),s=n&&n._filters):(n=___default.find(e.fields,((e,t)=>e.is_name)),i=n?[n.name]:["name"],a.globalFilter&&(o=a.globalFilter)),{columns:i,sort:r,filter:o,filtersFunction:s}}function getRelatedListProps(e,t,a){if(a.columns){var n=getListViewSort(a.sort);let{filters:e,filtersFunction:t}=a;return!t&&e&&(t=str2function(e,"filters","data")),{columns:a.columns,sort:n,filter:a.globalFilter,filtersFunction:t}}return getDefaultRelatedListProps(e,t,a)}async function getRelatedListSchema(e,t,a){var n=await getUISchema(e),i=n.list_views,{columns:r,sort:o,filter:s,filtersFunction:l}=getRelatedListProps(n,t,a),d=a.defaults||{};return{uiSchema:n,amisSchema:t=(!d.headerSchema&&a.showHeader&&(d.headerSchema=await getObjectListHeader(n,t)),a.showHeader||(d.headerSchema=null),a.defaults=d,delete a.filtersFunction,delete a.sort,delete a.extraColumns,delete a.filters,delete a.globalFilter,{type:"steedos-object-table",objectApiName:e,columns:r,extraColumns:i.extra_columns,filters:s,filtersFunction:l,sort:o,ctx:a})}}let UI_SCHEMA_CACHE={},UISchemaFunction;const setUISchemaFunction=function(e){UISchemaFunction=e},setUISchemaCache=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE),(e,t)=>{UI_SCHEMA_CACHE[e]=t}),getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){return"SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,a){var n;___default.isArray(e)?(n=e[0]+" "+(e[1]||""),t+=n=0<a?","+n:n):(n=e.field_name+" "+e.order,t+=n=0<a?","+n:n)})),t}function getListViewFilter(e){if(e)try{var t=getUserId();let a=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(a))a=[["owner","=",t]];else{if(___default__default.default.isString(a)&&___default__default.default.startsWith(___default__default.default.trim(a),"function")&&(a=(a=new Function("return "+a))()),!___default__default.default.isArray(a))throw console.debug("listView filters is not array",e),new Error("filters is not array");a.push(["owner","=",t])}return a}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(e){if(!hasUISchemaCache(e)||t){let a=null;try{if(!(a=UISchemaFunction?await UISchemaFunction(e,t):await fetchAPI(`/service/api/@${e.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;formatUISchemaCache(e,a)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}}return getUISchemaCache(e)}}function getUISchemaSync(e,t){if(e){if(!hasUISchemaCache(e)||t)try{var a,n=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(!(a=Steedos.authRequest(n,{type:"GET",async:!1})))return;formatUISchemaCache(e,a)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}}async function getField(e,t){return(await getUISchema(e))?.fields[t]}async function getFormSchema(e,t){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectForm(e,t)}}async function getViewSchema(e,t,a){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectDetail(e,t,a)}}async function getListSchema(e,t,a,n={}){var i=await getUISchema(t),r=___default.find(i.list_views,((e,t)=>t===(a=a||t)||e._id===a));if(!r)return{uiSchema:i};if(r.enable_amis_schema&&r.amis_schema){return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:___default.isString(r.amis_schema)?JSON.parse(r.amis_schema):r.amis_schema}}var o=getListViewColumns(r,n.formFactor),s=getListViewSort(r),l=getListViewFilter(r),d=r&&r._filters;if("calendar"===r.type){return{uiSchema:i,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:d,sort:s,...r.options}}}var c=n.defaults||{};!c.headerSchema&&n.showHeader&&(c.headerSchema=await getObjectListHeader$1(i)),n.showHeader||(c.headerSchema=null);try{var u,p=location.pathname+"/crud/"+n.listViewId,m=sessionStorage.getItem(p);m&&(m=JSON.parse(m),u={},m.orderBy&&(u.orderBy=m.orderBy),m.orderDir&&(u.orderDir=m.orderDir),c.listSchema=___default.defaultsDeep({},u,c.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}n.defaults=c;return{uiSchema:i,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:o,extraColumns:r.extra_columns,filters:l,filtersFunction:d,sort:s,ctx:n,requestAdaptor:r.requestAdaptor,adaptor:r.adaptor}}}async function getTableSchema(e,t,a,n={}){const i=await getUISchema(t);let r=n.sort;r||(s=n.sortField,l=n.sortOrder,s&&(r=s+" "+l||"asc"));let o=[];___default.each(a,(function(e){___default.isString(e)&&i.fields[e]?o.push(i.fields[e]):___default.isObject(e)&&i.fields[e.field]&&o.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))}));var s=n.extraColumns,l=(s&&___default.each(s,(function(e){___default.isString(e)?o.push({extra:!0,name:e}):___default.isObject(e)&&o.push({extra:!0,name:e.field})})),await getObjectCRUD(i,o,{tabId:t,appId:e,objectName:t,...n,filter:n.filters,sort:r,buttons:await getListViewItemButtons(i,n)}));return{uiSchema:i,amisSchema:l}}async function getCalendarSchema(e,t,a,n={}){var i=await getUISchema(t);return{uiSchema:i,amisSchema:await getObjectCalendar(i,a,{tabId:t,appId:e,objectName:t,...n})}}async function getRecordDetailHeaderSchema(e,t,a){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectRecordDetailHeader(e,t,a)}}async function getRecordDetailSchema(e,t,a={}){var n=await getUISchema(e),i={type:"tabs",className:"sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-slate-300 p-4",tabs:[{title:"详细",className:"px-0 py-4",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"}],id:"u:a649e4094a12"};return(await getObjectRelatedList(e)).length&&i.tabs.push({title:"相关",className:"px-0 pt-4",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}),{uiSchema:n,amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${event.data.record.${n?.NAME_FIELD_KEY||"name"}}`,record:"${event.data.record}",recordLoaded:!0}},{actionType:"reload",componentId:`page_readonly_${e}_header`,data:{name:`\${event.data.record.${n?.NAME_FIELD_KEY||"name"}}`,record:"${event.data.record}",recordLoaded:!0}}]}}},i],data:{"_master.objectName":"${objectName}","_master.recordId":"${recordId}"},onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${n.NAME_FIELD_KEY||"name"}}`,"_master.record":"${record}","_master.objectName":"${objectName}","_master.recordId":"${recordId}"}}]},...a.onEvent}}}}async function getObjectRelated({appName:e,masterObjectName:t,objectName:a,relatedFieldName:n,recordId:i,formFactor:r}){let o=null;var s=(o=(s=await getField(a,n))._reference_to||s.reference_to&&!___default.isString(s.reference_to)?[[n+"/o","=",t],[n+"/ids","=",i]]:[""+n,"=",i],await getUISchema(t));return{masterObjectName:t,object_name:a,foreign_key:n,schema:await getListSchema(e,a,"all",{globalFilter:o,formFactor:r}),record:await getRecord(t,i,[s.NAME_FIELD_KEY]),masterObjectUISchema:s}}function getScopeId(e,t){return`page_${e}_`+t}async function getFormPageInitSchema(e){var t=await getFormSchema(e,{recordId:"${recordId}"});return{type:"page",name:getScopeId(e,"form"),bodyClassName:"",regions:["body"],body:[t.amisSchema]}}async function getListPageInitSchema(e,t,a){return{type:"page",name:getScopeId(e,"list"),bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,className:"sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid"}]}}async function getRecordPageInitSchema(e){var t=await getObjectRelatedList(e),a=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"setValue",args:{value:{recordLoaded:!0}}},{actionType:"reload",data:{name:`\${record.${(await getUISchema(e))?.NAME_FIELD_KEY||"name"}}`,record:"${record}",recordLoaded:!0}}]}}}],n={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-slate-300",linksClassName:"pl-4 pt-2"};return t.length&&n.tabs.push({title:"相关",body:{type:"steedos-object-related-lists",label:"所有相关表",objectApiName:"${objectName}",recordId:"${recordId}"}}),a.push(n),{type:"page",id:`page_${e}_record_detail`,name:getScopeId(e,"record_detail"),bodyClassName:"",regions:["body"],body:a}}async function getListviewInitSchema(e,t,a){a=a||{};var n=await getUISchema(e),i=___default.find(n.list_views,((e,a)=>a===t));let r={};if(i){var o=getListViewColumns(i,a.formFactor),s=(i=getListViewSort(i),a.defaults||{});s.headerSchema||(n=await getObjectListHeader$1(n),s.headerSchema=n),a.defaults=s;let t=a.setDataToComponentId;t=t||"service_listview_"+e,delete(r=(n=await getTableSchema(null,e,o,{sort:i,...a,setDataToComponentId:t})).amisSchema).data.$master,delete r.data._id,delete r.data.recordPermissions,delete r.data.uiSchema}return r}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync);const getNotifications=async()=>{var e=`\n {\n notifications(filters: ["owner","=","${(e=getSteedosAuth()).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","=","${e.userId}"], ["is_read", "!=", true]])\n }\n `;return(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},markReadAll=async()=>fetchAPI("/api/v4/notifications/all/markReadAll",{method:"POST"}),PUBLIC_ENV={},setEnv=(e,t)=>{PUBLIC_ENV[e]=t},getEnv=e=>PUBLIC_ENV[e],setEnvs=e=>{___default.map(e,((e,t)=>{PUBLIC_ENV[t]=e}))},getEnvs=()=>PUBLIC_ENV;async function getSpaceUsersPickerAmisSchema(e,t,a){return{type:"picker",label:"人员",name:t,id:a.id,modalMode:"dialog",joinValues:!1,source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}',$term:"$term",$self:"$$"},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 "},pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["switch-per-page","pagination"],defaultParams:{perPage:50},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"_id",label:"ID",type:"text",toggled:!1},{name:"name",label:"姓名",sortable:!0,searchable:!0,type:"text"},{name:"email",label:"邮件",sortable:!0,type:"text",searchable:!0},{name:"mobile",label:"手机",type:"text",sortable:!0,searchable:!0}],syncLocation:!1,keepItemSelectionOnPageChange:!0},labelField:"name",valueField:"_id",size:"lg",extractValue:!0,className:"m-0",labelClassName:"text-left"}}async function getSpaceUsersPickerSchema(e,t){var a=await getUISchema("space_users");return{uiSchema:a,amisSchema:await getSpaceUsersPickerAmisSchema(a,e,t)}}const DATE_DATETIME_BETWEEN_VALUES=["last_year","this_year","next_year","last_quarter","this_quarter","next_quarter","last_month","this_month","next_month","last_week","this_week","next_week","yestday","today","tomorrow","last_7_days","last_30_days","last_60_days","last_90_days","last_120_days","next_7_days","next_30_days","next_60_days","next_90_days","next_120_days"],opMaps={equal:"=",not_equal:"!=",less:"<",less_or_equal:"<=",greater:">",greater_or_equal:">=",between:"between",not_between:"not_between",is_empty:"is_empty",is_not_empty:"is_not_empty",select_equals:"=",select_not_equals:"!=",select_any_in:"in",select_not_any_in:"<>",like:"contains",not_like:"notcontains",starts_with:"startswith",ends_with:"endswith"},isGroup=e=>_.has(e,"conjunction"),conditionGroupToFilters=e=>{const t=[],{conjunction:a,children:n}=e;return a&&n&&n.forEach((e=>{var n;0<t.length&&t.push(a),isGroup(e)?(n=conditionGroupToFilters(e))&&0<n.length&&t.push(n):(n=conditionItemToFilters(e))&&t.push(n)})),t},conditionItemToFilters=e=>{var t,{left:e,op:a,right:n}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=n?[e.field,opMaps[a],n]:void 0},filterToConditionItem=e=>{var t;if(3===e.length)return"between"===(t=___default__default.default.findKey(opMaps,(t=>t===e[1])))&&___default__default.default.includes(DATE_DATETIME_BETWEEN_VALUES,e[2])?{left:{type:"field",field:e[0]},op:t+":"+e[2]}:{left:{type:"field",field:e[0]},op:t,right:e[2]};console.warn("无效的filter:"+JSON.stringify(e))},filterObjectToArray=e=>!___default__default.default.isArray(e)&&___default__default.default.isObject(e)?[e.field,e.operation,e.value]:e,filtersToConditionGroup=e=>{e=filterObjectToArray(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach((e=>{"or"===(e=filterObjectToArray(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push(filterToConditionItem(e)):t.children.push(filtersToConditionGroup(e))})),t},conditionsToFilters=e=>conditionGroupToFilters(e),filtersToConditions=e=>filtersToConditionGroup(e),registerRemoteAssets=async e=>{if(e&&0<e.length){let t=e;return ___default.isString(t)&&(t=t.split(",")),await Builder.registerRemoteAssets(t),e=___default.filter(Builder.registry["meta-components"],(function(e){return e.componentName&&e.amis?.render})),___default.map(e,(e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render})))}return[]};var __assign$1=function(){return(__assign$1=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},keyToPath=function(e){var t=[];return e.charCodeAt(0)===".".charCodeAt(0)&&t.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),(function(e,a,n,i){return n?e=i.replace(/\\(\\)?/g,"$1"):a&&(e=a.trim()),t.push(e),""})),t};function createObject(e,t,a){var n=(e=e&&Object.isFrozen(e)?cloneObject(e):e)?Object.create(e,__assign$1(__assign$1({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function cloneObject(e,t){void 0===t&&(t=!0);var a=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return a[t]=e[t]})),a}function extendObject(e,t,a){var n=cloneObject(e,a=void 0===a||a);return t&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function isObject(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}function setVariable(e,t,a,n){if(t in(e=e||{}))e[t]=a;else{var i=!1!==n?keyToPath(t):[t];for(n=i.pop();i.length;){var r=i.shift();e=isPlainObject_1(e[r])?e[r]=__assign$1({},e[r]):(Array.isArray(e[r])?e[r]=e[r].concat():(e[r],e[r]={}),e[r])}e[n]=a}}function deleteVariable(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{var a=keyToPath(t);for(t=a.pop();a.length;){var n=a.shift();if(!isPlainObject_1(e[n])){if(e[n])throw new Error("目标路径不是纯对象,不能修改");break}e=e[n]=__assign$1({},e[n])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}}var getDefaultRenderData=function(){var e=getSteedosAuth();return{context:{rootUrl:getRootUrl(),userId:e.userId,tenantId:e.tenantId,authToken:e.authToken,user:e},global:{userId:e.userId,spaceId:e.tenantId,user:e,now:new Date}}};const HIDE_COUNTER_SIGN_JUDGE_OPTIONS=!1,getJudgeOptions=async e=>{var t=[];return"sign"===(e=e.step).step_type?(t.push({label:"核准",value:"approved"}),t.push({label:"驳回",value:"rejected"})):"counterSign"===e.step_type&&1!=HIDE_COUNTER_SIGN_JUDGE_OPTIONS&&(t.push({label:"核准",value:"approved"}),t.push({label:"驳回",value:"rejected"}),t.push({label:"已阅",value:"readed"})),t},getJudgeInput=async e=>{var t=await getJudgeOptions(e);if(0<t.length&&"cc"!=e.approve.type)return{type:"radios",label:!1,name:"judge",value:"approved",options:t,id:"u:444dbad76e90",required:!0,onEvent:{change:{weight:0,actions:[{componentId:"instance_approval",args:{value:{new_judge:"${event.data.value}",new_next_step:void 0,next_step:void 0}},actionType:"setValue"},{args:{judge:"${event.data.value}"},actionType:"broadcast",eventName:"approve_judge_change"}]}}}},getNextStepInput=async e=>{if("cc"!=e.approve?.type)return{type:"grid",columns:[{body:[{type:"tpl",tpl:"下一步",inline:!0,wrapperComponent:"",id:"u:0a85de51480f"}],id:"u:bf75adfb544e",md:"auto",valign:"middle"},{body:[{type:"list-select",label:"",name:"next_step",id:"u:next_step",multiple:!1,required:!0,source:{url:"${context.rootUrl}/api/workflow/v2/nextStep",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},method:"post",messages:{},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;",adaptor:"\n payload.data = {\n options: _.map(payload.nextSteps, (item)=>{\n return {\n label: item.name, \n value: item\n }\n })\n };\n return payload;\n ",data:{context:"${context}",$scopeId:"${scopeId}",judge:"${new_judge}"}},onEvent:{change:{weight:0,actions:[{componentId:"instance_approval",args:{value:{new_next_step:"${event.data.value}"}},actionType:"setValue"},{args:{next_step:"${event.data.value}"},actionType:"broadcast",eventName:"approve_next_step_change"}]}}}],id:"u:4d3a884b437c"}],id:"u:016c56efe5fd",className:"b-a b-1x m-none p-xs",subFormMode:""}},getNextStepUsersInput=async e=>{if("cc"!=e.approve?.type)return{type:"grid",columns:[{body:[{type:"tpl",tpl:"处理人",inline:!0,wrapperComponent:"",id:"u:3203cc281b3c"}],id:"u:8eece76a9e4c",md:"auto",valign:"middle"},{body:[Object.assign({},await lookupToAmisPicker({name:"next_users",label:!1,reference_to:"space_users",reference_to_field:"user",multiple:!1},!1,{}),{name:"next_users",value:"",hiddenOn:"this.new_next_step.deal_type != 'pickupAtRuntime'",required:!0}),{type:"list-select",label:"",name:"next_users",id:"u:next_users",required:!0,multiple:!1,source:{url:"${context.rootUrl}/api/workflow/v2/nextStepUsers",method:"post",sendOn:"!!this.new_next_step && this.new_next_step.step_type != 'end'",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},messages:{},requestAdaptor:"console.log('======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;",adaptor:"\npayload.data = payload.nextStepUsers;\nreturn payload;",data:{"&":"$$",$scopeId:"$scopeId",context:"${context}",next_step:"${new_next_step}"}},labelField:"name",valueField:"id",hiddenOn:"this.new_next_step.deal_type === 'pickupAtRuntime'"}],id:"u:81a4913c61cc"}],id:"u:ffff15b76c89",className:"b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm",subFormMode:"",hiddenOn:"!!!this.new_next_step || this.new_next_step?.step_type === 'end'"}},getCCSubmitRequestAdaptor=async e=>` \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: "${e._id}", \n traceId: "${e.trace._id}", \n approveId: "${e.approve._id}", \n description: approveValues.suggestion \n };\n return api;\n `,getPostSubmitRequestAdaptor=async e=>` 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: "${e._id}",\n flow: "${e.flow._id}",\n applicant: formValues.applicant,\n submitter: formValues.submitter,\n traces: [{\n _id: "${e.trace._id}",\n step: "${e.step._id}",\n approves: [{\n _id: "${e.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 `,getPostEngineRequestAdaptor=async e=>` \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: "${e._id}",\n judge: approveValues.judge,\n trace: "${e.approve.trace}",\n _id: "${e.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 `,getSubmitActions=async e=>{let t="",a="";if("cc"==e.approve?.type)t="/api/workflow/v2/cc_submit",a=await getCCSubmitRequestAdaptor(e);else if("draft"===e.state)t="/api/workflow/submit",a=await getPostSubmitRequestAdaptor(e);else{if("pending"!==e.state)return null;t="/api/workflow/engine",a=await getPostEngineRequestAdaptor(e)}return[{componentId:"",args:{},actionType:"custom",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 '},{componentId:"",args:{},actionType:"custom",script:'\n const form = event.context.scoped.getComponentById("instance_approval");\n return form.validate().then((approvalFormValidate)=>{\n event.setData({...event.data, approvalFormValidate})\n })\n ',expression:"${event.data.instanceFormValidate}"},{componentId:"",args:{api:{url:"${context.rootUrl}"+t,method:"post",dataType:"json",data:{"&":"$$",$scopeId:"${$scopeId}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:a},messages:{success:"提交成功!"}},actionType:"ajax",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"},{componentId:"",args:{blank:!1,url:Router$1.getObjectListViewPath({appId:"${appId}",objectName:"${objectName}",listViewName:"${side_listview_id}"})},actionType:"url",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"},{actionType:"closeDialog",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"}]},getApprovalDrawerSchema=async e=>({type:"drawer",overlay:!0,resizable:!1,closeOnEsc:!0,closeOnOutside:!0,size:"sm",title:""+e.step.name,className:"approval-drawer absolute",body:[{type:"form",debug:!1,id:"instance_approval",resetAfterSubmit:!0,body:[await getJudgeInput(e),{type:"textarea",label:!1,name:"suggestion",id:"u:cd344f708ddc",minRows:3,maxRows:20,placeholder:"请填写意见",requiredOn:"${judge === 'rejected'}"},await getNextStepInput(e),await getNextStepUsersInput(e)],onEvent:{approve_judge_change:{actions:[{actionType:"reload",componentId:"u:next_step",args:{}}]},validateError:{weight:0,actions:[{componentId:"",args:{msgType:"info",position:"top-right",closeButton:!0,showIcon:!0,title:"提交失败",msg:"请填写必填字段"},actionType:"toast"}]}}}],id:"u:approve_8861156e0b23",position:"bottom",actions:[{type:"button",label:"提交",onEvent:{click:{actions:await getSubmitActions(e)}},id:"u:f6f8c3933f6c",level:"primary"},{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:127ff1da7283"}]}),getAttachments=async e=>({type:"panel",className:"border-none bg-none shadow-none",headerClassName:"p-0 border-none mb-1",bodyClassName:"p-0",title:[await getAttachmentUploadInput(e)],body:[{type:"service",id:"u:attachmentsService",api:{method:"post",url:"${context.rootUrl}/graphql",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:`\n api.data.query = 'query{attachments:cfs_instances_filerecord(filters: [["metadata.instance", "=", "${e._id}"], "metadata.current", "=", true]){ _id,original,metadata}}';\n return api;\n `},body:[{type:"list",source:"${attachments}",title:!1,listItem:{body:[{type:"tpl",inline:!0,tpl:"<a href='${context.rootUrl}/api/files/instances/${_id}?download=true' target='_blank'>${original.name}</a>"}],actions:[{icon:"fa fa-eye",type:"button",id:"u:ef52fa8940a8"}],id:"u:550b3fdc8788"},id:"u:f538be693fad"}]}]}),getAttachmentUploadInput=async e=>{var t;return e.approve?(t=getSteedosAuth(),{type:"form",title:"表单",body:[{type:"input-file",labelClassName:"antd-List-heading",className:"flex items-center",label:"附件",mode:"inline",name:"file",id:"u:a58d02614e04",btnLabel:"上传",btnClassName:"m-0",multiple:!0,maxLength:10,submitType:"asUpload",uploadType:"fileReceptor",proxy:!1,drag:!1,autoUpload:!0,useChunk:!1,joinValues:!1,extractValue:!1,valueField:"version_id",receiver:{url:"${context.rootUrl}/api/v4/instances/s3",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},method:"post",messages:{},dataType:"form-data",requestAdaptor:`\n api.data.append('space', '${e.space}');\n api.data.append('instance', '${e._id}');\n api.data.append('approve', '${e.approve?._id}');\n api.data.append('owner', '${t.userId}');\n api.data.append('owner_name', '${t.name}');\n return api;\n `},onEvent:{success:{weight:0,actions:[{componentId:"u:5f901c0b917b",args:{},actionType:"clear"},{componentId:"",args:{msgType:"success",position:"top-right",closeButton:!0,showIcon:!0,msg:"上传成功"},actionType:"toast"},{componentId:"u:attachmentsService",args:{},actionType:"reload"}]}}}],id:"u:5f901c0b917b",wrapWithPanel:!1}):{type:"tpl",tpl:"附件"}},getRelatedRecords=async e=>{if(e.record_ids&&!___default.isEmpty(e.record_ids))return ___default.map(e.record_ids,(e=>({type:"tpl",tpl:`<a href='/app/-/${e.o}/view/${e.ids[0]}' target='_blank'>相关台账信息</a>`})))},getRelatedInstances=async e=>({type:"list",name:"relatedInstances",source:"${related_instances}",title:"相关文件",listItem:{body:[{type:"tpl",inline:!0,tpl:`<a href='\${context.rootUrl}/workflow/space/${getSteedosAuth().tenantId}/view/readonly/\${_id}' target='_blank'>\${name}</a>`}],actions:[{icon:"fa fa-eye",type:"button",id:"u:ef52fa8940a8"}],id:"u:550b3fdc8788"},id:"related_instances"}),getInstanceApprovalHistory=async()=>({type:"table",headerClassName:"hidden",title:"签批历程",source:"${historyApproves}",className:"m-b-none instance-approve-history",columnsTogglable:!1,footable:{expand:"all"},columns:[{name:"name",label:"name"},{name:"user_name",label:"user_name",type:"tpl",tpl:"<div><div>${opinion}</div>${user_name}</div>"},{name:"finish_date",label:"finish_date",classNameExpr:"<%= data.finish_date == '已读' ? 'text-[blue]' : (data.finish_date == '未处理' ? 'text-[red]' : '') %>"},{name:"judge",label:"judge",classNameExpr:"<%= data.judge == '已核准' ? 'text-green-600' : (data.judge == '已驳回' ? 'text-[red]' : '') %>"}]}),getSelectOptions=e=>{const t=[];return ___default.each(e.options.split("\n"),(e=>{var a=e.split(":");2==a.length?t.push({label:a[0],value:a[1]}):t.push({label:e,value:e})})),t},isOpinionField$1=e=>-1<(e=e.formula)?.indexOf("{traces.")||-1<e?.indexOf("{signature.traces.")||-1<e?.indexOf("{yijianlan:")||-1<e?.indexOf('{"yijianlan":')||-1<e?.indexOf("{'yijianlan':"),getFieldEditTpl=async(e,t)=>{var a,n={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none form-control",disabled:"editable"!==e.permission,required:e.is_required};if(isOpinionField$1(e))n.type="input-group",n.body=[{type:"textarea",inputClassName:"b-r-none p-r-none",name:"input-group",id:"yijian-"+e.code,minRows:3,maxRows:20,mode:"normal",size:"full"},{type:"button",label:"签批",level:"link",id:"u:2592111d236d",block:!1,onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:""+(e.name||e.code),body:[{type:"form",title:"表单",body:[{label:"",type:"textarea",name:"yijian",id:"u:1d5a60623000",minRows:6,maxRows:20,mode:"normal",placeholder:"请填写意见"},{type:"grid",columns:[{body:[{type:"button",label:"已阅",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"已阅",value:"已阅"},actionType:"setValue"}]}},id:"u:13498f8d2882",level:"link",className:"m-r"},{type:"button",label:"已办",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"已办",value:"已办"},actionType:"setValue"}]}},id:"u:cfa2e3c54a21",level:"link",className:"m-r"},{type:"button",label:"同意",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"同意",value:"同意"},actionType:"setValue"}]}},id:"u:06e0037dcd23",level:"link",className:"m-r"},{type:"button",label:"其他常用意见",onEvent:{click:{actions:[]}},id:"u:3a781bc550a2",level:"link",className:"m-r"}],id:"u:3def7a5b7cd5"}],id:"u:ecbefa51b638"}],id:"u:dd32ae67b5c7"}],id:"u:a5d06d3a61b9",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,actions:[{type:"button",label:"确认",onEvent:{click:{actions:[{componentId:"yijian-"+e.code,args:{valueInput:"${yijian}",value:"${yijian}"},actionType:"setValue"},{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:87e22efe707a",level:"primary"},{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:d0e6550a848e"}]}}],weight:0}},className:"instance-sign-text-btn"}];else switch(e.type){case"input":e.is_textarea?n.type="textarea":n.type="input-text";break;case"number":n.type="input-number";break;case"date":n.type="input-date",n.inputFormat="YYYY-MM-DD",n.format="YYYY-MM-DDT00:00:00.000[Z]";break;case"dateTime":n.type="input-datetime",n.inputFormat="YYYY-MM-DD HH:mm",n.format="YYYY-MM-DDTHH:mm:ss.SSSZ";break;case"checkbox":n.type="checkbox";break;case"email":n.type="input-email",n.validations={isEmail:!0};break;case"url":n.type="input-url",n.validations={isUrl:!0};break;case"password":n.type="input-password",n.showCounter=!0;break;case"select":n.type="select",n.options=getSelectOptions(e);break;case"user":var i=await lookupToAmis({name:e.code,label:e.name,reference_to:"space_users",reference_to_field:"user",multiple:e.is_multiselect},!1,{});Object.assign(n,i);break;case"group":i=await lookupToAmis({name:e.code,label:e.name,reference_to:"organizations",multiple:e.is_multiselect},!1,{}),Object.assign(n,i);break;case"radio":n.type="radios",n.options=getSelectOptions(e);break;case"multiSelect":n.type="checkboxes",n.options=getSelectOptions(e);break;case"odata":i=(i=e.formula.substr(1,e.formula.length-2)).substr(i.indexOf(".")+1),n.type="select",n.multiple=e.is_multiselect,n.source={url:___default.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`\n payload.data = {\n options: _.map(payload.value, (item)=>{\n const value = item;\n item["@label"] = item["${i}"]\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 `};break;case"html":n.type=n.disabled?"html":"input-rich-text";break;case"table":n.type="input-table",n.addable="editable"===e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[];for(const t of e.fields)"hidden"!=t.type&&(t.permission=e.permission,a=await getTdInputTpl(t,!0),n.columns.push(a));break;case"section":n.type="input-text"}return n},getFieldReadonlyTpl=async(e,t)=>{var a,n={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none form-control"};if(___default.includes(["text"],e.type))n.type="static-"+e.type;else if("select"===e.type){t=getSelectOptions(e);const a={};___default.each(t,(e=>{a[e.value]=e.label})),n.type="static",n.tpl=`<% var options = ${JSON.stringify(a)}; return options?.[data.${e.code}] || ''%>`}else if("odata"===e.type)n.type="static",n.tpl=`<div>\${${e.code}['@label']}</div>`;else if("checkbox"===e.type)n.type="static",n.tpl=`\${${e.code} ? '是': '否'}`;else if("email"===e.type)n.type="static",n.tpl=`<a href="mailto:\${${e.code}}">\${${e.code}}</a>`;else if("url"===e.type)n.type="static",n.tpl=`<a href="\${${e.code}}" target="_blank">\${${e.code}}</a>`;else if("password"===e.type)n.type="static",n.tpl="******";else if("dateTime"===e.type)n.type="static",n.tpl=`<%=data.${e.code} ? date(new Date(data.${e.code}), 'YYYY-MM-DD HH:mm') : '' %>`;else if("user"===e.type)n.type="static",e.is_multiselect?n.tpl=`\${_.map(${e.code}, 'name')}`:n.tpl=`\${${e.code}?.name}`;else if("group"===e.type)n.type="static",n.tpl=`\${${e.code}.name}`;else if("table"===e.type){n.type="input-table",n.addable="editable"===e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[];for(const t of e.fields)"hidden"!=t.type&&(a=await getTdInputTpl(t,!0),n.columns.push(a))}else"html"===e.type?n.type="tpl":n.type="static";return n},getTdInputTpl=async(e,t)=>("editable"===e.permission?getFieldEditTpl:getFieldReadonlyTpl)(e,t),getTdField=async(e,t)=>({background:"editable"!==e.permission?"#FFFFFF":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",width:"32%",body:[await getTdInputTpl(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0",borderLeftColor:"#000000",borderTopColor:"#000000",borderRightColor:"#000000",borderBottomColor:"#000000"}}),getTdTitle=e=>({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",background:"#FFFFFF",body:[{type:"tpl",tpl:`<div>${e.name||e.code} ${e.is_required?'<span class="antd-Form-star">*</span>':""}</div>`}],style:{borderLeftColor:"#000000",borderTopColor:"#000000",borderRightColor:"#000000",borderBottomColor:"#000000"}}),getTds=async e=>{var t=[];for(const a of e)"table"!=a.type&&t.push(getTdTitle(a)),"section"!=a.type&&t.push(await getTdField(a,e.length));return t},getFormTrs=async e=>{var t=[];const a=[];let n=[],i=[];___default.each(e.fields,(e=>{i.push(e),"section"===e.type&&e.fields&&(i=i.concat(e.fields))})),___default.each(i,((e,t)=>{e.is_wide?(0!=n.length&&a.push(n),"table"==e.type&&a.push([Object.assign({},e,{type:"section"})]),(n=[]).push(e),a.push(n),n=[]):(n.push(e),2!=n.length&&t!==i.length-1||(a.push(n),n=[]))}));for(const e of a)t.push({background:"#F7F7F7",tds:await getTds(e)});return t},getFormTableView=async e=>({type:"table-view",className:"instance-form-view",trs:await getFormTrs(e),id:"u:047f3669468b"}),getApplicantTableView=async e=>({type:"table-view",className:"instance-applicant-view",trs:[{background:"#FFFFFF",tds:[{className:"td-title",background:"#FFFFFF",align:"left",width:"16%",colspan:"",body:[{type:"tpl",tpl:"<div>提交人</div>",id:"u:ee62634201bf"}],id:"u:6c24c1bb99c9",style:{padding:"none"}},{background:"#FFFFFF",colspan:1,align:"left",className:"td-field",width:"32%",body:["draft"===e.state?Object.assign({name:"applicant",value:getSteedosAuth().userId,disabled:"draft"!==e.box},await lookupToAmis({name:"applicant",label:!1,reference_to:"space_users",reference_to_field:"user",multiple:!1},!1,{})):{label:!1,mode:"horizontal",className:"m-none p-none",disabled:!0,type:"tpl",tpl:"<div>${applicant_name}</div>",id:"u:2016b04355f4"}],id:"u:45d65d91905c"},{className:"td-title",background:"#FFFFFF",align:"left",width:"16%",colspan:"",body:[{type:"tpl",tpl:"<div>提交日期</div>",id:"u:6d0a7763d527"}],id:"u:c8b8214ac931",style:{padding:"none"}},{background:"#FFFFFF",colspan:1,align:"left",className:"td-field",width:"32%",body:[{label:!1,mode:"horizontal",className:"m-none p-none",disabled:!0,type:"tpl",inputFormat:"YYYY-MM-DD",valueFormat:"YYYY-MM-DDT00:00:00.000[Z]",tpl:"<div>${submit_date}</div>",id:"u:2016b04355f4"}],id:"u:81b07d82a5e4"}]}],id:"u:047f3669468b",style:{borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none"}}),getApproveButton=async e=>!e.approve||"inbox"!=e.box&&"draft"!=e.box?null:{type:"button",label:"签批",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"drawer",drawer:await getApprovalDrawerSchema(e)}]}},id:"u:cc1afbdc3868",level:"primary",className:"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"},getFlowFormSchema=async(e,t)=>({type:"page",name:"instancePage",className:"steedos-amis-instance-view",title:{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"instances",recordId:e._id,id:"u:e6b2adbe0e21",showRecordTitle:!1,className:"p-0 m-0 p0 m0"},css:{".instance-approve-history .antd-Table-table thead":{display:"none"},".instance-approve-history .antd-Table-heading":{"font-size":"14px","font-weight":"500","padding-left":"0px"},".antd-List-heading":{"font-size":"14px","font-weight":"500"}},body:[await getAttachments(e),await getRelatedInstances(),await getRelatedRecords(e),{type:"form",debug:!1,wrapWithPanel:!1,resetAfterSubmit:!0,body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div class="instance-name">${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},await getFormTableView(e),await getApplicantTableView(e)],id:"instance_form",onEvent:{validateError:{weight:0,actions:[{componentId:"",args:{msgType:"info",position:"top-right",closeButton:!0,showIcon:!0,title:"提交失败",msg:"请填写必填字段"},actionType:"toast"}]}}},await getInstanceApprovalHistory(),await getApproveButton(e)],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body","header"],onEvent:{inited:{weight:0,actions:[{componentId:"u:cc1afbdc3868",actionType:"click"}]}},initApi:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},messages:{},requestAdaptor:`\n const { context } = api.data;\n api.data = {\n query: \`\n {\n instance: instances__findOne(id:"${e._id}"){\n related_instances: related_instances__expand{\n _id,\n name\n }\n }\n }\n \`\n }\n return api;\n `,adaptor:"\n payload.data = {\n related_instances: payload.data.instance.related_instances\n };\n return payload;\n ",data:{context:"${context}",judge:"${new_judge}"}},initFetch:!0}),isOpinionField=e=>-1<e?.indexOf("{traces.")||-1<e?.indexOf("{signature.traces.")||-1<e?.indexOf("{yijianlan:")||-1<e?.indexOf('{"yijianlan":')||-1<e?.indexOf("{'yijianlan':"),getOpinionFieldStepsName=(field,top_keywords)=>{const field_formula=field.formula;var foo1,opinionFields,opinionFields=new Array;return isOpinionField(field_formula)&&field_formula&&(foo1=field_formula.split(";"),foo1.forEach((function(foo){var json_formula,s1,sf,_ref,_ref1,json_formula={};try{json_formula=eval("("+foo+")")}catch(e){json_formula={}}return null!=json_formula&&json_formula.yijianlan?(sf={},sf.stepName=json_formula.yijianlan.step,sf.image_sign=json_formula.yijianlan.image_sign||!1,sf.only_cc_opinion=json_formula.yijianlan.only_cc||!1,sf.default_description=json_formula.yijianlan.default,sf.only_handler=json_formula.yijianlan.only_handler,sf.top_keywords=json_formula.yijianlan.top_keywords||top_keywords,opinionFields.push(sf)):-1<(null!=field_formula?field_formula.indexOf("{traces."):void 0)||-1<(null!=field_formula?field_formula.indexOf("{signature.traces."):void 0)?(sf={only_cc_opinion:!1,image_sign:!1,top_keywords:top_keywords},-1<foo.indexOf("{signature.")&&(sf.image_sign=!0,foo=foo.replace("{signature.","")),s1=foo.replace("{","").replace("}",""),1<s1.split(".").length&&(sf.stepName=s1.split(".")[1],0<opinionFields.filterProperty("stepName",sf.stepName).length?null!=(_ref=opinionFields.findPropertyByPK("stepName",sf.stepName))&&(_ref.only_cc_opinion=!0):2<s1.split(".").length&&"cc"===(null!=(_ref1=s1.split(".")[2])?_ref1.toLocaleLowerCase():void 0)&&(sf.only_cc_opinion=!0)),opinionFields.push(sf)):void 0}))),opinionFields},getTrace=({instance:e,traceId:t})=>___default.find(e.traces,(e=>e._id===t)),getUserApprove=({instance:e,userId:t})=>{var a=___default.find(e.traces,(e=>1!=e.is_finished));let n=null;if((n=a?___default.find(a.approves,(e=>1!=e.is_finished&&e.handler==t)):n)&&"cc"!=n.type||___default__default.default.each(e.traces,(function(e){___default__default.default.each(e.approves,(function(e){"cc"==e.type&&e.handler==t&&0==e.is_finished&&(n=e)}))})),n)return n._id&&(n.id=n._id),n},getApproveValues=({instance:e,trace:t,step:a,approve:n,box:i})=>(!n||"cc"===n.type||"draft"!==i&&("inbox"!==i||"counterSign"==a.step_type||a.cc_has_edit_permission&&!t.is_finished||___default.isEmpty(n.values))?e:n).values,getFlowVersion=e=>e.flow.current._id===e.flow_version?e.flow.current:___default.find(e.flow.historys,(t=>t._id===e.flow_version)),getFormVersion=e=>e.form.current._id===e.form_version?e.form.current:___default.find(e.form.historys,(t=>t._id===e.form_version)),getStep=({flowVersion:e,stepId:t})=>___default.find(e.steps,(e=>e._id===t)),getLastCCStep=({traces:e},t)=>{for(var a=t,n=null,i=null,r=e.length-1;0<=r;)!n&&e[r].is_finished&&___default__default.default.each(e[r].approves,(function(t){n||(n=!t.is_finished||t.user!==a||t.type&&"cc"!=t.type||!["approved","submitted","rejected"].includes(t.judge)?n:t.trace)&&(i=e[r].step)})),r--;return i},isCurrentStepOpinionField=(e,t)=>___default__default.default.includes(___default__default.default.map(getOpinionFieldStepsName(e),"stepName"),t?.name),getInstanceInfo=async({instanceId:e,box:t})=>{var a=getSteedosAuth().userId,n=await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:`{\n instance: instances__findOne(id:"${e}"){\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 `})});let i=null,r=null,o=null;var s,l,d;if(n=n.data.instance)return"inbox"!==t&&"draft"!==t||(i=getUserApprove({instance:n,userId:a})),s=getFlowVersion(n),l=getFormVersion(n),i&&(r=getTrace({instance:n,traceId:i.trace}),o=getStep({flowVersion:s,stepId:r.step})),a=getLastCCStep(n,a),d=getApproveValues({instance:n,trace:r,step:o,approve:i,box:t}),{box:t,_id:e,space:n.space,flow:n.flow,form:n.form,applicant:n.applicant,applicant_name:n.applicant_name,submitter:n.submitter,submit_date:n.submit_date?amisRequire("moment")(n.submit_date).format("YYYY-MM-DD"):"",state:n.state,approveValues:d,title:n.name||n.form.name,name:n.name||n.form.name,fields:___default__default.default.map(l.fields,(e=>Object.assign({},e,{permission:"cc"!=i?.type&&(o?.permissions[e.code]||(isCurrentStepOpinionField(e,o)?"editable":""))}))),flowVersion:s,formVersion:l,step:o,lastCCStep:a,trace:r,approve:i,record_ids:n.record_ids,related_instances:n.related_instances,forward_from_instance:n.forward_from_instance,cc_users:n.cc_users,traces:n.traces,historyApproves:___default__default.default.map(n.traces,(e=>Object.assign({children:___default__default.default.map(e.approves,(e=>{let t=e.finish_date,a=e.judge,n=e.user_name,i=e.description;switch("cc"===e.type&&(n+=" (传阅)",i=e.cc_description),t?t=amisRequire("moment")(t).format("YYYY-MM-DD HH:mm"):(t=e.is_read?"已读":"未处理",a=null),a){case"submitted":a="";break;case"returned":a="已退回";break;case"terminated":a="被取回";break;case"pending":a="审核中";break;case"approved":a="已核准";break;case"rejected":a="已驳回";break;case"finished":a="已完成";break;case"reassigned":a="转签核";break;case"inhand":a="处理中";break;case"relocated":a="重定位";break;case"readed":a="已阅"}return{name:"",user_name:n,finish_date:t,judge:a,opinion:i}}))},{name:e.name,judge:""})))}};var index_esm$1=Object.freeze({__proto__:null,Field:index,Router:Router$1,absoluteUrl:absoluteUrl,amisRender:amisRender,amisRootClick:amisRootClick,cloneObject:cloneObject,conditionsToFilters:conditionsToFilters,createObject:createObject,defaultsDeep:defaultsDeep,deleteVariable:deleteVariable,execute:execute,executeButton:executeButton,extendObject:extendObject,fetchAPI:fetchAPI,filtersToConditions:filtersToConditions,getApp:getApp,getApps:getApps,getAuthToken:getAuthToken,getAuthorization:getAuthorization,getButton:getButton,getButtonVisible:getButtonVisible,getButtonVisibleOn:getButtonVisibleOn$1,getButtons:getButtons,getCalendarSchema:getCalendarSchema,getDefaultRenderData:getDefaultRenderData,getEnv:getEnv,getEnvs:getEnvs,getEvn:getEvn,getField:getField,getFileSrc:getFileSrc,getFlowFormSchema:getFlowFormSchema,getFormPageInitSchema:getFormPageInitSchema,getFormSchema:getFormSchema,getImageSrc:getImageSrc,getInstanceInfo:getInstanceInfo,getListPageInitSchema:getListPageInitSchema,getListSchema:getListSchema,getListViewButtons:getListViewButtons,getListViewColumns:getListViewColumns,getListViewFilter:getListViewFilter,getListViewItemButtons:getListViewItemButtons,getListViewSort:getListViewSort,getListviewInitSchema:getListviewInitSchema,getNotifications:getNotifications,getObjectDetailButtons:getObjectDetailButtons,getObjectDetailMoreButtons:getObjectDetailMoreButtons,getObjectFieldsFilterBarSchema:getObjectFieldsFilterBarSchema,getObjectFieldsFilterButtonSchema:getObjectFieldsFilterButtonSchema,getObjectFieldsFilterFormSchema:getObjectFieldsFilterFormSchema,getObjectListHeader:getObjectListHeader$1,getObjectListHeaderFieldsFilterBar:getObjectListHeaderFieldsFilterBar,getObjectListHeaderFirstLine:getObjectListHeaderFirstLine,getObjectListHeaderSecordLine:getObjectListHeaderSecordLine,getObjectRecordDetailHeader:getObjectRecordDetailHeader,getObjectRecordDetailRelatedListHeader:getObjectRecordDetailRelatedListHeader,getObjectRelated:getObjectRelated,getObjectRelatedList:getObjectRelatedList,getObjectRelatedListButtons:getObjectRelatedListButtons,getObjectRelatedListHeader:getObjectRelatedListHeader,getPage:getPage,getRecord:getRecord,getRecordDetailHeaderSchema:getRecordDetailHeaderSchema,getRecordDetailRelatedListSchema:getRecordDetailRelatedListSchema,getRecordDetailSchema:getRecordDetailSchema,getRecordPageInitSchema:getRecordPageInitSchema,getRecordPermissions:getRecordPermissions,getRelatedFieldValue:getRelatedFieldValue,getRelatedListSchema:getRelatedListSchema,getRelatedsCount:getRelatedsCount,getRootUrl:getRootUrl,getSelectUserSchema:getSelectUserSchema,getSpaceUsersPickerAmisSchema:getSpaceUsersPickerAmisSchema,getSpaceUsersPickerSchema:getSpaceUsersPickerSchema,getSteedosAuth:getSteedosAuth,getTableSchema:getTableSchema,getTenantId:getTenantId,getUISchema:getUISchema,getUISchemaSync:getUISchemaSync,getUserId:getUserId,getViewSchema:getViewSchema,isExpression:isExpression$1,isObject:isObject,lookupToAmis:lookupToAmis,lookupToAmisPicker:lookupToAmisPicker,lookupToAmisSelect:lookupToAmisSelect,lookupToAmisSelectUser:lookupToAmisSelectUser,markReadAll:markReadAll,parseSingleExpression:parseSingleExpression$1,registerRemoteAssets:registerRemoteAssets,registerRenders:registerRenders,setEnv:setEnv,setEnvs:setEnvs,setRootUrl:setRootUrl,setSteedosAuth:setSteedosAuth,setUISchemaFunction:setUISchemaFunction,setVariable:setVariable,standardButtonsTodo:standardButtonsTodo}),getSchema=function(e,t,a){return __awaiter(void 0,void 0,void 0,(function(){var n,i,r,o,s,l,d,c,u,p,m,f;return __generator(this,(function(_){switch(_.label){case 0:(n=e.reference_to)&&___default.isFunction(n)&&(n=n()),i="".concat(e.name,"__left"),r=[],_.label=1;case 1:_.trys.push([1,6,7,8]),o=__values(n),s=o.next(),_.label=2;case 2:return s.done?[3,5]:[4,getUISchema(l=s.value,!1)];case 3:d=_.sent(),r.push({label:d.label,value:l,icon:d.icon}),_.label=4;case 4:return s=o.next(),[3,2];case 5:return[3,8];case 6:return c=_.sent(),m={error:c},[3,8];case 7:try{s&&!s.done&&(f=o.return)&&f.call(o)}finally{if(m)throw m.error}return[7];case 8:return t&&t.o||(t={o:r[0].value,ids:[]}),[4,getUISchema(t.o,!1)];case 9:return u=_.sent(),p=null,1!=u.enable_enhanced_lookup?[3,11]:[4,lookupToAmisPicker(Object.assign({},e,{reference_to:t.o}),!1,a)];case 10:return p=_.sent(),[3,13];case 11:return a||(a={}),a.isRefToMutiple=___default.isArray(n),[4,lookupToAmisSelect(Object.assign({},e,{reference_to:t.o}),!1,a)];case 12:p=_.sent(),_.label=13;case 13:return[2,{type:"input-group",label:!1,body:[{type:"select",name:i,options:r,value:"".concat(t.o)},Object.assign({},p,{name:"".concat(e.name,"__right"),id:"right:".concat(e.name),inputClassName:"w-full",value:"".concat(t.ids)})]}]}}))}))},AmisObjectFieldLookup=function(e){var t=e.field;e.readonly;var a=e.ctx,n=e.dispatchEvent,i=e.render;e.renderFormItems;var r=e.onChange,o=e.data,s=e.formItemValue;e.value;var l=__read(React.useState(),2),d=l[0],c=l[1];void 0===s&&(s=o[t.name]);var u=__read(React.useState(s),2),p=u[0],m=u[1];React.useEffect((function(){m(s)}),[JSON.stringify(s)]),React.useEffect((function(){getSchema(t,p,a).then((function(e){c(e)}))}),[JSON.stringify(p)]);return React__default.default.createElement("div",{className:"amis-object-field-lookup"},d?React__default.default.createElement("div",{className:"container p-0"},i("body",d,{onChange:function(e,t){return __awaiter(void 0,void 0,void 0,(function(){var a,i,s;return __generator(this,(function(l){switch(l.label){case 0:return a=null==p?void 0:p.o,t.endsWith("_right")&&!a&&d&&(a=d.body[0].value||d.body[0].options[0].value),i=Object.assign({o:t.endsWith("_left")?e:a,ids:t.endsWith("_right")?e:null==p?void 0:p.ids}),t.endsWith("_left")&&(i.ids=[]),___default.isString(i.ids)&&(i.ids=___default.compact(i.ids.split(","))),[4,n("change",createObject(o,{fieldValue:i}))];case 1:return(null==(s=l.sent())?void 0:s.prevented)?[2]:[2,r(i)]}}))}))}})):null)},AmisObjectButton=function(e){var t=e.objectName,a=e.name,n=e.data,i=e.render,r=e.className,o=e.listViewId,s=__read(React.useState(),2),l=s[0],d=s[1],c=__read(React.useState(),2),u=c[0],p=c[1],m=n.appId,f=n.formFactor;React.useEffect((function(){t&&getUISchema(t,!1).then((function(e){getButton(t,a,{objectName:t,recordId:n._id,appId:m,uiSchema:e,formFactor:f,router:null,listViewId:n.listViewId,props:{className:"antd-Button antd-Button--link"}}).then((function(t){d(t),p(e)}))}))}),[t,a]);if(!l)return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",className:"animate-spin w-4 h-4"},React__default.default.createElement("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"})));if("amis_button"===l.type){var _=l.amis_schema,g=___default.isString(_)?JSON.parse(_):_;g&&g.body.length>0&&delete g.body[0].visibleOn;var b=Object.assign(n,{recordId:n._id,objectName:t,listViewId:n.listViewId,app_id:m,className:r});return g&&(g.data=___default.defaultsDeep({},b,getDefaultRenderData(),g.data)),React__default.default.createElement(React__default.default.Fragment,null,l&&_?React__default.default.createElement(React__default.default.Fragment,null,i("body",g,{data:b,onChange:function(){console.log("change....")}})):null)}return React__default.default.createElement("button",{onClick:function(){var e=n.dataComponentId,a=n.scopeId;return executeButton(l,{objectName:t,listViewId:o||n.listViewId,uiSchema:u,record:n,recordId:n._id,appId:m,formFactor:f,scope:window.SteedosUI.getRef(e),scopeId:a||e})},className:"antd-Button antd-Button--default antd-Button--size-default ".concat(r||"")},l.label)},getMenu=function(e,t,a,n){return ___default.map(t,(function(t){return t.className="".concat(t.className," ").concat(a),{key:t.name,label:React__default.default.createElement(React__default.default.Fragment,null,e("body",t,n))}}))},SteedosDropdownButton=function(e){var t=e.data,a=e.render,n=e.className,i=e.btnClassName,r=e.buttons,o=e.placement,s=e.trigger,l=void 0===s?["click"]:s,d=e.onOpenApi;e.store;var c=e.env,u=e.overlayClassName,p=e.arrow,m=__read(React.useState([]),2),f=m[0],_=m[1];return React__default.default.createElement(antd.Dropdown,{menu:{items:f},trigger:l,onOpenChange:function(e){if(e)if(d)try{c.fetcher(d,createObject(t,{})).then((function(e){var n=(null==e?void 0:e.hasOwnProperty("ok"))?e.data:e;_(getMenu(a,r,i,{data:createObject(t,___default.defaultsDeep(n,t))}))})).catch((function(e){console.error(e)}))}catch(e){console.error(e)}else _(getMenu(a,r,i,{data:t}))},placement:o,overlayClassName:u,arrow:p},React__default.default.createElement("button",{className:"slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(n||"")},React__default.default.createElement("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},React__default.default.createElement("path",{d:"m7 10 5 5 5-5z",fill:"currentColor"}))))},SteedosIcon=function(e){var t,a;e.basePath;var n=e.category,i=void 0===n?"standard":n,r=e.className,o=void 0===r?"":r,s=e.containerClassName,l=void 0===s?"":s,d=e.colorVariant,c=void 0===d?"default":d;e.inverse;var u=e.name,p=void 0===u?"account":u,m=e.size,f=void 0===m?"medium":m;e.title;var _=e.rootUrl;return void 0===_&&(null===(a=null===(t=e.data)||void 0===t?void 0:t.context)||void 0===a||a.rootUrl),React__default.default.createElement("span",{className:"slds-icon_container slds-icon-".concat(i,"-").concat(p," ").concat(l)},React__default.default.createElement("svg",{className:"slds-icon slds-icon_".concat(f," slds-icon-text-").concat(c," ").concat(o)},React__default.default.createElement("use",{xlinkHref:"/assets/icons/".concat(i,"-sprite/svg/symbols.svg#").concat(p)})))};antd.Tabs.TabPane;var HeaderDropdown=function(e){e.overlayClassName;var t=__rest(e,["overlayClassName"]);return React__default.default.createElement(antd.Dropdown,__assign$2({overlayClassName:"header-dropdown",getPopupContainer:function(e){return e.parentElement||document.body}},t,{arrow:!0}))},getOverlay=function(e,t,a){return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Spin,{delay:300,spinning:!1},React__default.default.createElement("div",{className:"bg-white shadow"},e("body",t,{}))))},SteedosDropdown=function(e){var t=e.render,a=e.overlay,n=e.body,i=e.trigger,r=void 0===i?["click"]:i,o=e.placement,s=void 0===o?"bottomRight":o,l=e.overlayClassName,d=e.className;return e.data,React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(HeaderDropdown,{placement:s,overlay:getOverlay(t,a),trigger:r,className:d,overlayClassName:l},React__default.default.createElement("div",null,React__default.default.createElement(React__default.default.Fragment,null,t("body",n,{})))))};function FromNow(e){var t=e.date,a=__read(React.useState(),2),n=a[0],i=a[1],r=__read(React.useState(""),2),o=r[0],s=r[1],l=function(e){return window.amisRequire?window.amisRequire("moment")(e).fromNow():window.moment?window.moment(e).fromNow():void console.error("not find moment")};return React.useEffect((function(){n&&clearInterval(n),s(l(t)),i(setInterval((function(){s(l(t))}),6e4))}),[t]),React__default.default.createElement(React__default.default.Fragment,null,o)}var SteedosBadge=function(e){var t=e.body,a=e.render,n=e.count,i=e.color,r=e.dot,o=e.offset,s=e.overflowCount,l=e.showZero,d=e.size,c=e.status,u=e.text,p=e.title;return React__default.default.createElement(antd.Badge,{count:n,color:i,dot:r,offset:o,overflowCount:s,showZero:l,size:d,status:c,text:u,title:p},a("body",t,{}))},SteedosBadgeRibbon=function(e){var t=e.body,a=e.render,n=e.color,i=e.placement,r=void 0===i?"end":i,o=e.text,s=void 0===o?"Badge.Ribbon":o;return React__default.default.createElement(antd.Badge.Ribbon,{color:n,placement:r,text:s},a("body",t,{}))},SteedosLoading=function(e){return React__default.default.createElement("div",{className:"w-full h-full flex items-center justify-center "},React__default.default.createElement("svg",{className:"animate-spin -ml-1 mr-3 h-8 w-8 text-sky-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},React__default.default.createElement("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),React__default.default.createElement("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})))},AmisObjectForm=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v;return __generator(this,(function(w){switch(w.label){case 0:t=e.$schema,a=e.recordId,n=e.mode,i=e.layout,r=e.labelAlign,o=e.appId,s=e.fieldsExtend,l=e.excludedFields,d=void 0===l?null:l,c=e.includedFields,u=void 0===c?null:c,p=e.className,m=void 0===p?"":p,f=e.objectApiName||"space_users",_=___default.difference(___default.keys(t),["type","mode","layout"]),g=___default.pick(e,_),b={recordId:a,mode:n,layout:"vertical"===i?"normal":i,labelAlign:r,defaults:{formSchema:g},appId:o,excludedFields:d,includedFields:u};try{b.fieldsExtend=___default.isString(s)?JSON.parse(s):s}catch(e){console.warn(e)}return(y=e.data.global||{}).mode="edit"===n?"edit":"read","edit"!==n?[3,2]:[4,getFormSchema(f,b)];case 1:return h=w.sent().amisSchema,[3,4];case 2:return a||(b.formInitProps={queryOptions:"top: 1"}),[4,getViewSchema(f,a,b)];case 3:h=w.sent().amisSchema,w.label=4;case 4:return(v={}).recordId=a||null,f&&(v.objectName=f),h.className="steedos-object-form ".concat(m),h.data=Object.assign({"&":"$$"},h.data,v,{global:y}),[2,h]}}))}))},AmisObjectListView=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v,w,$,S,F,x,I,N,j,O,k,A,T,D,V;return __generator(this,(function(E){switch(E.label){case 0:return t=e.$schema,a=e.top,n=e.perPage,i=e.showHeader,r=void 0===i||i,o=e.headerSchema,s=e.data,l=e.defaultData,d=e.className,c=void 0===d?"":d,u=e.crudClassName,p=e.showDisplayAs,m=void 0!==p&&p,f=e.sideSchema,e.columnsTogglable,_=e.ctx,g=(null==l?void 0:l.listName)||(null==s?void 0:s.listName)||(null==e?void 0:e.listName),b={},y=e.objectApiName||"space_users",_||(_={}),h=Router$1.getTabDisplayAs(y),(v=e.formFactor)||(w=window.innerWidth<768,v=w?"SMALL":"LARGE"),["split"].indexOf(h)>-1&&(v="SMALL"),_.formFactor||(_.formFactor=v),[4,getUISchema(y,!1)];case 1:return $=E.sent(),(S=___default.find($.list_views,(function(e,t){return g||(g=t),t===g||e._id===g})))?(g=S.name,_&&_.defaults||(F=___default.difference(___default.keys(t),["type","showHeader","id"]),(x=___default.pick(e,F)).className=u,x.onEvent={},x.onEvent["@data.changed.".concat(y)]={actions:[{args:{url:"/app/${appId}/${objectName}/view/${event.data.result.data.recordId}?display=${ls:tab.project.display || 'grid'}&side_object=${objectName}&side_listview_id=${listName}",blank:!1},actionType:"link",expression:"${!!!event.data.recordId && event.data.__deletedRecord != true}"},{actionType:"reload",expression:"${event.data.recordId || event.data.__deletedRecord === true}"}]},b={listSchema:x}),o&&(b.headerSchema=o),(I=_&&_.setDataToComponentId)||(I="service_listview_".concat(y)),N=Object.assign({},s,l),j=(null==_?void 0:_.listViewId)||N.listViewId,[4,getListSchema(N.appId,y,g,__assign$2(__assign$2({top:a,perPage:n,showHeader:r,defaults:b},_),{listViewId:j,setDataToComponentId:I,filterVisible:!0,showDisplayAs:m,displayAs:h}))]):[2,{type:"alert",body:"当前".concat(g,"视图不存在!"),level:"warning",showIcon:!0,className:"mb-3"}];case 2:return O=E.sent(),k=O.amisSchema,A=O.uiSchema,T=[k],(O.isCustomAmisSchema||O.isCalendar)&&(D=getObjectListHeaderFirstLine(A),T.unshift({type:"wrapper",body:[D],className:"bg-gray-100 pb-0 sm:rounded-tl sm:rounded-tr"})),f&&(T=[{type:"wrapper",size:"none",className:"flex flex-1 overflow-hidden h-full",body:[{type:"wrapper",size:"none",className:"flex-shrink-0 min-w-[200px] overflow-y-auto border-r border-gray-200 lg:order-first lg:flex lg:flex-col",body:f},{type:"wrapper",size:"none",className:"flex-1 overflow-y-auto focus:outline-none lg:order-last w-96",body:T}]}]),V=Object.assign({},k.data,N,{listName:g,uiSchema:A,showDisplayAs:m,displayAs:h,recordPermissions:A.permissions,_id:null,$listviewId:g}),[2,{type:"service",body:T,className:"".concat(c," steedos-object-listview"),data:V}]}}))}))},AmisObjectTable=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v,w,$,S,F,x,I,N,j,O,k;return __generator(this,(function(A){switch(A.label){case 0:return t=e.$schema,a=e.filters,n=e.filtersFunction,i=e.amisCondition,r=e.top,o=e.headerSchema,s=e.sort,l=e.sortField,d=e.sortOrder,c=e.extraColumns,u=e.data,p=e.defaultData,m=e.formFactor,f=void 0===m?window.innerWidth<768?"SMALL":"LARGE":m,_=e.className,g=void 0===_?"":_,b=e.requestAdaptor,y=e.adaptor,(h=e.ctx)||(h={}),h.formFactor||(h.formFactor=f),v=e.columns||[],w={},$=e.objectApiName||"space_users",h&&h.defaults||(S=___default.difference(___default.keys(t),["type","objectApiName","columns","extraColumns","id"]),(F=___default.pick(e,S)).className="",w={listSchema:F}),o&&(w.headerSchema=o),(x=h&&h.setDataToComponentId)||(x="service_listview_".concat($)),I=i&&conditionsToFilters(i),N=a||I,j=Object.assign({},u,p),O=(null==u?void 0:u.appId)||(null==p?void 0:p.appId),h=___default.pickBy(h,(function(e){return void 0!==e})),[4,getTableSchema(O,$,v,__assign$2(__assign$2({filters:N,filtersFunction:n,top:r,sort:s,sortField:l,sortOrder:d,extraColumns:c,defaults:w},h),{setDataToComponentId:x,requestAdaptor:b,adaptor:y}))];case 1:return(k=A.sent().amisSchema).data=Object.assign({},k.data,j),k.className="steedos-object-table h-full flex flex-col ".concat(g),[2,k]}}))}))},AmisObjectCalendar=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v;return __generator(this,(function(w){switch(w.label){case 0:return e.$schema,t=e.top,a=e.sort,n=e.filters,i=e.filtersFunction,r=e.title,o=e.currentView,s=e.startDateExpr,l=e.endDateExpr,d=e.allDayExpr,c=e.textExpr,u=e.data,p=e.defaultData,m=e.className,f=void 0===m?"":m,_=e.objectApiName||"events",[4,getCalendarSchema((g=Object.assign({},u,p)).appId,_,{title:r,currentView:o,startDateExpr:s,endDateExpr:l,allDayExpr:d,textExpr:c},{top:t,sort:a,filter:n,filtersFunction:i})];case 1:return b=w.sent(),y=b.uiSchema,h=b.amisSchema,v=Object.assign({},h.data,g,{objectName:_,uiSchema:y}),[2,{type:"service",body:h,className:"".concat(f),data:v}]}}))}))},AmisRecordDetailHeader=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c;return __generator(this,(function(u){switch(u.label){case 0:return t=e.className,a=void 0===t?"bg-gray-100 border-b sm:shadow sm:rounded sm:border border-slate-300 p-4":t,[4,getUISchema(e.objectApiName||"space_users",!1)];case 1:return n=u.sent(),i={recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.".concat((null==n?void 0:n.NAME_FIELD_KEY)||"name","}"),record:"${record}",recordLoaded:!0}},{actionType:"setValue",args:{value:{recordLoaded:!0}}}]}},e.$schema,r=e.recordId,o=e.onEvent,s=void 0===o?i:o,l=e.showRecordTitle,d=void 0===l||l,[4,getRecordDetailHeaderSchema(e.objectApiName||"space_users",r,{showRecordTitle:d})];case 2:return(c=u.sent().amisSchema).className=a,[2,Object.assign({},c,{onEvent:s})]}}))}))},AmisRecordDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s;return __generator(this,(function(l){switch(l.label){case 0:return e.$schema,t=e.appId,a=e.objectApiName,n=void 0===a?"space_users":a,i=e.recordId,r=e.onEvent,e.defaultData,[4,getRecordDetailSchema(n,t,{onEvent:r})];case 1:return o=l.sent().amisSchema,s={},i&&(s.recordId=i),o.data=Object.assign({},o.data,s),[2,o]}}))}))},AmisRecordDetailRelatedList=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g;return __generator(this,(function(b){switch(b.label){case 0:return t=e.objectApiName,a=e.recordId,n=e.relatedObjectApiName,e.data,i=e.relatedKey,r=e.top,o=e.perPage,s=e.hiddenEmptyTable,l=e.appId,d=e.relatedLabel,c=e.className,u=void 0===c?"":c,p=e.columns,m=e.sort,f=e.filters,_=e.visible_on,(g=e.formFactor)||(g=window.innerWidth<768?"SMALL":"LARGE"),t&&n&&a?[4,getRecordDetailRelatedListSchema(t,a,n,i,{top:r,perPage:o,hiddenEmptyTable:s,appId:l,relatedLabel:d,className:u,formFactor:g,columns:p,sort:m,filters:f,visible_on:_})]:[2,{type:"alert",body:"缺少父级对象、父级记录或相关列表对象属性",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return[2,b.sent().amisSchema]}}))}))},AmisRecordDetailRelatedLists=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r;return __generator(this,(function(o){switch(o.label){case 0:return t=e.objectApiName,a=e.recordId,e.data,n=e.perPage,i=void 0===n?5:n,t&&a?(e.formFactor,[4,getObjectRelatedList(t)]):[2,{type:"alert",body:"缺少父级对象或父级记录属性",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return(r=o.sent())&&r.length?[2,{type:"service",className:"steedos-record-detail-related-lists",body:___default.map(r,(function(e){return{type:"steedos-object-related-listview",objectApiName:t,recordId:a,relatedObjectApiName:e.object_name,foreign_key:e.foreign_key,relatedKey:e.foreign_key,columns:e.columns,sort:e.sort,filters:e.filters,visible_on:e.visible_on,perPage:e.page_size||i,hiddenEmptyTable:!0,relatedLabel:e.label}}))}]:[2,{type:"alert",body:"没有相关子表",level:"info",showIcon:!0,className:"mb-3"}]}}))}))},AmisSelectUser=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a;return __generator(this,(function(n){switch(n.label){case 0:return console.log("AmisSelectUser props",e),t=e.$schema,e.data,[4,getSelectUserSchema({name:t.name,multiple:t.multiple,searchable:t.searchable,onEvent:t.onEvent,filters:t.filters},!1,{})];case 1:return(a=n.sent()).name=t.name,a.label=t.label,[2,a]}}))}))},AmisProvider=function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){return console.log("AmisProvider props",e),[2,{}]}))}))},AmisAppLauncher=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d;return __generator(this,(function(c){return t=e.app,a=e.data,n=e.className,i=e.showAppName,r=void 0===i||i,o=e.appNameClassName,s=void 0===o?"":o,t||(t=a.context.app),l=window.innerWidth<768?"SMALL":"LARGE",d="SMALL"===l,[2,{type:"service",className:n,body:[{type:"button",actionType:"dialog",className:"flex items-center",body:[{type:"tpl",className:"flex items-center",tpl:"<div aria-haspopup='true' title='Open App Launcher' class='slds-icon-waffle_container slds-context-bar__button' title='Open App Launcher' type='button'><span class='slds-icon-waffle'><span class='slds-r1'></span><span class='slds-r2'></span><span class='slds-r3'></span><span class='slds-r4'></span><span class='slds-r5'></span><span class='slds-r6'></span><span class='slds-r7'></span><span class='slds-r8'></span><span class='slds-r9'></span></span></div>"},{type:"tpl",className:"text-xl ml-4 mr-4 text-black nowrap ".concat(s," "),tpl:"${app.name}",hiddenOn:"".concat(!!t&&!r)}],dialog:{size:"xl",title:{type:"tpl",tpl:"应用程序启动器",className:"block text-xl text-center"},actions:[],body:[{type:"service",id:"u:0f6224a0836f",affixFooter:!1,body:[{type:"collapse-group",activeKey:["1","2"],body:[{type:"collapse",key:"1",header:"所有应用",body:[{type:"each",name:"app_items",items:{type:"button",level:"link",actionType:"link",link:"${path}",body:[{type:"tpl",tpl:"<div class='slds-app-launcher__tile slds-text-link_reset'><div class='slds-app-launcher__tile-figure'><svg class='w-12 h-12 slds-icon slds-icon_container slds-icon-standard-${REPLACE(icon, '_', '-')}' aria-hidden='true'><use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use></svg><span class='slds-assistive-text'>${name}</span></div><div class='slds-app-launcher__tile-body'><span class='slds-link text-blue-600 text-lg'><span title='${name}'>${name}</span></span><div style='display: -webkit-box; -webkit-line-clamp: 1;-webkit-box-orient: vertical;overflow: hidden;'><span title='${description}'>${description}</span></div></div></div>"}],onEvent:{click:{actions:[{actionType:"closeDialog"}]}},inline:!0,style:{},className:"slds-p-horizontal_small slds-size_1-of-1 slds-medium-size_1-of-3"},className:"slds-grid slds-wrap slds-grid_pull-padded"}]},{type:"collapse",key:"2",header:"所有项目",body:[{type:"each",name:"object_items",items:{type:"button",level:"link",actionType:"link",link:"${path}",body:[{type:"tpl",wrapperComponent:"span",className:"app-launcher-link slds-text-link--reset slds-app-launcher__tile--small slds-truncate creator-object-nav-${id}",tpl:'<span class="slds-truncate slds-text-link">${name}</span>'}],onEvent:{click:{actions:[{actionType:"closeDialog"}]}},inline:!0,style:{},className:"slds-col--padded slds-p-vertical_xx-small slds-size_1-of-5 slds-grow-none oneAppLauncherItem"},className:"slds-grid slds-wrap"}],className:""}]}],className:"",visibleOn:"",clearValueOnHidden:!1,visible:!0,messages:{},api:{method:"get",url:"${context.rootUrl}/service/api/apps/menus?mobile="+d,data:null,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\nlet app_items = payload;\nlet object_items = [];\nlet objects = [];\napp_items.forEach((item) => {\n item.children.forEach((i) => {\n if (objects.indexOf(i.id) < 0) {\n objects.push(i.id);\n object_items.push(i)\n }\n })\n})\npayload.data = {\n app_items,\n object_items\n}\nreturn payload;"}}]},id:"u:b5dc095e1c11"}]}]}))}))},AmisLogo=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i;return __generator(this,(function(r){return t=e.src,a=void 0===t?"/logo.png":t,n=e.className,i=e.imgClassName,[2,{type:"tpl",className:n,tpl:"<a href='/app' class='flex items-center '><img class='".concat(void 0===i?"block h-7 w-auto":i,"' src='").concat(a,"'></a>"),id:"u:2a8e7a359dff"}]}))}))},AmisAppMenu=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f;return __generator(this,(function(_){return t=e.stacked,a=void 0!==t&&t,n=e.overflow,i=e.appId,r=e.data,o=e.links,s=void 0===o?null:o,l=e.showIcon,d=void 0===l||l,c=e.className,u=void 0===c?"":c,p=e.indentSize,m=void 0===p?12:p,f=e.selectedId,i||(i=r.context.appId||"admin"),[2,{type:"nav",className:"".concat(u),stacked:a,overflow:n,indentSize:m,links:s,source:{method:"get",url:"${context.rootUrl}/service/api/apps/".concat(i,"/menus"),adaptor:"\n try {\n const data = { nav: [] };\n const stacked = ".concat(a,";\n const showIcon = ").concat(d,";\n const selectedId = '").concat(f,'\';\n _.each(_.groupBy(payload.children, \'group\'), (tabs, groupName) => {\n if (groupName === \'undefined\') {\n _.each(tabs, (tab) => {\n data.nav.push({\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n })\n })\n } else {\n\n if(stacked){\n data.nav.push({\n "label": groupName,\n "unfolded": true,\n "children": _.map(tabs, (tab) => {\n return {\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n }\n })\n })\n }else{\n _.each(tabs, (tab) => {\n data.nav.push({\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n });\n })\n }\n\n \n }\n });\n payload.data = data.nav;\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n '),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},sendOn:"".concat(!s)}}]}))}))},AmisGlobalHeader=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c;return __generator(this,(function(u){return t=e.className,a=void 0===t?"":t,n=e.data,i=e.logoutScript,r=void 0===i?"":i,o=e.customButtons,s=void 0===o?[]:o,l=null,(null===(c=null===(d=n.context)||void 0===d?void 0:d.user)||void 0===c?void 0:c.avatar)&&(l="".concat(n.context.rootUrl||"","/avatar/").concat(n.context.user.userId,"?w=220&h=200&fs=160&avatar=").concat(n.context.user.avatar)),[2,{type:"wrapper",id:"u:9c3d279be31a",className:"steedos-global-header leading-3\t".concat(a),size:"xs",body:__spreadArray(__spreadArray([],__read(s),!1),[{type:"button",hiddenOn:"window.innerWidth < 768",id:"u:267a7e84a89d",onEvent:{click:{actions:[{componentId:"",args:{url:"https://www.steedos.com/docs"},actionType:"url"}]}},body:[{type:"steedos-icon",category:"utility",name:"help",colorVariant:"default",id:"u:afc3a08e8cf3",className:"slds-button_icon slds-global-header__icon"}],label:"帮助"},{type:"button",hiddenOn:"window.innerWidth < 768",onEvent:{click:{actions:[{componentId:"",args:{url:"/app/admin"},actionType:"url"}]}},id:"u:b5d0ab3a32b5",body:[{type:"steedos-icon",category:"utility",name:"setup",colorVariant:"default",id:"u:793a86f8a9e4",className:"slds-button_icon slds-global-header__icon"}],label:"设置"},{type:"steedos-dropdown",placement:"bottomRight",trigger:["click"],body:[{type:"service",body:[{type:"steedos-badge",body:[{type:"steedos-icon",category:"utility",name:"notification",colorVariant:"default",className:"slds-button_icon slds-global-header__icon"}],count:"${unReadCount}"}],id:"u:aba521eed5b7",messages:{},api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",context:"${context}",userId:"${context.userId}"},dataType:"json",requestAdaptor:'const { userId } = api.data;\napi.data = {\n query: `{\n unReadCount: notifications__count(filters: [["owner","=","${userId}"], ["is_read", "!=", true]])\n }`\n}',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"return payload.data"},interval:3e4,silentPolling:!0}],overlay:[{type:"service",body:[{type:"panel",title:"通知",className:"min-w-[300px] max-w-md",body:[{type:"each",className:"overflow-auto max-h-96",name:"notifications",items:{type:"tpl",tpl:"<div class='flex items-center p-4 hover:bg-sky-50'><img src='<%=data.context.rootUrl + `/avatar/` + data.from%>' alt='' class='h-10 w-10 flex-none rounded-full'><div class='ml-4 flex-auto'><div class='font-medium'><a href='<%=data.context.rootUrl + `/api/v4/notifications/` + data._id + `/read?rootUrl=` + window.location.origin + `&appId=` + data.appId %>' target='_blank'><%=data.name%></a></div><div class='mt-1 text-slate-700'><%=data.body%></div><div class='mt-1 text-slate-700'><%=moment(data.created).fromNow()%><abbr class='slds-text-link slds-m-horizontal_xxx-small <%=data.is_read ? 'hidden' : ''%>' title='unread'>●</abbr></div></div></div>",id:"u:07ece657c7b7"},id:"u:18da41dab9ca"}],actions:[{type:"button",label:"全部标记为已读",id:"u:5530f3779e3a",onEvent:{click:{actions:[{componentId:"",args:{api:{url:"${context.rootUrl}/api/v4/notifications/all/markReadAll",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已全部标记为已读"}},actionType:"ajax"}],weight:0}}}]}],id:"u:aba521eed5b7",messages:{},api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",context:"${context}",userId:"${context.userId}"},dataType:"json",requestAdaptor:'const { userId } = api.data;\napi.data = {\n query: `{\n notifications(filters: ["owner","=","${userId}"], sort: "created desc,name", top : 10){\n _id,name,body,related_to,related_name,url,owner,is_read,from,created\n } }`\n}',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"return payload.data"}}],id:"u:857e8161c96b",className:"antd-Action",open:!1},{type:"steedos-dropdown",placement:"bottomRight",trigger:["click"],body:[{type:"avatar",src:l,icon:"fa fa-user",id:"u:033218742221",style:{background:"rgb(59 130 246 / 0.5)",color:"#FFFFFF"},size:30}],overlay:[{type:"wrapper",className:"",body:[{type:"grid",valign:"middle",align:"center",className:"m-2",columns:[{body:[{type:"avatar",className:"",src:l,icon:"fa fa-user",id:"u:033218742221",style:{background:"rgb(59 130 246 / 0.5)",color:"#FFFFFF"}}]},{body:[{type:"tpl",className:"block",tpl:"${context.user.name}",inline:!0},{type:"tpl",className:"block",tpl:"${context.user.email}",inline:!0}]}]},{type:"button",label:"个人资料",className:"flex",onEvent:{click:{actions:[{args:{url:"/app/admin/space_users/view/${context.user.spaceUserId}",blank:!1},actionType:"link"}]}},level:"link"},{type:"button",label:"注销",className:"flex",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"custom",script:r}]}},level:"link"}]}],className:"antd-Action"}],!1)}]}))}))},AmisSteedosField=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d;return __generator(this,(function(c){switch(c.label){case 0:t=null,a=e.field,n=e.readonly,i=void 0!==n&&n,r=e.ctx,o=void 0===r?{}:r,s=e.config,(l=e.$schema).config&&___default.isString(l.config)&&(l.config=JSON.parse(l.config),e.config=l.config),___default.isString(o)&&(o=JSON.parse(o)),s?(t=s,___default.isString(t)&&(t=JSON.parse(s))):___default.isString(a)&&(t=JSON.parse(a)),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,index.convertSFieldToAmisField(t,i,o)];case 2:return[2,c.sent()];case 3:return d=c.sent(),console.log("error",d),[3,4];case 4:return[2,null]}}))}))},getSelectFlowSchema=function(e,t){var a=t.label,n=t.data,i=t.name,r=t.required,o=t.action,s=void 0===o?"query":o,l=t.distributeInstanceId,d=void 0===l?"":l,c=t.distributeStepId,u=void 0===c?"":c,p=t.mode,m=void 0===p?"input-tree":p,f=t.className,_=t.onEvent,g=t.multiple,b=void 0!==g&&g,y=t.delimiter,h=t.joinValues,v=t.extractValue,w=t.searchable,$=t.showIcon,S=void 0===$||$,F=t.showRadio,x=void 0!==F&&F;return{type:m,id:e,label:a,name:i,options:[],multiple:b,delimiter:y,joinValues:h,extractValue:v,searchable:w,showOutline:t.showOutline,initiallyOpen:t.initiallyOpen,unfoldedLevel:t.unfoldedLevel,className:f,required:r,treeContainerClassName:t.treeContainerClassName,source:{method:"post",url:"${context.rootUrl}/graphql?keywords=${keywords}",requestAdaptor:"\n const keywords = api.body.keywords || '';\n const appId = '".concat(n.app_id||"","';\n api.data = {\n query: `\n {\n options: flows__getList(action: \"").concat(s,'", keywords: "${keywords}", appId: "${appId}", distributeInstanceId: "').concat(d,'", distributeStepId: "').concat(u,'"){\n value:_id\n label:name\n children: flows{\n value: _id,\n label: name\n }\n }\n }\n `\n }\n '),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},showIcon:S,showRadio:x,onlyLeaf:!0,onEvent:_}},AmisSelectFlow=function(e){var t=e.mode,a=void 0===t?"input-tree":t,n=e.id,i=void 0===n?"selectFlow"+___default.random(1e4,99999):n;console.log("AmisSelectFlow props",e);var r="".concat(i,"_input"),o=getSelectFlowSchema(r,e);return"tree-select"===a?o:{type:"service",id:"selectFlowService",body:[{type:"search-box",className:"!w-full mb-2",name:"keywords",enhance:!0,onEvent:{search:{actions:[{actionType:"setValue",componentId:"selectFlowService",args:{value:{keywords:"${event.data.keywords}"}}},{componentId:r,actionType:"reload"}]}}},o]}},AmisInstanceDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r;return __generator(this,(function(o){switch(o.label){case 0:return t=e.instanceId,a=e.boxName,n=e.data,[4,getInstanceInfo({instanceId:t,box:a})];case 1:return i=o.sent(),[4,getFlowFormSchema(i)];case 2:return(r=o.sent()).data=__assign$2(__assign$2({"&":"$$",recordLoaded:!0,submit_date:i.submit_date,applicant:i.applicant,applicant_name:i.applicant_name,related_instances:i.related_instances,historyApproves:i.historyApproves,boxName:a},i.approveValues),{context:Object.assign({},n.context,i),record:i}),console.log("AmisInstanceDetail schema",r),[2,r]}}))}))},PageListView=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m;return __generator(this,(function(f){switch(f.label){case 0:return t=e.formFactor,a=e.appId,n=e.objectApiName,i=e.listviewId,r=e.display,o=e.$schema,s=void 0===o?{}:o,r&&Router$1.setTabDisplayAs(n,r),l="SMALL"===t?"grid":r||Router$1.getTabDisplayAs(n),d=["split"].indexOf(l)>-1?"SMALL":t,[4,getPage({type:"list",appId:a,objectName:n,formFactor:d})];case 1:return!1===(c=f.sent())?[2,{type:"spinner",show:!0}]:(u=SteedosUI.getRefId({type:"listview",appId:a,name:n}),p=c?JSON.parse(c.schema):{type:"steedos-object-listview",objectApiName:n,columnsTogglable:!1,showHeader:!0,showDisplayAs:"SMALL"!==t,formFactor:d,className:"split"===l?"w-full":"p-0 flex-1 overflow-hidden h-full sm:m-3 sm:mb-0 sm:border sm:shadow sm:rounded border-slate-300 border-solid bg-gray-100"},[2,{type:"service",data:m=__assign$2(__assign$2({},s.data),{objectName:n,listViewId:u,listName:i,appId:a,formFactor:d,displayAs:l,scopeId:u}),className:"grid"===l?"":"p-0 flex flex-1 overflow-hidden h-full",body:"grid"===l?___default.defaultsDeep({data:m},p):[{type:"wrapper",className:"p-0 flex-shrink-0 min-w-[388px] overflow-y-auto border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col",body:___default.defaultsDeep({data:m},p)},{type:"wrapper",className:"p-0 flex-1 overflow-y-auto focus:outline-none xl:order-last",body:[]}]}])}}))}))},PageRecordDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h;return __generator(this,(function(v){switch(v.label){case 0:return t=e.formFactor,a=e.appId,n=e.objectApiName,i=e.listviewId,r=e.recordId,o=e.display,s=e.sideObject,l=void 0===s?n:s,d=e.sideListviewId,c=void 0===d?i:d,u=e.$schema,o&&Router$1.setTabDisplayAs(n,o),p="SMALL"===t?"grid":o||(l?"split":Router$1.getTabDisplayAs(tabId)),m=["split"].indexOf(p)>-1?"SMALL":t,[4,getPage({type:"list",appId:a,objectName:n,formFactor:m})];case 1:return f=v.sent(),_={},r?[4,getPage({type:"record",appId:a,objectName:n,formFactor:t})]:[3,3];case 2:g=v.sent(),_=g?JSON.parse(g.schema):{type:"wrapper",className:"p-0 m-0 sm:m-3 flex-1",name:"amis-".concat(a,"-").concat(n,"-detail"),body:[{type:"steedos-record-detail",recordId:"${recordId}",objectApiName:"${objectName}",appId:a}]},v.label=3;case 3:return b=SteedosUI.getRefId({type:"listview",appId:a,name:l}),y=f?JSON.parse(f.schema):{type:"steedos-object-listview",objectApiName:l,columnsTogglable:!1,showHeader:!0,showDisplayAs:!0,formFactor:"SMALL"},[2,{type:"service",data:h=__assign$2(__assign$2({},u.data),{objectName:n,listViewId:c,listName:c,recordId:r,appId:a,formFactor:m,displayAs:p,scopeId:b}),className:"grid"===p?"":"p-0 flex flex-1 overflow-hidden h-full",body:"grid"===p?___default.defaultsDeep({data:h},_):[{type:"wrapper",className:"p-0 flex-shrink-0 min-w-[388px] overflow-y-auto border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col",body:___default.defaultsDeep({data:h},y)},{type:"wrapper",className:"p-0 flex-1 overflow-y-auto focus:outline-none lg:order-last",body:___default.defaultsDeep({data:h},_)}]}]}}))}))},__assign=function(){return(__assign=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,a){return!1}},standard_new:{visible:function(e,t,a){return"cms_files"!==e&&"instances"!==e&&(a?a.allowCreate:void 0)}},standard_edit:{visible:function(e,t,a){if(a)return a.allowEdit}},standard_delete:{visible:function(e,t,a){if(a)return a.allowDelete}},standard_import_data:{visible:function(e,t,a){var n=this.object;if(a)return a.allowCreate&&n.hasImportTemplates}},standard_approve:{visible:function(e,t,a){return!1}},standard_view_instance:{visible:function(e,t,a){return!1}},standard_submit_for_approval:{visible:function(e,t,a){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,a){return!1}},standard_delete_many:{visible:function(e,t,a){return!RegExp("\\w+/view/\\w+").test(location.pathname)&&(a?a.allowDelete:void 0)}}}}},authRequest=function(e,t){var a=null;e=Steedos.absoluteUrl(e);try{var n=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],i={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(e){if(n&&n.length)return n.forEach((function(t){return e.setRequestHeader(t.name,t.value)}))},success:function(e){a=e},error:function(e,t,n){var i,r;e.responseJSON&&e.responseJSON.error?(i=e.responseJSON.error,void(a={error:i}),r=i.reason||i.message||i,console.error(r)):console.error(e.responseJSON)}};return $.ajax(Object.assign({},i,t)),a}catch(e){console.error(e)}};function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a,n=arguments[t];for(a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}const newFunctionComponent=e=>t=>{const[a,n]=React.useState(!0);var i=()=>{n(!1)};return ___default.has(t,"ref")||(window.SteedosUI.refs[t.name]={show:()=>{n(!0)},close:i}),React__default.default.createElement(e,_extends({visible:a,onCancel:i,onClose:i},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},t))},newComponentRender=(e,t)=>(a,n)=>{a.name||(a.name=e+"-"+(a.name||"default")),(n=n||document.getElementById(`steedos-${e}-root-`+a.name))||((n=document.createElement("div")).setAttribute("id",`steedos-${e}-root-`+a.name),document.body.appendChild(n)),a=React__default.default.createElement(newFunctionComponent(t),a),ReactDOM.createRoot(n).render(a)},Modal=___default.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)})),""+t.join(" ")},getFindOneQuery=(e,t,a)=>{e=e.replace(/\./g,"_"),a=getGraphqlFieldsQuery(a);let n="";return`{record:${e}__findOne${n=0<(t=[`id: "${t}"`]).length?`(${t.join(",")})`:n}{${a}}}`},SObject={getRecord:async(e,t,a)=>(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,a)})})).data.record,getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:a})=>{canSaveFilter(t),a.filters&&(a.filters=filtersToConditions(a.filters))},getVisibleFilter:(e,t)=>t||(canSaveFilter(e)?e.filters:void 0),getQueryFilter:(e,t)=>canSaveFilter(e)?ListView.getVisibleFilter(e,t):___default.isEmpty(t)?e.filters:[e.filters,"and",t],getFirstListView:async e=>(e=await window.getUISchema(e),_.first(_.sortBy(_.values(e.list_views),"sort_no")))},Router={getAppPath:({appId:e})=>"/app/"+e,getPagePath(){},getObjectListViewPath:({appId:e,objectName:t,listViewName:a})=>`/app/${e}/${t}/grid/`+a,getObjectDetailPath:({appId:e,objectName:t,recordId:a})=>`/app/${e}/${t}/view/`+a,getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:i})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+i};var withModalWrap=function(e,t){return function(t){return React.createElement(e,t)}},render=function(e,t,a,n){return e=withModalWrap(e),e=React.createElement(e,__assign({},t)),ReactDOM__default.default.render(e,a)};const safeRunFunction=(e,t,a,n)=>{try{var i=window.Creator;if((!i||!i.getObjectUrl)&&/\bSteedos\b|\bCreator\b|\bMeteor\b|\bSession\b/.test(e))return console.info("调用了Creator|Steedos|Meteor|Session变量的脚本不执行,直接按空值处理。"),"";let a=[];return ___default.isNil(t)||(a=___default.isArray(t)?t:[t]),e.bind(n||{})(...a)}catch(e){return console.log(e),a}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js)}}const isExpression=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},parseSingleExpression=function(e,t,a,n){var i,r=function(e,t){return"#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(t=void 0===t?{}:t,function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(a))||{};if("string"!=typeof e)return e;i="__G_L_O_B_A_L__",t="\n return "+e.substring(2,e.length-2).replace(/\bformData\b/g,JSON.stringify(t).replace(/\bglobal\b/g,i)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+i+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(r));try{return Function(t)()}catch(t){return console.log(t,e,a),e}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(e,t)=>{let a=e;return/^\{\w+(\.*\w+)*\}$/.test(e)&&(a=-1<e.indexOf("userId")||-1<e.indexOf("spaceId")||-1<e.indexOf("user.")||-1<e.indexOf("now")?`{${e}}`.replace("{{","{{global."):`{${e}}`.replace("{{","{{formData."),t&&(a=a.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),a},getFieldDefaultValue=(e,t)=>{if(!e)return null;let a=e.defaultValue;e._defaultValue&&(a=safeEval(`(${e._defaultValue})`)),___default.isFunction(a)&&(a=safeRunFunction(a,[],null,{name:e.name})),___default.isString(a)&&(a=getCompatibleDefaultValueExpression(a,e.multiple));var n=isExpression(a);return n&&(a=parseSingleExpression(a,{},"#",t)),"select"===e.type&&(t=e.data_type||"text",!a||n||e.multiple||("text"!==t||___default.isString(a)?"number"!==t||___default.isNumber(a)?"boolean"!==t||___default.isBoolean(a)||(a="true"===a):a=Number(a):a=String(a))),a},SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef:e=>SteedosUI$1.refs[e],router:{go:(e,t)=>{var a=window.FlowRouter;if(t)return a?a.go(t):window.open(t);a?a.reload():console.warn("暂不支持自动跳转",e)},reload:()=>{console.log("reload")}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:a})=>{switch(e){case"listview":return`amis-${t}-${a}-listview`;case"form":return`amis-${t}-${a}-form`;case"detail":return`amis-${t}-${a}-detail`;default:return`amis-${t}-${a}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue});var getBuilderContext=function(){return"undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({getRootUrl:function(e){return getBuilderContext().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return(e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e)}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,a=e.authToken;return t&&a?"Bearer ".concat(t,",").concat(a):null}catch(e){console.error(e)}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"==typeof window||window.Steedos||(window.Steedos=Steedos$1),"undefined"==typeof window||window.SteedosUI||(window.SteedosUI=SteedosUI$1);var index_esm=Object.freeze({__proto__:null,Steedos:Steedos$1,SteedosUI:SteedosUI$1});exports.AmisAppLauncher=AmisAppLauncher,exports.AmisAppMenu=AmisAppMenu,exports.AmisGlobalHeader=AmisGlobalHeader,exports.AmisInstanceDetail=AmisInstanceDetail,exports.AmisLib=index_esm$1,exports.AmisLogo=AmisLogo,exports.AmisObjectButton=AmisObjectButton,exports.AmisObjectCalendar=AmisObjectCalendar,exports.AmisObjectFieldLookup=AmisObjectFieldLookup,exports.AmisObjectForm=AmisObjectForm,exports.AmisObjectListView=AmisObjectListView,exports.AmisObjectTable=AmisObjectTable,exports.AmisProvider=AmisProvider,exports.AmisRecordDetail=AmisRecordDetail,exports.AmisRecordDetailHeader=AmisRecordDetailHeader,exports.AmisRecordDetailRelatedList=AmisRecordDetailRelatedList,exports.AmisRecordDetailRelatedLists=AmisRecordDetailRelatedLists,exports.AmisSelectFlow=AmisSelectFlow,exports.AmisSelectUser=AmisSelectUser,exports.AmisSteedosField=AmisSteedosField,exports.FromNow=FromNow,exports.PageListView=PageListView,exports.PageRecordDetail=PageRecordDetail,exports.SteedosBadge=SteedosBadge,exports.SteedosBadgeRibbon=SteedosBadgeRibbon,exports.SteedosDropdown=SteedosDropdown,exports.SteedosDropdownButton=SteedosDropdownButton,exports.SteedosIcon=SteedosIcon,exports.SteedosLib=index_esm,exports.SteedosLoading=SteedosLoading;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),___default=require("lodash"),antd=require("antd"),ReactDOM=require("react-dom");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var React__default=_interopDefaultLegacy(React),___default__default=_interopDefaultLegacy(___default),___default__namespace=_interopNamespace(___default),ReactDOM__default=_interopDefaultLegacy(ReactDOM),__assign$2=function(){return __assign$2=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},__assign$2.apply(this,arguments)};function __rest(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(a[n[i]]=e[n[i]])}return a}function __awaiter(e,t,a,n){return new(a||(a=Promise))((function(i,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function s(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,s)}l((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var a,n,i,r,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(r){return function(s){return function(r){if(a)throw new TypeError("Generator is already executing.");for(;o;)try{if(a=1,n&&(i=2&r[0]?n.return:r[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,r[1])).done)return i;switch(n=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,n=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){o=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){o.label=r[1];break}if(6===r[0]&&o.label<i[1]){o.label=i[1],i=r;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(r);break}i[2]&&o.ops.pop(),o.trys.pop();continue}r=t.call(e,o)}catch(e){r=[6,e],n=0}finally{a=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,s])}}}function __values(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,i,r=a.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=r.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(a=r.return)&&a.call(r)}finally{if(i)throw i.error}}return o}function __spreadArray(e,t,a){if(a||2===arguments.length)for(var n,i=0,r=t.length;i<r;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol,objectProto$2=Object.prototype,hasOwnProperty$1=objectProto$2.hasOwnProperty,nativeObjectToString$1=objectProto$2.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag$1(e){var t=hasOwnProperty$1.call(e,symToStringTag$1),a=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var n=!0}catch(e){}var i=nativeObjectToString$1.call(e);return n&&(t?e[symToStringTag$1]=a:delete e[symToStringTag$1]),i}var _getRawTag=getRawTag$1,objectProto$1=Object.prototype,nativeObjectToString=objectProto$1.toString;function objectToString$1(e){return nativeObjectToString.call(e)}var _objectToString=objectToString$1,Symbol$1=_Symbol,getRawTag=_getRawTag,objectToString=_objectToString,nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag$1(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}var _baseGetTag=baseGetTag$1;function overArg$1(e,t){return function(a){return e(t(a))}}var _overArg=overArg$1,overArg=_overArg,getPrototype$1=overArg(Object.getPrototypeOf,Object),_getPrototype=getPrototype$1;function isObjectLike$1(e){return null!=e&&"object"==typeof e}var isObjectLike_1=isObjectLike$1,baseGetTag=_baseGetTag,getPrototype=_getPrototype,isObjectLike=isObjectLike_1,objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag)return!1;var t=getPrototype(e);if(null===t)return!0;var a=hasOwnProperty.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&funcToString.call(a)==objectCtorString}var isPlainObject_1=isPlainObject;const RegisterRenders=[],normalizeLink=(e,t=window.location)=>{(e=e||"")&&"#"===e[0]?e=t.pathname+t.search+e:e&&"?"===e[0]&&(e=t.pathname+e);var a=e.indexOf("?"),n=e.indexOf("#");let i=~a?e.substring(0,a):~n?e.substring(0,n):e;if(a=~a?e.substring(a,~n?n:void 0):"",e=~n?e.substring(n):t.hash,i){if("/"!=i[0]&&!/^https?\:\/\//.test(i)){var r,o=t.pathname.split("/");for(o.pop();r=/^\.\.?\//.exec(i);)"../"===r[0]&&o.pop(),i=i.substring(r[0].length);i=o.concat(i).join("/")}}else i=t.pathname;return i+a+e},amisRootClick=(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},getEvn=e=>({theme:"antd",notify:(e,t)=>{t.props?.schema.tpl?SteedosUI.message[e](t.props?.schema.tpl):"string"==typeof t?SteedosUI.message[e](t):console.warn("notify",e,t)},confirm:e=>new Promise(((t,a)=>SteedosUI.Modal.confirm({title:e,onOk:()=>{t(!0)},okText:"确认",cancelText:"取消"}))),jumpTo:(t,a)=>{if("goBack"===t)return window.history.back();t=normalizeLink(t),a&&"url"===a.actionType?!0===a.blank?window.open(t):e.push(t):a&&t&&a.target?window.open(t,a.target):/^https?:\/\//.test(t)?window.location.replace(t):e.push(t)}}),registerRenders=e=>{if(!___default.isEmpty(e)&&___default.isArray(e)){var t=amisRequire("amis");const a={renderer:t.Renderer,formitem:t.FormItem,options:t.OptionsControl};let n=amisRequire("react");___default.each(e,(e=>{if(!___default.find(RegisterRenders,(t=>t===e.componentName))){let t=Builder.components.find((t=>t.name===e.componentName)),i=t.class;"amisSchema"===e.componentType&&(i=e=>{var{body:a,render:i}=e;const[r,o]=n.useState(null);return n.useEffect((()=>{var a=t.class(e);a&&a.then&&"function"==typeof a.then?a.then((e=>{o(e)})):o(a)}),[]),n.createElement(n.Fragment,null,n.createElement(n.Fragment,null,r&&i?i("body",r):""),n.createElement(n.Fragment,null,i?i("body",a):""))}),a[e.usage]?(a[e.usage]({test:new RegExp("(^|/)"+e.type),type:e.type,weight:e.weight,autoVar:!0})(i),console.info("注册了一个自定义amis组件:",{type:e.type,weight:e.weight,component:i,framework:e.framework,usage:e.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${e.usage}自定义组件类型。`),RegisterRenders.push(e.componentName)}}))}},amisRender=(e,t,a={},n={},i)=>{var r=amisRequire("amis/embed"),{router:i,assets:o}=i;return registerRenders(o),r.embed(e,t,a,Object.assign(getEvn(i),n))},STEEDOS_AUTH={},getBuilderContext$1=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings,setSteedosAuth=e=>{Object.assign(STEEDOS_AUTH,e)};async function fetchAPI(e,t={credentials:"include"}){var a,n={"Content-Type":"application/json"};if(401===(a=((a=getAuthorization())&&(n.Authorization=a),t.headers=Object.assign({},n,t.headers),t.credentials="include",await fetch(""+getRootUrl()+e,t))).status)throw new Error(401);if((n=await a.json()).errors)throw console.error(n.errors),new Error("Failed to fetch API");return n}function getFileSrc(e){return getRootUrl()+"/api/files/files/"+e}function getImageSrc(e){return getRootUrl()+"/api/files/images/"+e}function getTenantId(){try{let e=getBuilderContext$1().tenantId;return window.location.search&&!e&&(e=new URLSearchParams(window.location.search).get("X-Space-Id")),e||null}catch(e){console.error(e)}}function getAuthToken(){try{var e=getBuilderContext$1().authToken;return e||null}catch(e){console.error(e)}}function getAuthorization(){try{var e=getBuilderContext$1(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function getUserId(){try{var e=getBuilderContext$1().userId;return e||null}catch(e){console.error(e)}}function absoluteUrl(e){return""+getRootUrl()+e}function getRootUrl(e){return getBuilderContext$1().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}function setRootUrl(e){___default.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)}const getSteedosAuth=()=>Object.assign({},___default.cloneDeep(STEEDOS_AUTH)||{},getBuilderContext$1()||{}),Router$1={getTabDisplayAs:e=>(e=localStorage.getItem(`tab.${e}.display`))||"grid",setTabDisplayAs(e,t){localStorage.setItem(`tab.${e}.display`,t)},getAppPath:({appId:e})=>"/app/"+e,getPagePath(){},getObjectListViewPath:({appId:e,objectName:t,listViewName:a})=>`/app/${e}/${t}/grid/`+a,getObjectDetailPath(e){var{appId:e,objectName:t,recordId:a,_templateType:n}=e,i=Router$1.getTabDisplayAs(t);return"JavaScript"===n?`/app/${e}/${t}/view/${a}?display=${i}&side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${e}/${t}/view/${a}?display=${i}&side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:i})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+i};function getCreatedInfoTpl(e){return`<div><a href='${Router$1.getObjectDetailPath({formFactor:e,appId:"admin",objectName:"users",recordId:"${created_by._id}"})}'>\${_display.created_by.label}</a>\${_display.created}</div>`}function getModifiedInfoTpl(e){return`<div><a href='${Router$1.getObjectDetailPath({formFactor:e,appId:"admin",objectName:"users",recordId:"${modified_by._id}"})}'>\${_display.modified_by.label}</a>\${_display.modified}</div>`}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getNameTplUrl(e,t){return"cms_files"===t.objectName?"${context.rootUrl}/api/files/files/${versions[0]}?download=true":Router$1.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){return`<a href="${getNameTplUrl(e,t)}">\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let a="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;var n,i=t.onlyDisplayLabel;let r="data._display."+e.name;if(e.isTableField&&(r="data."+e.name),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";i||(e=`<a href="${n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`),a=`\n <% if (${r} && ${r}.length) { %><% ${r}.forEach(function(item,index) { %> <% if(index>0 && index<${r}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let r=`\${_display.${e.name}.label}`,o=`\${_display.${e.name}.objectName}`,s=`\${_display.${e.name}.value}`;e.isTableField&&(r=`\${${e.name}.label}`,o=`\${${e.name}.objectName}`,s=`\${${e.name}.value}`),i||(n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:""+o,recordId:""+s}),r=`<a href="${n}">${r}</a>`),a=r}else{let n="<%=item.label%>";i||(n=`<a href="${e=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`),a=`\n <% if (${r} && ${r}.length) { %><% ${r}.forEach(function(item) { %> ${n} <% }); %><% } %>\n `}return a}async function getLookupTpl(e,t){var a,n;return e.reference_to?(a=await getRefObjectNameFieldName(e),e.multiple?(n=Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"}),`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${n}"><%=item.${a}%></a> <% }); %><% } %>\n `):`<a href="${Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):getSelectTpl(e)}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<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>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return getRelatedFieldTpl(e,t);case"number":case"currency":return getNumberTpl(e);case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){0!=t&&(t=!0);let a=["_id"],n=[];for(const i of ___default__namespace.isArray(e)?e:___default__namespace.values(e))i.name.indexOf(".")<0&&(!t||"lookup"!=i.type&&"master_detail"!=i.type?a.push(i.alias?i.alias+":"+i.name:i.name):(a.push(""+i.name),n.push(""+i.name)),___default.includes(["time","date","datetime","boolean","number","currency"],i.type)&&a.push(""+i.name),___default.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],i.type)&&n.push(""+i.name));return n=___default__namespace.uniq(n),a=___default__namespace.uniq(a),0<n.length?`${a.join(",")},_display:_ui{${n.join(",")}}`:""+a.join(" ")}function getRecordPermissionsTemplate(){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 "}async function getFindOneQuery$1(e,t,a,n){let i="",r=(t&&(i=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return n&&(n.alias&&(r=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`)),{query:`{${r}:${e.name}${i}{${await getFieldsTemplate(a)}, ${getRecordPermissionsTemplate()}}}`}}function getSaveQuery(e,t,a,n){return{objectName:e.name,$:"$$",recordId:t,modalName:"${modalName}"}}function getScriptForReadonlyFields(e){var t=[];return e.forEach((e=>{e.readonly&&e.name.indexOf(".")<0&&t.push(`delete formData.${e.name};`)})),t.join("\r\n")}function getScriptForRemoveUrlPrefixForImgFields(e){let t=[],a={};return e.forEach((e=>{___default.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n let imgFieldsKeys = ${JSON.stringify(t)};\n let imgFields = ${JSON.stringify(a)};\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?.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 `:""}function getScriptForSimplifiedValueForFileFields(e){let t=[],a={};return e.forEach((e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\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 `:""}function getSaveDataTpl(e){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 ${getScriptForReadonlyFields(e)}\n ${getScriptForRemoveUrlPrefixForImgFields(e)}\n ${getScriptForSimplifiedValueForFileFields(e)}\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._id}", doc: {__saveData}){_id}}\`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n `}function getSaveRequestAdaptor(e){return`\n ${getSaveDataTpl(e)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n `}async function getFindQuery(e,t,a,n){let i=`(top: ${o=n.limit||10})`,r=(t&&(i=`(filters:["_id", "=", "${t}"], top: ${o})`),"data");n&&(n.alias&&(r=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`));t="";var o=(e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(t=",parent,children"),""),s=("cms_files"===e.name&&(o=",versions"),!1===n.count?"":`,count:${e.name}__count(filters:{__filters})`),l=n.moreQueries?.length?","+n.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${r}:${e.name}${i}{${await getFieldsTemplate(a,n.expand)}${t}${o}}${s}${l}}`}}function getRecordPermissionsQuery(e,t,a){let n="",i=(t&&(n=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data"),r=(a&&(a.alias&&(i=a.alias),a.filters&&(n=`(filters:${a.filters})`),a.queryOptions&&(n=`(${a.queryOptions})`)),getRecordPermissionsTemplate());return a?.fields&&a.fields.length&&(r=`\n recordPermissions: _permissions{\n ${a.fields.join(",")}\n }\n `),{query:`{${i}:${e.name}${n}{${e.idFieldName},${r}}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql"}async function getListBody(e,t){var a=[];for(const i of e){var n=await getFieldTpl(i,t);let e=n?"tpl":"text";i.hidden||i.extra||a.push({name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:n,toggled:i.toggled})}return{type:"hbox",columns:a}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){return e=(await getListBody(e,t)).columns,{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...e],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router$1.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}const refUsersObjectName="space_users",refOrgsObjectName="organizations";async function getSource$1(e,t){var a,n=await getFindQuery({name:refOrgsObjectName},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"});(a=((a=(n.query=n.query.replace(/,count\:.+/,"}"),await getFindQuery({name:refOrgsObjectName},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await getFindQuery({name:refUsersObjectName},null,[{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=""+e.name;return e._prefix&&(i=""+e._prefix+e.name),t.fieldNamePrefix&&(i=""+t.fieldNamePrefix+i),n.$value="$"+i,a=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.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 `,{method:"post",url:getApi$2(),requestAdaptor:a,adaptor:"\n const data = payload.data;\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 data.leftOptions = data.leftOptions.map(function (leftOption) {\n leftOption.defer = !!(leftOption.children && leftOption.children.length);\n delete leftOption.children;\n return leftOption;\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 ",data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi$1(e,t){var a=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let n=e.filters;return"function"==typeof(n="string"==typeof n?(n=new Function("return "+n))():n)&&(n=n(e)),a.query=a.query.replace(/,count\:.+/,"}"),a.query=a.query.replace("{_id}","{{__fields}}"),e=`\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 = "${t.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 = ${n&&JSON.stringify(n)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n sort = "${t.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 `,{method:"post",url:getApi$2()+"?ref=${ref}&dep=${value}",requestAdaptor:e,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 ",data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getSearchApi(e,t){var a=await getFindQuery({name:refUsersObjectName},null,[{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});e=`\n var term = api.query.term;\n var filters;\n var sort = "";\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${(e=(a.query=a.query.replace(/,count\:.+/,"}"),e.filters))&&JSON.stringify(e)};\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 = "${t.usersSort}";\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"?term=${term}",requestAdaptor:e,data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort$1(e){e=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let t="";return e?getListViewSort(e):t}async function getSelectUserSchema(e,t,a){if(!e)return{};a=a||{};var n={type:getAmisStaticFieldType("select",t)};return t?n.tpl=await getLookupTpl(e,a):(t=await getUISchema(refUsersObjectName),a.usersSort=getRefListViewSort$1(t),t=await getUISchema(refOrgsObjectName),a.orgsSort=getRefListViewSort$1(t),Object.assign(n,{multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",extractValue:!0,clearable:!0,source:await getSource$1(e,a),deferApi:await getDeferApi$1(e,a),searchApi:await getSearchApi(e,a)}),e.multiple&&Object.assign(n,{joinValues:!1}),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const globalTag="__G_L_O_B_A_L__",getParentPath=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))},getValueByPath=function(e,t){return"#"!==t&&t?"string"==typeof t?___default.get(e,t):void console.error("path has to be a string"):e||{}},isExpression$1=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},parseSingleExpression$1=function(e,t,a,n,i={}){var r,o;if(void 0===t&&(t={}),o=getParentPath(a),o=getValueByPath(t,o)||{},"string"!=typeof e)return e;r=e.substring(2,e.length-2),i=`\n var $user=${JSON.stringify(i)}; return `+r.replace(/\bformData\b/g,JSON.stringify(t).replace(/\bglobal\b/g,globalTag)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+globalTag+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(o));try{return Function(i)()}catch(t){return console.log(t,e,a),e}};var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};const getSchema$4=async(e,t)=>({type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",defaultData:"${defaultData}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:"新建 ${uiSchema.label}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"",adaptor:'\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 return {\n data: formSchema\n };\n '}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg"}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"});async function getPage({type:e,pageId:t="",appId:a,objectName:n="",recordId:i="",formFactor:r="LARGE"}){if((e=await fetchAPI(`/api/pageSchema/${e}?app=${a}&objectApiName=${n}&recordId=${i}&pageId=${t}&formFactor=`+r))&&e.schema)return e}const getSchema$3=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d2b0c083c38f",mode:"edit"};return{type:"service",body:[{type:"button",label:"编辑",id:"u:standard_edit",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:e="编辑 "+e.label,bodyClassName:"",body:[a=(t=await getPage({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:ee95697baa4f",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"",id:"u:3c5cbc0429bb"}},getSchema$2=e=>({type:"service",className:"p-0",body:[{type:"button",label:"删除",confirmText:"确定要删除此项目?",onEvent:{click:{actions:[{args:{api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",recordId:"${recordId}",objectName:"${objectName}"},requestAdaptor:"const {recordId, objectName} = api.body; var deleteArray = []; deleteArray.push(`delete:${objectName}__delete(id: \"${recordId}\")`); api.data = {query: `mutation{${deleteArray.join(',')}}`}; return api;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"},{actionType:"broadcast",args:{eventName:"@data.changed."+e.name},data:{objectName:""+e.name,__deletedRecord:!0}}]}}}],regions:["body"]}),getSchema$1=e=>({type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{data:{"&":"$$",object_name:"${objectName}"},type:"dialog",title:"导入数据",body:[{type:"form",mode:"edit",persistData:!1,promptPageLeave:!0,name:"form_edit_data_import",debug:!1,title:"",submitText:"",api:{method:"post",url:"${context.rootUrl}/graphql",data:{objectName:"queue_import_history",$:"$$"},requestAdaptor:"\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.success_count;\ndelete formData.failure_count;\ndelete formData.total_count;\ndelete formData.start_time;\ndelete formData.end_time;\ndelete formData.state;\ndelete formData.error;\ndelete formData.created;\ndelete formData.created_by;\ndelete formData.modified;\ndelete formData.modified_by;\n \n \n let fileFieldsKeys = [\"file\"];\n let fileFields = {\"file\":{\"name\":\"file\"}};\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 let query = `mutation{record: ${objectName}__insert(doc: {__saveData}){_id}}`;\n if(formData.recordId && formData.recordId !='new'){\n query = `mutation{record: ${objectName}__update(id: \"${formData._id}\", doc: {__saveData}){_id}}`;\n };\n delete formData._id;\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n ",responseData:{recordId:"${record._id}"},adaptor:"console.log('payload', payload)\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},dataType:"json"},initFetch:!0,body:[{type:"fieldSet",title:"通用",collapsable:!0,body:[{name:"object_name",label:"导入对象",required:!1,type:"select",joinValues:!1,extractValue:!0,autoComplete:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:"{options:objects(filters: {__filters}, top: {__top}){_id label:label value:name},count:objects__count(filters:{__filters})}",$term:"$term",$value:"$object_name.name",$:"$$",rfield:"${object_name}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"\n var filters = '[]';\n var top = 10;\n if(api.data.$term){\n filters = '[\"name\", \"contains\", \"'+ api.data.$term +'\"]';\n }else if(api.data.$value){\n filters = '[\"_id\", \"=\", \"'+ api.data.$value +'\"]';\n }\n api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);\n return api;\n "},className:"m-1",labelClassName:"text-left",clearValueOnHidden:!1,id:"u:04295fee3896",multiple:!1,hidden:!0},{name:"queue_import",label:"数据导入",required:!0,type:"picker",labelField:"description",valueField:"_id",modalMode:"dialog",source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:queue_import(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,description,object_name,encoding,template_url,_display:_ui{object_name,encoding}},count:queue_import__count(filters:{__filters})}',$term:"$term",$self:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},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 = [\"description\"];\n if(api.data.$term){\n filters = [[\"name\", \"contains\", \"'+ api.data.$term +'\"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [[\"_id\", \"=\", selfData.value.split(',')]];\n }else{\n filters = [[\"_id\", \"=\", selfData.value]];\n }\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\n const filtersFunction = function(filters, values){return ['object_name', '=', values.object_name]};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\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 ",adaptor:"\n const enable_tree = undefined;\n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n "},size:"lg",pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:20},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"description",label:"导入描述",type:"tpl",tpl:'<a href="/app/undefined/undefined/view/${undefined}">${description}</a>',className:"whitespace-nowrap",html:null},{name:"object_name",label:"导入对象",type:"tpl",tpl:'<a href="/app/undefined/${_display.object_name.objectName}/view/${_display.object_name.value}">${_display.object_name.label}</a>',className:"whitespace-nowrap",html:null},{name:"encoding",label:"字符代码",type:"tpl",tpl:"<div>${_display.encoding}</div>",className:"whitespace-nowrap",html:null},{name:"template_url",label:"导入模板",type:"tpl",className:"whitespace-nowrap"},null],syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,autoFillHeight:!1},joinValues:!1,extractValue:!0,className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,id:"u:401df27113e0"},{name:"file",label:"Excel文件",required:!0,type:"input-file",className:"m-1",labelClassName:"text-left",clearValueOnHidden:!0,useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/files",data:{$:"$$",context:"${context}"},adaptor:'\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/files/";\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 ',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},id:"u:0213f2cc365b"}],id:"u:4899c260d667"}],panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form",label:"对象表单",objectApiName:"queue_import_history",id:"u:e4ef598eed61",onEvent:{submitSucc:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/data/initiateImport",method:"post",data:{eventData:"${event.data}"},dataType:"json",requestAdaptor:"\napi.data = {\n importObjectHistoryId: api.body.eventData.result.data.recordId\n}\nreturn api;",adaptor:"payload.status = payload.status === 'success' ? 0 : payload.status;\nconsole.log(\"payload ssss==>\", payload)\nreturn payload;",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已开始导入...",failed:"导入失败"}},actionType:"ajax",expression:"event.data.result"}]}},closeDialogOnSubmit:!0}],id:"u:dc05498d3bd4",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}},level:"default"}],regions:["body"],className:"p-0",id:"u:bd2f9c4e986f"}),getSchema$5=e=>({type:"service",className:"p-0",body:[{type:"button",label:"查看",className:"border-none",onEvent:{click:{actions:[{componentId:"",args:{blank:!1,url:"/app/${app_id}/${objectName}/view/${_id}"},actionType:"link"}]}},id:"u:ef35c9ae1d19"}],regions:["body"]}),StandardButtons={getStandardNew:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$4()}),getStandardEdit:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$3(e,t)}),getStandardDelete:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$2(e)}),getStandardDeleteMany:async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=this.scopeId||`amis-${e}-${t}-listview`,t=(this.scope||SteedosUI?.getRef(e)).getComponentById("listview_"+a.name);_.isEmpty(t.props.store.toJSON().selectedItems)?t.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):t.handleBulkAction(t.props.store.toJSON().selectedItems,[],{},t.props.bulkActions[0])}}),getStandardImportData:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$1()}),getStandardOpenView:async(e,t)=>({type:"amis_button",amis_schema:await getSchema$5()})},getGlobalData$1=()=>({now:new Date});function getButtonVisibleOn$1(e){let t=e.visible;return e._visible&&(t=e._visible),(t=___default__default.default.isBoolean(t)?t.toString():t)?t.trim().startsWith("function")?t+".apply({\n object: uiSchema\n }, [objectName, _id, recordPermissions, data])":t:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}const getButtonVisible=(e,t)=>{if(e._visible&&(___default__default.default.startsWith(___default__default.default.trim(e._visible),"function")?(window.eval("var fun = "+e._visible),e.visible=fun):isExpression$1(e._visible)&&(e.visible=t=>{parseSingleExpression$1(e._visible,t.record,"#",getGlobalData$1(),t.userSession)})),!___default__default.default.isFunction(e.visible))return e.visible;try{return e.visible(t)}catch(t){}},standardButtonsTodo={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);___default__default.default.isEmpty(a.props.store.toJSON().selectedItems)?a.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):a.handleBulkAction(a.props.store.toJSON().selectedItems,[],{},a.props.bulkActions[0])}},getButtons=(e,t)=>{const a=e.permissions&&e.permissions.disabled_actions;let n=___default__default.default.sortBy(___default__default.default.values(e.actions),"sort");return ___default__default.default.has(e,"allow_customActions")&&(n=___default__default.default.filter(n,(t=>___default__default.default.include(e.allow_customActions,t.name)))),___default__default.default.has(e,"exclude_actions")&&(n=___default__default.default.filter(n,(t=>!___default__default.default.include(e.exclude_actions,t.name)))),___default__default.default.each(n,(a=>{a.objectName=e.name,t.isMobile&&-1<["record","record_only"].indexOf(a.on)&&"standard_edit"!=a.name&&("record_only"==a.on?a.on="record_only_more":a.on="record_more")})),t.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(e.name)&&___default__default.default.map(n,(e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")})),___default__default.default.filter(n,(e=>___default__default.default.indexOf(a,e.name)<0&&"standard_query"!=e.name))},getListViewButtons=(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"list"==e.on))),getObjectDetailButtons=(e,t)=>(e=getButtons(e,t),t=___default__default.default.filter(e,(e=>"record"==e.on||"record_only"==e.on)),___default__default.default.sortBy(t,"sort")),getObjectDetailMoreButtons=(e,t)=>(e=getButtons(e,t),t=___default__default.default.filter(e,(e=>"record_more"==e.on||"record_only_more"==e.on)),___default__default.default.sortBy(t,"sort")),getListViewItemButtons=async(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on))),getObjectRelatedListButtons=async(e,t)=>(e=getButtons(e,t),___default__default.default.filter(e,(e=>"list"==e.on))),getButton=async(e,t,a)=>{var n=await getUISchema(e);if(n){var i=await getButtons(n,a);i=___default__default.default.find(i,(e=>e.name===t));if(i)return"standard_edit"==i.name&&"standard_edit"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,...await StandardButtons.getStandardEdit(n,a)}:"cms_files"!=e&&"standard_new"==i.name&&"standard_new"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,...await StandardButtons.getStandardNew(n,a)}:"standard_delete"==i.name&&"standard_delete"===i.todo&&"amis_button"!=i.type?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardDelete(n,a)}:n.hasImportTemplates&&"standard_import_data"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardImportData(n,a)}:"standard_open_view"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardOpenView(n,a)}:"standard_delete_many"===i.name?{label:i.label,name:i.name,on:i.on,sort:i.sort,...await StandardButtons.getStandardDeleteMany(n,a)}:i}},execute=(e,t)=>{if(e.todo)return ___default__default.default.isString(e.todo)&&___default__default.default.startsWith(___default__default.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),___default__default.default.isFunction(e.todo)?(t={objectName:t.objectName,object_name:t.objectName,object:t.uiSchema,record:t.record,recordId:t.recordId,record_id:t.recordId,...t,action:e},e.todo.apply(t,[t.objectName,t.recordId])):void 0},executeButton=execute;async function getObjectFieldsFilterButtonSchema(e){return{type:"button",label:"",icon:"fa fa-search",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"broadcast",args:{eventName:"broadcast_toggle_fields_filter"}}]}}}}async function getObjectFieldsFilterFormSchema(e,t,a){a=a||{};var n,i,r=[];for(n of t)___default.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],n.type)||(delete n.defaultValue,delete n.required,delete n.is_wide,delete n.readonly,delete n.hidden,delete n.omit,(i=await getFieldSearchable(n,t,a))&&r.push(i));return ___default.map(r,"name"),a.enableSearchableFieldsVisibleOn&&r.forEach((function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`})),r}async function getObjectFieldsFilterBarSchema(e,t,a){return a=a||{},t=await getObjectFieldsFilterFormSchema(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a)),{type:"service",name:"service_listview_filter_form",data:{},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(!defaultSearchableFields && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n defaultSearchableFields = listView && listView.searchable_fields;\n if(defaultSearchableFields && defaultSearchableFields.length){\n defaultSearchableFields = _.map(defaultSearchableFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.filter(_.values(data.uiSchema.fields), (field) => {\n return field.searchable;\n }),\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/" + data.listViewId ;\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 setData({ showFieldsFilter: true });\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===a.formFactor?"slds-filters__body p-0 mb-2":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2"},{type:"wrapper",body:{type:"wrapper",body:[{type:"button",label:"搜索",icon:"fa fa-search",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",onEvent:{click:{actions:[{actionType:"custom",script:'\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] = "";\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n '}]}}},{type:"button",label:"设置搜索项",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:"设置搜索项",body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:null,requestAdaptor:"",adaptor:""},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:"确认",onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\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 else{\n searchableFieldsStoreKey += listViewId;\n }\n sessionStorage.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] = "";\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n // const removedValues = {};\n removedKeys.forEach(function(key){\n delete localListViewProps[key];\n // removedValues[key] = "";\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n // ===END===\n '},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:"border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap "+(!a.isLookup&&"mt-2"),visibleOn:"this.showFieldsFilter"},className:"bg-white"}}function getObjectListHeaderFirstLine(e,t,a){var{icon:n,label:i}=e;const r=[];___default.each(e.list_views,((t,a)=>{r.push({type:"button",label:t.label,actionType:"link",link:`/app/\${appId}/${e.name}/grid/`+a})}));var o=getListViewButtons(e,{}),s=(o=___default.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),new RegExp("_","g"));return{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="slds-icon slds-icon_container slds-icon-standard-${n&&n.replace(s,"-")} slds-page-header__icon" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${n}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center",valign:"middle"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",className:"text-md leading-none text-black"},{type:"dropdown-button",className:"",label:"${uiSchema.list_views[listName].label}",rightIcon:"fa fa-caret-down",size:"sm",hideCaret:!0,btnClassName:"!bg-transparent !border-none !hover:border-none text-lg h-5 font-bold p-0 text-black leading-none",buttons:r}],md:"",columnClassName:"p-l-xs"}],className:"flex justify-between"}],md:"auto"},{body:{type:"flex",items:o},md:"auto",valign:"middle"}],className:"flex justify-between"}}async function getObjectListHeaderSecordLine(e,t,a){return e="listview_"+e.name,{type:"grid",columns:[{body:[{type:"tpl",tpl:"${$count} 个项目",visibleOn:"this.$count >= 0",inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:14},id:"u:1661f8471235"}],md:"auto",columnClassName:"flex items-center"},{body:[await getObjectFieldsFilterButtonSchema(),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:e,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:"flex justify-between"}}async function getObjectListHeaderFieldsFilterBar(e,t,a){var n=___default.keys(e.fields);n=___default.sortBy(___default.compact(___default.map(n,(t=>e.fields[t]))),"sort_no");return await getObjectFieldsFilterBarSchema(e,n,a)}async function getObjectListHeader$1(e,t,a){return[{type:"wrapper",body:[getObjectListHeaderFirstLine(e)],className:"bg-gray-100 sm:rounded-tl sm:rounded-tr p-4 -mb-4"}]}async function getObjectRecordDetailHeader(e,t,a){var{showRecordTitle:a=!0}=a||{},{name:n,label:i,icon:r}=e,o=getObjectDetailButtons(e,{}),s=getObjectDetailMoreButtons(e,{recordId:t,objectName:n}),l=(o=___default.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),s=___default.map(s,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e)}))),s=(o.push({type:"steedos-dropdown-button",label:"",buttons:s,className:"slds-icon"}),new RegExp("_","g")),s=r&&r.replace(s,"-"),[]);a&&l.push({body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="slds-icon slds-icon_container slds-icon-standard-${s} slds-page-header__icon" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${r}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+i,inline:!1,wrapperComponent:"",className:"leading-4 text-md"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",className:"leading-5 text-xl font-bold"}],columnClassName:"p-l-xs"}],className:"flex justify-between"}],md:"auto"}),l.push({body:{type:"flex",items:o},md:"auto"}),s=[{type:"service",id:`page_readonly_${n}_header`,data:{"&":"$$",objectName:n,_id:t,recordPermissions:"${record.recordPermissions}",uiSchema:e},body:[{type:"grid",columns:l,className:"flex justify-between"}],messages:{},hiddenOn:"${recordLoaded != true}"}];return a&&s.push({type:"service",body:[{type:"grid",columns:[l[0]],className:"flex justify-between"}],messages:{},hiddenOn:"${recordLoaded == true}"}),{type:"service",bodyClassName:"",name:"page",data:{"&":"$$",objectName:n,_id:t,recordPermissions:e.permissions,uiSchema:e,record:"${record}"},body:s,className:""}}async function getObjectRecordDetailRelatedListHeader(e,t){var a=e.icon,n=(e=await getObjectRelatedListButtons(e,{}),e=___default.map(e,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn$1(e),className:"button_"+e.name}))),new RegExp("_","g"));return{type:"wrapper",body:[{type:"grid",valign:"middle",columns:[{body:[{type:"grid",valign:"middle",className:"flex justify-between",columns:[{body:{type:"tpl",className:"block",tpl:`<svg class="w-6 h-6 slds-icon slds-icon_container slds-icon-standard-${a&&a.replace(n,"-")}" aria-hidden="true"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${a}"></use></svg>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a class="text-black text-base font-bold" href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${t}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:""}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:e},md:"auto"}],className:"flex justify-between"}],className:"p-3"}}async function getObjectRelatedListHeader(e,t,a){}const getDisplayAsButton=function(e){return{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",buttons:[{label:"显示为",children:[{type:"button",label:"表格",onClick:"const url = document.location.pathname + '?display=grid'; props.env.jumpTo(url);"},{type:"button",label:"分栏视图",onClick:"const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);"}]}]}},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});\nfilterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n';function getObjectHeaderToolbar(e,t,{showDisplayAs:a=!1,hiddenCount:n=!1}={}){return"SMALL"===t?[n?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",onEvent:{click:{actions:[{actionType:"custom",script:'\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 '}]}}},{label:"",icon:"fa fa-search",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}},a?getDisplayAsButton():{}]:["bulkActions",{type:"columns-toggler",className:"hidden"},n?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"reload",align:"right",tooltipPlacement:"bottom",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},{type:"button",label:"",icon:"fa fa-download",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",tooltipPlacement:"bottom",visibleOn:"${!isLookup && global.user.is_space_admin}",tooltip:"导出Excel",onEvent:{click:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/record/export/${object_name}",method:"get",messages:{},requestAdaptor:'// 获取列表视图的属性\nlet uiSchema = api.body.uiSchema;\nlet list_views = uiSchema.list_views;\nlet list_views_name = api.body.listName;\nlet col = list_views[list_views_name].columns;\nlet sort_test = list_views[list_views_name].sort;\n\n// 获取下载字段\nlet select = [];\n_.each(col, (col) => {\n if (col.field == undefined)\n select.push(col);\n else select.push(col.field);\n});\n\n// 获取排序字段\nlet sort = [];\n_.forEach(sort_test, (sortField) => {\n if (sortField.field_name == undefined)\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n})\n\nlet orders = [];\n_.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == "desc")\n order_tmp = value[0] + \' desc\';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n});\nlet order = orders.join(\',\');\n\nlet filename = uiSchema.label + "-" + list_views[list_views_name].label;\nurl_tmp = api.url.split(\'?\')[0];\napi.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;\n\n// 判断sort 和 filters\nif (sort.length > 0) {\n api.url += "&$orderby=" + order;\n}\nlet filters = list_views[list_views_name].filters;\nif (filters && filters.length > 0) {\n api.url = api.url + "&filters=" + JSON.stringify(filters);\n}\nreturn api;',data:{uiSchema:"${uiSchema}",listName:"${listName}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}]}}},{label:"",icon:"fa fa-search",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}},a?getDisplayAsButton():{}]}function getObjectFooterToolbar(e,t){return"SMALL"===t?["load-more"]:["statistics","pagination"]}async function getObjectFilter(e,t,a){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,a)]}}async function getSource(e,t){var a=t.objectName,n=await getFindQuery({name:a},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});(a=(n.query=n.query.replace(/,count\:.+/,"}"),await getFindQuery({name:a},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),n.query=n.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=""+e.name;return e._prefix&&(i=""+e._prefix+e.name),t.fieldNamePrefix&&(i=""+t.fieldNamePrefix+i),n.$value="$"+i,a=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,{method:"post",url:getApi$2(),requestAdaptor:a,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 ',data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){var a=t.objectName,n=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let i=e.filters;return"function"==typeof(i="string"==typeof i?(i=new Function("return "+i))():i)&&(i=i(e)),n.query=n.query.replace(/,count\:.+/,"}"),n.query=n.query.replace("{_id}","{{__fields}}"),e=`\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 = "${a}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.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 `,{method:"post",url:getApi$2()+"?dep=${value}",requestAdaptor:e,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 ",data:n,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){e=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let t="";return e?getListViewSort(e):t}async function lookupToAmisTreeSelect(e,t,a){if(!e)return{};a=a||{};var n={type:getAmisStaticFieldType("tree-select",t)};return t?n.tpl=await getLookupTpl(e,a):(t=await getUISchema(a.objectName),a.sort=getRefListViewSort(t),Object.assign(n,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,a),deferApi:await getDeferApi(e,a)}),e.multiple&&Object.assign(n,{joinValues:!1}),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const getReferenceTo=async e=>{let t=e.reference_to;if(t){"users"===t&&(t="space_users",e.reference_to_field="user");var a=await getUISchema(t);if(!a)return null;let n=null,i=e.reference_to_field;return i=i||a.idFieldName||"_id",n="_id"===i?{name:"_id",label:"ID",type:"text",toggled:!1}:a.fields[i]||{name:i},{objectName:t,valueField:n,labelField:a.fields[a.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:a.NAME_FIELD_KEY||"name"}}};async function lookupToAmisPicker(e,t,a){var n=await getReferenceTo(e);if(n){const o=await getUISchema(n.objectName),s=[];let l=0;const d=[],c=[];var i=___default__namespace.find(o.list_views,((e,t)=>"all"===t));i&&i.columns?___default__namespace.each(i.columns,(function(e){___default__namespace.isString(e)&&o.fields[e]?c.push(o.fields[e]):___default__namespace.isObject(e)&&o.fields[e.field]&&c.push(Object.assign({},o.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(o.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),c.push(e))})),___default__namespace.each(___default__namespace.sortBy(c,"sort_no"),(function(e){l<5&&(___default__namespace.find(s,(function(t){return t.name===e.name}))||(l++,s.push(e),e.searchable&&d.push(e.name)))}));const u={[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField};___default__namespace.each(s,(e=>{e.hidden||(u[e.name]=e)}));let p="";if(i&&(p=getListViewSort(i)),(i=await getApi$1(o,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).url){const t=[],a=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),a.push("this."+e)})),0<t.length&&(i.url=i.url+"?"+t.join("&"),i.sendOn=""+a.join(" && "))}i.data.$term="$term",i.data.$self="$$",i.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 : "${p}";\n var allowSearchFields = ${JSON.stringify(d)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${n.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${n.valueField.name}", "=", selfData.value]];\n }\n }\n\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const filtersFunction = ${e._filtersFunction};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\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 `,i.adaptor=`\n const enable_tree = ${o.enable_tree};\n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `;let m=20,f=(o.paging&&!1===o.paging.enabled&&(m=1e3),null);"SMALL"===a.formFactor?f=await getListSchema$1(s,{top:m,...a,actions:!1}):((f=await getTableSchema$1(s,{labelFieldName:o.NAME_FIELD_KEY,top:m,...a})).headerToolbar=getObjectHeaderToolbar(o,a.formFactor),o.permissions.allowCreate&&((r=await getSchema$4(o,{appId:a.appId,objectName:o.name,formFactor:a.formFactor})).align="right",f.headerToolbar.push(r)),f.footerToolbar=getObjectFooterToolbar(),!1!==a.filterVisible&&(r=a.filterLoopCount||0,r++,f.filter=await getObjectFilter(o,u,{isLookup:!0,...a,filterLoopCount:r})),f.data=Object.assign({},f.data,{"&":"$$",objectName:o.name,uiSchema:o,listName:"all",isLookup:!0}),f.onEvent||(f.onEvent={}),f.onEvent["@data.changed."+o.name]={actions:[{actionType:"reload"}]});var r={type:getAmisStaticFieldType("picker",t),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:i,size:"lg",pickerSchema:f,joinValues:!1,extractValue:!0};return e.multiple&&(r.multiple=!0,r.extractValue=!0),t&&(r.tpl=await getLookupTpl(e,a)),r}}async function lookupToAmisSelect(e,t,a){var n=await getReferenceTo(e),i=n&&n.valueField?.name||"_id";let r;n?(o=await getFindQuery({name:n.objectName},null,{[n.labelField.name]:Object.assign({},n.labelField,{alias:"label"}),[n.valueField.name]:Object.assign({},n.valueField,{alias:"value"})},{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1}),(r=await getApi$1({name:n.objectName},null,{[n.labelField.name]:Object.assign({},n.labelField,{alias:"label"}),[n.valueField.name]:Object.assign({},n.valueField,{alias:"value"})},{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[o.query]})).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 '):r={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}};var o=(o=n&&await getUISchema(n.objectName))&&___default__namespace.find(o.list_views,((e,t)=>"all"===t));let s="";if(o&&(s=getListViewSort(o)),r.url){const t=[],a=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),a.push("this."+e)})),0<t.length&&(r.url=r.url+"?"+t.join("&"),r.sendOn=""+a.join(" && "))}return r.data.$term="$term",r.data.$value=a.isRefToMutiple?`$${e.name}.ids`:"$"+e.name,___default__namespace.each(e.depend_on,(function(e){r.data[e]="$"+e})),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${n?.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(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${s}";\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 = "${e.multiple?"in":"="}";\n var optionsFilters = [["${i}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${i}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,n&&n.labelField.name,n&&n.valueField.name,(e.optionsFunction||e._optionsFunction)&&(r.adaptor=`\n payload.data.options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n return payload;\n `),(o={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,source:r,autoComplete:r,searchable:!0}).menuTpl="${icon ? `<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='${context.rootUrl}/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>` : label}",e.multiple&&(o.multiple=!0,o.extractValue=!0),t&&(o.tpl=await getLookupTpl(e,a)),o}async function getApi$1(e,t,a,n){return e=await getFindQuery(e,t,a,n),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,a){var n,i;return t?{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,a)}:!e.reference_to||___default__namespace.isString(e.reference_to)||t?(n=await getReferenceTo(e))?(i=await getUISchema(n.objectName),"space_users"===n.objectName&&"user"===e.reference_to_field?lookupToAmisSelectUser(e,t,a):1==i.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?lookupToAmisPicker(e,t,a):i.enable_tree?lookupToAmisTreeSelect(e,t,Object.assign({},a,{labelField:n.labelField?.name||"name",valueField:n.valueField?.name||"_id",objectName:n.objectName})):lookupToAmisSelect(e,t,a)):lookupToAmisSelect(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function lookupToAmisSelectUser(e,t,a){return getSelectUserSchema(e,t,a)}const getMarkdownFieldSchema=(e,t,a)=>t?{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:e.name,language:"markdown"},{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]},getHtmlFieldSchema=(e,t,a)=>t?{type:"html",name:e.name}:{type:"input-rich-text",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,a){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":___default__namespace.includes(AmisFormInputs,e)?"input-"+e:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{var t=e.type,a=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:a,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:a,tpl:`\n <% let fileData = data.${e.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 <% });} %>`}:void 0},getAmisFileEditSchema=e=>{var t=getFileTableName(e);t={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:"${context.rootUrl}/s3/"+t,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\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 `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(t.multiple=!0,t.joinValues=!1,t.extractValue=!0),t},getAmisFileSchema=(e,t)=>(t?getAmisFileReadonlySchema:getAmisFileEditSchema)(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getBaseFields(e){let t="m-1";return[{name:"createdInfo",label:"创建人",type:"static",labelClassName:"text-left",className:t=e?""+t:t,tpl:getCreatedInfoTpl()},{name:"modifiedInfo",label:"修改人",type:"static",labelClassName:"text-left",className:t,tpl:getModifiedInfoTpl()}]}function getAmisFieldType(e){switch(e.type){case"text":case"autonumber":return"text";case"textarea":return"textarea";case"html":return"html";case"markdown":return"markdown";case"select":case"lookup":return"select";case"boolean":return"checkbox";case"date":return"date";case"datetime":return"datetime";case"number":case"currency":case"percent":return"number";case"password":return"password";case"master_detail":return"picker";case"url":return"url";case"email":return"email";case"image":return"image";case"formula":case"summary":break;case"grid":return"table";default:console.log("convertData default",e.type)}}function getObjectFieldSubFields(e,t){var a=Object.assign({subFields:[]},e);t=___default__namespace.filter(t,(function(t){var a=t.name.startsWith(e.name+".")&&___default__namespace.split(t.name,".").length<3;return a&&(t._prefix=e.name+"."),a}));return a.subFields=t,a}function getGridFieldSubFields(e,t){var a=Object.assign({subFields:[]},e);t=___default__namespace.filter(t,(function(t){var a=t.name.startsWith(e.name+".");return a&&(t._prefix=e.name+"."),a}));return a.subFields=t,a}function getPermissionFields(e,t){const a=[],n=[];return ___default__namespace.each(e.fields,((e,t)=>{___default__namespace.has(e,"name")||(e.name=t),n.push(e)})),___default__namespace.each(___default__namespace.sortBy(n,"sort_no"),(function(e){e.hidden||a.push(Object.assign({},e,{permission:{allowEdit:!0}}))})),a}function getSelectFieldOptions(e){const t=e.data_type||"text",a=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":a.push({label:e.label,value:Number(e.value)});break;case"text":a.push({label:e.label,value:String(e.value)});break;case"boolean":a.push({label:e.label,value:"false"!==e.value})}})),a}async function convertSFieldToAmisField(e,t,a){if(!___default__namespace.includes(OMIT_FIELDS,e.name)||1==a.showSystemFields){var n={name:a.fieldNamePrefix?""+a.fieldNamePrefix+e.name:e.name,label:e.label,labelRemark:e.inlineHelpText,required:(___default__namespace.has(a,"required")?a:e).required};let l={};switch(e.type){case"text":l.type=getAmisStaticFieldType("text",t);break;case"textarea":l.type=getAmisStaticFieldType("textarea",t),l.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":l=getHtmlFieldSchema(e,t);break;case"markdown":l=getMarkdownFieldSchema(e,t);break;case"select":l={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:t?getSelectTpl(e):null},e.multiple&&(l.multiple=!0,l.extractValue=!0);break;case"boolean":l={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":l={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":l={type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":l={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":l={type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":l={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":l={type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":l=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":l=Object.assign({},e,n);break;case"input-range":l={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":l={type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":l={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":l=await lookupToAmis(e,t,a);break;case"autonumber":t&&(l={type:"static-text"});break;case"url":l={type:getAmisStaticFieldType("url",t)};break;case"email":l={type:getAmisStaticFieldType("email",t)};break;case"avatar":case"image":case"file":l=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(l.type=getAmisStaticFieldType(e.data_type,t));break;case"code":l={type:"editor",language:e.language};break;case"toggle":l={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){l={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const n of e.subFields){var i=n.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(e.name+".",""),r=await convertSFieldToAmisField(Object.assign({},n,{name:i,isTableField:!0}),t,a);r&&(delete r.name,delete r.label,i={name:i,label:n.label,quickEdit:!t&&r},"lookup"===n.type&&(i.type=r.type,i.tpl=r.tpl),l.columns.push(i))}}break;case"object":if(e.subFields)for(var o of(l={type:"combo",items:[]},e.subFields)){let n=o.name.replace(e.name+".$.","").replace(e.name+".","");"grid"===o.type?o=await getGridFieldSubFields(o,a.__permissionFields):t&&(n=e.name+"."+n);var s=await convertSFieldToAmisField(Object.assign({},o,{name:n}),t,a);s&&(delete s.name,delete s.label,l.items.push(Object.assign({},s,{name:n,label:o.label})))}}return ___default__namespace.isEmpty(l)?void 0:(e.is_wide||"group"===l.type?l.className="col-span-2 m-1":l.className="m-1",t&&(l.className=l.className+" md:border-b"),t&&(l.quickEdit=!1),e.visible_on&&(e.visible_on.startsWith("{{")?l.visibleOn=""+e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data."):l.visibleOn=""+e.visible_on.replace(/formData./g,"data.")),"group"===l.type?(l.body[0]=Object.assign({},n,l.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),l):Object.assign({},n,l,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:n.name}))}}async function getFieldSearchable(e,t,a){var n=a.filterLoopCount||0;let i=e,r=("grid"===i.type?i=await getGridFieldSubFields(e,t):"object"===e.type&&(i=await getObjectFieldSubFields(e,t)),"__searchable__");if(i.name.indexOf(".")<0&&(e=___default.cloneDeep(i),___default.includes(["textarea","html","code","autonumber"],i.type)&&(e.type="text"),"number"!==i.type&&"currency"!==i.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,r+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,r+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,r+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,r+="between__"),"users"===i.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0,t=await convertSFieldToAmisField(e,!1,Object.assign({},a,{fieldNamePrefix:r,required:!1,showSystemFields:!0,filterVisible:n<5}))))return t}var index=Object.freeze({__proto__:null,OMIT_FIELDS:OMIT_FIELDS,getBaseFields:getBaseFields,getAmisFieldType:getAmisFieldType,getObjectFieldSubFields:getObjectFieldSubFields,getGridFieldSubFields:getGridFieldSubFields,getPermissionFields:getPermissionFields,getSelectFieldOptions:getSelectFieldOptions,convertSFieldToAmisField:convertSFieldToAmisField,getFieldSearchable:getFieldSearchable,getAmisStaticFieldType:getAmisStaticFieldType});const API_CACHE=100;function getReadonlyFormAdaptor(e){let t="";var a=___default__namespace.filter(e,(function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)})),n=___default__namespace.map(___default__namespace.filter(e,(function(e){return e.name.indexOf(".")<0&&("object"===e.type||"grid"===e.type)})),"name");return ___default__namespace.each(a,(function(e){var a;___default__namespace.includes(OMIT_FIELDS,e.name)||(e.name,e.options?(a=JSON.stringify({options:e.options}),t+=`var ${e.name}Options= (${a}).options;`):e.optionsFunction?t+=`var ${e.name}Options = eval(${e.optionsFunction.toString()})(api.data);`:e._optionsFunction&&(t+=`var ${e.name}Options = eval(${e._optionsFunction})(api.data);`),e.multiple?t+=`data.${e.name}__label = _.map(_.filter(${e.name}Options, function(option){return _.includes(data.${e.name}, option.value)}), 'label');`:t=(t+=`var ${e.name}Selected = _.find(${e.name}Options, function(option){return data.${e.name} == option.value});`)+`data.${e.name}__label = ${e.name}Selected ? ${e.name}Selected.label:null;`)})),`\n if(payload.data.data){\n var data = payload.data.data[0];\n var gridAndObjectFieldsName = ${JSON.stringify(n)};\n try{\n ${t}\n ${getScriptForAddUrlPrefixForImgFields(e)}\n ${getScriptForRewriteValueForFileFields(e)}\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[name];\n })\n }catch(e){\n console.error(e)\n }\n payload.data = data;\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 return payload;\n`}async function getReadonlyFormInitApi(e,t,a,n){return{method:"post",url:getApi$2()+"?rf="+(new Date).getTime(),cache:API_CACHE,adaptor:getReadonlyFormAdaptor(a),data:await getFindOneQuery$1(e,t,a,n),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getScriptForAddUrlPrefixForImgFields(e){let t=[],a={};return e.forEach((e=>{___default__namespace.includes(["image","avatar"],e.type)&&(t.push(e.name),a[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),t.length?`\n // image字段值添加URL前缀\n let imgFieldsKeys = ${JSON.stringify(t)};\n let imgFields = ${JSON.stringify(a)};\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)=>{ return i.url });\n }\n }else{\n data[item] = imgFieldDisplayValue && imgFieldDisplayValue.url;\n }\n }\n })\n `:""}function getScriptForRewriteValueForFileFields(e){let t=[],a={};return e.forEach((e=>{"file"===e.type&&(t.push(e.name),a[e.name]={name:e.name,multiple:e.multiple})})),t.length?`\n // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件\n let fileFieldsKeys = ${JSON.stringify(t)};\n let fileFields = ${JSON.stringify(a)};\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 `:""}async function getEditFormInitApi(e,t,a){return(e=await getFindOneQuery$1(e,t,a)).recordId="${recordId}",e.objectName="${objectName}",e.uiSchema="${uiSchema}",e.global="${global}",e.context="${context}",e.defaultData="${defaultData}",{method:"post",url:getApi$2(),cache:API_CACHE,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 return api;\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 _.each(dataKeys, function(key){\n if(fieldKeys.indexOf(key)<0){\n delete data[key];\n }\n })\n\n if(data){\n ${getScriptForAddUrlPrefixForImgFields(a)}\n ${getScriptForRewriteValueForFileFields(a)}\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?.fields, function(field){\n var value = SteedosUI.getFieldDefaultValue(field, api.body.global);\n if(value){\n defaultValues[field.name] = value;\n }\n });\n if(defaultData && _.isObject(defaultData) && !_.isArray(defaultData)){\n defaultValues = Object.assign({}, defaultValues, defaultData)\n }\n initialValues = defaultValues;\n }\n // data下的变量需要在保存接口(getSaveApi)中被删除。\n payload.data = {\n initialValues,\n editFormInited: true\n }\n return payload;\n `,data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getSaveApi(e,t,a,n){return{method:"post",url:getApi$2(),data:getSaveQuery(e,t),requestAdaptor:getSaveRequestAdaptor(a),responseData:{recordId:"${record._id}"},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 ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getBatchDelete(e){return{method:"post",url:getApi$2(),requestAdaptor:`\n var ids = api.data.ids.split(",");\n var deleteArray = [];\n ids.forEach((id,index)=>{\n deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);\n })\n api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};\n return api;\n `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const getFieldSchemaArray=e=>{let t=[];return t.length=0,___default__namespace.forEach(e,(e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var a=e.name,n=/\w+\.\w+/.test(a);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),n||e.hidden||t.push(Object.assign({name:a},e,{permission:{allowEdit:!0}}))})),t},getSection=async(e,t,a,n)=>{if((t=___default__namespace.filter(t,{group:a})).length!=___default__namespace.filter(t,["hidden",!0]).length){var i,r=[];for(const a of t){let t=a;"grid"===a.type?t=await getGridFieldSubFields(a,e):"object"===a.type&&(t=await getObjectFieldSubFields(a,e)),t.name.indexOf(".")<0&&(n.__permissionFields=e,(i=await convertSFieldToAmisField(t,t.readonly,n))&&r.push(i))}return a={type:"fieldSet",title:a,collapsable:!0,body:r},0<(t=___default__namespace.map(___default__namespace.compact(___default__namespace.map(r,"visibleOn")),(e=>e))).length&&r.length===t.length&&(a.visibleOn=""+t.join(" || ")),a}},getSections=async(e,t,a)=>{var n=getFieldSchemaArray(t),i=[];for(const t in ___default__namespace.groupBy(n,"group")){var r=await getSection(e,n,t,a);0<r.body.length&&i.push(r)}return i};async function getFormBody(e,t,a){return getSections(e,t,a)}const defaultsDeep=(...e)=>{let t={};return ___default.toArray(e).reverse().forEach((e=>{___default.mergeWith(t,e,((e,t)=>___default.isArray(t)?t:void 0))})),t};function getBulkActions(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",className:"hidden",id:"batchDelete",api:getBatchDelete(e.name)}]}async function getObjectCRUD(e,t,a){var{top:n,showDisplayAs:i=!1,crudClassName:r=""}=a,o=e.paging&&!1===e.paging.enabled,s=e.enable_tree,l=getBulkActions(e),d={headerToolbarClassName:"px-4 py-2 border-gray-300 bg-gray-100 border-solid border-b",footerToolbar:getObjectFooterToolbar(e,a.formFactor,{disableStatistics:!1===a.queryCount}),filter:!!a.filterVisible&&await getObjectFilter(e,t,a)};"SMALL"!==a.formFactor&&Object.assign(d,{bulkActions:0!=a.bulkActions&&l}),a.queryCount=!0,o||s?(a.top=5e4,d.footerToolbar=[],a.queryCount=!0):n&&(d.footerToolbar=[],a.queryCount=!1),d.headerToolbar=getObjectHeaderToolbar(e,a.formFactor,{showDisplayAs:i,hiddenCount:!1===a.queryCount});let c=null;l="listview_"+e.name,a.formFactor;{let n=e.NAME_FIELD_KEY||"name";"organizations"===e.name&&(n="name"),o=await getTableSchema$1(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:n},a)),delete o.mode,c=Object.assign({},o,{type:"crud",primaryField:"_id",affixHeader:!1,id:l,name:l,keepItemSelectionOnPageChange:!0,api:await getTableApi(e,t,a),hiddenOn:a.tableHiddenOn,autoFillHeight:!1,className:"flex-auto "+(r||""),crudClassName:r},d)}if((s=a.defaults)&&(n=s.listSchema||{},c=defaultsDeep({},n,c),i=s.headerSchema,o=s.footerSchema,i||o)){let e=[c];i&&(___default__default.default.isArray(i)?e=___default__default.default.union(i,e):e.unshift(i)),o&&(___default__default.default.isArray(o)?e=___default__default.default.union(e,o):e.push(o)),c=e}return{type:"service",className:"",id:"service_"+l,name:"page",data:{objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:c}}const getGlobalData=e=>{var t=getSteedosAuth();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}},getFormFields=(e,t)=>{const{fieldsExtend:a,includedFields:n,excludedFields:i}=t;let r={};if(___default__default.default.forEach(e.fields,((e,t)=>{lodash.has(e,"name")||(e.name=t),a&&a[t]?r[e.name]=Object.assign({},e,a[t],{name:e.name}):r[e.name]=e})),!___default__default.default.isEmpty(n)&&___default__default.default.isArray(n)){const e={};___default__default.default.each(n,((t,a)=>{r[t]&&(e[t]=Object.assign({},r[t],{sort_no:a}))})),r=e}return!___default__default.default.isEmpty(i)&&___default__default.default.isArray(i)&&___default__default.default.each(i,(e=>{delete r[e]})),lodash.sortBy(___default__default.default.values(r),"sort_no")};async function getObjectForm(e,t){var{recordId:a,layout:n="normal",labelAlign:i,defaults:r}=t,o=___default__default.default.values(e.fields),s=getFormFields(e,t),r=r&&r.formSchema||{},n=(___default__default.default.has(r,"className")&&(r.className="steedos-amis-form"),{type:"service",className:"p-0",name:"page_edit_"+a,api:await getEditFormInitApi(e,a,o),data:{editFormInited:!1},initApi:null,initFetch:null,body:[defaultsDeep({},r,{type:"form",mode:n,data:{"&":"${initialValues}"},labelAlign:i,persistData:!1,promptPageLeave:!0,canAccessSuperData:!1,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await getSaveApi(e,a,o),initFetch:"new"!=a,body:await getFormBody(o,s,t),panelClassName:"m-0 sm:rounded-lg shadow-none border-none",bodyClassName:"p-0",className:"steedos-amis-form",hiddenOn:"${editFormInited != true}",onEvent:{submitSucc:{weight:0,actions:[{actionType:"broadcast",args:{eventName:"@data.changed."+e.name},data:{objectName:""+e.name}}]}}})]});return r.id&&(n.id="service-"+r.id),n}async function getObjectDetail(e,t,a){var{layout:n="normal",labelAlign:i,formInitProps:r}=a,o=___default__default.default.values(e.fields),s=getFormFields(e,a),l="detail_"+t;return{type:"service",name:"page_readonly_"+t,id:l,data:{global:getGlobalData("read"),context:{rootUrl:getRootUrl(),tenantId:getTenantId(),authToken:getAuthToken()}},api:await getReadonlyFormInitApi(e,t,o,r),body:[{type:"wrapper",hiddenOn:"${recordLoaded != true}",className:"p-0 m-0",body:{type:"form",mode:n,labelAlign:i,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+t,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await getFormBody(___default.map(o,(e=>(e.readonly=!0,e))),s,Object.assign({},a,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[],onEvent:{["@data.changed."+e.name]:{actions:[{actionType:"reload",componentId:l,expression:"this.__deletedRecord != true"},{args:{url:"/app/${appId}/${objectName}/grid/${side_listview_id}",blank:!1},actionType:"link",expression:"this.__deletedRecord === true"}]}}}}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data.__record}"}},{actionType:"setValue",args:{value:{recordLoaded:!0}}}]}}}}async function getTableColumns$1(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const i of e)if(!i.is_name&&i.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===i.type)a.push(Object.assign({},{type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap"},i.amis,{name:i.name}));else if("avatar"===i.type||"image"===i.type||"file"===i.type)a.push(Object.assign({},{type:"switch",name:i.name,label:i.label,width:i.width,toggled:i.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(i)},i.amis,{name:i.name}));else{var n=await getFieldTpl(i,t);let e="text";n?e="tpl":"html"===i.type&&(e="markdown"),i.hidden||i.extra||a.push(Object.assign({},{name:i.name,label:i.label,sortable:i.sortable,width:i.width,type:e,tpl:n,toggled:i.toggled,className:"textarea"===i.type?"min-w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===i.type||null},i.amis,{name:i.name}))}else n=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${i.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `,a.push({type:"button",label:`<%=data.versions ? data.name : "${i.label}"%>`,className:"whitespace-nowrap",level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:n,expression:"!!window?.nw?.require"}]}}});return a}function getMobileLines(e){let t=[],a=[],n=!1,i=!0,r="",o="flex items-center justify-between h-[20px]";return e.forEach((function(e){n&&t.length<2&&(t.push({type:"wrapper",body:a,size:"none",className:o}),a=[]),i?(r="steedos-listview-item-left truncate",e.field.is_wide&&(r="steedos-listview-item-wide truncate"),0===t.length&&(r+=" font-bold text-gray-800")):r="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",a.push({type:"tpl",tpl:e.tpl,className:r}),n=i=!!e.field.is_wide||!i})),a.length&&t.length<2&&t.push({type:"wrapper",body:a,size:"none",className:o}),t}async function getMobileTableColumns(e,t){var a=[];let n={};var i=[];for(const a of e){let e="";e=(e=a.is_name||a.name===t.labelFieldName?(n=a,t.onlyDisplayLabel=!0,await getFieldTpl(a,t)):"avatar"===a.type||"image"===a.type||"file"===a.type?`\${_display.${a.name}.name}`:("lookup"!==a.type&&"master_detail"!==a.type||(t.onlyDisplayLabel=!0),await getFieldTpl(a,t)))||`\${${a.name}}`,a.hidden||a.extra||i.push({field:a,tpl:e})}e=getNameTplUrl(n,t);var r=getMobileLines(i);return a.push({name:n.name,label:n.label,sortable:n.sortable,type:"button",level:"link",actionType:"link",link:e,innerClassName:"steedos-listview-item block text-gray-500",body:{type:"wrapper",body:r,size:"none",className:"p-1"}}),a}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;return e._visible&&(t=e._visible),(t=___default.isBoolean(t)?t.toString():t)?t.trim().startsWith("function")?t+"(objectName, _id, recordPermissions, data)":t:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}async function getTableOperation(e){e=e.buttons;const t=[];if(___default.each(e,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),t.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(t.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:t,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},responseData:{recordPermissions:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload.recordPermissions = payload;\n return payload;\n "}}]}}async function getTableSchema$1(e,t){let a=[];return"SMALL"===(t=t||{}).formFactor?a=await getMobileTableColumns(e,t):(a=await getTableColumns$1(e,t)).push(await getTableOperation(t)),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:a,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}async function getTableApi(e,t,a){const n=[];let{filter:i,filtersFunction:r,sort:o,top:s,setDataToComponentId:l=""}=a,d=null;(i=(i=___default__namespace.isArray(i)?___default__namespace.map(i,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):i)||[])&&(d=i),___default__namespace.each(t,(function(e){e.searchable&&n.push(e.name)}));const c={},u=[];t.forEach((e=>{___default__namespace.includes(["image","avatar","file"],e.type)&&(u.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})}));var p=e.key_field||"_id";return(t=await getApi(e,null,t,{count:a.queryCount,alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.data.listViewId="${listViewId}",t.requestAdaptor=`\n // selfData 中的数据由 CRUD 控制. selfData中,只能获取到 CRUD 给定的data. 无法从数据链中获取数据.\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\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 = "${a.formFactor}";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n api.data.pageNo = formFactor === "SMALL" ? 1 : (localListViewProps.page || 1);\n }\n }\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n ${d?`var systemFilters = ${JSON.stringify(d)};`:"var systemFilters = [];"}\n const filtersFunction = ${r};\n if(filtersFunction){\n const _filters = filtersFunction(systemFilters, api.data.$self);\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 : "${o||""}";\n var allowSearchFields = ${JSON.stringify(n)};\n if(api.data.$term){\n userFilters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n userFilters = [["${p.name}", "=", selfData.value]];\n }\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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 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 userFilters.push(keywordsFilters);\n };\n\n let filters = [];\n\n if(!_.isEmpty(systemFilters)){\n filters = systemFilters;\n }\n\n if(!_.isEmpty(userFilters)){\n if(_.isEmpty(filters)){\n filters = userFilters;\n }else{\n filters.push('and');\n filters.push(userFilters)\n }\n }\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 ${a.requestAdaptor||""}\n return api;\n `,t.adaptor=`\n const enable_tree = ${e.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(c)};\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, 'url')\n }\n }\n })\n })\n \n if(enable_tree){\n const records = payload.data.rows;\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._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 _.each(records, (record)=>{\n if(!record.parent){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n\n\n try{\n // TODO: 不应该直接在这里取localStorage,应该从外面传入\n const listViewId = api.body.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\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 = "${a.formFactor}";\n // 移动端不识别本地存储中的翻页页码,否则点击加载更多按钮后无法刷新回第一页\n selfData.page = formFactor === "SMALL" ? 1 : (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 = "${l}";\n if(setDataToComponentId){\n SteedosUI.getRef(api.body.$self.$scopeId)?.getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n };\n ${a.adaptor||""}\n return payload;\n `,t}async function getApi(e,t,a,n){return e=await getFindQuery(e,t,a,n),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRecordPermissionsApi(e,t,a){return e=getRecordPermissionsQuery(e,t,a),{method:"post",url:getApi$2(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const DEFAULT_CALENDAR_OPTIONS={startDateExpr:"start",endDateExpr:"end",allDayExpr:"is_all_day",textExpr:"name"};async function getCalendarApi(e,t,a){var n=(a=a||{}).calendarOptions;const i=[];let{filter:r,sort:o,top:s,setDataToComponentId:l=""}=a;s=s||200,r=(r=___default__default.default.isArray(r)?___default__default.default.map(r,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):r)||[],___default__default.default.each(t,(function(e){e.searchable&&i.push(e.name)}));a=e.idFieldName||"_id";var d=e.key_field||"_id";return(e=await getApi(e,null,t,{alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",e.data.$self="$$",e.data.filter="$filter",e.data.pageSize=s||10,e.requestAdaptor=`\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = api.data.filter || ${JSON.stringify(r)} || [];\n const eventFetchInfo = selfData.fetchInfo;\n const startDateExpr = "${n.startDateExpr}";\n const endDateExpr = "${n.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 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 : "${o}";\n var allowSearchFields = ${JSON.stringify(i)};\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [["${d.name}", "=", selfData.value]];\n }\n var searchableFilter = [];\n _.each(selfData, (value, key)=>{\n if(!_.isEmpty(value) || _.isBoolean(value)){\n if(_.startsWith(key, '__searchable__between__')){\n searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])\n }else if(_.startsWith(key, '__searchable__')){\n if(_.isString(value)){\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])\n }else{\n searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])\n }\n }\n }\n });\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 `,e.adaptor=`\n window.postMessage(Object.assign({type: "listview.loaded"}), "*");\n const setDataToComponentId = "${l}";\n if(setDataToComponentId){\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["${a}"],\n title: n["${n.textExpr}"],\n start: n["${n.startDateExpr}"],\n end: n["${n.endDateExpr}"],\n allDay: n["${n.allDayExpr}"]\n }\n });\n const successCallback = selfData.successCallback;\n const failureCallback = selfData.failureCallback;\n successCallback(events);\n return payload;\n `,e}function getCalendarRecordPermissionsApi(e,t){return(e=getRecordPermissionsApi(e,t,{alias:"rows",limit:1,fields:["allowEdit"]})).data.$self="$$",e.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 ",e}function getCalendarRecordSaveApi(e,t){var a={},n=e.idFieldName||"_id";a[n]="${event.data.event.id}",e=e.NAME_FIELD_KEY||"name",a[e]="${event.data.event.title}",a[t.startDateExpr]="${event.data.event.start}",a[t.endDateExpr]="${event.data.event.end}",a[t.allDayExpr]="${event.data.event.allDay}",e={objectName:"${objectName}",$:a,$self:"$$"},t=`\n \n const formData = api.data.$;\n const objectName = api.data.objectName;\n let query = \`mutation{record: \${objectName}__update(id: "\${formData.${n}}", doc: {__saveData}){${n}}}\`;\n delete formData.${n};\n let __saveData = JSON.stringify(JSON.stringify(formData));\n \n api.data.query = query.replace('{__saveData}', __saveData);\n return api;\n `;return{method:"post",url:getApi$2(),data:e,requestAdaptor:t,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 ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getObjectCalendar(e,t,a){var n=e.permissions,i=(a=a||{},(t=Object.assign({},DEFAULT_CALENDAR_OPTIONS,___default.omitBy(t,___default.isNil))).title||[t.startDateExpr,t.endDateExpr,t.allDayExpr,t.textExpr]);let r=[],o=(___default.each(i,(function(t){e.fields[t]&&r.push(e.fields[t])})),e.fields[t.allDayExpr]&&r.push(e.fields[t.allDayExpr]),a.sort||(i=a.sortField,a.sortOrder),t.currentView);if(o)switch(o){case"day":case"agenda":o="timeGridDay";break;case"week":o="timeGridWeek";break;case"month":o="dayGridMonth"}else o="timeGridWeek";a.calendarOptions=t;i=await getCalendarApi(e,r,a),a=`\n const api = ${JSON.stringify(i)};\n event.data.calendarOptions = ${JSON.stringify(t)};\n doAction({\n "actionType": 'ajax',\n "args": {\n "api": api\n },\n });\n `,i=`\n const data = event.data;\n const doc = {};\n doc["${t.startDateExpr}"] = data.start;\n doc["${t.endDateExpr}"] = data.end;\n doc["${t.allDayExpr}"] = data.allDay;\n doc["${t.textExpr}"] = data.title;\n // ObjectForm会认作用域下的变量值\n // TODO: 待组件支持initValues属性后应该改掉,不应该通过data直接传值\n // TODO: 全天事件属性传入doc了但是没有生效,需要手动在ObjectForm中勾选全天事件\n event.data = doc;\n const title = "新建 ${e.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 "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 `;var s=getCalendarRecordPermissionsApi(e,"${event.id}"),l=getCalendarRecordSaveApi(e,t),d={daysOfWeek:[1,2,3,4,5],startTime:"08:00",endTime:"18:00"};return t=(___default.isEmpty(t.startDayHour)||(d.startTime=t.startDayHour+":00"),___default.isEmpty(t.endDayHour)||(d.endTime=t.endDayHour+":00"),{type:"steedos-fullcalendar",label:"",name:"fullcalendar",editable:n.allowEdit,selectable:n.allowCreate,selectMirror:n.allowCreate,initialView:o,businessHours:d,onEvent:{getEvents:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:a}]},select:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:i}]},eventClick:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:'\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": "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 '}]},eventAdd:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventAdd'); console.log(event);"}]},eventChange:{weight:0,actions:[{actionType:"ajax",args:{api:s}},{actionType:"toast",expression:"!event.data.editable",args:{msgType:"error",msg:"您没有编辑该记录的权限!",position:"top-center"}},{actionType:"ajax",expression:"event.data.editable",args:{api:l,messages:{success:e.label+"修改成功",failed:e.label+"修改失败!"}}}]},eventRemove:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventRemove'); console.log(event);"}]},eventsSet:{weight:0,actions:[{componentId:"",args:{},actionType:"custom",script:"console.log('eventsSet'); console.log(event);"}]}}})}const getGraphqlFieldsQuery$1=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)})),""+t.join(" ")},getFindOneQuery$2=(e,t,a)=>{e=e.replace(/\./g,"_"),a=getGraphqlFieldsQuery$1(a);let n="";return`{record:${e}__findOne${n=0<(t=[`id: "${t}"`]).length?`(${t.join(",")})`:n}{${a}}}`},getRecord=async(e,t,a)=>(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery$2(e,t,a)})})).data.record,getRelatedsCount=async(e,t)=>{const a=[];return ___default.each(t,(t=>{a.push(`${t.object_name}: ${t.object_name}__count(filters: [["${t.foreign_key}","=","${e}"]])`)})),t=`\n {\n ${a.join(",")}\n }\n `,(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:t})})).data},getRecordPermissions=async(e,t)=>await fetchAPI(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"});function str2function(e,...t){try{return new Function(...t,e)}catch(e){return console.warn(e),null}}const getRelatedFieldValue=(e,t,a,n)=>(a=___default.find(a.fields,(e=>n===e?.name)),___default.isString(a.reference_to)?a.multiple?[t]:t:{o:e,ids:[t]});async function getObjectRelatedList(e,t,a){var n=await getUISchema(e),i=[],r=[].concat(n.related_lists||[]);if(___default.isEmpty(r))for(const t of[].concat(n.details||[])){var o=t.split(".");i.push({masterObjectName:e,object_name:o[0],foreign_key:o[1]})}else for(const t of r){var s=t.related_field_fullname.split(".");i.push({masterObjectName:e,object_name:s[0],foreign_key:s[1],label:t.label,columns:t.field_names,sort:t.sort,filters:t.filters,visible_on:t.visible_on,page_size:t.page_size})}return i}async function getRecordDetailRelatedListSchema(e,t,a,n,i){let{top:r,perPage:o,hiddenEmptyTable:s,appId:l,relatedLabel:d,className:c}=i;var u=await getUISchema(a),{label:p,fields:m}=u;d=d||p;let f=null;if(p=await getField(a,n=n||___default.findKey(m,(function(t){return-1<["lookup","master_detail"].indexOf(t.type)&&t.reference_to===e}))),!p)return{uiSchema:u,amisSchema:{type:"alert",body:`未找到与相关列表对象${a}关联的相关表字段`,level:"warning",showIcon:!0,className:"mb-3"}};let _=t;return p.reference_to_field&&"_id"!=p.reference_to_field&&(_=(m=await getRecord(e,t,[p.reference_to_field]))[p.reference_to_field]),f=p._reference_to||p.reference_to&&!___default.isString(p.reference_to)?[[n+"/o","=",e],[n+"/ids","=",_]]:[""+n,"=",_],t=await getObjectRecordDetailRelatedListHeader(u,d),m="steedos-record-related-list-"+a,(p=(await getRelatedListSchema(a,"all",{globalFilter:f,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1,onEvent:{["@data.changed."+a]:{actions:[{actionType:"reload"}]}}},headerSchema:t},showHeader:!0,top:r,perPage:o,setDataToComponentId:m,tableHiddenOn:s?"this.$count === 0":null,appId:l,crudClassName:"border-t border-slate-300",...i})).amisSchema)?{uiSchema:u,amisSchema:{type:"service",id:m,className:"steedos-record-related-list rounded border border-slate-300 bg-gray-100 mb-4 "+c,data:{"&":"$$",appId:"${appId}",app_id:"${appId}",masterObjectName:e,masterRecordId:"${recordId}",relatedKey:n,objectName:a,listViewId:`amis-\${appId}-${a}-listview`,_isRelated:!0},body:[{...p,data:{"&":"$$",appId:"${appId}",app_id:"${appId}",relatedKey:n,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[n]:getRelatedFieldValue(e,_,u,n)}}}]}}:void 0}function getDefaultRelatedListProps(e,t,a){var n=___default.find(e.list_views,((e,a)=>"calendar"!==e.type&&a===(t=t||a)));let i=[],r="",o=null,s=null;return n?(i=getListViewColumns(n,a.formFactor),r=getListViewSort(n),o=getListViewFilter(n),___default.isArray(a.globalFilter)&&a.globalFilter.length&&___default.isArray(o)&&o.length?o=[a.globalFilter,"and",o]:!a.globalFilter||o&&o.length||(o=a.globalFilter),s=n&&n._filters):(n=___default.find(e.fields,((e,t)=>e.is_name)),i=n?[n.name]:["name"],a.globalFilter&&(o=a.globalFilter)),{columns:i,sort:r,filter:o,filtersFunction:s}}function getRelatedListProps(e,t,a){if(a.columns){var n=getListViewSort(a.sort);let{filters:e,filtersFunction:t}=a;return!t&&e&&(t=str2function(e,"filters","data")),{columns:a.columns,sort:n,filter:a.globalFilter,filtersFunction:t}}return getDefaultRelatedListProps(e,t,a)}async function getRelatedListSchema(e,t,a){var n=await getUISchema(e),i=n.list_views,{columns:r,sort:o,filter:s,filtersFunction:l}=getRelatedListProps(n,t,a),d=a.defaults||{};return{uiSchema:n,amisSchema:t=(!d.headerSchema&&a.showHeader&&(d.headerSchema=await getObjectListHeader(n,t)),a.showHeader||(d.headerSchema=null),a.defaults=d,delete a.filtersFunction,delete a.sort,delete a.extraColumns,delete a.filters,delete a.globalFilter,{type:"steedos-object-table",objectApiName:e,columns:r,extraColumns:i.extra_columns,filters:s,filtersFunction:l,sort:o,ctx:a})}}let UI_SCHEMA_CACHE={},UISchemaFunction;const setUISchemaFunction=function(e){UISchemaFunction=e},setUISchemaCache=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE),(e,t)=>{UI_SCHEMA_CACHE[e]=t}),getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){return"SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,a){var n;___default.isArray(e)?(n=e[0]+" "+(e[1]||""),t+=n=0<a?","+n:n):(n=e.field_name+" "+e.order,t+=n=0<a?","+n:n)})),t}function getListViewFilter(e){if(e)try{var t=getUserId();let a=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(a))a=[["owner","=",t]];else{if(___default__default.default.isString(a)&&___default__default.default.startsWith(___default__default.default.trim(a),"function")&&(a=(a=new Function("return "+a))()),!___default__default.default.isArray(a))throw console.debug("listView filters is not array",e),new Error("filters is not array");a.push(["owner","=",t])}return a}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(e){if(!hasUISchemaCache(e)||t){let a=null;try{if(!(a=UISchemaFunction?await UISchemaFunction(e,t):await fetchAPI(`/service/api/@${e.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;formatUISchemaCache(e,a)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}}return getUISchemaCache(e)}}function getUISchemaSync(e,t){if(e){if(!hasUISchemaCache(e)||t)try{var a,n=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(!(a=Steedos.authRequest(n,{type:"GET",async:!1})))return;formatUISchemaCache(e,a)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}}async function getField(e,t){return(await getUISchema(e))?.fields[t]}async function getFormSchema(e,t){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectForm(e,t)}}async function getViewSchema(e,t,a){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectDetail(e,t,a)}}async function getListSchema(e,t,a,n={}){var i=await getUISchema(t),r=___default.find(i.list_views,((e,t)=>t===(a=a||t)||e._id===a));if(!r)return{uiSchema:i};if(r.enable_amis_schema&&r.amis_schema){return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:___default.isString(r.amis_schema)?JSON.parse(r.amis_schema):r.amis_schema}}var o=getListViewColumns(r,n.formFactor),s=getListViewSort(r),l=getListViewFilter(r),d=r&&r._filters;if("calendar"===r.type){return{uiSchema:i,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:d,sort:s,...r.options}}}var c=n.defaults||{};!c.headerSchema&&n.showHeader&&(c.headerSchema=await getObjectListHeader$1(i)),n.showHeader||(c.headerSchema=null);try{var u,p=location.pathname+"/crud/"+n.listViewId,m=sessionStorage.getItem(p);m&&(m=JSON.parse(m),u={},m.orderBy&&(u.orderBy=m.orderBy),m.orderDir&&(u.orderDir=m.orderDir),c.listSchema=___default.defaultsDeep({},u,c.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}n.defaults=c;return{uiSchema:i,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:o,extraColumns:r.extra_columns,filters:l,filtersFunction:d,sort:s,ctx:n,requestAdaptor:r.requestAdaptor,adaptor:r.adaptor}}}async function getTableSchema(e,t,a,n={}){const i=await getUISchema(t);let r=n.sort;r||(s=n.sortField,l=n.sortOrder,s&&(r=s+" "+l||"asc"));let o=[];___default.each(a,(function(e){___default.isString(e)&&i.fields[e]?o.push(i.fields[e]):___default.isObject(e)&&i.fields[e.field]&&o.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap,amis:e.amis}))}));var s=n.extraColumns,l=(s&&___default.each(s,(function(e){___default.isString(e)?o.push({extra:!0,name:e}):___default.isObject(e)&&o.push({extra:!0,name:e.field})})),await getObjectCRUD(i,o,{tabId:t,appId:e,objectName:t,...n,filter:n.filters,sort:r,buttons:await getListViewItemButtons(i,n)}));return{uiSchema:i,amisSchema:l}}async function getCalendarSchema(e,t,a,n={}){var i=await getUISchema(t);return{uiSchema:i,amisSchema:await getObjectCalendar(i,a,{tabId:t,appId:e,objectName:t,...n})}}async function getRecordDetailHeaderSchema(e,t,a){return{uiSchema:e=await getUISchema(e),amisSchema:await getObjectRecordDetailHeader(e,t,a)}}async function getRecordDetailSchema(e,t,a={}){var n=await getUISchema(e),i={type:"tabs",className:"sm:mt-3 bg-white sm:shadow sm:rounded sm:border border-slate-300 p-4",tabs:[{title:"详细",className:"px-0 py-4",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"}],id:"u:a649e4094a12"};return(await getObjectRelatedList(e)).length&&i.tabs.push({title:"相关",className:"px-0 pt-4",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}),{uiSchema:n,amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${event.data.record.${n?.NAME_FIELD_KEY||"name"}}`,record:"${event.data.record}",recordLoaded:!0}},{actionType:"reload",componentId:`page_readonly_${e}_header`,data:{name:`\${event.data.record.${n?.NAME_FIELD_KEY||"name"}}`,record:"${event.data.record}",recordLoaded:!0}}]}}},i],data:{"_master.objectName":"${objectName}","_master.recordId":"${recordId}"},onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${n.NAME_FIELD_KEY||"name"}}`,"_master.record":"${record}","_master.objectName":"${objectName}","_master.recordId":"${recordId}"}}]},...a.onEvent}}}}async function getObjectRelated({appName:e,masterObjectName:t,objectName:a,relatedFieldName:n,recordId:i,formFactor:r}){let o=null;var s=(o=(s=await getField(a,n))._reference_to||s.reference_to&&!___default.isString(s.reference_to)?[[n+"/o","=",t],[n+"/ids","=",i]]:[""+n,"=",i],await getUISchema(t));return{masterObjectName:t,object_name:a,foreign_key:n,schema:await getListSchema(e,a,"all",{globalFilter:o,formFactor:r}),record:await getRecord(t,i,[s.NAME_FIELD_KEY]),masterObjectUISchema:s}}function getScopeId(e,t){return`page_${e}_`+t}async function getFormPageInitSchema(e){var t=await getFormSchema(e,{recordId:"${recordId}"});return{type:"page",name:getScopeId(e,"form"),bodyClassName:"",regions:["body"],body:[t.amisSchema]}}async function getListPageInitSchema(e,t,a){return{type:"page",name:getScopeId(e,"list"),bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,className:"sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid"}]}}async function getRecordPageInitSchema(e){var t=await getObjectRelatedList(e),a=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"setValue",args:{value:{recordLoaded:!0}}},{actionType:"reload",data:{name:`\${record.${(await getUISchema(e))?.NAME_FIELD_KEY||"name"}}`,record:"${record}",recordLoaded:!0}}]}}}],n={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"sm:mt-3 flex flex-col region-main bg-white sm:shadow sm:rounded sm:border border-slate-300",linksClassName:"pl-4 pt-2"};return t.length&&n.tabs.push({title:"相关",body:{type:"steedos-object-related-lists",label:"所有相关表",objectApiName:"${objectName}",recordId:"${recordId}"}}),a.push(n),{type:"page",id:`page_${e}_record_detail`,name:getScopeId(e,"record_detail"),bodyClassName:"",regions:["body"],body:a}}async function getListviewInitSchema(e,t,a){a=a||{};var n=await getUISchema(e),i=___default.find(n.list_views,((e,a)=>a===t));let r={};if(i){var o=getListViewColumns(i,a.formFactor),s=(i=getListViewSort(i),a.defaults||{});s.headerSchema||(n=await getObjectListHeader$1(n),s.headerSchema=n),a.defaults=s;let t=a.setDataToComponentId;t=t||"service_listview_"+e,delete(r=(n=await getTableSchema(null,e,o,{sort:i,...a,setDataToComponentId:t})).amisSchema).data.$master,delete r.data._id,delete r.data.recordPermissions,delete r.data.uiSchema}return r}async function getApps(){return await fetchAPI("/service/api/apps/menus")}async function getApp(e){return await fetchAPI(`/service/api/apps/${e}/menus`)}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync);const getNotifications=async()=>{var e=`\n {\n notifications(filters: ["owner","=","${(e=getSteedosAuth()).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","=","${e.userId}"], ["is_read", "!=", true]])\n }\n `;return(await fetchAPI("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},markReadAll=async()=>fetchAPI("/api/v4/notifications/all/markReadAll",{method:"POST"}),PUBLIC_ENV={},setEnv=(e,t)=>{PUBLIC_ENV[e]=t},getEnv=e=>PUBLIC_ENV[e],setEnvs=e=>{___default.map(e,((e,t)=>{PUBLIC_ENV[t]=e}))},getEnvs=()=>PUBLIC_ENV;async function getSpaceUsersPickerAmisSchema(e,t,a){return{type:"picker",label:"人员",name:t,id:a.id,modalMode:"dialog",joinValues:!1,source:{method:"post",url:"${context.rootUrl}/graphql",data:{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:'{rows:space_users(filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"){_id,name,email,mobile},count:space_users__count(filters:{__filters})}',$term:"$term",$self:"$$"},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 "},pickerSchema:{mode:"table",name:"thelist",draggable:!1,headerToolbar:["switch-per-page","pagination"],defaultParams:{perPage:50},columns:[{name:"_index",type:"text",width:32,placeholder:""},{name:"_id",label:"ID",type:"text",toggled:!1},{name:"name",label:"姓名",sortable:!0,searchable:!0,type:"text"},{name:"email",label:"邮件",sortable:!0,type:"text",searchable:!0},{name:"mobile",label:"手机",type:"text",sortable:!0,searchable:!0}],syncLocation:!1,keepItemSelectionOnPageChange:!0},labelField:"name",valueField:"_id",size:"lg",extractValue:!0,className:"m-0",labelClassName:"text-left"}}async function getSpaceUsersPickerSchema(e,t){var a=await getUISchema("space_users");return{uiSchema:a,amisSchema:await getSpaceUsersPickerAmisSchema(a,e,t)}}const DATE_DATETIME_BETWEEN_VALUES=["last_year","this_year","next_year","last_quarter","this_quarter","next_quarter","last_month","this_month","next_month","last_week","this_week","next_week","yestday","today","tomorrow","last_7_days","last_30_days","last_60_days","last_90_days","last_120_days","next_7_days","next_30_days","next_60_days","next_90_days","next_120_days"],opMaps={equal:"=",not_equal:"!=",less:"<",less_or_equal:"<=",greater:">",greater_or_equal:">=",between:"between",not_between:"not_between",is_empty:"is_empty",is_not_empty:"is_not_empty",select_equals:"=",select_not_equals:"!=",select_any_in:"in",select_not_any_in:"<>",like:"contains",not_like:"notcontains",starts_with:"startswith",ends_with:"endswith"},isGroup=e=>_.has(e,"conjunction"),conditionGroupToFilters=e=>{const t=[],{conjunction:a,children:n}=e;return a&&n&&n.forEach((e=>{var n;0<t.length&&t.push(a),isGroup(e)?(n=conditionGroupToFilters(e))&&0<n.length&&t.push(n):(n=conditionItemToFilters(e))&&t.push(n)})),t},conditionItemToFilters=e=>{var t,{left:e,op:a,right:n}=e;if(e&&"field"===e.type&&a)return a.startsWith("between:")?(t=a.split(":"),[e.field,t[0],t[1]]):null!=n?[e.field,opMaps[a],n]:void 0},filterToConditionItem=e=>{var t;if(3===e.length)return"between"===(t=___default__default.default.findKey(opMaps,(t=>t===e[1])))&&___default__default.default.includes(DATE_DATETIME_BETWEEN_VALUES,e[2])?{left:{type:"field",field:e[0]},op:t+":"+e[2]}:{left:{type:"field",field:e[0]},op:t,right:e[2]};console.warn("无效的filter:"+JSON.stringify(e))},filterObjectToArray=e=>!___default__default.default.isArray(e)&&___default__default.default.isObject(e)?[e.field,e.operation,e.value]:e,filtersToConditionGroup=e=>{e=filterObjectToArray(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach((e=>{"or"===(e=filterObjectToArray(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push(filterToConditionItem(e)):t.children.push(filtersToConditionGroup(e))})),t},conditionsToFilters=e=>conditionGroupToFilters(e),filtersToConditions=e=>filtersToConditionGroup(e),registerRemoteAssets=async e=>{if(e&&0<e.length){let t=e;return ___default.isString(t)&&(t=t.split(",")),await Builder.registerRemoteAssets(t),e=___default.filter(Builder.registry["meta-components"],(function(e){return e.componentName&&e.amis?.render})),___default.map(e,(e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render})))}return[]};var __assign$1=function(){return(__assign$1=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},keyToPath=function(e){var t=[];return e.charCodeAt(0)===".".charCodeAt(0)&&t.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),(function(e,a,n,i){return n?e=i.replace(/\\(\\)?/g,"$1"):a&&(e=a.trim()),t.push(e),""})),t};function createObject(e,t,a){var n=(e=e&&Object.isFrozen(e)?cloneObject(e):e)?Object.create(e,__assign$1(__assign$1({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function cloneObject(e,t){void 0===t&&(t=!0);var a=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return a[t]=e[t]})),a}function extendObject(e,t,a){var n=cloneObject(e,a=void 0===a||a);return t&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function isObject(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}function setVariable(e,t,a,n){if(t in(e=e||{}))e[t]=a;else{var i=!1!==n?keyToPath(t):[t];for(n=i.pop();i.length;){var r=i.shift();e=isPlainObject_1(e[r])?e[r]=__assign$1({},e[r]):(Array.isArray(e[r])?e[r]=e[r].concat():(e[r],e[r]={}),e[r])}e[n]=a}}function deleteVariable(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{var a=keyToPath(t);for(t=a.pop();a.length;){var n=a.shift();if(!isPlainObject_1(e[n])){if(e[n])throw new Error("目标路径不是纯对象,不能修改");break}e=e[n]=__assign$1({},e[n])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}}var getDefaultRenderData=function(){var e=getSteedosAuth();return{context:{rootUrl:getRootUrl(),userId:e.userId,tenantId:e.tenantId,authToken:e.authToken,user:e},global:{userId:e.userId,spaceId:e.tenantId,user:e,now:new Date}}};const HIDE_COUNTER_SIGN_JUDGE_OPTIONS=!1,getJudgeOptions=async e=>{var t=[];return"sign"===(e=e.step).step_type?(t.push({label:"核准",value:"approved"}),t.push({label:"驳回",value:"rejected"})):"counterSign"===e.step_type&&1!=HIDE_COUNTER_SIGN_JUDGE_OPTIONS&&(t.push({label:"核准",value:"approved"}),t.push({label:"驳回",value:"rejected"}),t.push({label:"已阅",value:"readed"})),t},getJudgeInput=async e=>{var t=await getJudgeOptions(e);if(0<t.length&&"cc"!=e.approve.type)return{type:"radios",label:!1,name:"judge",value:"approved",options:t,id:"u:444dbad76e90",required:!0,onEvent:{change:{weight:0,actions:[{componentId:"instance_approval",args:{value:{new_judge:"${event.data.value}",new_next_step:void 0,next_step:void 0}},actionType:"setValue"},{args:{judge:"${event.data.value}"},actionType:"broadcast",eventName:"approve_judge_change"}]}}}},getNextStepInput=async e=>{if("cc"!=e.approve?.type)return{type:"grid",columns:[{body:[{type:"tpl",tpl:"下一步",inline:!0,wrapperComponent:"",id:"u:0a85de51480f"}],id:"u:bf75adfb544e",md:"auto",valign:"middle"},{body:[{type:"list-select",label:"",name:"next_step",id:"u:next_step",multiple:!1,required:!0,source:{url:"${context.rootUrl}/api/workflow/v2/nextStep",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},method:"post",messages:{},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;",adaptor:"\n payload.data = {\n options: _.map(payload.nextSteps, (item)=>{\n return {\n label: item.name, \n value: item\n }\n })\n };\n return payload;\n ",data:{context:"${context}",$scopeId:"${scopeId}",judge:"${new_judge}"}},onEvent:{change:{weight:0,actions:[{componentId:"instance_approval",args:{value:{new_next_step:"${event.data.value}"}},actionType:"setValue"},{args:{next_step:"${event.data.value}"},actionType:"broadcast",eventName:"approve_next_step_change"}]}}}],id:"u:4d3a884b437c"}],id:"u:016c56efe5fd",className:"b-a b-1x m-none p-xs",subFormMode:""}},getNextStepUsersInput=async e=>{if("cc"!=e.approve?.type)return{type:"grid",columns:[{body:[{type:"tpl",tpl:"处理人",inline:!0,wrapperComponent:"",id:"u:3203cc281b3c"}],id:"u:8eece76a9e4c",md:"auto",valign:"middle"},{body:[Object.assign({},await lookupToAmisPicker({name:"next_users",label:!1,reference_to:"space_users",reference_to_field:"user",multiple:!1},!1,{}),{name:"next_users",value:"",hiddenOn:"this.new_next_step.deal_type != 'pickupAtRuntime'",required:!0}),{type:"list-select",label:"",name:"next_users",id:"u:next_users",required:!0,multiple:!1,source:{url:"${context.rootUrl}/api/workflow/v2/nextStepUsers",method:"post",sendOn:"!!this.new_next_step && this.new_next_step.step_type != 'end'",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},messages:{},requestAdaptor:"console.log('======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;",adaptor:"\npayload.data = payload.nextStepUsers;\nreturn payload;",data:{"&":"$$",$scopeId:"$scopeId",context:"${context}",next_step:"${new_next_step}"}},labelField:"name",valueField:"id",hiddenOn:"this.new_next_step.deal_type === 'pickupAtRuntime'"}],id:"u:81a4913c61cc"}],id:"u:ffff15b76c89",className:"b-a b-1x p-xs m-b-none m-l-none m-r-none m-t-sm",subFormMode:"",hiddenOn:"!!!this.new_next_step || this.new_next_step?.step_type === 'end'"}},getCCSubmitRequestAdaptor=async e=>` \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: "${e._id}", \n traceId: "${e.trace._id}", \n approveId: "${e.approve._id}", \n description: approveValues.suggestion \n };\n return api;\n `,getPostSubmitRequestAdaptor=async e=>` 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: "${e._id}",\n flow: "${e.flow._id}",\n applicant: formValues.applicant,\n submitter: formValues.submitter,\n traces: [{\n _id: "${e.trace._id}",\n step: "${e.step._id}",\n approves: [{\n _id: "${e.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 `,getPostEngineRequestAdaptor=async e=>` \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: "${e._id}",\n judge: approveValues.judge,\n trace: "${e.approve.trace}",\n _id: "${e.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 `,getSubmitActions=async e=>{let t="",a="";if("cc"==e.approve?.type)t="/api/workflow/v2/cc_submit",a=await getCCSubmitRequestAdaptor(e);else if("draft"===e.state)t="/api/workflow/submit",a=await getPostSubmitRequestAdaptor(e);else{if("pending"!==e.state)return null;t="/api/workflow/engine",a=await getPostEngineRequestAdaptor(e)}return[{componentId:"",args:{},actionType:"custom",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 '},{componentId:"",args:{},actionType:"custom",script:'\n const form = event.context.scoped.getComponentById("instance_approval");\n return form.validate().then((approvalFormValidate)=>{\n event.setData({...event.data, approvalFormValidate})\n })\n ',expression:"${event.data.instanceFormValidate}"},{componentId:"",args:{api:{url:"${context.rootUrl}"+t,method:"post",dataType:"json",data:{"&":"$$",$scopeId:"${$scopeId}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:a},messages:{success:"提交成功!"}},actionType:"ajax",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"},{componentId:"",args:{blank:!1,url:Router$1.getObjectListViewPath({appId:"${appId}",objectName:"${objectName}",listViewName:"${side_listview_id}"})},actionType:"url",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"},{actionType:"closeDialog",expression:"${event.data.instanceFormValidate && event.data.approvalFormValidate}"}]},getApprovalDrawerSchema=async e=>({type:"drawer",overlay:!0,resizable:!1,closeOnEsc:!0,closeOnOutside:!0,size:"sm",title:""+e.step.name,className:"approval-drawer absolute",body:[{type:"form",debug:!1,id:"instance_approval",resetAfterSubmit:!0,body:[await getJudgeInput(e),{type:"textarea",label:!1,name:"suggestion",id:"u:cd344f708ddc",minRows:3,maxRows:20,placeholder:"请填写意见",requiredOn:"${judge === 'rejected'}"},await getNextStepInput(e),await getNextStepUsersInput(e)],onEvent:{approve_judge_change:{actions:[{actionType:"reload",componentId:"u:next_step",args:{}}]},validateError:{weight:0,actions:[{componentId:"",args:{msgType:"info",position:"top-right",closeButton:!0,showIcon:!0,title:"提交失败",msg:"请填写必填字段"},actionType:"toast"}]}}}],id:"u:approve_8861156e0b23",position:"bottom",actions:[{type:"button",label:"提交",onEvent:{click:{actions:await getSubmitActions(e)}},id:"u:f6f8c3933f6c",level:"primary"},{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:127ff1da7283"}]}),getAttachments=async e=>({type:"panel",className:"border-none bg-none shadow-none",headerClassName:"p-0 border-none mb-1",bodyClassName:"p-0",title:[await getAttachmentUploadInput(e)],body:[{type:"service",id:"u:attachmentsService",api:{method:"post",url:"${context.rootUrl}/graphql",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:`\n api.data.query = 'query{attachments:cfs_instances_filerecord(filters: [["metadata.instance", "=", "${e._id}"], "metadata.current", "=", true]){ _id,original,metadata}}';\n return api;\n `},body:[{type:"list",source:"${attachments}",title:!1,listItem:{body:[{type:"tpl",inline:!0,tpl:"<a href='${context.rootUrl}/api/files/instances/${_id}?download=true' target='_blank'>${original.name}</a>"}],actions:[{icon:"fa fa-eye",type:"button",id:"u:ef52fa8940a8"}],id:"u:550b3fdc8788"},id:"u:f538be693fad"}]}]}),getAttachmentUploadInput=async e=>{var t;return e.approve?(t=getSteedosAuth(),{type:"form",title:"表单",body:[{type:"input-file",labelClassName:"antd-List-heading",className:"flex items-center",label:"附件",mode:"inline",name:"file",id:"u:a58d02614e04",btnLabel:"上传",btnClassName:"m-0",multiple:!0,maxLength:10,submitType:"asUpload",uploadType:"fileReceptor",proxy:!1,drag:!1,autoUpload:!0,useChunk:!1,joinValues:!1,extractValue:!1,valueField:"version_id",receiver:{url:"${context.rootUrl}/api/v4/instances/s3",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},method:"post",messages:{},dataType:"form-data",requestAdaptor:`\n api.data.append('space', '${e.space}');\n api.data.append('instance', '${e._id}');\n api.data.append('approve', '${e.approve?._id}');\n api.data.append('owner', '${t.userId}');\n api.data.append('owner_name', '${t.name}');\n return api;\n `},onEvent:{success:{weight:0,actions:[{componentId:"u:5f901c0b917b",args:{},actionType:"clear"},{componentId:"",args:{msgType:"success",position:"top-right",closeButton:!0,showIcon:!0,msg:"上传成功"},actionType:"toast"},{componentId:"u:attachmentsService",args:{},actionType:"reload"}]}}}],id:"u:5f901c0b917b",wrapWithPanel:!1}):{type:"tpl",tpl:"附件"}},getRelatedRecords=async e=>{if(e.record_ids&&!___default.isEmpty(e.record_ids))return ___default.map(e.record_ids,(e=>({type:"tpl",tpl:`<a href='/app/-/${e.o}/view/${e.ids[0]}' target='_blank'>相关台账信息</a>`})))},getRelatedInstances=async e=>({type:"list",name:"relatedInstances",source:"${related_instances}",title:"相关文件",listItem:{body:[{type:"tpl",inline:!0,tpl:`<a href='\${context.rootUrl}/workflow/space/${getSteedosAuth().tenantId}/view/readonly/\${_id}' target='_blank'>\${name}</a>`}],actions:[{icon:"fa fa-eye",type:"button",id:"u:ef52fa8940a8"}],id:"u:550b3fdc8788"},id:"related_instances"}),getInstanceApprovalHistory=async()=>({type:"table",headerClassName:"hidden",title:"签批历程",source:"${historyApproves}",className:"m-b-none instance-approve-history",columnsTogglable:!1,footable:{expand:"all"},columns:[{name:"name",label:"name"},{name:"user_name",label:"user_name",type:"tpl",tpl:"<div><div>${opinion}</div>${user_name}</div>"},{name:"finish_date",label:"finish_date",classNameExpr:"<%= data.finish_date == '已读' ? 'text-[blue]' : (data.finish_date == '未处理' ? 'text-[red]' : '') %>"},{name:"judge",label:"judge",classNameExpr:"<%= data.judge == '已核准' ? 'text-green-600' : (data.judge == '已驳回' ? 'text-[red]' : '') %>"}]}),getSelectOptions=e=>{const t=[];return ___default.each(e.options.split("\n"),(e=>{var a=e.split(":");2==a.length?t.push({label:a[0],value:a[1]}):t.push({label:e,value:e})})),t},isOpinionField$1=e=>-1<(e=e.formula)?.indexOf("{traces.")||-1<e?.indexOf("{signature.traces.")||-1<e?.indexOf("{yijianlan:")||-1<e?.indexOf('{"yijianlan":')||-1<e?.indexOf("{'yijianlan':"),getFieldEditTpl=async(e,t)=>{var a,n={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none form-control",disabled:"editable"!==e.permission,required:e.is_required};if(isOpinionField$1(e))n.type="input-group",n.body=[{type:"textarea",inputClassName:"b-r-none p-r-none",name:"input-group",id:"yijian-"+e.code,minRows:3,maxRows:20,mode:"normal",size:"full"},{type:"button",label:"签批",level:"link",id:"u:2592111d236d",block:!1,onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",title:""+(e.name||e.code),body:[{type:"form",title:"表单",body:[{label:"",type:"textarea",name:"yijian",id:"u:1d5a60623000",minRows:6,maxRows:20,mode:"normal",placeholder:"请填写意见"},{type:"grid",columns:[{body:[{type:"button",label:"已阅",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"已阅",value:"已阅"},actionType:"setValue"}]}},id:"u:13498f8d2882",level:"link",className:"m-r"},{type:"button",label:"已办",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"已办",value:"已办"},actionType:"setValue"}]}},id:"u:cfa2e3c54a21",level:"link",className:"m-r"},{type:"button",label:"同意",onEvent:{click:{actions:[{componentId:"u:1d5a60623000",args:{valueInput:"同意",value:"同意"},actionType:"setValue"}]}},id:"u:06e0037dcd23",level:"link",className:"m-r"},{type:"button",label:"其他常用意见",onEvent:{click:{actions:[]}},id:"u:3a781bc550a2",level:"link",className:"m-r"}],id:"u:3def7a5b7cd5"}],id:"u:ecbefa51b638"}],id:"u:dd32ae67b5c7"}],id:"u:a5d06d3a61b9",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,actions:[{type:"button",label:"确认",onEvent:{click:{actions:[{componentId:"yijian-"+e.code,args:{valueInput:"${yijian}",value:"${yijian}"},actionType:"setValue"},{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:87e22efe707a",level:"primary"},{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:d0e6550a848e"}]}}],weight:0}},className:"instance-sign-text-btn"}];else switch(e.type){case"input":e.is_textarea?n.type="textarea":n.type="input-text";break;case"number":n.type="input-number";break;case"date":n.type="input-date",n.inputFormat="YYYY-MM-DD",n.format="YYYY-MM-DDT00:00:00.000[Z]";break;case"dateTime":n.type="input-datetime",n.inputFormat="YYYY-MM-DD HH:mm",n.format="YYYY-MM-DDTHH:mm:ss.SSSZ";break;case"checkbox":n.type="checkbox";break;case"email":n.type="input-email",n.validations={isEmail:!0};break;case"url":n.type="input-url",n.validations={isUrl:!0};break;case"password":n.type="input-password",n.showCounter=!0;break;case"select":n.type="select",n.options=getSelectOptions(e);break;case"user":var i=await lookupToAmis({name:e.code,label:e.name,reference_to:"space_users",reference_to_field:"user",multiple:e.is_multiselect},!1,{});Object.assign(n,i);break;case"group":i=await lookupToAmis({name:e.code,label:e.name,reference_to:"organizations",multiple:e.is_multiselect},!1,{}),Object.assign(n,i);break;case"radio":n.type="radios",n.options=getSelectOptions(e);break;case"multiSelect":n.type="checkboxes",n.options=getSelectOptions(e);break;case"odata":i=(i=e.formula.substr(1,e.formula.length-2)).substr(i.indexOf(".")+1),n.type="select",n.multiple=e.is_multiselect,n.source={url:___default.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:`\n payload.data = {\n options: _.map(payload.value, (item)=>{\n const value = item;\n item["@label"] = item["${i}"]\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 `};break;case"html":n.type=n.disabled?"html":"input-rich-text";break;case"table":n.type="input-table",n.addable="editable"===e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[];for(const t of e.fields)"hidden"!=t.type&&(t.permission=e.permission,a=await getTdInputTpl(t,!0),n.columns.push(a));break;case"section":n.type="input-text"}return n},getFieldReadonlyTpl=async(e,t)=>{var a,n={label:!0===t&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none form-control"};if(___default.includes(["text"],e.type))n.type="static-"+e.type;else if("select"===e.type){t=getSelectOptions(e);const a={};___default.each(t,(e=>{a[e.value]=e.label})),n.type="static",n.tpl=`<% var options = ${JSON.stringify(a)}; return options?.[data.${e.code}] || ''%>`}else if("odata"===e.type)n.type="static",n.tpl=`<div>\${${e.code}['@label']}</div>`;else if("checkbox"===e.type)n.type="static",n.tpl=`\${${e.code} ? '是': '否'}`;else if("email"===e.type)n.type="static",n.tpl=`<a href="mailto:\${${e.code}}">\${${e.code}}</a>`;else if("url"===e.type)n.type="static",n.tpl=`<a href="\${${e.code}}" target="_blank">\${${e.code}}</a>`;else if("password"===e.type)n.type="static",n.tpl="******";else if("dateTime"===e.type)n.type="static",n.tpl=`<%=data.${e.code} ? date(new Date(data.${e.code}), 'YYYY-MM-DD HH:mm') : '' %>`;else if("user"===e.type)n.type="static",e.is_multiselect?n.tpl=`\${_.map(${e.code}, 'name')}`:n.tpl=`\${${e.code}?.name}`;else if("group"===e.type)n.type="static",n.tpl=`\${${e.code}.name}`;else if("table"===e.type){n.type="input-table",n.addable="editable"===e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[];for(const t of e.fields)"hidden"!=t.type&&(a=await getTdInputTpl(t,!0),n.columns.push(a))}else"html"===e.type?n.type="tpl":n.type="static";return n},getTdInputTpl=async(e,t)=>("editable"===e.permission?getFieldEditTpl:getFieldReadonlyTpl)(e,t),getTdField=async(e,t)=>({background:"editable"!==e.permission?"#FFFFFF":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",width:"32%",body:[await getTdInputTpl(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0",borderLeftColor:"#000000",borderTopColor:"#000000",borderRightColor:"#000000",borderBottomColor:"#000000"}}),getTdTitle=e=>({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",background:"#FFFFFF",body:[{type:"tpl",tpl:`<div>${e.name||e.code} ${e.is_required?'<span class="antd-Form-star">*</span>':""}</div>`}],style:{borderLeftColor:"#000000",borderTopColor:"#000000",borderRightColor:"#000000",borderBottomColor:"#000000"}}),getTds=async e=>{var t=[];for(const a of e)"table"!=a.type&&t.push(getTdTitle(a)),"section"!=a.type&&t.push(await getTdField(a,e.length));return t},getFormTrs=async e=>{var t=[];const a=[];let n=[],i=[];___default.each(e.fields,(e=>{i.push(e),"section"===e.type&&e.fields&&(i=i.concat(e.fields))})),___default.each(i,((e,t)=>{e.is_wide?(0!=n.length&&a.push(n),"table"==e.type&&a.push([Object.assign({},e,{type:"section"})]),(n=[]).push(e),a.push(n),n=[]):(n.push(e),2!=n.length&&t!==i.length-1||(a.push(n),n=[]))}));for(const e of a)t.push({background:"#F7F7F7",tds:await getTds(e)});return t},getFormTableView=async e=>({type:"table-view",className:"instance-form-view",trs:await getFormTrs(e),id:"u:047f3669468b"}),getApplicantTableView=async e=>({type:"table-view",className:"instance-applicant-view",trs:[{background:"#FFFFFF",tds:[{className:"td-title",background:"#FFFFFF",align:"left",width:"16%",colspan:"",body:[{type:"tpl",tpl:"<div>提交人</div>",id:"u:ee62634201bf"}],id:"u:6c24c1bb99c9",style:{padding:"none"}},{background:"#FFFFFF",colspan:1,align:"left",className:"td-field",width:"32%",body:["draft"===e.state?Object.assign({name:"applicant",value:getSteedosAuth().userId,disabled:"draft"!==e.box},await lookupToAmis({name:"applicant",label:!1,reference_to:"space_users",reference_to_field:"user",multiple:!1},!1,{})):{label:!1,mode:"horizontal",className:"m-none p-none",disabled:!0,type:"tpl",tpl:"<div>${applicant_name}</div>",id:"u:2016b04355f4"}],id:"u:45d65d91905c"},{className:"td-title",background:"#FFFFFF",align:"left",width:"16%",colspan:"",body:[{type:"tpl",tpl:"<div>提交日期</div>",id:"u:6d0a7763d527"}],id:"u:c8b8214ac931",style:{padding:"none"}},{background:"#FFFFFF",colspan:1,align:"left",className:"td-field",width:"32%",body:[{label:!1,mode:"horizontal",className:"m-none p-none",disabled:!0,type:"tpl",inputFormat:"YYYY-MM-DD",valueFormat:"YYYY-MM-DDT00:00:00.000[Z]",tpl:"<div>${submit_date}</div>",id:"u:2016b04355f4"}],id:"u:81b07d82a5e4"}]}],id:"u:047f3669468b",style:{borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none"}}),getApproveButton=async e=>!e.approve||"inbox"!=e.box&&"draft"!=e.box?null:{type:"button",label:"签批",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"drawer",drawer:await getApprovalDrawerSchema(e)}]}},id:"u:cc1afbdc3868",level:"primary",className:"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"},getFlowFormSchema=async(e,t)=>({type:"page",name:"instancePage",className:"steedos-amis-instance-view",title:{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"instances",recordId:e._id,id:"u:e6b2adbe0e21",showRecordTitle:!1,className:"p-0 m-0 p0 m0"},css:{".instance-approve-history .antd-Table-table thead":{display:"none"},".instance-approve-history .antd-Table-heading":{"font-size":"14px","font-weight":"500","padding-left":"0px"},".antd-List-heading":{"font-size":"14px","font-weight":"500"}},body:[await getAttachments(e),await getRelatedInstances(),await getRelatedRecords(e),{type:"form",debug:!1,wrapWithPanel:!1,resetAfterSubmit:!0,body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div class="instance-name">${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},await getFormTableView(e),await getApplicantTableView(e)],id:"instance_form",onEvent:{validateError:{weight:0,actions:[{componentId:"",args:{msgType:"info",position:"top-right",closeButton:!0,showIcon:!0,title:"提交失败",msg:"请填写必填字段"},actionType:"toast"}]}}},await getInstanceApprovalHistory(),await getApproveButton(e)],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body","header"],onEvent:{inited:{weight:0,actions:[{componentId:"u:cc1afbdc3868",actionType:"click"}]}},initApi:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},messages:{},requestAdaptor:`\n const { context } = api.data;\n api.data = {\n query: \`\n {\n instance: instances__findOne(id:"${e._id}"){\n related_instances: related_instances__expand{\n _id,\n name\n }\n }\n }\n \`\n }\n return api;\n `,adaptor:"\n payload.data = {\n related_instances: payload.data.instance.related_instances\n };\n return payload;\n ",data:{context:"${context}",judge:"${new_judge}"}},initFetch:!0}),isOpinionField=e=>-1<e?.indexOf("{traces.")||-1<e?.indexOf("{signature.traces.")||-1<e?.indexOf("{yijianlan:")||-1<e?.indexOf('{"yijianlan":')||-1<e?.indexOf("{'yijianlan':"),getOpinionFieldStepsName=(field,top_keywords)=>{const field_formula=field.formula;var foo1,opinionFields,opinionFields=new Array;return isOpinionField(field_formula)&&field_formula&&(foo1=field_formula.split(";"),foo1.forEach((function(foo){var json_formula,s1,sf,_ref,_ref1,json_formula={};try{json_formula=eval("("+foo+")")}catch(e){json_formula={}}return null!=json_formula&&json_formula.yijianlan?(sf={},sf.stepName=json_formula.yijianlan.step,sf.image_sign=json_formula.yijianlan.image_sign||!1,sf.only_cc_opinion=json_formula.yijianlan.only_cc||!1,sf.default_description=json_formula.yijianlan.default,sf.only_handler=json_formula.yijianlan.only_handler,sf.top_keywords=json_formula.yijianlan.top_keywords||top_keywords,opinionFields.push(sf)):-1<(null!=field_formula?field_formula.indexOf("{traces."):void 0)||-1<(null!=field_formula?field_formula.indexOf("{signature.traces."):void 0)?(sf={only_cc_opinion:!1,image_sign:!1,top_keywords:top_keywords},-1<foo.indexOf("{signature.")&&(sf.image_sign=!0,foo=foo.replace("{signature.","")),s1=foo.replace("{","").replace("}",""),1<s1.split(".").length&&(sf.stepName=s1.split(".")[1],0<opinionFields.filterProperty("stepName",sf.stepName).length?null!=(_ref=opinionFields.findPropertyByPK("stepName",sf.stepName))&&(_ref.only_cc_opinion=!0):2<s1.split(".").length&&"cc"===(null!=(_ref1=s1.split(".")[2])?_ref1.toLocaleLowerCase():void 0)&&(sf.only_cc_opinion=!0)),opinionFields.push(sf)):void 0}))),opinionFields},getTrace=({instance:e,traceId:t})=>___default.find(e.traces,(e=>e._id===t)),getUserApprove=({instance:e,userId:t})=>{var a=___default.find(e.traces,(e=>1!=e.is_finished));let n=null;if((n=a?___default.find(a.approves,(e=>1!=e.is_finished&&e.handler==t)):n)&&"cc"!=n.type||___default__default.default.each(e.traces,(function(e){___default__default.default.each(e.approves,(function(e){"cc"==e.type&&e.handler==t&&0==e.is_finished&&(n=e)}))})),n)return n._id&&(n.id=n._id),n},getApproveValues=({instance:e,trace:t,step:a,approve:n,box:i})=>(!n||"cc"===n.type||"draft"!==i&&("inbox"!==i||"counterSign"==a.step_type||a.cc_has_edit_permission&&!t.is_finished||___default.isEmpty(n.values))?e:n).values,getFlowVersion=e=>e.flow.current._id===e.flow_version?e.flow.current:___default.find(e.flow.historys,(t=>t._id===e.flow_version)),getFormVersion=e=>e.form.current._id===e.form_version?e.form.current:___default.find(e.form.historys,(t=>t._id===e.form_version)),getStep=({flowVersion:e,stepId:t})=>___default.find(e.steps,(e=>e._id===t)),getLastCCStep=({traces:e},t)=>{for(var a=t,n=null,i=null,r=e.length-1;0<=r;)!n&&e[r].is_finished&&___default__default.default.each(e[r].approves,(function(t){n||(n=!t.is_finished||t.user!==a||t.type&&"cc"!=t.type||!["approved","submitted","rejected"].includes(t.judge)?n:t.trace)&&(i=e[r].step)})),r--;return i},isCurrentStepOpinionField=(e,t)=>___default__default.default.includes(___default__default.default.map(getOpinionFieldStepsName(e),"stepName"),t?.name),getInstanceInfo=async({instanceId:e,box:t})=>{var a=getSteedosAuth().userId,n=await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:`{\n instance: instances__findOne(id:"${e}"){\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 `})});let i=null,r=null,o=null;var s,l,d;if(n=n.data.instance)return"inbox"!==t&&"draft"!==t||(i=getUserApprove({instance:n,userId:a})),s=getFlowVersion(n),l=getFormVersion(n),i&&(r=getTrace({instance:n,traceId:i.trace}),o=getStep({flowVersion:s,stepId:r.step})),a=getLastCCStep(n,a),d=getApproveValues({instance:n,trace:r,step:o,approve:i,box:t}),{box:t,_id:e,space:n.space,flow:n.flow,form:n.form,applicant:n.applicant,applicant_name:n.applicant_name,submitter:n.submitter,submit_date:n.submit_date?amisRequire("moment")(n.submit_date).format("YYYY-MM-DD"):"",state:n.state,approveValues:d,title:n.name||n.form.name,name:n.name||n.form.name,fields:___default__default.default.map(l.fields,(e=>Object.assign({},e,{permission:"cc"!=i?.type&&(o?.permissions[e.code]||(isCurrentStepOpinionField(e,o)?"editable":""))}))),flowVersion:s,formVersion:l,step:o,lastCCStep:a,trace:r,approve:i,record_ids:n.record_ids,related_instances:n.related_instances,forward_from_instance:n.forward_from_instance,cc_users:n.cc_users,traces:n.traces,historyApproves:___default__default.default.map(n.traces,(e=>Object.assign({children:___default__default.default.map(e.approves,(e=>{let t=e.finish_date,a=e.judge,n=e.user_name,i=e.description;switch("cc"===e.type&&(n+=" (传阅)",i=e.cc_description),t?t=amisRequire("moment")(t).format("YYYY-MM-DD HH:mm"):(t=e.is_read?"已读":"未处理",a=null),a){case"submitted":a="";break;case"returned":a="已退回";break;case"terminated":a="被取回";break;case"pending":a="审核中";break;case"approved":a="已核准";break;case"rejected":a="已驳回";break;case"finished":a="已完成";break;case"reassigned":a="转签核";break;case"inhand":a="处理中";break;case"relocated":a="重定位";break;case"readed":a="已阅"}return{name:"",user_name:n,finish_date:t,judge:a,opinion:i}}))},{name:e.name,judge:""})))}};var index_esm$1=Object.freeze({__proto__:null,Field:index,Router:Router$1,absoluteUrl:absoluteUrl,amisRender:amisRender,amisRootClick:amisRootClick,cloneObject:cloneObject,conditionsToFilters:conditionsToFilters,createObject:createObject,defaultsDeep:defaultsDeep,deleteVariable:deleteVariable,execute:execute,executeButton:executeButton,extendObject:extendObject,fetchAPI:fetchAPI,filtersToConditions:filtersToConditions,getApp:getApp,getApps:getApps,getAuthToken:getAuthToken,getAuthorization:getAuthorization,getButton:getButton,getButtonVisible:getButtonVisible,getButtonVisibleOn:getButtonVisibleOn$1,getButtons:getButtons,getCalendarSchema:getCalendarSchema,getDefaultRenderData:getDefaultRenderData,getEnv:getEnv,getEnvs:getEnvs,getEvn:getEvn,getField:getField,getFileSrc:getFileSrc,getFlowFormSchema:getFlowFormSchema,getFormPageInitSchema:getFormPageInitSchema,getFormSchema:getFormSchema,getImageSrc:getImageSrc,getInstanceInfo:getInstanceInfo,getListPageInitSchema:getListPageInitSchema,getListSchema:getListSchema,getListViewButtons:getListViewButtons,getListViewColumns:getListViewColumns,getListViewFilter:getListViewFilter,getListViewItemButtons:getListViewItemButtons,getListViewSort:getListViewSort,getListviewInitSchema:getListviewInitSchema,getNotifications:getNotifications,getObjectDetailButtons:getObjectDetailButtons,getObjectDetailMoreButtons:getObjectDetailMoreButtons,getObjectFieldsFilterBarSchema:getObjectFieldsFilterBarSchema,getObjectFieldsFilterButtonSchema:getObjectFieldsFilterButtonSchema,getObjectFieldsFilterFormSchema:getObjectFieldsFilterFormSchema,getObjectListHeader:getObjectListHeader$1,getObjectListHeaderFieldsFilterBar:getObjectListHeaderFieldsFilterBar,getObjectListHeaderFirstLine:getObjectListHeaderFirstLine,getObjectListHeaderSecordLine:getObjectListHeaderSecordLine,getObjectRecordDetailHeader:getObjectRecordDetailHeader,getObjectRecordDetailRelatedListHeader:getObjectRecordDetailRelatedListHeader,getObjectRelated:getObjectRelated,getObjectRelatedList:getObjectRelatedList,getObjectRelatedListButtons:getObjectRelatedListButtons,getObjectRelatedListHeader:getObjectRelatedListHeader,getPage:getPage,getRecord:getRecord,getRecordDetailHeaderSchema:getRecordDetailHeaderSchema,getRecordDetailRelatedListSchema:getRecordDetailRelatedListSchema,getRecordDetailSchema:getRecordDetailSchema,getRecordPageInitSchema:getRecordPageInitSchema,getRecordPermissions:getRecordPermissions,getRelatedFieldValue:getRelatedFieldValue,getRelatedListSchema:getRelatedListSchema,getRelatedsCount:getRelatedsCount,getRootUrl:getRootUrl,getSelectUserSchema:getSelectUserSchema,getSpaceUsersPickerAmisSchema:getSpaceUsersPickerAmisSchema,getSpaceUsersPickerSchema:getSpaceUsersPickerSchema,getSteedosAuth:getSteedosAuth,getTableSchema:getTableSchema,getTenantId:getTenantId,getUISchema:getUISchema,getUISchemaSync:getUISchemaSync,getUserId:getUserId,getViewSchema:getViewSchema,isExpression:isExpression$1,isObject:isObject,lookupToAmis:lookupToAmis,lookupToAmisPicker:lookupToAmisPicker,lookupToAmisSelect:lookupToAmisSelect,lookupToAmisSelectUser:lookupToAmisSelectUser,markReadAll:markReadAll,parseSingleExpression:parseSingleExpression$1,registerRemoteAssets:registerRemoteAssets,registerRenders:registerRenders,setEnv:setEnv,setEnvs:setEnvs,setRootUrl:setRootUrl,setSteedosAuth:setSteedosAuth,setUISchemaFunction:setUISchemaFunction,setVariable:setVariable,standardButtonsTodo:standardButtonsTodo}),getSchema=function(e,t,a){return __awaiter(void 0,void 0,void 0,(function(){var n,i,r,o,s,l,d,c,u,p,m,f;return __generator(this,(function(_){switch(_.label){case 0:(n=e.reference_to)&&___default.isFunction(n)&&(n=n()),i="".concat(e.name,"__left"),r=[],_.label=1;case 1:_.trys.push([1,6,7,8]),o=__values(n),s=o.next(),_.label=2;case 2:return s.done?[3,5]:[4,getUISchema(l=s.value,!1)];case 3:d=_.sent(),r.push({label:d.label,value:l,icon:d.icon}),_.label=4;case 4:return s=o.next(),[3,2];case 5:return[3,8];case 6:return c=_.sent(),m={error:c},[3,8];case 7:try{s&&!s.done&&(f=o.return)&&f.call(o)}finally{if(m)throw m.error}return[7];case 8:return t&&t.o||(t={o:r[0].value,ids:[]}),[4,getUISchema(t.o,!1)];case 9:return u=_.sent(),p=null,1!=u.enable_enhanced_lookup?[3,11]:[4,lookupToAmisPicker(Object.assign({},e,{reference_to:t.o}),!1,a)];case 10:return p=_.sent(),[3,13];case 11:return a||(a={}),a.isRefToMutiple=___default.isArray(n),[4,lookupToAmisSelect(Object.assign({},e,{reference_to:t.o}),!1,a)];case 12:p=_.sent(),_.label=13;case 13:return[2,{type:"input-group",label:!1,body:[{type:"select",name:i,options:r,value:"".concat(t.o)},Object.assign({},p,{name:"".concat(e.name,"__right"),id:"right:".concat(e.name),inputClassName:"w-full",value:"".concat(t.ids)})]}]}}))}))},AmisObjectFieldLookup=function(e){var t=e.field;e.readonly;var a=e.ctx,n=e.dispatchEvent,i=e.render;e.renderFormItems;var r=e.onChange,o=e.data,s=e.formItemValue;e.value;var l=__read(React.useState(),2),d=l[0],c=l[1];void 0===s&&(s=o[t.name]);var u=__read(React.useState(s),2),p=u[0],m=u[1];React.useEffect((function(){m(s)}),[JSON.stringify(s)]),React.useEffect((function(){getSchema(t,p,a).then((function(e){c(e)}))}),[JSON.stringify(p)]);return React__default.default.createElement("div",{className:"amis-object-field-lookup"},d?React__default.default.createElement("div",{className:"container p-0"},i("body",d,{onChange:function(e,t){return __awaiter(void 0,void 0,void 0,(function(){var a,i,s;return __generator(this,(function(l){switch(l.label){case 0:return a=null==p?void 0:p.o,t.endsWith("_right")&&!a&&d&&(a=d.body[0].value||d.body[0].options[0].value),i=Object.assign({o:t.endsWith("_left")?e:a,ids:t.endsWith("_right")?e:null==p?void 0:p.ids}),t.endsWith("_left")&&(i.ids=[]),___default.isString(i.ids)&&(i.ids=___default.compact(i.ids.split(","))),[4,n("change",createObject(o,{fieldValue:i}))];case 1:return(null==(s=l.sent())?void 0:s.prevented)?[2]:[2,r(i)]}}))}))}})):null)},AmisObjectButton=function(e){var t=e.objectName,a=e.name,n=e.data,i=e.render,r=e.className,o=e.listViewId,s=__read(React.useState(),2),l=s[0],d=s[1],c=__read(React.useState(),2),u=c[0],p=c[1],m=n.appId,f=n.formFactor;React.useEffect((function(){t&&getUISchema(t,!1).then((function(e){getButton(t,a,{objectName:t,recordId:n._id,appId:m,uiSchema:e,formFactor:f,router:null,listViewId:n.listViewId,props:{className:"antd-Button antd-Button--link"}}).then((function(t){d(t),p(e)}))}))}),[t,a]);if(!l)return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",className:"animate-spin w-4 h-4"},React__default.default.createElement("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"})));if("amis_button"===l.type){var _=l.amis_schema,g=___default.isString(_)?JSON.parse(_):_;g&&g.body.length>0&&delete g.body[0].visibleOn;var b=Object.assign(n,{recordId:n._id,objectName:t,listViewId:n.listViewId,app_id:m,className:r});return g&&(g.data=___default.defaultsDeep({},b,getDefaultRenderData(),g.data)),React__default.default.createElement(React__default.default.Fragment,null,l&&_?React__default.default.createElement(React__default.default.Fragment,null,i("body",g,{data:b,onChange:function(){console.log("change....")}})):null)}return React__default.default.createElement("button",{onClick:function(){var e=n.dataComponentId,a=n.scopeId;return executeButton(l,{objectName:t,listViewId:o||n.listViewId,uiSchema:u,record:n,recordId:n._id,appId:m,formFactor:f,scope:window.SteedosUI.getRef(e),scopeId:a||e})},className:"antd-Button antd-Button--default antd-Button--size-default ".concat(r||"")},l.label)},getMenu=function(e,t,a,n){return ___default.map(t,(function(t){return t.className="".concat(t.className," ").concat(a),{key:t.name,label:React__default.default.createElement(React__default.default.Fragment,null,e("body",t,n))}}))},SteedosDropdownButton=function(e){var t=e.data,a=e.render,n=e.className,i=e.btnClassName,r=e.buttons,o=e.placement,s=e.trigger,l=void 0===s?["click"]:s,d=e.onOpenApi;e.store;var c=e.env,u=e.overlayClassName,p=e.arrow,m=__read(React.useState([]),2),f=m[0],_=m[1];return React__default.default.createElement(antd.Dropdown,{menu:{items:f},trigger:l,onOpenChange:function(e){if(e)if(d)try{c.fetcher(d,createObject(t,{})).then((function(e){var n=(null==e?void 0:e.hasOwnProperty("ok"))?e.data:e;_(getMenu(a,r,i,{data:createObject(t,___default.defaultsDeep(n,t))}))})).catch((function(e){console.error(e)}))}catch(e){console.error(e)}else _(getMenu(a,r,i,{data:t}))},placement:o,overlayClassName:u,arrow:p},React__default.default.createElement("button",{className:"slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(n||"")},React__default.default.createElement("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},React__default.default.createElement("path",{d:"m7 10 5 5 5-5z",fill:"currentColor"}))))},SteedosIcon=function(e){var t,a;e.basePath;var n=e.category,i=void 0===n?"standard":n,r=e.className,o=void 0===r?"":r,s=e.containerClassName,l=void 0===s?"":s,d=e.colorVariant,c=void 0===d?"default":d;e.inverse;var u=e.name,p=void 0===u?"account":u,m=e.size,f=void 0===m?"medium":m;e.title;var _=e.rootUrl;return void 0===_&&(null===(a=null===(t=e.data)||void 0===t?void 0:t.context)||void 0===a||a.rootUrl),React__default.default.createElement("span",{className:"slds-icon_container slds-icon-".concat(i,"-").concat(p," ").concat(l)},React__default.default.createElement("svg",{className:"slds-icon slds-icon_".concat(f," slds-icon-text-").concat(c," ").concat(o)},React__default.default.createElement("use",{xlinkHref:"/assets/icons/".concat(i,"-sprite/svg/symbols.svg#").concat(p)})))};antd.Tabs.TabPane;var HeaderDropdown=function(e){e.overlayClassName;var t=__rest(e,["overlayClassName"]);return React__default.default.createElement(antd.Dropdown,__assign$2({overlayClassName:"header-dropdown",getPopupContainer:function(e){return e.parentElement||document.body}},t,{arrow:!0}))},getOverlay=function(e,t,a){return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(antd.Spin,{delay:300,spinning:!1},React__default.default.createElement("div",{className:"bg-white shadow"},e("body",t,{}))))},SteedosDropdown=function(e){var t=e.render,a=e.overlay,n=e.body,i=e.trigger,r=void 0===i?["click"]:i,o=e.placement,s=void 0===o?"bottomRight":o,l=e.overlayClassName,d=e.className;return e.data,React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(HeaderDropdown,{placement:s,overlay:getOverlay(t,a),trigger:r,className:d,overlayClassName:l},React__default.default.createElement("div",null,React__default.default.createElement(React__default.default.Fragment,null,t("body",n,{})))))};function FromNow(e){var t=e.date,a=__read(React.useState(),2),n=a[0],i=a[1],r=__read(React.useState(""),2),o=r[0],s=r[1],l=function(e){return window.amisRequire?window.amisRequire("moment")(e).fromNow():window.moment?window.moment(e).fromNow():void console.error("not find moment")};return React.useEffect((function(){n&&clearInterval(n),s(l(t)),i(setInterval((function(){s(l(t))}),6e4))}),[t]),React__default.default.createElement(React__default.default.Fragment,null,o)}var SteedosBadge=function(e){var t=e.body,a=e.render,n=e.count,i=e.color,r=e.dot,o=e.offset,s=e.overflowCount,l=e.showZero,d=e.size,c=e.status,u=e.text,p=e.title;return React__default.default.createElement(antd.Badge,{count:n,color:i,dot:r,offset:o,overflowCount:s,showZero:l,size:d,status:c,text:u,title:p},a("body",t,{}))},SteedosBadgeRibbon=function(e){var t=e.body,a=e.render,n=e.color,i=e.placement,r=void 0===i?"end":i,o=e.text,s=void 0===o?"Badge.Ribbon":o;return React__default.default.createElement(antd.Badge.Ribbon,{color:n,placement:r,text:s},a("body",t,{}))},SteedosLoading=function(e){return React__default.default.createElement("div",{className:"w-full h-full flex items-center justify-center "},React__default.default.createElement("svg",{className:"animate-spin -ml-1 mr-3 h-8 w-8 text-sky-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},React__default.default.createElement("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),React__default.default.createElement("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})))},AmisObjectForm=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v;return __generator(this,(function(w){switch(w.label){case 0:t=e.$schema,a=e.recordId,n=e.mode,i=e.layout,r=e.labelAlign,o=e.appId,s=e.fieldsExtend,l=e.excludedFields,d=void 0===l?null:l,c=e.includedFields,u=void 0===c?null:c,p=e.className,m=void 0===p?"":p,f=e.objectApiName||"space_users",_=___default.difference(___default.keys(t),["type","mode","layout"]),g=___default.pick(e,_),b={recordId:a,mode:n,layout:"vertical"===i?"normal":i,labelAlign:r,defaults:{formSchema:g},appId:o,excludedFields:d,includedFields:u};try{b.fieldsExtend=___default.isString(s)?JSON.parse(s):s}catch(e){console.warn(e)}return(y=e.data.global||{}).mode="edit"===n?"edit":"read","edit"!==n?[3,2]:[4,getFormSchema(f,b)];case 1:return h=w.sent().amisSchema,[3,4];case 2:return a||(b.formInitProps={queryOptions:"top: 1"}),[4,getViewSchema(f,a,b)];case 3:h=w.sent().amisSchema,w.label=4;case 4:return(v={}).recordId=a||null,f&&(v.objectName=f),h.className="steedos-object-form ".concat(m),h.data=Object.assign({"&":"$$"},h.data,v,{global:y}),[2,h]}}))}))},AmisObjectListView=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v,w,$,S,F,x,j,I,N,O,k,A,T,D,V;return __generator(this,(function(E){switch(E.label){case 0:return t=e.$schema,a=e.top,n=e.perPage,i=e.showHeader,r=void 0===i||i,o=e.headerSchema,s=e.data,l=e.defaultData,d=e.className,c=void 0===d?"":d,u=e.crudClassName,p=e.showDisplayAs,m=void 0!==p&&p,f=e.sideSchema,e.columnsTogglable,_=e.ctx,g=(null==l?void 0:l.listName)||(null==s?void 0:s.listName)||(null==e?void 0:e.listName),b={},y=e.objectApiName||"space_users",_||(_={}),h=Router$1.getTabDisplayAs(y),(v=e.formFactor)||(w=window.innerWidth<768,v=w?"SMALL":"LARGE"),["split"].indexOf(h)>-1&&(v="SMALL"),_.formFactor||(_.formFactor=v),[4,getUISchema(y,!1)];case 1:return $=E.sent(),(S=___default.find($.list_views,(function(e,t){return g||(g=t),t===g||e._id===g})))?(g=S.name,_&&_.defaults||(F=___default.difference(___default.keys(t),["type","showHeader","id"]),(x=___default.pick(e,F)).className=u,x.onEvent={},x.onEvent["@data.changed.".concat(y)]={actions:[{args:{url:"/app/${appId}/${objectName}/view/${event.data.result.data.recordId}?display=${ls:tab.project.display || 'grid'}&side_object=${objectName}&side_listview_id=${listName}",blank:!1},actionType:"link",expression:"${!!!event.data.recordId && event.data.__deletedRecord != true}"},{actionType:"reload",expression:"${event.data.recordId || event.data.__deletedRecord === true}"}]},b={listSchema:x}),o&&(b.headerSchema=o),(j=_&&_.setDataToComponentId)||(j="service_listview_".concat(y)),I=Object.assign({},s,l),N=(null==_?void 0:_.listViewId)||I.listViewId,[4,getListSchema(I.appId,y,g,__assign$2(__assign$2({top:a,perPage:n,showHeader:r,defaults:b},_),{listViewId:N,setDataToComponentId:j,filterVisible:!0,showDisplayAs:m,displayAs:h}))]):[2,{type:"alert",body:"当前".concat(g,"视图不存在!"),level:"warning",showIcon:!0,className:"mb-3"}];case 2:return O=E.sent(),k=O.amisSchema,A=O.uiSchema,T=[k],(O.isCustomAmisSchema||O.isCalendar)&&(D=getObjectListHeaderFirstLine(A),T.unshift({type:"wrapper",body:[D],className:"bg-gray-100 pb-0 sm:rounded-tl sm:rounded-tr"})),f&&(T=[{type:"wrapper",size:"none",className:"flex flex-1 overflow-hidden h-full",body:[{type:"wrapper",size:"none",className:"flex-shrink-0 min-w-[200px] overflow-y-auto border-r border-gray-200 lg:order-first lg:flex lg:flex-col",body:f},{type:"wrapper",size:"none",className:"flex-1 overflow-y-auto focus:outline-none lg:order-last w-96",body:T}]}]),V=Object.assign({},k.data,I,{listName:g,uiSchema:A,showDisplayAs:m,displayAs:h,recordPermissions:A.permissions,_id:null,$listviewId:g}),[2,{type:"service",body:T,className:"".concat(c," steedos-object-listview"),data:V}]}}))}))};function getTableColumns(e,t,a){if(void 0===a&&(a={}),e)return e;var n=[],i=a;if(___default.isString(i))try{i=JSON.parse(i)}catch(e){i={}}return ___default.each(t,(function(e){var t={};try{t=i[e]||{}}catch(e){}n.push(Object.assign({},t,{field:e}))})),n}var AmisObjectTable=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v,w,$,S,F,x,j,I,N,O,k,A,T;return __generator(this,(function(D){switch(D.label){case 0:return t=e.$schema,a=e.filters,n=e.filtersFunction,i=e.amisCondition,r=e.top,o=e.headerSchema,s=e.includedFields,l=e.fieldsExtend,d=e.sort,c=e.sortField,u=e.sortOrder,p=e.extraColumns,m=e.data,f=e.defaultData,_=e.formFactor,g=void 0===_?window.innerWidth<768?"SMALL":"LARGE":_,b=e.className,y=void 0===b?"":b,h=e.requestAdaptor,v=e.adaptor,(w=e.ctx)||(w={}),w.formFactor||(w.formFactor=g),$=getTableColumns(e.columns,s,l)||[],S={},F=e.objectApiName||"space_users",w&&w.defaults||(x=___default.difference(___default.keys(t),["type","objectApiName","columns","extraColumns","id"]),(j=___default.pick(e,x)).className="",S={listSchema:j}),o&&(S.headerSchema=o),(I=w&&w.setDataToComponentId)||(I="service_listview_".concat(F)),N=i&&conditionsToFilters(i),O=a||N,k=Object.assign({},m,f),A=(null==m?void 0:m.appId)||(null==f?void 0:f.appId),w=___default.pickBy(w,(function(e){return void 0!==e})),[4,getTableSchema(A,F,$,__assign$2(__assign$2({filters:O,filtersFunction:n,top:r,sort:d,sortField:c,sortOrder:u,extraColumns:p,defaults:S},w),{setDataToComponentId:I,requestAdaptor:h,adaptor:v}))];case 1:return(T=D.sent().amisSchema).data=Object.assign({},T.data,k),T.className="steedos-object-table h-full flex flex-col ".concat(y),[2,T]}}))}))},AmisObjectCalendar=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h,v;return __generator(this,(function(w){switch(w.label){case 0:return e.$schema,t=e.top,a=e.sort,n=e.filters,i=e.filtersFunction,r=e.title,o=e.currentView,s=e.startDateExpr,l=e.endDateExpr,d=e.allDayExpr,c=e.textExpr,u=e.data,p=e.defaultData,m=e.className,f=void 0===m?"":m,_=e.objectApiName||"events",[4,getCalendarSchema((g=Object.assign({},u,p)).appId,_,{title:r,currentView:o,startDateExpr:s,endDateExpr:l,allDayExpr:d,textExpr:c},{top:t,sort:a,filter:n,filtersFunction:i})];case 1:return b=w.sent(),y=b.uiSchema,h=b.amisSchema,v=Object.assign({},h.data,g,{objectName:_,uiSchema:y}),[2,{type:"service",body:h,className:"".concat(f),data:v}]}}))}))},AmisRecordDetailHeader=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c;return __generator(this,(function(u){switch(u.label){case 0:return t=e.className,a=void 0===t?"bg-gray-100 border-b sm:shadow sm:rounded sm:border border-slate-300 p-4":t,[4,getUISchema(e.objectApiName||"space_users",!1)];case 1:return n=u.sent(),i={recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.".concat((null==n?void 0:n.NAME_FIELD_KEY)||"name","}"),record:"${record}",recordLoaded:!0}},{actionType:"setValue",args:{value:{recordLoaded:!0}}}]}},e.$schema,r=e.recordId,o=e.onEvent,s=void 0===o?i:o,l=e.showRecordTitle,d=void 0===l||l,[4,getRecordDetailHeaderSchema(e.objectApiName||"space_users",r,{showRecordTitle:d})];case 2:return(c=u.sent().amisSchema).className=a,[2,Object.assign({},c,{onEvent:s})]}}))}))},AmisRecordDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s;return __generator(this,(function(l){switch(l.label){case 0:return e.$schema,t=e.appId,a=e.objectApiName,n=void 0===a?"space_users":a,i=e.recordId,r=e.onEvent,e.defaultData,[4,getRecordDetailSchema(n,t,{onEvent:r})];case 1:return o=l.sent().amisSchema,s={},i&&(s.recordId=i),o.data=Object.assign({},o.data,s),[2,o]}}))}))},AmisRecordDetailRelatedList=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g;return __generator(this,(function(b){switch(b.label){case 0:return t=e.objectApiName,a=e.recordId,n=e.relatedObjectApiName,e.data,i=e.relatedKey,r=e.top,o=e.perPage,s=e.hiddenEmptyTable,l=e.appId,d=e.relatedLabel,c=e.className,u=void 0===c?"":c,p=e.columns,m=e.sort,f=e.filters,_=e.visible_on,(g=e.formFactor)||(g=window.innerWidth<768?"SMALL":"LARGE"),t&&n&&a?[4,getRecordDetailRelatedListSchema(t,a,n,i,{top:r,perPage:o,hiddenEmptyTable:s,appId:l,relatedLabel:d,className:u,formFactor:g,columns:p,sort:m,filters:f,visible_on:_})]:[2,{type:"alert",body:"缺少父级对象、父级记录或相关列表对象属性",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return[2,b.sent().amisSchema]}}))}))},AmisRecordDetailRelatedLists=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r;return __generator(this,(function(o){switch(o.label){case 0:return t=e.objectApiName,a=e.recordId,e.data,n=e.perPage,i=void 0===n?5:n,t&&a?(e.formFactor,[4,getObjectRelatedList(t)]):[2,{type:"alert",body:"缺少父级对象或父级记录属性",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return(r=o.sent())&&r.length?[2,{type:"service",className:"steedos-record-detail-related-lists",body:___default.map(r,(function(e){return{type:"steedos-object-related-listview",objectApiName:t,recordId:a,relatedObjectApiName:e.object_name,foreign_key:e.foreign_key,relatedKey:e.foreign_key,columns:e.columns,sort:e.sort,filters:e.filters,visible_on:e.visible_on,perPage:e.page_size||i,hiddenEmptyTable:!0,relatedLabel:e.label}}))}]:[2,{type:"alert",body:"没有相关子表",level:"info",showIcon:!0,className:"mb-3"}]}}))}))},AmisSelectUser=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a;return __generator(this,(function(n){switch(n.label){case 0:return console.log("AmisSelectUser props",e),t=e.$schema,e.data,[4,getSelectUserSchema({name:t.name,multiple:t.multiple,searchable:t.searchable,onEvent:t.onEvent,filters:t.filters},!1,{})];case 1:return(a=n.sent()).name=t.name,a.label=t.label,[2,a]}}))}))},AmisProvider=function(e){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){return console.log("AmisProvider props",e),[2,{}]}))}))},AmisAppLauncher=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d;return __generator(this,(function(c){return t=e.app,a=e.data,n=e.className,i=e.showAppName,r=void 0===i||i,o=e.appNameClassName,s=void 0===o?"":o,t||(t=a.context.app),l=window.innerWidth<768?"SMALL":"LARGE",d="SMALL"===l,[2,{type:"service",className:n,body:[{type:"button",actionType:"dialog",className:"flex items-center",body:[{type:"tpl",className:"flex items-center",tpl:"<div aria-haspopup='true' title='Open App Launcher' class='slds-icon-waffle_container slds-context-bar__button' title='Open App Launcher' type='button'><span class='slds-icon-waffle'><span class='slds-r1'></span><span class='slds-r2'></span><span class='slds-r3'></span><span class='slds-r4'></span><span class='slds-r5'></span><span class='slds-r6'></span><span class='slds-r7'></span><span class='slds-r8'></span><span class='slds-r9'></span></span></div>"},{type:"tpl",className:"text-xl ml-4 mr-4 text-black nowrap ".concat(s," "),tpl:"${app.name}",hiddenOn:"".concat(!!t&&!r)}],dialog:{size:"xl",title:{type:"tpl",tpl:"应用程序启动器",className:"block text-xl text-center"},actions:[],body:[{type:"service",id:"u:0f6224a0836f",affixFooter:!1,body:[{type:"collapse-group",activeKey:["1","2"],body:[{type:"collapse",key:"1",header:"所有应用",body:[{type:"each",name:"app_items",items:{type:"button",level:"link",actionType:"link",link:"${path}",body:[{type:"tpl",tpl:"<div class='slds-app-launcher__tile slds-text-link_reset'><div class='slds-app-launcher__tile-figure'><svg class='w-12 h-12 slds-icon slds-icon_container slds-icon-standard-${REPLACE(icon, '_', '-')}' aria-hidden='true'><use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use></svg><span class='slds-assistive-text'>${name}</span></div><div class='slds-app-launcher__tile-body'><span class='slds-link text-blue-600 text-lg'><span title='${name}'>${name}</span></span><div style='display: -webkit-box; -webkit-line-clamp: 1;-webkit-box-orient: vertical;overflow: hidden;'><span title='${description}'>${description}</span></div></div></div>"}],onEvent:{click:{actions:[{actionType:"closeDialog"}]}},inline:!0,style:{},className:"slds-p-horizontal_small slds-size_1-of-1 slds-medium-size_1-of-3"},className:"slds-grid slds-wrap slds-grid_pull-padded"}]},{type:"collapse",key:"2",header:"所有项目",body:[{type:"each",name:"object_items",items:{type:"button",level:"link",actionType:"link",link:"${path}",body:[{type:"tpl",wrapperComponent:"span",className:"app-launcher-link slds-text-link--reset slds-app-launcher__tile--small slds-truncate creator-object-nav-${id}",tpl:'<span class="slds-truncate slds-text-link">${name}</span>'}],onEvent:{click:{actions:[{actionType:"closeDialog"}]}},inline:!0,style:{},className:"slds-col--padded slds-p-vertical_xx-small slds-size_1-of-5 slds-grow-none oneAppLauncherItem"},className:"slds-grid slds-wrap"}],className:""}]}],className:"",visibleOn:"",clearValueOnHidden:!1,visible:!0,messages:{},api:{method:"get",url:"${context.rootUrl}/service/api/apps/menus?mobile="+d,data:null,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\nlet app_items = payload;\nlet object_items = [];\nlet objects = [];\napp_items.forEach((item) => {\n item.children.forEach((i) => {\n if (objects.indexOf(i.id) < 0) {\n objects.push(i.id);\n object_items.push(i)\n }\n })\n})\npayload.data = {\n app_items,\n object_items\n}\nreturn payload;"}}]},id:"u:b5dc095e1c11"}]}]}))}))},AmisLogo=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i;return __generator(this,(function(r){return t=e.src,a=void 0===t?"/logo.png":t,n=e.className,i=e.imgClassName,[2,{type:"tpl",className:n,tpl:"<a href='/app' class='flex items-center '><img class='".concat(void 0===i?"block h-7 w-auto":i,"' src='").concat(a,"'></a>"),id:"u:2a8e7a359dff"}]}))}))},AmisAppMenu=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f;return __generator(this,(function(_){return t=e.stacked,a=void 0!==t&&t,n=e.overflow,i=e.appId,r=e.data,o=e.links,s=void 0===o?null:o,l=e.showIcon,d=void 0===l||l,c=e.className,u=void 0===c?"":c,p=e.indentSize,m=void 0===p?12:p,f=e.selectedId,i||(i=r.context.appId||"admin"),[2,{type:"nav",className:"".concat(u),stacked:a,overflow:n,indentSize:m,links:s,source:{method:"get",url:"${context.rootUrl}/service/api/apps/".concat(i,"/menus"),adaptor:"\n try {\n const data = { nav: [] };\n const stacked = ".concat(a,";\n const showIcon = ").concat(d,";\n const selectedId = '").concat(f,'\';\n _.each(_.groupBy(payload.children, \'group\'), (tabs, groupName) => {\n if (groupName === \'undefined\') {\n _.each(tabs, (tab) => {\n data.nav.push({\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n })\n })\n } else {\n\n if(stacked){\n data.nav.push({\n "label": groupName,\n "unfolded": true,\n "children": _.map(tabs, (tab) => {\n return {\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n }\n })\n })\n }else{\n _.each(tabs, (tab) => {\n data.nav.push({\n "label": showIcon ? {\n type: \'tpl\',\n tpl: `<span class=\'fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md\'><svg class="mr-1 flex-shrink-0 h-6 w-6"><use xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || \'account\'}"></use></svg>${tab.name}</span>`\n } : tab.name,\n "to": tab.path,\n // active: selectedId === tab.id,\n });\n })\n }\n\n \n }\n });\n payload.data = data.nav;\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n '),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},sendOn:"".concat(!s)}}]}))}))},AmisGlobalHeader=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c;return __generator(this,(function(u){return t=e.className,a=void 0===t?"":t,n=e.data,i=e.logoutScript,r=void 0===i?"":i,o=e.customButtons,s=void 0===o?[]:o,l=null,(null===(c=null===(d=n.context)||void 0===d?void 0:d.user)||void 0===c?void 0:c.avatar)&&(l="".concat(n.context.rootUrl||"","/avatar/").concat(n.context.user.userId,"?w=220&h=200&fs=160&avatar=").concat(n.context.user.avatar)),[2,{type:"wrapper",id:"u:9c3d279be31a",className:"steedos-global-header leading-3\t".concat(a),size:"xs",body:__spreadArray(__spreadArray([],__read(s),!1),[{type:"button",hiddenOn:"window.innerWidth < 768",id:"u:267a7e84a89d",onEvent:{click:{actions:[{componentId:"",args:{url:"https://www.steedos.com/docs"},actionType:"url"}]}},body:[{type:"steedos-icon",category:"utility",name:"help",colorVariant:"default",id:"u:afc3a08e8cf3",className:"slds-button_icon slds-global-header__icon"}],label:"帮助"},{type:"button",hiddenOn:"window.innerWidth < 768",onEvent:{click:{actions:[{componentId:"",args:{url:"/app/admin"},actionType:"url"}]}},id:"u:b5d0ab3a32b5",body:[{type:"steedos-icon",category:"utility",name:"setup",colorVariant:"default",id:"u:793a86f8a9e4",className:"slds-button_icon slds-global-header__icon"}],label:"设置"},{type:"steedos-dropdown",placement:"bottomRight",trigger:["click"],body:[{type:"service",body:[{type:"steedos-badge",body:[{type:"steedos-icon",category:"utility",name:"notification",colorVariant:"default",className:"slds-button_icon slds-global-header__icon"}],count:"${unReadCount}"}],id:"u:aba521eed5b7",messages:{},api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",context:"${context}",userId:"${context.userId}"},dataType:"json",requestAdaptor:'const { userId } = api.data;\napi.data = {\n query: `{\n unReadCount: notifications__count(filters: [["owner","=","${userId}"], ["is_read", "!=", true]])\n }`\n}',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"return payload.data"},interval:3e4,silentPolling:!0}],overlay:[{type:"service",body:[{type:"panel",title:"通知",className:"min-w-[300px] max-w-md",body:[{type:"each",className:"overflow-auto max-h-96",name:"notifications",items:{type:"tpl",tpl:"<div class='flex items-center p-4 hover:bg-sky-50'><img src='<%=data.context.rootUrl + `/avatar/` + data.from%>' alt='' class='h-10 w-10 flex-none rounded-full'><div class='ml-4 flex-auto'><div class='font-medium'><a href='<%=data.context.rootUrl + `/api/v4/notifications/` + data._id + `/read?rootUrl=` + window.location.origin + `&appId=` + data.appId %>' target='_blank'><%=data.name%></a></div><div class='mt-1 text-slate-700'><%=data.body%></div><div class='mt-1 text-slate-700'><%=moment(data.created).fromNow()%><abbr class='slds-text-link slds-m-horizontal_xxx-small <%=data.is_read ? 'hidden' : ''%>' title='unread'>●</abbr></div></div></div>",id:"u:07ece657c7b7"},id:"u:18da41dab9ca"}],actions:[{type:"button",label:"全部标记为已读",id:"u:5530f3779e3a",onEvent:{click:{actions:[{componentId:"",args:{api:{url:"${context.rootUrl}/api/v4/notifications/all/markReadAll",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"已全部标记为已读"}},actionType:"ajax"}],weight:0}}}]}],id:"u:aba521eed5b7",messages:{},api:{method:"post",url:"${context.rootUrl}/graphql",data:{"&":"$$",context:"${context}",userId:"${context.userId}"},dataType:"json",requestAdaptor:'const { userId } = api.data;\napi.data = {\n query: `{\n notifications(filters: ["owner","=","${userId}"], sort: "created desc,name", top : 10){\n _id,name,body,related_to,related_name,url,owner,is_read,from,created\n } }`\n}',headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"return payload.data"}}],id:"u:857e8161c96b",className:"antd-Action",open:!1},{type:"steedos-dropdown",placement:"bottomRight",trigger:["click"],body:[{type:"avatar",src:l,icon:"fa fa-user",id:"u:033218742221",style:{background:"rgb(59 130 246 / 0.5)",color:"#FFFFFF"},size:30}],overlay:[{type:"wrapper",className:"",body:[{type:"grid",valign:"middle",align:"center",className:"m-2",columns:[{body:[{type:"avatar",className:"",src:l,icon:"fa fa-user",id:"u:033218742221",style:{background:"rgb(59 130 246 / 0.5)",color:"#FFFFFF"}}]},{body:[{type:"tpl",className:"block",tpl:"${context.user.name}",inline:!0},{type:"tpl",className:"block",tpl:"${context.user.email}",inline:!0}]}]},{type:"button",label:"个人资料",className:"flex",onEvent:{click:{actions:[{args:{url:"/app/admin/space_users/view/${context.user.spaceUserId}",blank:!1},actionType:"link"}]}},level:"link"},{type:"button",label:"注销",className:"flex",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"custom",script:r}]}},level:"link"}]}],className:"antd-Action"}],!1)}]}))}))},AmisSteedosField=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d;return __generator(this,(function(c){switch(c.label){case 0:t=null,a=e.field,n=e.readonly,i=void 0!==n&&n,r=e.ctx,o=void 0===r?{}:r,s=e.config,(l=e.$schema).config&&___default.isString(l.config)&&(l.config=JSON.parse(l.config),e.config=l.config),___default.isString(o)&&(o=JSON.parse(o)),s?(t=s,___default.isString(t)&&(t=JSON.parse(s))):___default.isString(a)&&(t=JSON.parse(a)),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,index.convertSFieldToAmisField(t,i,o)];case 2:return[2,c.sent()];case 3:return d=c.sent(),console.log("error",d),[3,4];case 4:return[2,null]}}))}))},getSelectFlowSchema=function(e,t){var a=t.label,n=t.data,i=t.name,r=t.required,o=t.action,s=void 0===o?"query":o,l=t.distributeInstanceId,d=void 0===l?"":l,c=t.distributeStepId,u=void 0===c?"":c,p=t.mode,m=void 0===p?"input-tree":p,f=t.className,_=t.onEvent,g=t.multiple,b=void 0!==g&&g,y=t.delimiter,h=t.joinValues,v=t.extractValue,w=t.searchable,$=t.showIcon,S=void 0===$||$,F=t.showRadio,x=void 0!==F&&F;return{type:m,id:e,label:a,name:i,options:[],multiple:b,delimiter:y,joinValues:h,extractValue:v,searchable:w,showOutline:t.showOutline,initiallyOpen:t.initiallyOpen,unfoldedLevel:t.unfoldedLevel,className:f,required:r,treeContainerClassName:t.treeContainerClassName,source:{method:"post",url:"${context.rootUrl}/graphql?keywords=${keywords}",requestAdaptor:"\n const keywords = api.body.keywords || '';\n const appId = '".concat(n.app_id||"","';\n api.data = {\n query: `\n {\n options: flows__getList(action: \"").concat(s,'", keywords: "${keywords}", appId: "${appId}", distributeInstanceId: "').concat(d,'", distributeStepId: "').concat(u,'"){\n value:_id\n label:name\n children: flows{\n value: _id,\n label: name\n }\n }\n }\n `\n }\n '),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},showIcon:S,showRadio:x,onlyLeaf:!0,onEvent:_}},AmisSelectFlow=function(e){var t=e.mode,a=void 0===t?"input-tree":t,n=e.id,i=void 0===n?"selectFlow"+___default.random(1e4,99999):n;console.log("AmisSelectFlow props",e);var r="".concat(i,"_input"),o=getSelectFlowSchema(r,e);return"tree-select"===a?o:{type:"service",id:"selectFlowService",body:[{type:"search-box",className:"!w-full mb-2",name:"keywords",enhance:!0,onEvent:{search:{actions:[{actionType:"setValue",componentId:"selectFlowService",args:{value:{keywords:"${event.data.keywords}"}}},{componentId:r,actionType:"reload"}]}}},o]}},AmisInstanceDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r;return __generator(this,(function(o){switch(o.label){case 0:return t=e.instanceId,a=e.boxName,n=e.data,[4,getInstanceInfo({instanceId:t,box:a})];case 1:return i=o.sent(),[4,getFlowFormSchema(i)];case 2:return(r=o.sent()).data=__assign$2(__assign$2({"&":"$$",recordLoaded:!0,submit_date:i.submit_date,applicant:i.applicant,applicant_name:i.applicant_name,related_instances:i.related_instances,historyApproves:i.historyApproves,boxName:a},i.approveValues),{context:Object.assign({},n.context,i),record:i}),console.log("AmisInstanceDetail schema",r),[2,r]}}))}))},PageListView=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m;return __generator(this,(function(f){switch(f.label){case 0:return t=e.formFactor,a=e.appId,n=e.objectApiName,i=e.listviewId,r=e.display,o=e.$schema,s=void 0===o?{}:o,r&&Router$1.setTabDisplayAs(n,r),l="SMALL"===t?"grid":r||Router$1.getTabDisplayAs(n),d=["split"].indexOf(l)>-1?"SMALL":t,[4,getPage({type:"list",appId:a,objectName:n,formFactor:d})];case 1:return!1===(c=f.sent())?[2,{type:"spinner",show:!0}]:(u=SteedosUI.getRefId({type:"listview",appId:a,name:n}),p=c?JSON.parse(c.schema):{type:"steedos-object-listview",objectApiName:n,columnsTogglable:!1,showHeader:!0,showDisplayAs:"SMALL"!==t,formFactor:d,className:"split"===l?"w-full":"p-0 flex-1 overflow-hidden h-full sm:m-3 sm:mb-0 sm:border sm:shadow sm:rounded border-slate-300 border-solid bg-gray-100"},[2,{type:"service",data:m=__assign$2(__assign$2({},s.data),{objectName:n,listViewId:u,listName:i,appId:a,formFactor:d,displayAs:l,scopeId:u}),className:"grid"===l?"":"p-0 flex flex-1 overflow-hidden h-full",body:"grid"===l?___default.defaultsDeep({data:m},p):[{type:"wrapper",className:"p-0 flex-shrink-0 min-w-[388px] overflow-y-auto border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col",body:___default.defaultsDeep({data:m},p)},{type:"wrapper",className:"p-0 flex-1 overflow-y-auto focus:outline-none xl:order-last",body:[]}]}])}}))}))},PageRecordDetail=function(e){return __awaiter(void 0,void 0,void 0,(function(){var t,a,n,i,r,o,s,l,d,c,u,p,m,f,_,g,b,y,h;return __generator(this,(function(v){switch(v.label){case 0:return t=e.formFactor,a=e.appId,n=e.objectApiName,i=e.listviewId,r=e.recordId,o=e.display,s=e.sideObject,l=void 0===s?n:s,d=e.sideListviewId,c=void 0===d?i:d,u=e.$schema,o&&Router$1.setTabDisplayAs(n,o),p="SMALL"===t?"grid":o||(l?"split":Router$1.getTabDisplayAs(tabId)),m=["split"].indexOf(p)>-1?"SMALL":t,[4,getPage({type:"list",appId:a,objectName:n,formFactor:m})];case 1:return f=v.sent(),_={},r?[4,getPage({type:"record",appId:a,objectName:n,formFactor:t})]:[3,3];case 2:g=v.sent(),_=g?JSON.parse(g.schema):{type:"wrapper",className:"p-0 m-0 sm:m-3 flex-1",name:"amis-".concat(a,"-").concat(n,"-detail"),body:[{type:"steedos-record-detail",recordId:"${recordId}",objectApiName:"${objectName}",appId:a}]},v.label=3;case 3:return b=SteedosUI.getRefId({type:"listview",appId:a,name:l}),y=f?JSON.parse(f.schema):{type:"steedos-object-listview",objectApiName:l,columnsTogglable:!1,showHeader:!0,showDisplayAs:!0,formFactor:"SMALL"},[2,{type:"service",data:h=__assign$2(__assign$2({},u.data),{objectName:n,listViewId:c,listName:c,recordId:r,appId:a,formFactor:m,displayAs:p,scopeId:b}),className:"grid"===p?"":"p-0 flex flex-1 overflow-hidden h-full",body:"grid"===p?___default.defaultsDeep({data:h},_):[{type:"wrapper",className:"p-0 flex-shrink-0 min-w-[388px] overflow-y-auto border-r border-gray-300 bg-gray-100 shadow lg:order-first lg:flex lg:flex-col",body:___default.defaultsDeep({data:h},y)},{type:"wrapper",className:"p-0 flex-1 overflow-y-auto focus:outline-none lg:order-last",body:___default.defaultsDeep({data:h},_)}]}]}}))}))},__assign=function(){return(__assign=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var i in t=arguments[a])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,a){return!1}},standard_new:{visible:function(e,t,a){return"cms_files"!==e&&"instances"!==e&&(a?a.allowCreate:void 0)}},standard_edit:{visible:function(e,t,a){if(a)return a.allowEdit}},standard_delete:{visible:function(e,t,a){if(a)return a.allowDelete}},standard_import_data:{visible:function(e,t,a){var n=this.object;if(a)return a.allowCreate&&n.hasImportTemplates}},standard_approve:{visible:function(e,t,a){return!1}},standard_view_instance:{visible:function(e,t,a){return!1}},standard_submit_for_approval:{visible:function(e,t,a){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,a){return!1}},standard_delete_many:{visible:function(e,t,a){return!RegExp("\\w+/view/\\w+").test(location.pathname)&&(a?a.allowDelete:void 0)}}}}},authRequest=function(e,t){var a=null;e=Steedos.absoluteUrl(e);try{var n=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],i={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(e){if(n&&n.length)return n.forEach((function(t){return e.setRequestHeader(t.name,t.value)}))},success:function(e){a=e},error:function(e,t,n){var i,r;e.responseJSON&&e.responseJSON.error?(i=e.responseJSON.error,void(a={error:i}),r=i.reason||i.message||i,console.error(r)):console.error(e.responseJSON)}};return $.ajax(Object.assign({},i,t)),a}catch(e){console.error(e)}};function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a,n=arguments[t];for(a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}const newFunctionComponent=e=>t=>{const[a,n]=React.useState(!0);var i=()=>{n(!1)};return ___default.has(t,"ref")||(window.SteedosUI.refs[t.name]={show:()=>{n(!0)},close:i}),React__default.default.createElement(e,_extends({visible:a,onCancel:i,onClose:i},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},t))},newComponentRender=(e,t)=>(a,n)=>{a.name||(a.name=e+"-"+(a.name||"default")),(n=n||document.getElementById(`steedos-${e}-root-`+a.name))||((n=document.createElement("div")).setAttribute("id",`steedos-${e}-root-`+a.name),document.body.appendChild(n)),a=React__default.default.createElement(newFunctionComponent(t),a),ReactDOM.createRoot(n).render(a)},Modal=___default.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e)})),""+t.join(" ")},getFindOneQuery=(e,t,a)=>{e=e.replace(/\./g,"_"),a=getGraphqlFieldsQuery(a);let n="";return`{record:${e}__findOne${n=0<(t=[`id: "${t}"`]).length?`(${t.join(",")})`:n}{${a}}}`},SObject={getRecord:async(e,t,a)=>(await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,a)})})).data.record,getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:a})=>{canSaveFilter(t),a.filters&&(a.filters=filtersToConditions(a.filters))},getVisibleFilter:(e,t)=>t||(canSaveFilter(e)?e.filters:void 0),getQueryFilter:(e,t)=>canSaveFilter(e)?ListView.getVisibleFilter(e,t):___default.isEmpty(t)?e.filters:[e.filters,"and",t],getFirstListView:async e=>(e=await window.getUISchema(e),_.first(_.sortBy(_.values(e.list_views),"sort_no")))},Router={getAppPath:({appId:e})=>"/app/"+e,getPagePath(){},getObjectListViewPath:({appId:e,objectName:t,listViewName:a})=>`/app/${e}/${t}/grid/`+a,getObjectDetailPath:({appId:e,objectName:t,recordId:a})=>`/app/${e}/${t}/view/`+a,getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:i})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+i};var withModalWrap=function(e,t){return function(t){return React.createElement(e,t)}},render=function(e,t,a,n){return e=withModalWrap(e),e=React.createElement(e,__assign({},t)),ReactDOM__default.default.render(e,a)};const safeRunFunction=(e,t,a,n)=>{try{var i=window.Creator;if((!i||!i.getObjectUrl)&&/\bSteedos\b|\bCreator\b|\bMeteor\b|\bSession\b/.test(e))return console.info("调用了Creator|Steedos|Meteor|Session变量的脚本不执行,直接按空值处理。"),"";let a=[];return ___default.isNil(t)||(a=___default.isArray(t)?t:[t]),e.bind(n||{})(...a)}catch(e){return console.log(e),a}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js)}}const isExpression=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},parseSingleExpression=function(e,t,a,n){var i,r=function(e,t){return"#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(t=void 0===t?{}:t,function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(a))||{};if("string"!=typeof e)return e;i="__G_L_O_B_A_L__",t="\n return "+e.substring(2,e.length-2).replace(/\bformData\b/g,JSON.stringify(t).replace(/\bglobal\b/g,i)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+i+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(r));try{return Function(t)()}catch(t){return console.log(t,e,a),e}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(e,t)=>{let a=e;return/^\{\w+(\.*\w+)*\}$/.test(e)&&(a=-1<e.indexOf("userId")||-1<e.indexOf("spaceId")||-1<e.indexOf("user.")||-1<e.indexOf("now")?`{${e}}`.replace("{{","{{global."):`{${e}}`.replace("{{","{{formData."),t&&(a=a.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),a},getFieldDefaultValue=(e,t)=>{if(!e)return null;let a=e.defaultValue;e._defaultValue&&(a=safeEval(`(${e._defaultValue})`)),___default.isFunction(a)&&(a=safeRunFunction(a,[],null,{name:e.name})),___default.isString(a)&&(a=getCompatibleDefaultValueExpression(a,e.multiple));var n=isExpression(a);return n&&(a=parseSingleExpression(a,{},"#",t)),"select"===e.type&&(t=e.data_type||"text",!a||n||e.multiple||("text"!==t||___default.isString(a)?"number"!==t||___default.isNumber(a)?"boolean"!==t||___default.isBoolean(a)||(a="true"===a):a=Number(a):a=String(a))),a},SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef:e=>SteedosUI$1.refs[e],router:{go:(e,t)=>{var a=window.FlowRouter;if(t)return a?a.go(t):window.open(t);a?a.reload():console.warn("暂不支持自动跳转",e)},reload:()=>{console.log("reload")}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:a})=>{switch(e){case"listview":return`amis-${t}-${a}-listview`;case"form":return`amis-${t}-${a}-form`;case"detail":return`amis-${t}-${a}-detail`;default:return`amis-${t}-${a}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue});var getBuilderContext=function(){return"undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({getRootUrl:function(e){return getBuilderContext().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return(e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e)}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,a=e.authToken;return t&&a?"Bearer ".concat(t,",").concat(a):null}catch(e){console.error(e)}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"==typeof window||window.Steedos||(window.Steedos=Steedos$1),"undefined"==typeof window||window.SteedosUI||(window.SteedosUI=SteedosUI$1);var index_esm=Object.freeze({__proto__:null,Steedos:Steedos$1,SteedosUI:SteedosUI$1});exports.AmisAppLauncher=AmisAppLauncher,exports.AmisAppMenu=AmisAppMenu,exports.AmisGlobalHeader=AmisGlobalHeader,exports.AmisInstanceDetail=AmisInstanceDetail,exports.AmisLib=index_esm$1,exports.AmisLogo=AmisLogo,exports.AmisObjectButton=AmisObjectButton,exports.AmisObjectCalendar=AmisObjectCalendar,exports.AmisObjectFieldLookup=AmisObjectFieldLookup,exports.AmisObjectForm=AmisObjectForm,exports.AmisObjectListView=AmisObjectListView,exports.AmisObjectTable=AmisObjectTable,exports.AmisProvider=AmisProvider,exports.AmisRecordDetail=AmisRecordDetail,exports.AmisRecordDetailHeader=AmisRecordDetailHeader,exports.AmisRecordDetailRelatedList=AmisRecordDetailRelatedList,exports.AmisRecordDetailRelatedLists=AmisRecordDetailRelatedLists,exports.AmisSelectFlow=AmisSelectFlow,exports.AmisSelectUser=AmisSelectUser,exports.AmisSteedosField=AmisSteedosField,exports.FromNow=FromNow,exports.PageListView=PageListView,exports.PageRecordDetail=PageRecordDetail,exports.SteedosBadge=SteedosBadge,exports.SteedosBadgeRibbon=SteedosBadgeRibbon,exports.SteedosDropdown=SteedosDropdown,exports.SteedosDropdownButton=SteedosDropdownButton,exports.SteedosIcon=SteedosIcon,exports.SteedosLib=index_esm,exports.SteedosLoading=SteedosLoading;
2
2
  //# sourceMappingURL=amis-object.cjs.js.map