@steedos-widgets/amis-object 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/amis-object.cjs.css +162 -0
- package/dist/amis-object.cjs.js +1 -1
- package/dist/amis-object.cjs.js.map +1 -1
- package/dist/amis-object.esm.css +162 -0
- package/dist/amis-object.esm.js +1 -1
- package/dist/amis-object.esm.js.map +1 -1
- package/dist/amis-object.umd.css +162 -0
- package/dist/amis-object.umd.js +1 -1
- package/dist/amis-object.umd.js.map +1 -1
- package/dist/assets.json +5 -5
- package/package.json +3 -3
package/dist/amis-object.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("lodash"),a=require("antd");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(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 i=n(e),l=r(t),o=n(t),s=function(){return s=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function d(e,t,a,n){return new(a||(a=Promise))((function(r,i){function l(e){try{s(n.next(e))}catch(e){i(e)}}function o(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(l,o)}s((n=n.apply(e,t||[])).next())}))}function c(e,t){var a,n,r,i,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,n&&(r=2&i[0]?n.return:i[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,i[1])).done)return r;switch(n=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,n=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){l.label=i[1];break}if(6===i[0]&&l.label<r[1]){l.label=r[1],r=i;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(i);break}r[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],n=0}finally{a=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,o])}}}function u(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,r,i=a.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)l.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return l}var p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},m="object"==typeof p&&p&&p.Object===Object&&p,f="object"==typeof self&&self&&self.Object===Object&&self,b=(m||f||Function("return this")()).Symbol,y=b,h=Object.prototype,g=h.hasOwnProperty,v=h.toString,w=y?y.toStringTag:void 0;var $=function(e){var t=g.call(e,w),a=e[w];try{e[w]=void 0;var n=!0}catch(e){}var r=v.call(e);return n&&(t?e[w]=a:delete e[w]),r},N=Object.prototype.toString;var S=$,F=function(e){return N.call(e)},j=b?b.toStringTag:void 0;var O=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":j&&j in Object(e)?S(e):F(e)};var x=function(e,t){return function(a){return e(t(a))}}(Object.getPrototypeOf,Object);var I=O,k=x,V=function(e){return null!=e&&"object"==typeof e},D=Function.prototype,A=Object.prototype,E=D.toString,T=A.hasOwnProperty,P=E.call(Object);var q=function(e){if(!V(e)||"[object Object]"!=I(e))return!1;var t=k(e);if(null===t)return!0;var a=T.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&E.call(a)==P};const C=[],B=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=((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 r=~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,r){if("/"!=r[0]&&!/^https?\:\/\//.test(r)){var i,l=t.pathname.split("/");for(l.pop();i=/^\.\.?\//.exec(r);)"../"===i[0]&&l.pop(),r=r.substring(i[0].length);r=l.concat(r).join("/")}}else r=t.pathname;return r+a+e})(t),a&&"url"===a.actionType?!1===a.blank?e.push(t):window.open(t):a&&t&&a.target?window.open(t,a.target):/^https?:\/\//.test(t)?window.location.replace(t):e.push(t)}}),L=e=>{if(!t.isEmpty(e)&&t.isArray(e)){var a=amisRequire("amis");const n={renderer:a.Renderer,formitem:a.FormItem,options:a.OptionsControl};let r=amisRequire("react");t.each(e,(e=>{if(!t.find(C,(t=>t===e.componentName))){let t=Builder.components.find((t=>t.name===e.componentName)),a=t.class;"amisSchema"===e.componentType&&(a=e=>{var{body:a,render:n}=e;const[i,l]=r.useState(null);return r.useEffect((()=>{var a=t.class(e);a&&a.then&&"function"==typeof a.then?a.then((e=>{l(e)})):l(a)}),[]),r.createElement(r.Fragment,null,r.createElement(r.Fragment,null,i&&n?n("body",i):""),r.createElement(r.Fragment,null,n?n("body",a):""))}),n[e.usage]?(n[e.usage]({test:new RegExp("(^|/)"+e.type),type:e.type,weight:e.weight,autoVar:!0})(a),console.info("注册了一个自定义amis组件:",{type:e.type,weight:e.weight,component:a,framework:e.framework,usage:e.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${e.usage}自定义组件类型。`),C.push(e.componentName)}}))}},R={},z=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings;async function J(e,t={credentials:"include"}){var a,n={"Content-Type":"application/json"};if(401===(a=((a=M())&&(n.Authorization=a),t.headers=Object.assign({},n,t.headers),t.credentials="include",await fetch(""+K()+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 U(){try{let e=z().tenantId;return window.location.search&&!e&&(e=new URLSearchParams(window.location.search).get("X-Space-Id")),e||null}catch(e){console.error(e)}}function H(){try{var e=z().authToken;return e||null}catch(e){console.error(e)}}function M(){try{var e=z(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function K(e){return z().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}const Y=()=>t.cloneDeep(R);async function W(e,a){0!=a&&(a=!0);let n=["_id"],r=[];for(const i of l.isArray(e)?e:l.values(e))i.name.indexOf(".")<0&&(!a||"lookup"!=i.type&&"master_detail"!=i.type?n.push(i.alias?i.alias+":"+i.name:i.name):(n.push(""+i.name),r.push(""+i.name)),t.includes(["time","date","datetime","boolean","number","currency"],i.type)&&n.push(""+i.name),t.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary"],i.type)&&r.push(""+i.name));return r=l.uniq(r),n=l.uniq(n),0<r.length?`${n.join(",")},_display:_ui{${r.join(",")}}`:""+n.join(" ")}async function Z(e,t,a,n){let r="",i=(t&&(r=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return n&&(n.alias&&(i=n.alias),n.filters&&(r=`(filters:${n.filters})`),n.queryOptions&&(r=`(${n.queryOptions})`)),{query:`{${i}:${e.name}${r}{${await W(a)}, \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 }}`}}function G(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 ${function(e){var t=[];return e.forEach((e=>{e.readonly&&t.push(`delete formData.${e.name};`)})),t.join("\r\n")}(e)}\n ${function(e){let a=[],n={};return e.forEach((e=>{t.includes(["image","avatar"],e.type)&&(a.push(e.name),n[e.name]={name:e.name,multiple:e.multiple})})),a.length?`\n let imgFieldsKeys = ${JSON.stringify(a)};\n let imgFields = ${JSON.stringify(n)};\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 `:""}(e)}\n ${function(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 `:""}(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 X(e){return`\n ${G(e)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n `}async function Q(e,t,a,n){var r=n.limit||10;let i=`(top: ${r})`,o=(t&&(i=`(filters:["_id", "=", "${t}"], top: ${r})`),"data");return n&&(n.alias&&(o=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`)),t="",e.enable_tree&&l.includes(l.keys(e.fields),"parent")&&l.includes(l.keys(e.fields),"children")&&(t=",parent,children"),r="","cms_files"===e.name&&(r=",versions"),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${i}{${await W(a,n.expand)}${t}${r}},count:${e.name}__count(filters:{__filters})}`}}function ee(e){if(!e)return"${context.rootUrl}/graphql"}const te={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,listViewName:n})=>"instances"===t?`/workflow/space/\${context.tenantId}/${n}/`+a:`/app/${e}/${t}/view/`+a,getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:r})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+r};function ae(e){return`<div>\${_display.${e.name}}</div>`}function ne(e){return`<div>\${_display.${e.name}}</div>`}function re(e){return`<div>\${_display.${e.name}}</div>`}function ie(e){return`<div>\${_display.${e.name}}</div>`}function le(e,t){var a;return _.isString(e.reference_to)||!e.reference_to?e.multiple?(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:`\${_display.${e.name}.objectName}`,recordId:`\${_display.${e.name}.value}`})}">\${_display.${e.name}.label}</a>`:(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `)}async function oe(e,t){var a,n;return e.reference_to?(a=await async function(e){return(await Rt(e.reference_to)).NAME_FIELD_KEY||"name"}(e),e.multiple?(n=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${n}"><%=item.${a}%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):ie(e)}function se(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}%></span>\n </span>\n <% } %>`}function de(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function ce(e,t){if(e.is_name||e.name===t.labelFieldName)return function(e,t){return"cms_files"===t.objectName?`<a href="\${context.rootUrl}/api/files/files/\${versions[0]}?download=true">\${${e.name}}</a>`:`<a href="${te.getObjectDetailPath({...t,formFactor:t.formFactor,appId:t.appId,objectName:t.objectName,recordId:`\${${t.idFieldName}}`})}">\${${e.name}}</a>`}(e,t);switch(e.type){case"password":return de(e);case"boolean":return se(e);case"select":return ie(e);case"time":case"formula":case"summary":case"filesize":return function(e){return`<div>\${_display.${e.name}}</div>`}(e);case"date":return ne(e);case"datetime":return re(e);case"lookup":case"master_detail":return le(e,t);case"number":case"currency":return ae(e)}}function ue(e){let t="";var a=l.filter(e,(function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)}));return l.each(a,(function(e){var a;l.includes(Ze,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 try{\n ${t}\n ${me(e)}\n ${fe(e)}\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 pe(e,t,a,n){return{method:"post",url:ee()+"?rf="+(new Date).getTime(),cache:100,adaptor:ue(a),data:await Z(e,t,a,n),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function me(e){let t=[],a={};return e.forEach((e=>{l.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 fe(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 be(e,t,a){return{method:"post",url:ee(),sendOn:"!!this.recordId",cache:100,adaptor:`\n if(payload.data.data){\n var data = payload.data.data[0];\n if(data){\n ${me(a)}\n ${fe(a)}\n //初始化接口返回的字段移除字段值为null的字段\n for (key in data){\n if(data[key] === null){\n delete data[key];\n }\n }\n };\n payload.data = data;\n delete payload.extensions;\n }\n return payload;\n `,data:await Z(e,t,a),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function ye(e,t,a,n){return{method:"post",url:ee(),data:{objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"},requestAdaptor:X(a),responseData:{recordId:"${record._id}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function he(e){return{method:"post",url:ee(),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 ge=async(e,t,a,n)=>{if((t=l.filter(t,{group:a})).length!=l.filter(t,["hidden",!0]).length){var r,i=[];for(const a of t){let t=a;"grid"===a.type?t=await Xe(a,e):"object"===a.type&&(t=await Ge(a,e)),t.name.indexOf(".")<0&&(r=await et(t,t.readonly,n))&&i.push(r)}return{type:"fieldSet",title:a,collapsable:!0,body:i}}},_e=async(e,t,a)=>{var n=(e=>{let t=[];return t.length=0,l.forEach(e.fields,((e,t)=>{l.has(e,"name")||(e.name=t)})),l.forEach(l.sortBy(e.fields,"sort_no"),(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})(t),r=[];for(const t in l.groupBy(n,"group")){var i=await ge(e,n,t,a);0<i.body.length&&r.push(i)}return r};async function ve(e,t,a){return _e(e,t,a)}async function we(e,t){var a=[];for(const r of e){var n=await ce(r,t);let e=n?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled})}return{type:"hbox",columns:a}}function $e(e){return{perPage:e.top||e.perPage||10}}const Ne=(...e)=>{let a={};return t.toArray(e).reverse().forEach((e=>{t.mergeWith(a,e,((e,a)=>t.isArray(a)?a:void 0))})),a};function Se(e,t){return"SMALL"===t?["bulkActions",{type:"reload",align:"right"},{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]:["filter-toggler","bulkActions",{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]}async function Fe(e,t,a){var n=function(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:he(e.name)}]}(e);n={toolbar:[],footerToolbar:["statistics","pagination"],headerToolbar:Se(0,a.formFactor),bulkActions:0!=a.bulkActions&&n,bodyClassName:""};let r=null;var i="listview_"+e.name,l=(r="SMALL"===a.formFactor?(delete n.bulkActions,delete n.headerToolbar,delete n.footerToolbar,l=await async function(e,t){let a=null;var n=_.find(e,(e=>e.name===t.labelFieldName));return n&&(a=await ce(n,t)),n=await we(_.filter(e,(e=>e.name!=t.labelFieldName)),t),{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:$e(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...n.columns]}}}(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},l,{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!1,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},n)):(delete(l=await Ce(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},l,{type:"crud",primaryField:"_id",affixHeader:!1,id:i,name:i,keepItemSelectionOnPageChange:!0,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},n)),a.defaults);if(l&&(t=l.listSchema||{},r=Ne({},t,r),n=l.headerSchema,a=l.footerSchema,n||a)){let e=[r];n&&(o.default.isArray(n)?e=o.default.union(n,e):e.unshift(n)),a&&(o.default.isArray(a)?e=o.default.union(e,a):e.push(a)),r=e}return{type:"service",className:"mb-2",id:"service_"+i,name:"page",data:{$master:"$$",objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:r}}const je=e=>{var t=Y();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function Oe(e,t){var{recordId:a,formFactor:n,layout:n=("SMALL"===n?"normal":"horizontal"),labelAlign:r,defaults:i}=t,l=o.default.values(e.fields),i=i&&i.formSchema||{},n={type:"service",className:"p-0",name:"page_edit_"+a,api:await be(e,a,l),initApi:null,initFetch:null,body:[Ne({},i,{type:"form",mode:n,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await ye(0,0,l),initFetch:"new"!=a,body:await ve(l,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"steedos-amis-form",onEvent:{submitSucc:{weight:0,actions:[{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"},{actionType:"custom",script:'const { recordId, listViewId } = context.props.data;\ndoAction({\n componentId: `detail_${recordId}`,\n actionType: "reload",\n expression: `!${listViewId}`\n})\n\n\n\n\n'}]}}})]};return i.id&&(n.id="service-"+i.id),n}async function xe(e,a,n){var{formFactor:r,layout:r=("SMALL"===r?"normal":"horizontal"),labelAlign:i,formInitProps:l}=n,s=o.default.values(e.fields);return{type:"service",name:"page_readonly_"+a,id:"detail_"+a,data:{global:je("read"),context:{rootUrl:K(),tenantId:U(),authToken:H()}},api:await pe(e,a,s,l),body:[{type:"form",mode:r,labelAlign:i,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+a,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await ve(t.map(s,(e=>(e.readonly=!0,e))),e,Object.assign({},n,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}}]}}}}var Ie={newRecordMode:"modal",editRecordMode:"modal",perPage:20};const ke=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function Ve(e,t,a){return t?l.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":l.includes(ke,e)?"input-"+e:e}const De=(e,t)=>Ve("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),Ae=e=>{var t=e.type,a=De(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},Ee=e=>{var t=(e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}})(e);t={type:De(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},Te=(e,t)=>(t?Ae:Ee)(e);function Pe(e){return{perPage:e.top||e.perPage||Ie.perPage}}function qe(e){let a=e.visible;return e._visible&&(a=e._visible),(a=t.isBoolean(a)?a.toString():a)?a.trim().startsWith("function")?a+"(objectName, _id, recordPermissions, data)":a:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}async function Ce(e,a){return(e=await async function(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...Ae(r)});else{var n=await ce(r,t);let e="text";n?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${r.label}"%>`,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}(e,a=a||{})).push(await async function(e){e=e.buttons;const a=[];if(t.each(e,(e=>{t.isBoolean(e.visible)&&(e.visible=e.visible.toString()),a.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:qe(e),className:"antd-Button--default"})})),!(a.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:a,placement:"bottomLeft",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 "}}]}}(a)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:Pe(a),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${a.labelFieldName}}`,autoFillHeight:!1}}async function Be(e,t,a){const n=[];let{globalFilter:r,filter:i,sort:o,top:s,setDataToComponentId:d=""}=a;i=(i=l.isArray(i)?l.map(i,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):i)||[],l.each(t,(function(e){e.searchable&&n.push(e.name)}));const c={},u=[];return t.forEach((e=>{l.includes(["image","avatar","file"],e.type)&&(u.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),a=e.key_field||"_id",t=await async function(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}(e,null,t,{alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'}),t.data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.data.listViewId="${listViewId}",t.requestAdaptor=`\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 = localStorage.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 api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}\n if(_.isEmpty(filters)){\n filters = api.data.filter || [${JSON.stringify(i)}];\n }else{\n filters = [filters, 'and', api.data.filter || [${JSON.stringify(i)}]]\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 filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [["${a.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 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 item._index = 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.data.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 = localStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.data.filter });\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n localStorage.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 = "${d}";\n if(setDataToComponentId){\n SteedosUI.getRef(api.body.$self.scopeId).getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n }\n\n return payload;\n `,t}async function Le(e){var t=await Q({name:"organizations"},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"}),a=((a=((a=(t.query=t.query.replace(/,count\:.+/,"}"),await Q({name:"organizations"},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await Q({name:"space_users"},null,[{name:"user"},{name:"name"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),t.$value="$"+e.name,`\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 `);return{method:"post",url:ee()+"?_id=${_id}",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:t,sendOn:"!!this._id || !!!this."+e.name,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Re(e){var t=await Q({name:"{__object_name}"},null,[],{alias:"options",filters:"{__filters}"});let a=e.filters;return"function"==typeof(a="string"==typeof a?(a=new Function("return "+a))():a)&&(a=a(e)),t.query=t.query.replace(/,count\:.+/,"}"),t.query=t.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 if (dep) {\n objectName = "organizations";\n fields = "value:_id,label:name,children";\n filters = [['parent', '=', dep]];\n }\n else if (ref) { \n objectName = "space_users";\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n fields = "user,name,value:user,label:name";\n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${a&&JSON.stringify(a)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `,{method:"post",url:ee()+"?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:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function ze(e){var t=await Q({name:"space_users"},null,[{name:"user"},{name:"name"},{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",filters:"{__filters}"});e=`\n var term = api.query.term;\n var filters;\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${(e=(t.query=t.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 }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `;return{method:"post",url:ee()+"?term=${term}",requestAdaptor:e,data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Je(e,t,a){if(!e)return{};a=a||{};var n={type:Ve("select",t)};return t?n.tpl=await oe(e,a):(Object.assign(n,{labelField:"name",valueField:"user",multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",joinValues:!1,extractValue:!0,clearable:!0,source:await Le(e),deferApi:await Re(e),searchApi:await ze(e)}),!_.has(e,"defaultValue")||_.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const Ue=async e=>{let t=e.reference_to;if(t){"users"===t&&(t="space_users",e.reference_to_field="user");var a=await Rt(t);let n=null,r=e.reference_to_field;return r=r||a.idFieldName||"_id",n="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:a.fields[r]||{name:r},{objectName:t,valueField:n,labelField:a.fields[a.NAME_FIELD_KEY||"name"]}}};async function He(e,t,a){var n=await Ue(e);if(n){const i=await Rt(n.objectName),o=[];let s=0;const d=[],c=[];var r=l.find(i.list_views,((e,t)=>"all"===t));r&&r.columns?l.each(r.columns,(function(e){l.isString(e)&&i.fields[e]?c.push(i.fields[e]):l.isObject(e)&&i.fields[e.field]&&c.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))})):l.each(i.fields,((e,t)=>{"_id"==t||e.hidden||(l.has(e,"name")||(e.name=t),c.push(e))})),l.each(l.sortBy(c,"sort_no"),(function(e){s<5&&(l.find(o,(function(t){return t.name===e.name}))||(s++,o.push(e),e.searchable&&d.push(e.name)))}));const u={[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField};l.each(o,(e=>{e.hidden||(u[e.name]=e)})),(r=await Ke(i,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",r.data.$self="$$",r.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 = ${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 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 = ${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 `,r.adaptor=`\n const enable_tree = ${i.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 p=20,m=(i.paging&&!1===i.paging.enabled&&(p=1e3),null);return m="SMALL"===a.formFactor?await async function(e,t){return e=(await we(e,t)).columns,{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:$e(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:te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}(o,{top:p,...a,actions:!1}):await Ce(o,{labelFieldName:i.NAME_FIELD_KEY,top:p,...a}),n={type:Ve("picker",t),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:r,size:"lg",pickerSchema:m,joinValues:!1,extractValue:!0},e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}}async function Me(e,t,a){var n=await Ue(e);let r;return(r=n?await Ke({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}"}):{method:"post",url:ee(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}}).data.$term="$term",r.data.$value=`$${e.name}.`+(n?n.valueField.name:"_id"),l.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 = '[\"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 ",n&&n.labelField.name,n&&n.valueField.name,e._optionsFunction&&(r.adaptor=`\n payload.data.options = eval(${e._optionsFunction})(api.data);\n return payload;\n `),n={type:Ve("select",t),joinValues:!1,extractValue:!0,autoComplete:r},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}async function Ke(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Ye(e,t,a){var n,r;return t?{type:Ve("picker",t),tpl:le(e,a)}:!e.reference_to||l.isString(e.reference_to)||t?((n=await Ue(e))?(r=await Rt(n.objectName),"space_users"===n.objectName?We:1==r.enable_enhanced_lookup?He:Me):Me)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function We(e,t,a){return Je(e,t,a)}const Ze=["created","created_by","modified","modified_by"];function Ge(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Xe(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Qe(e){const t=e.data_type||"text",a=[];return l.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 et(e,t,a){if(!l.includes(Ze,e.name)||1==a.showSystemFields){var n,r={name:a.fieldNamePrefix?""+a.fieldNamePrefix+e.name:e.name,label:e.label,labelRemark:e.inlineHelpText,required:(l.has(a,"required")?a:e).required};let i={};switch(e.type){case"text":i.type=Ve("text",t);break;case"textarea":i.type=Ve("textarea",t),i.tpl=`<b><%=data.${e.name}%></b>`;break;case"html":i={type:"editor",language:"html",value:e.defaultValue||""};break;case"select":i={type:Ve("select",t),joinValues:!1,options:Qe(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:t?ie(e):null},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n=e.data_type||"text",null!=e.defaultValue&&("text"===n?i.value=String(e.defaultValue):"number"===n?i.value=Number(e.defaultValue):"boolean"===n&&(i.value="false"!==e.defaultValue))),e.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:Ve("checkbox",t),option:e.inlineHelpText,tpl:t?se(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):null};break;case"date":i={type:Ve("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:t?re(e):null,utc:!0};break;case"datetime":i={type:Ve("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:t?re(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?re(e):null};break;case"time":i={type:Ve("time",t),inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?re(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:ae(e)}:{type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,r);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i={type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:Ve("password",t),tpl:t?de(e):null};break;case"lookup":case"master_detail":i=await Ye(e,t,a);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:Ve("url",t)};break;case"email":i={type:Ve("email",t)};break;case"avatar":case"image":case"file":i=Te(e,t);break;case"formula":case"summary":t&&(i.type=Ve(e.data_type,t));break;case"code":i={type:"editor",language:e.language,value:e.defaultValue||""};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]},l.each(e.subFields,(function(a){var n=a.name.replace(e.name+".$.","").replace(e.name+".",""),r=et(Object.assign({},a,{name:n}),t);r&&(delete r.name,delete r.label,i.columns.push({name:n,label:a.label,quickEdit:!t&&r}))}))}return l.isEmpty(i)?void 0:(e.is_wide?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=i.className+" md:border-b"),i.labelClassName="text-left",t&&(i.quickEdit=!1),e.visible_on&&(i.visibleOn="$"+e.visible_on.substring(1,e.visible_on.length-1).replace(/formData./g,"")),Object.assign({},r,i,{clearValueOnHidden:!0,fieldName:e.name}))}}async function tt(e,a,n){let r=e,i=("grid"===r.type?r=await Xe(e,a):"object"===e.type&&(r=await Ge(e,a)),"__searchable__");if(r.name.indexOf(".")<0&&(e=t.cloneDeep(r),t.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),"number"!==r.type&&"currency"!==r.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,i+="between__"),"date"===r.type&&(e.type="input-date-range",e.is_wide=!0,i+="between__"),"datetime"===r.type&&(e.type="input-datetime-range",e.is_wide=!0,i+="between__"),"time"===r.type&&(e.type="input-time-range",e.is_wide=!0,i+="between__"),"users"===r.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,a=await et(e,!1,Object.assign({},n,{fieldNamePrefix:i,required:!1,showSystemFields:!0}))))return a}async function at(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:"setValue",args:{value:{showFieldsFilter:"${!showFieldsFilter}"}},componentId:"service_listview_"+e.name}]}}}}async function nt(e,a,n){n=n||{};var r,i,l=[];for(r of a)t.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],r.type)||(delete r.defaultValue,delete r.required,delete r.is_wide,delete r.readonly,delete r.hidden,delete r.omit,(i=await tt(r,a,{}))&&l.push(i));return t.map(l,"name"),n.enableSearchableFieldsVisibleOn&&l.forEach((function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`})),{title:"",type:"form",name:"listview-filter-form",id:"listview_filter_form_"+e.name,mode:"normal",wrapWithPanel:!1,className:"sm:grid sm:gap-2 sm:grid-cols-4 mb-2",data:{"&":"${filterFormValues || {}}",...n.initData},body:l,onEvent:{broadcastSearchableFieldsChange:{actions:[{actionType:"custom",script:'\n const data = event.data;\n const listViewId = data.listViewId;\n const searchableFields = data.fields;\n const preSearchableFields = data.__super.__super.fields;\n const removedFields = _.difference(preSearchableFields, searchableFields);\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let removedKeys = [];\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n delete localListViewProps[key];\n removedValues[key] = "";\n });\n doAction({\n actionType: \'setValue\',\n args: {\n value: removedValues\n }\n });\n localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n '}]}}}}async function rt(e,t,a){return a=a||{},t=await nt(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a)),{type:"service",data:{listViewId:"${listViewId}"},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:'\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId ;\n let defaultSearchableFields = localStorage.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\n const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;\n let localListViewProps = localStorage.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 }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"slds-filters__body p-0"},{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 appId = event.data.appId;\n const objectName = event.data.objectName;\n const scopeId = event.data.scopeId;\n const scope = SteedosUI.getRef(scopeId);\n var filterForm = scope.getComponentById("listview_filter_form_" + objectName);\n var filterFormValues = filterForm.getValues();\n var listView = scope.getComponentById("listview_" + objectName);\n listView.handleFilterSubmit(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 value = data.fields;\n doAction({\n actionType: \'setValue\',\n args: {\n value: { filterFormSearchableFields: value }\n },\n componentId: "service_listview_filter_form_" + objectName,\n });\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId;\n localStorage.setItem(searchableFieldsStoreKey, value);\n '},{actionType:"broadcast",eventName:"broadcastSearchableFieldsChange",args:{eventName:"broadcastSearchableFieldsChange"},data:{fields:"${event.data.fields}"}},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",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 slds-grid slds-grid_vertical slds-nowrap"},visibleOn:"this.showFieldsFilter",className:"px-1 py-1 bg-white b-b"}}const it=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},lt=function(e,a,n,r,i={}){var l,o;if(void 0===a&&(a={}),o=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(n),o=function(e,a){return"#"!==a&&a?"string"==typeof a?t.get(e,a):void console.error("path has to be a string"):e||{}}(a,o)||{},"string"!=typeof e)return e;l=e.substring(2,e.length-2),i=`\n var $user=${JSON.stringify(i)}; return `+l.replace(/\bformData\b/g,JSON.stringify(a).replace(/\bglobal\b/g,"__G_L_O_B_A_L__")).replace(/\bglobal\b/g,JSON.stringify(r)).replace(new RegExp("\\b__G_L_O_B_A_L__\\b","g"),"global").replace(/rootValue/g,JSON.stringify(o));try{return Function(i)()}catch(a){return console.log(a,e,n),e}};async function ot({type:e,pageId:t,appId:a,objectName:n="",recordId:r,formFactor:i="LARGE"}){if((e=await J(`/api/pageSchema/${e}?app=${a}&objectApiName=${n=n||""}&recordId=${r=r||""}&pageId=${t=t||""}&formFactor=`+i))&&e.schema)return e}const st=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"",id:"u:f8ad8ddf153a",mode:"edit",layout:"horizontal"};return{type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$","&":"${defaultData}",objectName:"${objectName}",context:"${context}",listViewId:"${listViewId}"},title:e="新建 "+e.label,bodyClassName:"",body:[a=(t=await ot({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:0b96577db93c",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}},dt=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 ot({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"}},ct=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"},{componentId:"",args:{url:"/app/${app_id}/${objectName}/grid/all",blank:!1},actionType:"link",expression:"!!!listViewId"},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"}]}}}],regions:["body"]}),ut=async(e,t)=>({type:"amis_button",amis_schema:await st(e,t)}),pt=async(e,t)=>({type:"amis_button",amis_schema:await dt(e,t)}),mt=async(e,t)=>({type:"amis_button",amis_schema:await ct(e)}),ft=async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=(this.scope||SteedosUI?.getRef(`amis-${e}-${t}-listview`)).getComponentById("listview_"+a.name);console.log("listViewRef",e),_.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0])}}),bt=async(e,t)=>({type:"amis_button",amis_schema:await{type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{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:"markdown",className:"whitespace-nowrap",html:!0},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"}}),yt=async(e,t)=>({type:"amis_button",amis_schema:await{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"]}});function ht(e){let t=e.visible;return e._visible&&(t=e._visible),(t=o.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 gt={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);o.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])}},_t=(e,t)=>{const a=e.permissions&&e.permissions.disabled_actions;let n=o.default.sortBy(o.default.values(e.actions),"sort");return o.default.has(e,"allow_customActions")&&(n=o.default.filter(n,(t=>o.default.include(e.allow_customActions,t.name)))),o.default.has(e,"exclude_actions")&&(n=o.default.filter(n,(t=>!o.default.include(e.exclude_actions,t.name)))),o.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)&&o.default.map(n,(e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")})),o.default.filter(n,(e=>o.default.indexOf(a,e.name)<0&&"standard_query"!=e.name))},vt=(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),wt=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record"==e.on||"record_only"==e.on)),o.default.sortBy(t,"sort")),$t=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record_more"==e.on||"record_only_more"==e.on)),o.default.sortBy(t,"sort")),Nt=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on))),St=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),Ft=async(e,t,a)=>{var n=await Rt(e);if(n){var r=await _t(n,a);r=o.default.find(r,(e=>e.name===t));if(r)return"standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await pt(n,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await ut(n,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await mt(n,a)}:n.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await bt(n,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await yt(n,a)}:"standard_delete_many"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await ft(n,a)}:r}},jt=(e,t)=>{if(e.todo)return o.default.isString(e.todo)&&o.default.startsWith(o.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),o.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},Ot=jt;function xt(e,a,n){var{icon:r,label:i}=e;const l=[];t.each(e.list_views,((t,a)=>{l.push({type:"button",label:t.label,actionType:"link",link:`/app/\${appId}/${e.name}/grid/`+a})}));var o=vt(e,{}),s=(o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(s,"-")} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{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 text-xl font-bold p-0 text-black leading-none",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:o},md:"auto"}],align:"between"}}async function It(e,t,a){var n="listview_"+e.name;return{type:"grid",align:"between",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",valign:"middle"},{body:[await at(e),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:n,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:""}}async function kt(e,a,n){var r=t.keys(e.fields);r=t.sortBy(t.compact(t.map(r,(t=>e.fields[t]))),"sort_no");return await rt(e,r,{isListviewInit:n.isListviewInit})}async function Vt(e,t,a){a=a||{};var n=xt(e),r=await It(e);let i=[n,r],l="sm:rounded-tl sm:rounded-tr";return a.onlyFirstLine?i=[n]:a.onlySecordLine&&(l="",i=[r]),n=[{type:"wrapper",body:i,className:`border-b bg-gray-100 ${l} `+(a.onlySecordLine&&"pt-0")}],r=await kt(e,0,a),n.push(r),n}async function Dt(e,a){var{name:n,label:r,icon:i}=e,l=wt(e,{}),o=$t(e,{recordId:a,objectName:n});l=t.map(l,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e)}))),l.push({type:"steedos-dropdown-button",label:"",buttons:o,className:"slds-icon ml-1 border-gray-200 rounded-none"}),o=new RegExp("_","g"),o=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${i&&i.replace(o,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:{type:"flex",items:l},md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{}}];return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:K(),tenantId:U(),authToken:H()},objectName:n,_id:a,recordPermissions:e.permissions,uiSchema:e},body:o}}async function At(e){var{icon:a,label:n}=e,r=(e=await St(e,{}),e=t.map(e,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${a&&a.replace(r,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${a}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${n}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:e},md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}const Et=(e,a,n)=>{e=e.replace(/\./g,"_"),n=(e=>{const a=["_id"];return e.push("record_permissions"),t.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),a.push(""+e)})),""+a.join(" ")})(n);let r="";return`{record:${e}__findOne${r=0<(a=[`id: "${a}"`]).length?`(${a.join(",")})`:r}{${n}}}`},Tt=async(e,t,a)=>(await J("/graphql",{method:"post",body:JSON.stringify({query:Et(e,t,a)})})).data.record;let Pt,qt={};const Ct=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=qt),qt=window.UI_SCHEMA_CACHE),(e,t)=>{qt[e]=t});function Bt(e,a){return"SMALL"===a?t.isEmpty(e.mobile_columns)?t.slice(e.columns,0,4):e.mobile_columns:e.columns}function Lt(e){let a="";return e&&e.sort&&e.sort.length&&t.each(e.sort,(function(e,n){var r;t.isArray(e)?(r=e[0]+" "+(e[1]||""),a+=r=0<n?","+r:r):(r=e.field_name+" "+e.order,a+=r=0<n?","+r:r)})),a}async function Rt(e,a){if(e){if(!(e=>t.has(qt,e))(e)||a){let n=null;try{if(!(n=Pt?await Pt(e,a):await J(`/service/api/@${e.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;Ct(e,n),t.each(n.list_views,((e,a)=>{e.name=a,t.has(e,"columns")||(e.columns=n.list_views.all.columns)}))}catch(a){console.error("getUISchema",e,a),Ct(e,null)}}return(e=>t.cloneDeep(qt[e]))(e)}}async function zt(e,t){return(await Rt(e))?.fields[t]}async function Jt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Oe(e,t)}}async function Ut(e,t,a){return{uiSchema:e=await Rt(e),amisSchema:await xe(e,t,a)}}async function Ht(e,a,n,r={}){var i=await Rt(a),l=t.find(i.list_views,((e,t)=>t===(n=n||t)));if(!l)return{uiSchema:i};if(l.enable_amis_schema&&l.amis_schema){return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:t.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema}}var o=Bt(l,r.formFactor),s=Lt(l),d=r.defaults||{};!d.headerSchema&&r.showHeader&&(d.headerSchema=await Vt(i)),r.showHeader||(d.headerSchema=null);try{var c,u=location.pathname+"/crud/"+r.listViewId,p=localStorage.getItem(u);p&&(p=JSON.parse(p),c={},p.orderBy&&(c.orderBy=p.orderBy),p.orderDir&&(c.orderDir=p.orderDir),p.perPage&&(c.defaultParams={perPage:p.perPage}),d.listSchema=t.defaultsDeep({},c,d.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d;return{uiSchema:i,amisSchema:{type:"steedos-object-table",objectApiName:a,columns:o,extraColumns:l.extra_columns,filters:l.filters,sort:s,ctx:r}}}async function Mt(e,a,n,r={}){const i=await Rt(a);let l=r.sort;l||(s=r.sortField,d=r.sortOrder,s&&(l=s+" "+d||"asc"));let o=[];t.each(n,(function(e){t.isString(e)&&i.fields[e]?o.push(i.fields[e]):t.isObject(e)&&i.fields[e.field]&&o.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))}));var s=r.extraColumns,d=(s&&t.each(s,(function(e){t.isString(e)?o.push({extra:!0,name:e}):t.isObject(e)&&o.push({extra:!0,name:e.field})})),await Fe(i,o,{tabId:a,appId:e,objectName:a,...r,filter:r.filters,sort:l,buttons:await Nt(i,r)}));return{uiSchema:i,amisSchema:d}}async function Kt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Dt(e,t)}}async function Yt(e,t){return{uiSchema:e=await Rt(e),amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${e?.NAME_FIELD_KEY||"name"}}`}}]}}},{type:"tabs",tabs:[{title:"详细",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"},{title:"相关",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}],id:"u:a649e4094a12"}]}}}async function Wt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s=o.split("."),d=await Rt(s[0]);if(d){let i=null;var c=await zt(s[0],s[1]);i=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[s[1]+"/o","=",a],[s[1]+"/ids","=",n]]:[""+s[1],"=",n],l.push({masterObjectName:a,object_name:s[0],foreign_key:s[1],schema:await Ht(e,s[0],"all",{globalFilter:i,formFactor:r,buttons:await Nt(d,{isMobile:!1})})})}}else for(const i of o){var u=i.related_field_fullname.split(".");let o=null;var p=await zt(u[0],u[1]);if(p){o=p._reference_to||p.reference_to&&!t.isString(p.reference_to)?[[u[1]+"/o","=",a],[u[1]+"/ids","=",n]]:[""+u[1],"=",n];const s=await Rt(u[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:u[0],foreign_key:u[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:u[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}const Zt=(e,a,n,r)=>(n=t.find(n.fields,(e=>r===e?.name)),t.isString(n.reference_to)?n.multiple?[a]:a:{o:e,ids:[a]});async function Gt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s,d,c=o.split("."),u=await Rt(c[0]);u&&(((s=await zt(c[0],c[1]))._reference_to||s.reference_to&&!t.isString(s.reference_to))&&c[1],c[1],d=(s=await Ht(e,c[0],"all",{formFactor:r,buttons:await Nt(u,{isMobile:!1})})).amisSchema,u=await At(u),d.headerSchema=u,d.headerToolbar=[],d.columnsTogglable=!1,d.globalFilter=d.filters,delete d.ctx,s.amisSchema={type:"service",data:{masterObjectName:a,masterRecordId:"${recordId}",relatedKey:c[1],objectName:c[0],listViewId:`amis-\${appId}-${c[0]}-listview`},body:[{...d,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[c[1]]:Zt(a,n,s.uiSchema,c[1])}}}]},l.push({masterObjectName:a,object_name:c[0],foreign_key:c[1],schema:s}))}else for(const i of o){var p=i.related_field_fullname.split(".");let o=null;var m=await zt(p[0],p[1]);if(m){o=m._reference_to||m.reference_to&&!t.isString(m.reference_to)?[[p[1]+"/o","=",a],[p[1]+"/ids","=",n]]:[""+p[1],"=",n];const s=await Rt(p[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:p[0],foreign_key:p[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:p[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}async function Xt(e,a,n,r,i,l,o){var s=await Rt(n),{list_views:d,fields:c}=s,d=t.keys(d)[0];let u=null;c=await zt(n,r=r||t.findKey(c,(function(t){return-1<["lookup","master_detail"].indexOf(t.type)&&t.reference_to===e})));let p=a;return c.reference_to_field&&"_id"!=c.reference_to_field&&(p=(a=await Tt(e,a,[c.reference_to_field]))[c.reference_to_field]),u=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[r+"/o","=",e],[r+"/ids","=",p]]:[""+r,"=",p],a=await At(s),c="steedos-record-related-list-"+n,d=(await Ht(null,n,d,{globalFilter:u,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:a},showHeader:!0,top:i,setDataToComponentId:c,tableHiddenOn:l?"this.$count === 0":null,appId:o})).amisSchema,{uiSchema:s,amisSchema:{type:"service",id:c,className:"steedos-record-related-list bg-white mb-1 border",data:{masterObjectName:e,masterRecordId:"${recordId}",relatedKey:r,objectName:n,listViewId:`amis-\${appId}-${n}-listview`},body:[{...d,data:{relatedKey:r,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[r]:Zt(e,p,s,r)}}}]}}}const Qt={};async function ea(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"}}const ta=["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"],aa={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"},na=e=>{const t=[],{conjunction:a,children:n}=e;return a&&n&&n.forEach((e=>{var n;0<t.length&&t.push(a),(e=>_.has(e,"conjunction"))(e)?(n=na(e))&&0<n.length&&t.push(n):(n=ra(e))&&t.push(n)})),t},ra=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,aa[a],n]:void 0},ia=e=>!o.default.isArray(e)&&o.default.isObject(e)?[e.field,e.operation,e.value]:e,la=e=>{e=ia(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach((e=>{"or"===(e=ia(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push((e=>{var t;if(3===e.length)return"between"===(t=o.default.findKey(aa,(t=>t===e[1])))&&o.default.includes(ta,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))})(e)):t.children.push(la(e))})),t},oa=e=>na(e),sa=e=>{const a=[];return t.each(e.options.split("\n"),(e=>{var t=e.split(":");2==t.length?a.push({label:t[0],value:t[1]}):a.push({label:e,value:e})})),a},da=(e,a)=>{const n={label:!0===a&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none",disabled:"readonly"===e.permission};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";break;case"dateTime":n.type="input-datetime";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=sa(e);break;case"user":case"group":case"section":n.type="input-text";break;case"radio":n.type="radios",n.options=sa(e);break;case"multiSelect":n.type="checkboxes",n.options=sa(e);break;case"odata":var r=e.formula.substr(1,e.formula.length-2);n.type="select",n.multiple=e.is_multiselect,n.labelField=r,n.valueField="$$",n.source={url:t.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};break;case"html":n.type="html";break;case"table":n.type="input-table",n.addable="readonly"!=e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[],t.each(e.sfields,(e=>{"hidden"!=e.type&&n.columns.push(da(e,!0))}))}return n},ca=e=>{const a=[];return t.each(e,(t=>{"table"!=t.type&&a.push((e=>({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",body:[{type:"tpl",tpl:`<div style='font-size:20px'>${e.name}</div>`}]}))(t)),"section"!=t.type&&a.push(((e,t)=>({background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[da(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}))(t,e.length))})),a},ua=e=>{const a=[],n=[];let r=[];return t.each(e.fields,((t,a)=>{t.is_wide?(0!=r.length&&n.push(r),"table"==t.type&&n.push([Object.assign({},t,{type:"section"})]),(r=[]).push(t),n.push(r),r=[]):(r.push(t),2!=r.length&&a!==e.fields.length-1||(n.push(r),r=[]))})),t.each(n,(e=>{a.push({background:"#F7F7F7",tds:ca(e)})})),a},pa=e=>({type:"table-view",trs:ua(e),id:"u:047f3669468b"});var ma=function(){return(ma=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},fa=function(e){var t=[];return e.charCodeAt(0)===".".charCodeAt(0)&&t.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),(function(e,a,n,r){return n?e=r.replace(/\\(\\)?/g,"$1"):a&&(e=a.trim()),t.push(e),""})),t};function ba(e,t,a){var n=(e=e&&Object.isFrozen(e)?ya(e):e)?Object.create(e,ma(ma({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&ha(t)&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function ya(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 ha(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}var ga=Object.freeze({__proto__:null,absoluteUrl:function(e){return""+K()+e},amisRender:(e,t,a={},n={},r)=>{var i=amisRequire("amis/embed"),{router:r,assets:l}=r;return L(l),i.embed(e,t,a,Object.assign(B(r),n))},amisRootClick:(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},cloneObject:ya,conditionsToFilters:oa,createObject:ba,defaultsDeep:Ne,deleteVariable:function(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{var a=fa(t);for(t=a.pop();a.length;){var n=a.shift();if(!q(e[n])){if(e[n])throw new Error("目标路径不是纯对象,不能修改");break}e=e[n]=ma({},e[n])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}},execute:jt,executeButton:Ot,extendObject:function(e,t,a){var n=ya(e,a=void 0===a||a);return t&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n},fetchAPI:J,filtersToConditions:e=>la(e),getAmisObjectRelatedList:Gt,getApp:async function(e){return await J(`/service/api/apps/${e}/menus`)},getApps:async function(){return await J("/service/api/apps/menus")},getAuthToken:H,getAuthorization:M,getButton:Ft,getButtonVisible:(e,t)=>{if(e._visible&&(o.default.startsWith(o.default.trim(e._visible),"function")?(window.eval("var fun = "+e._visible),e.visible=fun):it(e._visible)&&(e.visible=t=>{lt(e._visible,t.record,"#",{now:new Date},t.userSession)})),!o.default.isFunction(e.visible))return e.visible;try{return e.visible(t)}catch(t){}},getButtonVisibleOn:ht,getButtons:_t,getEnv:e=>Qt[e],getEnvs:()=>Qt,getEvn:B,getField:zt,getFileSrc:function(e){return K()+"/api/files/files/"+e},getFlowFormSchema:e=>({type:"page",body:[{type:"service",data:{beijing:"20",tianjing:"19"},body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div style='font-size:20px'>${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},pa(e)],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}),getFormPageInitSchema:async function(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await Jt(e,{recordId:"${recordId}"})).amisSchema]}},getFormSchema:Jt,getImageSrc:function(e){return K()+"/api/files/images/"+e},getListPageInitSchema:async function(e,a,n){var r=await Rt(e);return{type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:await Vt(r,t.first(t.keys(r.list_views)))}]}},getListSchema:Ht,getListViewButtons:vt,getListViewColumns:Bt,getListViewItemButtons:Nt,getListViewSort:Lt,getListviewInitSchema:async function(e,a,n){n=n||{};var r,i,l=await Rt(e),o=t.find(l.list_views,((e,t)=>t===a));let s={};return o&&(r=Bt(o,n.formFactor),o=Lt(o),(i=n.defaults||{}).headerSchema||(l=await Vt(l,0,{onlySecordLine:!0,isListviewInit:!0}),i.headerSchema=l),n.defaults=i,s=(l=await Mt(null,e,r,{sort:o,...n})).amisSchema),s},getNotifications:async()=>{var e=`\n {\n notifications(filters: ["owner","=","${(e=Y()).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 J("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getObjectDetailButtons:wt,getObjectDetailMoreButtons:$t,getObjectFieldsFilterBarSchema:rt,getObjectFieldsFilterButtonSchema:at,getObjectFieldsFilterFormSchema:nt,getObjectListHeader:Vt,getObjectListHeaderFieldsFilterBar:kt,getObjectListHeaderFirstLine:xt,getObjectListHeaderSecordLine:It,getObjectRecordDetailHeader:Dt,getObjectRecordDetailRelatedListHeader:At,getObjectRelated:async function({appName:e,masterObjectName:a,objectName:n,relatedFieldName:r,recordId:i,formFactor:l}){let o=null;var s=(o=(s=await zt(n,r))._reference_to||s.reference_to&&!t.isString(s.reference_to)?[[r+"/o","=",a],[r+"/ids","=",i]]:[""+r,"=",i],await Rt(a));return{masterObjectName:a,object_name:n,foreign_key:r,schema:await Ht(e,n,"all",{globalFilter:o,formFactor:l}),record:await Tt(a,i,[s.NAME_FIELD_KEY]),masterObjectUISchema:s}},getObjectRelatedList:Wt,getObjectRelatedListButtons:St,getObjectRelatedListHeader:async function(e,t,a){},getPage:ot,getRecord:Tt,getRecordDetailHeaderSchema:Kt,getRecordDetailRelatedListSchema:Xt,getRecordDetailSchema:Yt,getRecordPageInitSchema:async function(e){var a=await Gt(null,e,"${recordId}",null),n=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.name}"}}]}}}],r={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"};return a=t.map(a,(e=>e.schema.amisSchema)),a.length&&r.tabs.push({title:"相关",body:a}),n.push(r),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:n}},getRecordPermissions:async(e,t)=>await J(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"}),getRelatedFieldValue:Zt,getRelatedsCount:async(e,a)=>{const n=[];return t.each(a,(t=>{n.push(`${t.object_name}: ${t.object_name}__count(filters: [["${t.foreign_key}","=","${e}"]])`)})),a=`\n {\n ${n.join(",")}\n }\n `,(await J("/graphql",{method:"POST",body:JSON.stringify({query:a})})).data},getRootUrl:K,getSearchableFieldsFilterSchema:async function(e,t,a){return nt(e,t,a)},getSelectUserSchema:Je,getSpaceUsersPickerAmisSchema:ea,getSpaceUsersPickerSchema:async function(e,t){var a=await Rt("space_users");return{uiSchema:a,amisSchema:await ea(0,e,t)}},getSteedosAuth:Y,getTableSchema:Mt,getTenantId:U,getUISchema:Rt,getViewSchema:Ut,isExpression:it,isObject:ha,lookupToAmis:Ye,lookupToAmisPicker:He,lookupToAmisSelect:Me,lookupToAmisSelectUser:We,markReadAll:async()=>J("/api/v4/notifications/all/markReadAll",{method:"POST"}),parseSingleExpression:lt,registerRemoteAssets:async e=>{if(e&&0<e.length){let a=e;return t.isString(a)&&(a=a.split(",")),await Builder.registerRemoteAssets(a),e=t.filter(Builder.registry["meta-components"],(function(e){return e.componentName&&e.amis?.render})),t.map(e,(e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render})))}return[]},registerRenders:L,resetLocalListViewPropsWithSearchableFields:function(e,t){"string"==typeof t&&(t=t.split(",")),e=location.pathname+"/crud/"+e;let a=localStorage.getItem(e);if(a){var n,r=[];for(n in a=JSON.parse(a))new RegExp("__searchable__.*").test(n)&&!t.find((function(e){return new RegExp("__searchable__.*"+e+"$").test(n)}))&&r.push(n);r.forEach((function(e){delete a[e]})),localStorage.setItem(e,JSON.stringify(a))}},setEnv:(e,t)=>{Qt[e]=t},setEnvs:e=>{t.map(e,((e,t)=>{Qt[t]=e}))},setRootUrl:function(e){t.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)},setSteedosAuth:e=>{Object.assign(R,e)},setUISchemaFunction:function(e){Pt=e},setVariable:function(e,t,a,n){if(t in(e=e||{}))e[t]=a;else{var r=!1!==n?fa(t):[t];for(n=r.pop();r.length;){var i=r.shift();e=q(e[i])?e[i]=ma({},e[i]):(Array.isArray(e[i])?e[i]=e[i].concat():(e[i],e[i]={}),e[i])}e[n]=a}},standardButtonsTodo:gt}),_a=function(e,t,a){return d(void 0,void 0,void 0,(function(){var n,r,i,l,o,s,d,u,p,m,f,b;return c(this,(function(c){switch(c.label){case 0:n=e.reference_to,r="".concat(e.name,"__left"),i=[],c.label=1;case 1:c.trys.push([1,6,7,8]),l=function(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.")}(n),o=l.next(),c.label=2;case 2:return o.done?[3,5]:[4,Rt(s=o.value,!1)];case 3:d=c.sent(),i.push({label:d.label,value:s,icon:d.icon}),c.label=4;case 4:return o=l.next(),[3,2];case 5:return[3,8];case 6:return u=c.sent(),f={error:u},[3,8];case 7:try{o&&!o.done&&(b=l.return)&&b.call(l)}finally{if(f)throw f.error}return[7];case 8:return t&&t.o||(t={o:i[0].value,ids:[]}),[4,Rt(t.o,!1)];case 9:return p=c.sent(),m=null,1!=p.enable_enhanced_lookup?[3,11]:[4,He(Object.assign({},e,{reference_to:t.o}),!1,a)];case 10:return m=c.sent(),[3,13];case 11:return[4,Me(Object.assign({},e,{reference_to:t.o}),!1,a)];case 12:m=c.sent(),c.label=13;case 13:return[2,{type:"input-group",label:!1,body:[{type:"select",name:r,options:i,value:"".concat(t.o)},Object.assign({},m,{name:"".concat(e.name,"__right"),id:"right:".concat(e.name),inputClassName:"w-full",value:"".concat(t.ids)})]}]}}))}))},va=function(e,n,r){return i.default.createElement(a.Menu,{items:t.map(n,(function(t){return t.className=t.className,{key:t.name,className:"p-0 min-w-32",label:i.default.createElement(i.default.Fragment,null,e("body",t,r))}}))})};exports.AmisLib=ga,exports.AmisObjectButton=function(a){var n=a.objectName,r=a.name,l=a.data,o=a.render,s=a.className,d=a.listViewId,c=u(e.useState(),2),p=c[0],m=c[1],f=u(e.useState(),2),b=f[0],y=f[1],h=l.appId,g=l.formFactor;e.useEffect((function(){n&&Rt(n,!1).then((function(e){Ft(n,r,{objectName:n,recordId:l._id,appId:h,uiSchema:e,formFactor:g,router:null,listViewId:l.listViewId,props:{className:"antd-Button antd-Button--link"}}).then((function(t){m(t),y(e)}))}))}),[n,r]);if(!p)return i.default.createElement(i.default.Fragment,null,i.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"},i.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"===p.type){var _=p.amis_schema,v=t.isString(_)?JSON.parse(_):_;v&&v.body.length>0&&delete v.body[0].visibleOn;var w=Object.assign(l,{recordId:l._id,objectName:n,listViewId:l.listViewId,app_id:h,className:s});return v&&(v.data=t.defaultsDeep({},v.data,w)),i.default.createElement(i.default.Fragment,null,p&&_?i.default.createElement(i.default.Fragment,null,o("body",v,{data:w,onChange:function(){console.log("change....")}})):null)}return i.default.createElement("button",{onClick:function(){var e=l.dataComponentId;return Ot(p,{objectName:n,listViewId:d||l.listViewId,uiSchema:b,record:l,recordId:l._id,appId:h,formFactor:g,scope:window.SteedosUI.getRef(e)})},className:"antd-Button antd-Button--default antd-Button--size-default ".concat(s||"")},p.label)},exports.AmisObjectFieldLookup=function(a){var n=a.field;a.readonly;var r=a.ctx,l=a.dispatchEvent,o=a.render;a.renderFormItems;var s=a.onChange,p=a.data,m=a.formItemValue,f=u(e.useState(),2),b=f[0],y=f[1],h=u(e.useState(m),2),g=h[0],_=h[1];e.useEffect((function(){_(m)}),[m]),e.useEffect((function(){_a(n,g,r).then((function(e){y(e)}))}),[g]);return i.default.createElement("div",{className:"amis-object-field-lookup"},b?i.default.createElement("div",{className:"container"},o("body",b,{onChange:function(e,a){return d(void 0,void 0,void 0,(function(){var n,r;return c(this,(function(i){switch(i.label){case 0:return n=Object.assign({o:a.endsWith("_left")?e:null==g?void 0:g.o,ids:a.endsWith("_right")?e:null==g?void 0:g.ids}),a.endsWith("_left")&&(n.ids=[]),t.isString(n.ids)&&(n.ids=t.compact(n.ids.split(","))),[4,l("change",ba(p,{fieldValue:n}))];case 1:return(null==(r=i.sent())?void 0:r.prevented)?[2]:[2,s(n)]}}))}))}})):null)},exports.AmisObjectForm=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s,d,u,p;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.recordId,r=e.mode,i=e.layout,l=e.labelAlign,o=e.appId,s=e.objectApiName||"space_users",d=t.difference(t.keys(a),["type","mode","layout"]),u=t.pick(e,d),p={recordId:n,mode:r,layout:"vertical"===i?"normal":i,labelAlign:l,defaults:{formSchema:u},appId:o},"edit"!==r?[3,2]:[4,Jt(s,p)];case 1:case 3:return[2,c.sent().amisSchema];case 2:return n||(p.formInitProps={queryOptions:"top: 1"}),[4,Ut(s,n,p)]}}))}))},exports.AmisObjectListView=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F,j,O,x,I,k;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.top,r=e.perPage,i=e.showHeader,l=e.headerSchema,o=e.ctx,d=e.data,u=e.defaultData,p=e.className,m=void 0===p?"":p,f=e.tableClassName,b=location.pathname.match(/grid\/(\w+)/),y=b&&b[1],h=y||e.listName,g={},_=e.objectApiName||"space_users",o&&o.defaults||(v=t.difference(t.keys(a),["type","showHeader","id"]),(w=t.pick(e,v)).className=f,g={listSchema:w}),l&&(g.headerSchema=l),($=o&&o.setDataToComponentId)||($="service_listview_".concat(_)),N=Object.assign({},d,u),S=(null==o?void 0:o.listViewId)||N.listViewId,[4,Ht(N.appId,_,h,s(s({top:n,perPage:r,showHeader:i,defaults:g},o),{listViewId:S,setDataToComponentId:$}))];case 1:return F=c.sent(),j=F.amisSchema,O=F.uiSchema,x=[j],F.isCustomAmisSchema&&(I=xt(O),x.unshift({type:"wrapper",body:[I],className:"bg-gray-100 pb-0 sm:rounded-tl sm:rounded-tr"})),k=Object.assign({},j.data,N,{listName:h,uiSchema:O}),[2,{type:"service",body:x,className:"steedos-listview p-0 sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid\t".concat(m),data:k}]}}))}))},exports.AmisObjectTable=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.filters,r=e.amisCondition,i=e.top,l=e.headerSchema,o=e.globalFilter,d=e.sortField,u=e.sortOrder,p=e.extraColumns,m=e.ctx,f=e.data,b=e.defaultData,y=e.columns||[],h={},g=e.objectApiName||"space_users",m&&m.defaults||(_=t.difference(t.keys(a),["type","objectApiName","columns","extraColumns","id"]),v=t.pick(e,_),h={listSchema:v}),l&&(h.headerSchema=l),(w=m&&m.setDataToComponentId)||(w="service_listview_".concat(g)),$=r&&oa(r),N=n||$,[4,Mt((S=Object.assign({},f,b)).appId,g,y,s(s({filters:N,top:i,sortField:d,sortOrder:u,extraColumns:p,globalFilter:o,defaults:h},m),{setDataToComponentId:w}))];case 1:return(F=c.sent().amisSchema).data=Object.assign({},F.data,S),[2,F]}}))}))},exports.AmisProvider=function(e){return d(void 0,void 0,void 0,(function(){return c(this,(function(t){return console.log("AmisProvider props",e),[2,{}]}))}))},exports.AmisRecordDetail=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i;return c(this,(function(l){switch(l.label){case 0:return e.$schema,t=e.appId,a=e.objectApiName,n=void 0===a?"space_users":a,r=e.onEvent,[4,Yt(n,t)];case 1:return i=l.sent().amisSchema,[2,Object.assign({},i,{onEvent:r})]}}))}))},exports.AmisRecordDetailHeader=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n;return c(this,(function(r){switch(r.label){case 0:return e.$schema,t=e.recordId,a=e.onEvent,[4,Kt(e.objectApiName||"space_users",t)];case 1:return n=r.sent().amisSchema,[2,Object.assign({},n,{onEvent:a})]}}))}))},exports.AmisRecordDetailRelatedList=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i,l,o;return c(this,(function(s){switch(s.label){case 0:return t=e.objectApiName,a=e.recordId,n=e.relatedObjectApiName,e.data,r=e.relatedKey,i=e.top,l=e.hiddenEmptyTable,o=e.appId,t&&n?[4,Xt(t,a,n,r,i,l,o)]:[2,{type:"alert",body:"缺少父级对象或相关列表对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return[2,s.sent().amisSchema]}}))}))},exports.AmisRecordDetailRelatedLists=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s;return c(this,(function(d){switch(d.label){case 0:return a=e.objectApiName,n=e.recordId,r=e.appId,e.data,i=e.formFactor,l=e.top,o=void 0===l?5:l,a?[4,Wt(r,a,n,i)]:[2,{type:"alert",body:"缺少父级对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return s=d.sent(),[2,{type:"service",body:t.map(s,(function(e){return{type:"steedos-object-related-listview",objectApiName:a,recordId:n,relatedObjectApiName:e.object_name,foreign_key:e.foreign_key,relatedKey:e.foreign_key,top:o,hiddenEmptyTable:!0,appId:r}}))}]}}))}))},exports.AmisSelectUser=function(e){return d(void 0,void 0,void 0,(function(){var t,a;return c(this,(function(n){switch(n.label){case 0:return console.log("AmisSelectUser props",e),t=e.$schema,e.data,[4,Je({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,[2,a]}}))}))},exports.SteedosDropdownButton=function(n){var r=n.data,l=n.render,o=n.className,s=n.buttons,d=n.placement,c=n.onOpenApi;n.store;var p=n.env,m=u(e.useState(i.default.createElement(i.default.Fragment,null)),2),f=m[0],b=m[1];return i.default.createElement(a.Dropdown,{overlay:f,trigger:["click"],onOpenChange:function(e){if(e)if(c)try{p.fetcher(c,ba(r,{})).then((function(e){var a=(null==e?void 0:e.hasOwnProperty("ok"))?e.data:e;b(va(l,s,{data:ba(r,t.defaultsDeep(a,r))}))})).catch((function(e){console.error(e)}))}catch(e){console.error(e)}else b(va(l,s,{data:r}))},placement:d},i.default.createElement("button",{className:"slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(o||"")},i.default.createElement("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},i.default.createElement("path",{d:"m7 10 5 5 5-5z",fill:"currentColor"}))))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("lodash"),a=require("antd");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(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 i=n(e),l=r(t),o=n(t),s=function(){return s=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},s.apply(this,arguments)};function d(e,t,a,n){return new(a||(a=Promise))((function(r,i){function l(e){try{s(n.next(e))}catch(e){i(e)}}function o(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(l,o)}s((n=n.apply(e,t||[])).next())}))}function c(e,t){var a,n,r,i,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;l;)try{if(a=1,n&&(r=2&i[0]?n.return:i[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,i[1])).done)return r;switch(n=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,n=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){l.label=i[1];break}if(6===i[0]&&l.label<r[1]){l.label=r[1],r=i;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(i);break}r[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],n=0}finally{a=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,o])}}}function u(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,r,i=a.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)l.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return l}var p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},m="object"==typeof p&&p&&p.Object===Object&&p,f="object"==typeof self&&self&&self.Object===Object&&self,b=(m||f||Function("return this")()).Symbol,y=b,h=Object.prototype,g=h.hasOwnProperty,v=h.toString,w=y?y.toStringTag:void 0;var $=function(e){var t=g.call(e,w),a=e[w];try{e[w]=void 0;var n=!0}catch(e){}var r=v.call(e);return n&&(t?e[w]=a:delete e[w]),r},N=Object.prototype.toString;var S=$,F=function(e){return N.call(e)},j=b?b.toStringTag:void 0;var O=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":j&&j in Object(e)?S(e):F(e)};var x=function(e,t){return function(a){return e(t(a))}}(Object.getPrototypeOf,Object);var I=O,k=x,V=function(e){return null!=e&&"object"==typeof e},D=Function.prototype,A=Object.prototype,E=D.toString,T=A.hasOwnProperty,P=E.call(Object);var q=function(e){if(!V(e)||"[object Object]"!=I(e))return!1;var t=k(e);if(null===t)return!0;var a=T.call(t,"constructor")&&t.constructor;return"function"==typeof a&&a instanceof a&&E.call(a)==P};const C=[],B=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=((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 r=~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,r){if("/"!=r[0]&&!/^https?\:\/\//.test(r)){var i,l=t.pathname.split("/");for(l.pop();i=/^\.\.?\//.exec(r);)"../"===i[0]&&l.pop(),r=r.substring(i[0].length);r=l.concat(r).join("/")}}else r=t.pathname;return r+a+e})(t),a&&"url"===a.actionType?!1===a.blank?e.push(t):window.open(t):a&&t&&a.target?window.open(t,a.target):/^https?:\/\//.test(t)?window.location.replace(t):e.push(t)}}),L=e=>{if(!t.isEmpty(e)&&t.isArray(e)){var a=amisRequire("amis");const n={renderer:a.Renderer,formitem:a.FormItem,options:a.OptionsControl};let r=amisRequire("react");t.each(e,(e=>{if(!t.find(C,(t=>t===e.componentName))){let t=Builder.components.find((t=>t.name===e.componentName)),a=t.class;"amisSchema"===e.componentType&&(a=e=>{var{body:a,render:n}=e;const[i,l]=r.useState(null);return r.useEffect((()=>{var a=t.class(e);a&&a.then&&"function"==typeof a.then?a.then((e=>{l(e)})):l(a)}),[]),r.createElement(r.Fragment,null,r.createElement(r.Fragment,null,i&&n?n("body",i):""),r.createElement(r.Fragment,null,n?n("body",a):""))}),n[e.usage]?(n[e.usage]({test:new RegExp("(^|/)"+e.type),type:e.type,weight:e.weight,autoVar:!0})(a),console.info("注册了一个自定义amis组件:",{type:e.type,weight:e.weight,component:a,framework:e.framework,usage:e.usage})):console.error(`${consoleTag}自定义组件注册失败,不存在${e.usage}自定义组件类型。`),C.push(e.componentName)}}))}},R={},z=()=>"undefined"==typeof window?{}:Builder.settings.context||Builder.settings;async function J(e,t={credentials:"include"}){var a,n={"Content-Type":"application/json"};if(401===(a=((a=M())&&(n.Authorization=a),t.headers=Object.assign({},n,t.headers),t.credentials="include",await fetch(""+K()+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 U(){try{let e=z().tenantId;return window.location.search&&!e&&(e=new URLSearchParams(window.location.search).get("X-Space-Id")),e||null}catch(e){console.error(e)}}function H(){try{var e=z().authToken;return e||null}catch(e){console.error(e)}}function M(){try{var e=z(),t=e.tenantId,a=e.authToken;return t&&a?`Bearer ${t},`+a:null}catch(e){console.error(e)}}function K(e){return z().rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}const Y=()=>t.cloneDeep(R);async function W(e,a){0!=a&&(a=!0);let n=["_id"],r=[];for(const i of l.isArray(e)?e:l.values(e))i.name.indexOf(".")<0&&(!a||"lookup"!=i.type&&"master_detail"!=i.type?n.push(i.alias?i.alias+":"+i.name:i.name):(n.push(""+i.name),r.push(""+i.name)),t.includes(["time","date","datetime","boolean","number","currency"],i.type)&&n.push(""+i.name),t.includes(["time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary"],i.type)&&r.push(""+i.name));return r=l.uniq(r),n=l.uniq(n),0<r.length?`${n.join(",")},_display:_ui{${r.join(",")}}`:""+n.join(" ")}async function Z(e,t,a,n){let r="",i=(t&&(r=`(filters:["${e.idFieldName}", "=", "${t}"])`),"data");return n&&(n.alias&&(i=n.alias),n.filters&&(r=`(filters:${n.filters})`),n.queryOptions&&(r=`(${n.queryOptions})`)),{query:`{${i}:${e.name}${r}{${await W(a)}, \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 }}`}}function G(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 ${function(e){var t=[];return e.forEach((e=>{e.readonly&&t.push(`delete formData.${e.name};`)})),t.join("\r\n")}(e)}\n ${function(e){let a=[],n={};return e.forEach((e=>{t.includes(["image","avatar"],e.type)&&(a.push(e.name),n[e.name]={name:e.name,multiple:e.multiple})})),a.length?`\n let imgFieldsKeys = ${JSON.stringify(a)};\n let imgFields = ${JSON.stringify(n)};\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 `:""}(e)}\n ${function(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 `:""}(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 X(e){return`\n ${G(e)}\n api.data = {query: query.replace('{__saveData}', __saveData)};\n return api;\n `}async function Q(e,t,a,n){var r=n.limit||10;let i=`(top: ${r})`,o=(t&&(i=`(filters:["_id", "=", "${t}"], top: ${r})`),"data");return n&&(n.alias&&(o=n.alias),n.filters&&(i=`(filters:${n.filters})`),n.queryOptions&&(i=`(${n.queryOptions})`)),t="",e.enable_tree&&l.includes(l.keys(e.fields),"parent")&&l.includes(l.keys(e.fields),"children")&&(t=",parent,children"),r="","cms_files"===e.name&&(r=",versions"),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${i}{${await W(a,n.expand)}${t}${r}},count:${e.name}__count(filters:{__filters})}`}}function ee(e){if(!e)return"${context.rootUrl}/graphql"}const te={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,listViewName:n})=>"instances"===t?`/workflow/space/\${context.tenantId}/${n}/`+a:`/app/${e}/${t}/view/`+a,getObjectRelatedViewPath:({appId:e,masterObjectName:t,masterRecordId:a,objectName:n,foreignKey:r})=>`/app/${e}/${t}/${a}/${n}/grid?related_field_name=`+r};function ae(e){return`<div>\${_display.${e.name}}</div>`}function ne(e){return`<div>\${_display.${e.name}}</div>`}function re(e){return`<div>\${_display.${e.name}}</div>`}function ie(e){return`<div>\${_display.${e.name}}</div>`}function le(e,t){var a;return _.isString(e.reference_to)||!e.reference_to?e.multiple?(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:`\${_display.${e.name}.objectName}`,recordId:`\${_display.${e.name}.value}`})}">\${_display.${e.name}.label}</a>`:(a=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:"<%=item.objectName%>",recordId:"<%=item.value%>"}),`\n <% if (data._display.${e.name} && data._display.${e.name}.length) { %><% data._display.${e.name}.forEach(function(item) { %> <a href="${a}"><%=item.label%></a> <% }); %><% } %>\n `)}async function oe(e,t){var a,n;return e.reference_to?(a=await async function(e){return(await Rt(e.reference_to)).NAME_FIELD_KEY||"name"}(e),e.multiple?(n=te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${n}"><%=item.${a}%></a> <% }); %><% } %>\n `):`<a href="${te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${a}}</a>`):ie(e)}function se(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}%></span>\n </span>\n <% } %>`}function de(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function ce(e,t){if(e.is_name||e.name===t.labelFieldName)return function(e,t){return"cms_files"===t.objectName?`<a href="\${context.rootUrl}/api/files/files/\${versions[0]}?download=true">\${${e.name}}</a>`:`<a href="${te.getObjectDetailPath({...t,formFactor:t.formFactor,appId:t.appId,objectName:t.objectName,recordId:`\${${t.idFieldName}}`})}">\${${e.name}}</a>`}(e,t);switch(e.type){case"password":return de(e);case"boolean":return se(e);case"select":return ie(e);case"time":case"formula":case"summary":case"filesize":return function(e){return`<div>\${_display.${e.name}}</div>`}(e);case"date":return ne(e);case"datetime":return re(e);case"lookup":case"master_detail":return le(e,t);case"number":case"currency":return ae(e)}}function ue(e){let t="";var a=l.filter(e,(function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)}));return l.each(a,(function(e){var a;l.includes(Ze,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 try{\n ${t}\n ${me(e)}\n ${fe(e)}\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 pe(e,t,a,n){return{method:"post",url:ee()+"?rf="+(new Date).getTime(),cache:100,adaptor:ue(a),data:await Z(e,t,a,n),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function me(e){let t=[],a={};return e.forEach((e=>{l.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 fe(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 be(e,t,a){return{method:"post",url:ee(),sendOn:"!!this.recordId",cache:100,adaptor:`\n if(payload.data.data){\n var data = payload.data.data[0];\n if(data){\n ${me(a)}\n ${fe(a)}\n //初始化接口返回的字段移除字段值为null的字段\n for (key in data){\n if(data[key] === null){\n delete data[key];\n }\n }\n };\n payload.data = data;\n delete payload.extensions;\n }\n return payload;\n `,data:await Z(e,t,a),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function ye(e,t,a,n){return{method:"post",url:ee(),data:{objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"},requestAdaptor:X(a),responseData:{recordId:"${record._id}"},adaptor:"\n if(payload.errors){\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n ",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function he(e){return{method:"post",url:ee(),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 ge=async(e,t,a,n)=>{if((t=l.filter(t,{group:a})).length!=l.filter(t,["hidden",!0]).length){var r,i=[];for(const a of t){let t=a;"grid"===a.type?t=await Xe(a,e):"object"===a.type&&(t=await Ge(a,e)),t.name.indexOf(".")<0&&(r=await et(t,t.readonly,n))&&i.push(r)}return{type:"fieldSet",title:a,collapsable:!0,body:i}}},_e=async(e,t,a)=>{var n=(e=>{let t=[];return t.length=0,l.forEach(e.fields,((e,t)=>{l.has(e,"name")||(e.name=t)})),l.forEach(l.sortBy(e.fields,"sort_no"),(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})(t),r=[];for(const t in l.groupBy(n,"group")){var i=await ge(e,n,t,a);0<i.body.length&&r.push(i)}return r};async function ve(e,t,a){return _e(e,t,a)}async function we(e,t){var a=[];for(const r of e){var n=await ce(r,t);let e=n?"tpl":"text";r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled})}return{type:"hbox",columns:a}}function $e(e){return{perPage:e.top||e.perPage||10}}const Ne=(...e)=>{let a={};return t.toArray(e).reverse().forEach((e=>{t.mergeWith(a,e,((e,a)=>t.isArray(a)?a:void 0))})),a};function Se(e,t){return"SMALL"===t?["bulkActions",{type:"reload",align:"right"},{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]:["filter-toggler","bulkActions",{type:"search-box",align:"right",name:"__keywords",placeholder:"请输入关键字",mini:!0}]}async function Fe(e,t,a){var{top:n,perPage:r}=a,i=e.paging&&!1===e.paging.enabled,l=function(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:he(e.name)}]}(e);l={toolbar:[],footerToolbar:["statistics","pagination"],headerToolbar:Se(0,a.formFactor),bulkActions:0!=a.bulkActions&&l,bodyClassName:""};n||r?n&&(l.footerToolbar=[]):i&&(a.top=1e3,l.footerToolbar=[]);let s=null;if(r="listview_"+e.name,s="SMALL"===a.formFactor?(delete l.bulkActions,delete l.headerToolbar,delete l.footerToolbar,n=await async function(e,t){let a=null;var n=_.find(e,(e=>e.name===t.labelFieldName));return n&&(a=await ce(n,t)),n=await we(_.filter(e,(e=>e.name!=t.labelFieldName)),t),{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:$e(t),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,card:{type:"card",header:{title:a},body:[...n.columns]}}}(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a,{actions:!1})),Object.assign({},n,{type:"crud",primaryField:"_id",id:r,name:r,keepItemSelectionOnPageChange:!1,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},l)):(delete(i=await Ce(t,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},a))).mode,Object.assign({},i,{type:"crud",primaryField:"_id",affixHeader:!1,id:r,name:r,keepItemSelectionOnPageChange:!0,api:await Be(e,t,a),hiddenOn:a.tableHiddenOn},l)),(n=a.defaults)&&(i=n.listSchema||{},s=Ne({},i,s),t=n.headerSchema,l=n.footerSchema,t||l)){let e=[s];t&&(o.default.isArray(t)?e=o.default.union(t,e):e.unshift(t)),l&&(o.default.isArray(l)?e=o.default.union(e,l):e.push(l)),s=e}return{type:"service",className:"mb-2",id:"service_"+r,name:"page",data:{$master:"$$",objectName:e.name,_id:null,recordPermissions:e.permissions,uiSchema:e,loaded:!1},body:s}}const je=e=>{var t=Y();return{mode:e,user:t,spaceId:t.spaceId,userId:t.userId}};async function Oe(e,t){var{recordId:a,formFactor:n,layout:n=("SMALL"===n?"normal":"horizontal"),labelAlign:r,defaults:i}=t,l=o.default.values(e.fields),i=i&&i.formSchema||{},n={type:"service",className:"p-0",name:"page_edit_"+a,api:await be(e,a,l),initApi:null,initFetch:null,body:[Ne({},i,{type:"form",mode:n,labelAlign:r,persistData:!1,promptPageLeave:!0,name:"form_edit_"+a,debug:!1,title:"",submitText:"",api:await ye(0,0,l),initFetch:"new"!=a,body:await ve(l,e,t),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"steedos-amis-form",onEvent:{submitSucc:{weight:0,actions:[{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"},{actionType:"custom",script:'const { recordId, listViewId } = context.props.data;\ndoAction({\n componentId: `detail_${recordId}`,\n actionType: "reload",\n expression: `!${listViewId}`\n})\n\n\n\n\n'}]}}})]};return i.id&&(n.id="service-"+i.id),n}async function xe(e,a,n){var{formFactor:r,layout:r=("SMALL"===r?"normal":"horizontal"),labelAlign:i,formInitProps:l}=n,s=o.default.values(e.fields);return{type:"service",name:"page_readonly_"+a,id:"detail_"+a,data:{global:je("read"),context:{rootUrl:K(),tenantId:U(),authToken:H()}},api:await pe(e,a,s,l),body:[{type:"form",mode:r,labelAlign:i,persistData:!1,promptPageLeave:!1,name:"form_readonly_"+a,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await ve(t.map(s,(e=>(e.readonly=!0,e))),e,Object.assign({},n,{showSystemFields:!0})),className:"steedos-amis-form bg-white",actions:[]}],onEvent:{fetchInited:{weight:0,actions:[{actionType:"broadcast",eventName:"recordLoaded",args:{eventName:"recordLoaded"},data:{record:"${event.data}"}}]}}}}var Ie={newRecordMode:"modal",editRecordMode:"modal",perPage:20};const ke=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function Ve(e,t,a){return t?l.includes(["text","image"],e)?"image"===e&&a&&a.multiple?"static-images":"static-"+e:"static":l.includes(ke,e)?"input-"+e:e}const De=(e,t)=>Ve("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),Ae=e=>{var t=e.type,a=De(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},Ee=e=>{var t=(e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}})(e);t={type:De(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},Te=(e,t)=>(t?Ae:Ee)(e);function Pe(e){return{perPage:e.top||e.perPage||Ie.perPage}}function qe(e){let a=e.visible;return e._visible&&(a=e._visible),(a=t.isBoolean(a)?a.toString():a)?a.trim().startsWith("function")?a+"(objectName, _id, recordPermissions, data)":a:"amis_button"===e.type&&(e=e.amis_schema)&&e.body&&0<e.body.length?e.body[0].visibleOn:void 0}async function Ce(e,a){return(e=await async function(e,t){var a=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"});else if("avatar"===r.type||"image"===r.type||"file"===r.type)a.push({type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...Ae(r)});else{var n=await ce(r,t);let e="text";n?e="tpl":"html"===r.type&&(e="markdown"),r.hidden||r.extra||a.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:e,tpl:n,toggled:r.toggled,className:"textarea"===r.type?"w-56 whitespace-pre-wrap textarea":"whitespace-nowrap",html:"html"===r.type||null})}else a.push({type:"button",className:"whitespace-nowrap",label:`<%=data.versions ? data.name : "${r.label}"%>`,type:"button",actionType:"ajax",api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},responseType:"blob",dataType:"form-data"},id:"u:6c8291d1029f",level:"link"});return a}(e,a=a||{})).push(await async function(e){e=e.buttons;const a=[];if(t.each(e,(e=>{t.isBoolean(e.visible)&&(e.visible=e.visible.toString()),a.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:qe(e),className:"antd-Button--default"})})),!(a.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:a,placement:"bottomLeft",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 "}}]}}(a)),{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:Pe(a),columns:e,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${a.labelFieldName}}`,autoFillHeight:!1}}async function Be(e,t,a){const n=[];let{globalFilter:r,filter:i,sort:o,top:s,setDataToComponentId:d=""}=a;i=(i=l.isArray(i)?l.map(i,(function(e){return e.operation?[e.field,e.operation,e.value]:e})):i)||[],l.each(t,(function(e){e.searchable&&n.push(e.name)}));const c={},u=[];return t.forEach((e=>{l.includes(["image","avatar","file"],e.type)&&(u.push(e.name),c[e.name]={name:e.name,type:e.type,multiple:e.multiple})})),a=e.key_field||"_id",t=await async function(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}(e,null,t,{alias:"rows",limit:s,queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'}),t.data.$term="$term",t.data.$self="$$",t.data.filter="$filter",t.data.loaded="${loaded}",t.data.listViewId="${listViewId}",t.requestAdaptor=`\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 = localStorage.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 api.data.pageNo = localListViewProps.page || 1;\n }\n }\n }\n catch(ex){\n console.error("本地存储中crud参数解析异常:", ex);\n }\n ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}\n if(_.isEmpty(filters)){\n filters = api.data.filter || [${JSON.stringify(i)}];\n }else{\n filters = [filters, 'and', api.data.filter || [${JSON.stringify(i)}]]\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 filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n filters = [["${a.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 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 item._index = 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.data.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 = localStorage.getItem(listViewPropsStoreKey);\n let selfData = JSON.parse(JSON.stringify(api.data.$self));\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n selfData = Object.assign({}, localListViewProps, selfData, { filter: api.data.filter });\n if(!api.data.loaded){\n // 第一次加载组件,比如刷新浏览器时因为api.data.pageNo有默认值1\n // 所以会把localSearchableFilter中已经存过的页码覆盖\n // 如果是第一次加载组件始终让翻页页码从本地存储中取值\n selfData.page = localListViewProps.page || 1;\n }\n }\n delete selfData.context;\n delete selfData.global;\n localStorage.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 = "${d}";\n if(setDataToComponentId){\n SteedosUI.getRef(api.body.$self.scopeId).getComponentById(setDataToComponentId)?.setData({$count: payload.data.count})\n }\n\n return payload;\n `,t}async function Le(e){var t=await Q({name:"organizations"},null,[{name:"_id",alias:"value"},{name:"name",alias:"label"},{name:"children"}],{alias:"leftOptions",filters:"{__filters}"}),a=((a=((a=(t.query=t.query.replace(/,count\:.+/,"}"),await Q({name:"organizations"},null,[{name:"_id",alias:"ref"}],{alias:"children",filters:"{__filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),await Q({name:"space_users"},null,[{name:"user"},{name:"name"}],{alias:"defaultValueOptions",filters:"{__options_filters}"}))).query=a.query.replace(/,count\:.+/,"}"),t.query=t.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}")),t.$value="$"+e.name,`\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 `);return{method:"post",url:ee()+"?_id=${_id}",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:t,sendOn:"!!this._id || !!!this."+e.name,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Re(e){var t=await Q({name:"{__object_name}"},null,[],{alias:"options",filters:"{__filters}"});let a=e.filters;return"function"==typeof(a="string"==typeof a?(a=new Function("return "+a))():a)&&(a=a(e)),t.query=t.query.replace(/,count\:.+/,"}"),t.query=t.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 if (dep) {\n objectName = "organizations";\n fields = "value:_id,label:name,children";\n filters = [['parent', '=', dep]];\n }\n else if (ref) { \n objectName = "space_users";\n // 这里要额外把字段转为value和label是因为valueField和labelField在deferApi/searchApi中不生效,所以字段要取两次\n fields = "user,name,value:user,label:name";\n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${a&&JSON.stringify(a)};\n if(defaultFilters){\n filters.push(defaultFilters);\n }\n filters.push(['organizations_parents', '=', ref]);\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `,{method:"post",url:ee()+"?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:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function ze(e){var t=await Q({name:"space_users"},null,[{name:"user"},{name:"name"},{name:"user",alias:"value"},{name:"name",alias:"label"}],{alias:"options",filters:"{__filters}"});e=`\n var term = api.query.term;\n var filters;\n if (term) { \n filters = [['user_accepted', '=', true]];\n var defaultFilters = ${(e=(t.query=t.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 }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n return api;\n `;return{method:"post",url:ee()+"?term=${term}",requestAdaptor:e,data:t,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Je(e,t,a){if(!e)return{};a=a||{};var n={type:Ve("select",t)};return t?n.tpl=await oe(e,a):(Object.assign(n,{labelField:"name",valueField:"user",multiple:e.multiple,searchable:e.searchable,selectMode:"associated",leftMode:"tree",joinValues:!1,extractValue:!0,clearable:!0,source:await Le(e),deferApi:await Re(e),searchApi:await ze(e)}),!_.has(e,"defaultValue")||_.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),"boolean"!=typeof n.searchable&&(n.searchable=!0),(t=e.onEvent)&&(n.onEvent=t)),n}const Ue=async e=>{let t=e.reference_to;if(t){"users"===t&&(t="space_users",e.reference_to_field="user");var a=await Rt(t);let n=null,r=e.reference_to_field;return r=r||a.idFieldName||"_id",n="_id"===r?{name:"_id",label:"ID",type:"text",toggled:!1}:a.fields[r]||{name:r},{objectName:t,valueField:n,labelField:a.fields[a.NAME_FIELD_KEY||"name"]}}};async function He(e,t,a){var n=await Ue(e);if(n){const i=await Rt(n.objectName),o=[];let s=0;const d=[],c=[];var r=l.find(i.list_views,((e,t)=>"all"===t));r&&r.columns?l.each(r.columns,(function(e){l.isString(e)&&i.fields[e]?c.push(i.fields[e]):l.isObject(e)&&i.fields[e.field]&&c.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))})):l.each(i.fields,((e,t)=>{"_id"==t||e.hidden||(l.has(e,"name")||(e.name=t),c.push(e))})),l.each(l.sortBy(c,"sort_no"),(function(e){s<5&&(l.find(o,(function(t){return t.name===e.name}))||(s++,o.push(e),e.searchable&&d.push(e.name)))}));const u={[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField};l.each(o,(e=>{e.hidden||(u[e.name]=e)})),(r=await Ke(i,null,u,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'})).data.$term="$term",r.data.$self="$$",r.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 = ${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 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 = ${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 `,r.adaptor=`\n const enable_tree = ${i.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 p=20,m=(i.paging&&!1===i.paging.enabled&&(p=1e3),null);return m="SMALL"===a.formFactor?await async function(e,t){return e=(await we(e,t)).columns,{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:$e(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:te.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}(o,{top:p,...a,actions:!1}):await Ce(o,{labelFieldName:i.NAME_FIELD_KEY,top:p,...a}),n={type:Ve("picker",t),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:r,size:"lg",pickerSchema:m,joinValues:!1,extractValue:!0},e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}}async function Me(e,t,a){var n=await Ue(e);let r;return(r=n?await Ke({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}"}):{method:"post",url:ee(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}}).data.$term="$term",r.data.$value=`$${e.name}.`+(n?n.valueField.name:"_id"),l.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 = '[\"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 ",n&&n.labelField.name,n&&n.valueField.name,e._optionsFunction&&(r.adaptor=`\n payload.data.options = eval(${e._optionsFunction})(api.data);\n return payload;\n `),n={type:Ve("select",t),joinValues:!1,extractValue:!0,autoComplete:r},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n.value=e.defaultValue),e.multiple&&(n.multiple=!0,n.extractValue=!0),t&&(n.tpl=await oe(e,a)),n}async function Ke(e,t,a,n){return e=await Q(e,t,a,n),{method:"post",url:ee(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function Ye(e,t,a){var n,r;return t?{type:Ve("picker",t),tpl:le(e,a)}:!e.reference_to||l.isString(e.reference_to)||t?((n=await Ue(e))?(r=await Rt(n.objectName),"space_users"===n.objectName?We:1==r.enable_enhanced_lookup?He:Me):Me)(e,t,a):{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}}}async function We(e,t,a){return Je(e,t,a)}const Ze=["created","created_by","modified","modified_by"];function Ge(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Xe(e,t){var a=Object.assign({subFields:[]},e);t=l.filter(t,(function(t){return t.name.startsWith(e.name+".")}));return a.subFields=t,a}function Qe(e){const t=e.data_type||"text",a=[];return l.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 et(e,t,a){if(!l.includes(Ze,e.name)||1==a.showSystemFields){var n,r={name:a.fieldNamePrefix?""+a.fieldNamePrefix+e.name:e.name,label:e.label,labelRemark:e.inlineHelpText,required:(l.has(a,"required")?a:e).required};let i={};switch(e.type){case"text":i.type=Ve("text",t);break;case"textarea":i.type=Ve("textarea",t),i.tpl=`<b><%=data.${e.name}%></b>`;break;case"html":i={type:"editor",language:"html",value:e.defaultValue||""};break;case"select":i={type:Ve("select",t),joinValues:!1,options:Qe(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:t?ie(e):null},!l.has(e,"defaultValue")||l.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(n=e.data_type||"text",null!=e.defaultValue&&("text"===n?i.value=String(e.defaultValue):"number"===n?i.value=Number(e.defaultValue):"boolean"===n&&(i.value="false"!==e.defaultValue))),e.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:Ve("checkbox",t),option:e.inlineHelpText,tpl:t?se(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):null};break;case"date":i={type:Ve("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?ne(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:t?re(e):null,utc:!0};break;case"datetime":i={type:Ve("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:t?re(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?re(e):null};break;case"time":i={type:Ve("time",t),inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?re(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:ae(e)}:{type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,r);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i={type:Ve("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:Ve("password",t),tpl:t?de(e):null};break;case"lookup":case"master_detail":i=await Ye(e,t,a);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:Ve("url",t)};break;case"email":i={type:Ve("email",t)};break;case"avatar":case"image":case"file":i=Te(e,t);break;case"formula":case"summary":t&&(i.type=Ve(e.data_type,t));break;case"code":i={type:"editor",language:e.language,value:e.defaultValue||""};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]},l.each(e.subFields,(function(a){var n=a.name.replace(e.name+".$.","").replace(e.name+".",""),r=et(Object.assign({},a,{name:n}),t);r&&(delete r.name,delete r.label,i.columns.push({name:n,label:a.label,quickEdit:!t&&r}))}))}return l.isEmpty(i)?void 0:(e.is_wide?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=i.className+" md:border-b"),i.labelClassName="text-left",t&&(i.quickEdit=!1),e.visible_on&&(i.visibleOn="$"+e.visible_on.substring(1,e.visible_on.length-1).replace(/formData./g,"")),Object.assign({},r,i,{clearValueOnHidden:!0,fieldName:e.name}))}}async function tt(e,a,n){let r=e,i=("grid"===r.type?r=await Xe(e,a):"object"===e.type&&(r=await Ge(e,a)),"__searchable__");if(r.name.indexOf(".")<0&&(e=t.cloneDeep(r),t.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),"number"!==r.type&&"currency"!==r.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,i+="between__"),"date"===r.type&&(e.type="input-date-range",e.is_wide=!0,i+="between__"),"datetime"===r.type&&(e.type="input-datetime-range",e.is_wide=!0,i+="between__"),"time"===r.type&&(e.type="input-time-range",e.is_wide=!0,i+="between__"),"users"===r.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,a=await et(e,!1,Object.assign({},n,{fieldNamePrefix:i,required:!1,showSystemFields:!0}))))return a}async function at(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:"setValue",args:{value:{showFieldsFilter:"${!showFieldsFilter}"}},componentId:"service_listview_"+e.name}]}}}}async function nt(e,a,n){n=n||{};var r,i,l=[];for(r of a)t.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],r.type)||(delete r.defaultValue,delete r.required,delete r.is_wide,delete r.readonly,delete r.hidden,delete r.omit,(i=await tt(r,a,{}))&&l.push(i));return t.map(l,"name"),n.enableSearchableFieldsVisibleOn&&l.forEach((function(e){e.visibleOn=`this.filterFormSearchableFields && this.filterFormSearchableFields.indexOf("${e.fieldName}") > -1`})),{title:"",type:"form",name:"listview-filter-form",id:"listview_filter_form_"+e.name,mode:"normal",wrapWithPanel:!1,className:"sm:grid sm:gap-2 sm:grid-cols-4 mb-2",data:{"&":"${filterFormValues || {}}",...n.initData},body:l,onEvent:{broadcastSearchableFieldsChange:{actions:[{actionType:"custom",script:'\n const data = event.data;\n const listViewId = data.listViewId;\n const searchableFields = data.fields;\n const preSearchableFields = data.__super.__super.fields;\n const removedFields = _.difference(preSearchableFields, searchableFields);\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = localStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let removedKeys = [];\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n delete localListViewProps[key];\n removedValues[key] = "";\n });\n doAction({\n actionType: \'setValue\',\n args: {\n value: removedValues\n }\n });\n localStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n '}]}}}}async function rt(e,t,a){return a=a||{},t=await nt(e,t,Object.assign({},{enableSearchableFieldsVisibleOn:!0},a)),{type:"service",data:{listViewId:"${listViewId}"},id:"service_listview_filter_form_"+e.name,dataProvider:{inited:'\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId ;\n let defaultSearchableFields = localStorage.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\n const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;\n let localListViewProps = localStorage.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 }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[{type:"wrapper",body:[t],size:"xs",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"slds-filters__body p-0"},{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 appId = event.data.appId;\n const objectName = event.data.objectName;\n const scopeId = event.data.scopeId;\n const scope = SteedosUI.getRef(scopeId);\n var filterForm = scope.getComponentById("listview_filter_form_" + objectName);\n var filterFormValues = filterForm.getValues();\n var listView = scope.getComponentById("listview_" + objectName);\n listView.handleFilterSubmit(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 value = data.fields;\n doAction({\n actionType: \'setValue\',\n args: {\n value: { filterFormSearchableFields: value }\n },\n componentId: "service_listview_filter_form_" + objectName,\n });\n const searchableFieldsStoreKey = location.pathname + "/searchable_fields/" + data.listViewId;\n localStorage.setItem(searchableFieldsStoreKey, value);\n '},{actionType:"broadcast",eventName:"broadcastSearchableFieldsChange",args:{eventName:"broadcastSearchableFieldsChange"},data:{fields:"${event.data.fields}"}},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",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 slds-grid slds-grid_vertical slds-nowrap"},visibleOn:"this.showFieldsFilter",className:"px-1 py-1 bg-white b-b"}}const it=function(e){var t,a;return"string"==typeof e&&(t=/^{{(function.+)}}$/,a=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(a)))},lt=function(e,a,n,r,i={}){var l,o;if(void 0===a&&(a={}),o=function(e){return"string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(n),o=function(e,a){return"#"!==a&&a?"string"==typeof a?t.get(e,a):void console.error("path has to be a string"):e||{}}(a,o)||{},"string"!=typeof e)return e;l=e.substring(2,e.length-2),i=`\n var $user=${JSON.stringify(i)}; return `+l.replace(/\bformData\b/g,JSON.stringify(a).replace(/\bglobal\b/g,"__G_L_O_B_A_L__")).replace(/\bglobal\b/g,JSON.stringify(r)).replace(new RegExp("\\b__G_L_O_B_A_L__\\b","g"),"global").replace(/rootValue/g,JSON.stringify(o));try{return Function(i)()}catch(a){return console.log(a,e,n),e}};async function ot({type:e,pageId:t,appId:a,objectName:n="",recordId:r,formFactor:i="LARGE"}){if((e=await J(`/api/pageSchema/${e}?app=${a}&objectApiName=${n=n||""}&recordId=${r=r||""}&pageId=${t=t||""}&formFactor=`+i))&&e.schema)return e}const st=async(e,t)=>{let a={type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"",id:"u:f8ad8ddf153a",mode:"edit",layout:"horizontal"};return{type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$","&":"${defaultData}",objectName:"${objectName}",context:"${context}",listViewId:"${listViewId}"},title:e="新建 "+e.label,bodyClassName:"",body:[a=(t=await ot({type:"form",appId:t.appId,objectName:t.objectName,formFactor:t.formFactor}))?_.isString(t.schema)?JSON.parse(t.schema):t.schema:a],id:"u:0b96577db93c",closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,size:"lg"}}],weight:0}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"}},dt=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 ot({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"}},ct=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"},{componentId:"",args:{url:"/app/${app_id}/${objectName}/grid/all",blank:!1},actionType:"link",expression:"!!!listViewId"},{componentId:"listview_"+e.name,actionType:"reload",expression:"!!listViewId"}]}}}],regions:["body"]}),ut=async(e,t)=>({type:"amis_button",amis_schema:await st(e,t)}),pt=async(e,t)=>({type:"amis_button",amis_schema:await dt(e,t)}),mt=async(e,t)=>({type:"amis_button",amis_schema:await ct(e)}),ft=async(e,t)=>({type:"script",todo:function(){var{appId:e,objectName:t,uiSchema:a}=this,e=(this.scope||SteedosUI?.getRef(`amis-${e}-${t}-listview`)).getComponentById("listview_"+a.name);console.log("listViewRef",e),_.isEmpty(e.props.store.toJSON().selectedItems)?e.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):e.handleBulkAction(e.props.store.toJSON().selectedItems,[],{},e.props.bulkActions[0])}}),bt=async(e,t)=>({type:"amis_button",amis_schema:await{type:"service",body:[{type:"button",label:"导入数据",id:"u:import_data",onEvent:{click:{actions:[{actionType:"dialog",dialog:{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:"markdown",className:"whitespace-nowrap",html:!0},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"}}),yt=async(e,t)=>({type:"amis_button",amis_schema:await{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"]}});function ht(e){let t=e.visible;return e._visible&&(t=e._visible),(t=o.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 gt={standard_delete_many:function(){var{listViewId:e,uiSchema:t,scopeId:a}=this,a=SteedosUI?.getRef(a||e).getComponentById("listview_"+t.name);o.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])}},_t=(e,t)=>{const a=e.permissions&&e.permissions.disabled_actions;let n=o.default.sortBy(o.default.values(e.actions),"sort");return o.default.has(e,"allow_customActions")&&(n=o.default.filter(n,(t=>o.default.include(e.allow_customActions,t.name)))),o.default.has(e,"exclude_actions")&&(n=o.default.filter(n,(t=>!o.default.include(e.exclude_actions,t.name)))),o.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)&&o.default.map(n,(e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")})),o.default.filter(n,(e=>o.default.indexOf(a,e.name)<0&&"standard_query"!=e.name))},vt=(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),wt=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record"==e.on||"record_only"==e.on)),o.default.sortBy(t,"sort")),$t=(e,t)=>(e=_t(e,t),t=o.default.filter(e,(e=>"record_more"==e.on||"record_only_more"==e.on)),o.default.sortBy(t,"sort")),Nt=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"record"==e.on||"list_item"==e.on||"record_more"===e.on))),St=async(e,t)=>(e=_t(e,t),o.default.filter(e,(e=>"list"==e.on))),Ft=async(e,t,a)=>{var n=await Rt(e);if(n){var r=await _t(n,a);r=o.default.find(r,(e=>e.name===t));if(r)return"standard_edit"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")?{label:r.label,name:r.name,on:r.on,...await pt(n,a)}:"cms_files"!=e&&"standard_new"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")?{label:r.label,name:r.name,on:r.on,...await ut(n,a)}:"standard_delete"==r.name&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await mt(n,a)}:n.hasImportTemplates&&"standard_import_data"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await bt(n,a)}:"standard_open_view"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await yt(n,a)}:"standard_delete_many"===r.name?{label:r.label,name:r.name,on:r.on,sort:r.sort,...await ft(n,a)}:r}},jt=(e,t)=>{if(e.todo)return o.default.isString(e.todo)&&o.default.startsWith(o.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),o.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},Ot=jt;function xt(e,a,n){var{icon:r,label:i}=e;const l=[];t.each(e.list_views,((t,a)=>{l.push({type:"button",label:t.label,actionType:"link",link:`/app/\${appId}/${e.name}/grid/`+a})}));var o=vt(e,{}),s=(o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon slds-icon_container slds-icon-standard-${r&&r.replace(s,"-")} slds-page-header__icon" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${r}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{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 text-xl font-bold p-0 text-black leading-none",buttons:l}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:o},md:"auto"}],align:"between"}}async function It(e,t,a){var n="listview_"+e.name;return{type:"grid",align:"between",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",valign:"middle"},{body:[await at(e),{type:"button",label:"",icon:"fa fa-refresh",actionType:"reload",target:n,className:"bg-white p-2 rounded border-gray-300 text-gray-500"}],md:"auto"}],className:""}}async function kt(e,a,n){var r=t.keys(e.fields);r=t.sortBy(t.compact(t.map(r,(t=>e.fields[t]))),"sort_no");return await rt(e,r,{isListviewInit:n.isListviewInit})}async function Vt(e,t,a){a=a||{};var n=xt(e),r=await It(e);let i=[n,r],l="sm:rounded-tl sm:rounded-tr";return a.onlyFirstLine?i=[n]:a.onlySecordLine&&(l="",i=[r]),n=[{type:"wrapper",body:i,className:`border-b bg-gray-100 ${l} `+(a.onlySecordLine&&"pt-0")}],r=await kt(e,0,a),n.push(r),n}async function Dt(e,a){var{name:n,label:r,icon:i}=e,l=wt(e,{}),o=$t(e,{recordId:a,objectName:n});l=t.map(l,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),o=t.map(o,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e)}))),l.push({type:"steedos-dropdown-button",label:"",buttons:o,className:"slds-icon ml-1 border-gray-200 rounded-none"}),o=new RegExp("_","g"),o=[{type:"service",body:[{type:"panel",title:"标题",body:[],header:{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class='slds-icon slds-icon_container slds-icon-standard-${i&&i.replace(o,"-")}' src='\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${i}.svg'>`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:""+r,inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:13},className:"leading-none"},{type:"tpl",tpl:"${name}",inline:!1,wrapperComponent:"",style:{fontFamily:"",fontSize:20,fontWeight:"bold",textAlign:"left"},className:"leading-none"}]}]}],md:"auto"},{body:{type:"flex",items:l},md:"auto"}],align:"between"}],size:"xs"},affixFooter:!1,headerClassName:"",bodyClassName:"p-none"}],messages:{}}];return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:K(),tenantId:U(),authToken:H()},objectName:n,_id:a,recordPermissions:e.permissions,uiSchema:e},body:o}}async function At(e){var{icon:a,label:n}=e,r=(e=await St(e,{}),e=t.map(e,(e=>({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:ht(e),className:`button_${e.name} border-gray-200 inline-block ml-1`}))),new RegExp("_","g"));return{type:"wrapper",body:[{type:"grid",columns:[{body:[{type:"grid",columns:[{body:{type:"tpl",className:"block",tpl:`<img class="slds-icon_small slds-icon_container slds-icon-standard-${a&&a.replace(r,"-")}" src="\${context.rootUrl}/unpkg.com/@salesforce-ux/design-system/assets/icons/standard/${a}.svg" />`},md:"auto",className:"",columnClassName:"flex justify-center items-center"},{body:[{type:"tpl",tpl:`<a href="/app/\${appId}/\${masterObjectName}/\${masterRecordId}/\${objectName}/grid?related_field_name=\${relatedKey}">${n}(\${$count})</a>`,inline:!1,wrapperComponent:"",className:"leading-none",style:{fontFamily:"",fontSize:13,fontWeight:"bold"}}],md:"",valign:"middle",columnClassName:"p-l-xs"}]}],md:"auto"},{body:{type:"flex",items:e},md:"auto"}],align:"between"}],size:"xs",className:"bg-white p-t-sm p-b-sm px-4 border-b"}}const Et=(e,a,n)=>{e=e.replace(/\./g,"_"),n=(e=>{const a=["_id"];return e.push("record_permissions"),t.each(e,(e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),a.push(""+e)})),""+a.join(" ")})(n);let r="";return`{record:${e}__findOne${r=0<(a=[`id: "${a}"`]).length?`(${a.join(",")})`:r}{${n}}}`},Tt=async(e,t,a)=>(await J("/graphql",{method:"post",body:JSON.stringify({query:Et(e,t,a)})})).data.record;let Pt,qt={};const Ct=("undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=qt),qt=window.UI_SCHEMA_CACHE),(e,t)=>{qt[e]=t});function Bt(e,a){return"SMALL"===a?t.isEmpty(e.mobile_columns)?t.slice(e.columns,0,4):e.mobile_columns:e.columns}function Lt(e){let a="";return e&&e.sort&&e.sort.length&&t.each(e.sort,(function(e,n){var r;t.isArray(e)?(r=e[0]+" "+(e[1]||""),a+=r=0<n?","+r:r):(r=e.field_name+" "+e.order,a+=r=0<n?","+r:r)})),a}async function Rt(e,a){if(e){if(!(e=>t.has(qt,e))(e)||a){let n=null;try{if(!(n=Pt?await Pt(e,a):await J(`/service/api/@${e.replace(/\./g,"_")}/uiSchema`,{method:"get"})))return;Ct(e,n),t.each(n.list_views,((e,a)=>{e.name=a,t.has(e,"columns")||(e.columns=n.list_views.all.columns)}))}catch(a){console.error("getUISchema",e,a),Ct(e,null)}}return(e=>t.cloneDeep(qt[e]))(e)}}async function zt(e,t){return(await Rt(e))?.fields[t]}async function Jt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Oe(e,t)}}async function Ut(e,t,a){return{uiSchema:e=await Rt(e),amisSchema:await xe(e,t,a)}}async function Ht(e,a,n,r={}){var i=await Rt(a),l=t.find(i.list_views,((e,t)=>t===(n=n||t)));if(!l)return{uiSchema:i};if(l.enable_amis_schema&&l.amis_schema){return{uiSchema:i,isCustomAmisSchema:!0,amisSchema:t.isString(l.amis_schema)?JSON.parse(l.amis_schema):l.amis_schema}}var o=Bt(l,r.formFactor),s=Lt(l),d=r.defaults||{};!d.headerSchema&&r.showHeader&&(d.headerSchema=await Vt(i)),r.showHeader||(d.headerSchema=null);try{var c,u=location.pathname+"/crud/"+r.listViewId,p=localStorage.getItem(u);p&&(p=JSON.parse(p),c={},p.orderBy&&(c.orderBy=p.orderBy),p.orderDir&&(c.orderDir=p.orderDir),p.perPage&&(c.defaultParams={perPage:p.perPage}),d.listSchema=t.defaultsDeep({},c,d.listSchema||{}))}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d;return{uiSchema:i,amisSchema:{type:"steedos-object-table",objectApiName:a,columns:o,extraColumns:l.extra_columns,filters:l.filters,sort:s,ctx:r}}}async function Mt(e,a,n,r={}){const i=await Rt(a);let l=r.sort;l||(s=r.sortField,d=r.sortOrder,s&&(l=s+" "+d||"asc"));let o=[];t.each(n,(function(e){t.isString(e)&&i.fields[e]?o.push(i.fields[e]):t.isObject(e)&&i.fields[e.field]&&o.push(Object.assign({},i.fields[e.field],{width:e.width,wrap:e.wrap}))}));var s=r.extraColumns,d=(s&&t.each(s,(function(e){t.isString(e)?o.push({extra:!0,name:e}):t.isObject(e)&&o.push({extra:!0,name:e.field})})),await Fe(i,o,{tabId:a,appId:e,objectName:a,...r,filter:r.filters,sort:l,buttons:await Nt(i,r)}));return{uiSchema:i,amisSchema:d}}async function Kt(e,t){return{uiSchema:e=await Rt(e),amisSchema:await Dt(e,t)}}async function Yt(e,t){return{uiSchema:e=await Rt(e),amisSchema:{type:"service",body:[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:48d2c28eb755",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:`\${record.${e?.NAME_FIELD_KEY||"name"}}`}}]}}},{type:"tabs",tabs:[{title:"详细",body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:d4a495811d57",appId:t}],id:"u:5d4e7e3f6ecc"},{title:"相关",body:[{type:"steedos-object-related-lists",label:"相关列表",objectApiName:"${objectName}",recordId:"${recordId}",id:"u:3b85b7b7a7f6",appId:t}],id:"u:1a0326aeec2b"}],id:"u:a649e4094a12"}]}}}async function Wt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s=o.split("."),d=await Rt(s[0]);if(d){let i=null;var c=await zt(s[0],s[1]);i=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[s[1]+"/o","=",a],[s[1]+"/ids","=",n]]:[""+s[1],"=",n],l.push({masterObjectName:a,object_name:s[0],foreign_key:s[1],schema:await Ht(e,s[0],"all",{globalFilter:i,formFactor:r,buttons:await Nt(d,{isMobile:!1})})})}}else for(const i of o){var u=i.related_field_fullname.split(".");let o=null;var p=await zt(u[0],u[1]);if(p){o=p._reference_to||p.reference_to&&!t.isString(p.reference_to)?[[u[1]+"/o","=",a],[u[1]+"/ids","=",n]]:[""+u[1],"=",n];const s=await Rt(u[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:u[0],foreign_key:u[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:u[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}const Zt=(e,a,n,r)=>(n=t.find(n.fields,(e=>r===e?.name)),t.isString(n.reference_to)?n.multiple?[a]:a:{o:e,ids:[a]});async function Gt(e,a,n,r){var i=await Rt(a),l=[],o=[].concat(i.related_lists||[]);if(t.isEmpty(o))for(const o of[].concat(i.details||[])){var s,d,c=o.split("."),u=await Rt(c[0]);u&&(((s=await zt(c[0],c[1]))._reference_to||s.reference_to&&!t.isString(s.reference_to))&&c[1],c[1],d=(s=await Ht(e,c[0],"all",{formFactor:r,buttons:await Nt(u,{isMobile:!1})})).amisSchema,u=await At(u),d.headerSchema=u,d.headerToolbar=[],d.columnsTogglable=!1,d.globalFilter=d.filters,delete d.ctx,s.amisSchema={type:"service",data:{masterObjectName:a,masterRecordId:"${recordId}",relatedKey:c[1],objectName:c[0],listViewId:`amis-\${appId}-${c[0]}-listview`},body:[{...d,data:{filter:["${relatedKey}","=","${masterRecordId}"],objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[c[1]]:Zt(a,n,s.uiSchema,c[1])}}}]},l.push({masterObjectName:a,object_name:c[0],foreign_key:c[1],schema:s}))}else for(const i of o){var p=i.related_field_fullname.split(".");let o=null;var m=await zt(p[0],p[1]);if(m){o=m._reference_to||m.reference_to&&!t.isString(m.reference_to)?[[p[1]+"/o","=",a],[p[1]+"/ids","=",n]]:[""+p[1],"=",n];const s=await Rt(p[0]);if(s){let n=[];t.forEach(i.field_names,(e=>{var a=t.find(s.fields,(t=>t.name===e));a&&n.push(a)})),l.push({masterObjectName:a,object_name:p[0],foreign_key:p[1],schema:{uiSchema:s,amisSchema:await Fe(s,n,{tabId:a,appId:e,objectName:p[0],formFactor:r,globalFilter:o,buttons:await Nt(s,{isMobile:!1})})}})}}}return l}async function Xt(e,a,n,r,i,l,o){var s=await Rt(n),{list_views:d,fields:c}=s,d=t.keys(d)[0];let u=null;c=await zt(n,r=r||t.findKey(c,(function(t){return-1<["lookup","master_detail"].indexOf(t.type)&&t.reference_to===e})));let p=a;return c.reference_to_field&&"_id"!=c.reference_to_field&&(p=(a=await Tt(e,a,[c.reference_to_field]))[c.reference_to_field]),u=c._reference_to||c.reference_to&&!t.isString(c.reference_to)?[[r+"/o","=",e],[r+"/ids","=",p]]:[""+r,"=",p],a=await At(s),c="steedos-record-related-list-"+n,d=(await Ht(null,n,d,{globalFilter:u,defaults:{listSchema:{headerToolbar:[],columnsTogglable:!1},headerSchema:a},showHeader:!0,top:i,setDataToComponentId:c,tableHiddenOn:l?"this.$count === 0":null,appId:o})).amisSchema,{uiSchema:s,amisSchema:{type:"service",id:c,className:"steedos-record-related-list bg-white mb-1 border",data:{masterObjectName:e,masterRecordId:"${recordId}",relatedKey:r,objectName:n,listViewId:`amis-\${appId}-${n}-listview`},body:[{...d,data:{relatedKey:r,objectName:"${objectName}",recordId:"${masterRecordId}",defaultData:{[r]:Zt(e,p,s,r)}}}]}}}const Qt={};async function ea(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"}}const ta=["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"],aa={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"},na=e=>{const t=[],{conjunction:a,children:n}=e;return a&&n&&n.forEach((e=>{var n;0<t.length&&t.push(a),(e=>_.has(e,"conjunction"))(e)?(n=na(e))&&0<n.length&&t.push(n):(n=ra(e))&&t.push(n)})),t},ra=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,aa[a],n]:void 0},ia=e=>!o.default.isArray(e)&&o.default.isObject(e)?[e.field,e.operation,e.value]:e,la=e=>{e=ia(e);const t={conjunction:"and",children:[]};return e&&0!=e.length&&e.forEach((e=>{"or"===(e=ia(e))||"and"===e?t.conjunction=e:3===e.length&&-1==e.indexOf("and")&&-1==e.indexOf("or")?t.children.push((e=>{var t;if(3===e.length)return"between"===(t=o.default.findKey(aa,(t=>t===e[1])))&&o.default.includes(ta,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))})(e)):t.children.push(la(e))})),t},oa=e=>na(e),sa=e=>{const a=[];return t.each(e.options.split("\n"),(e=>{var t=e.split(":");2==t.length?a.push({label:t[0],value:t[1]}):a.push({label:e,value:e})})),a},da=(e,a)=>{const n={label:!0===a&&e.name,name:e.code,mode:"horizontal",className:"m-none p-none",disabled:"readonly"===e.permission};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";break;case"dateTime":n.type="input-datetime";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=sa(e);break;case"user":case"group":case"section":n.type="input-text";break;case"radio":n.type="radios",n.options=sa(e);break;case"multiSelect":n.type="checkboxes",n.options=sa(e);break;case"odata":var r=e.formula.substr(1,e.formula.length-2);n.type="select",n.multiple=e.is_multiselect,n.labelField=r,n.valueField="$$",n.source={url:t.startsWith(e.url,"http")?e.url:"${context.rootUrl}"+e.url,method:"get",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};break;case"html":n.type="html";break;case"table":n.type="input-table",n.addable="readonly"!=e.permission,n.editable=n.addable,n.copyable=n.addable,n.columns=[],t.each(e.sfields,(e=>{"hidden"!=e.type&&n.columns.push(da(e,!0))}))}return n},ca=e=>{const a=[];return t.each(e,(t=>{"table"!=t.type&&a.push((e=>({className:"td-title",align:"section"!=e.type?"center":"left",width:"section"!=e.type?"16%":"",colspan:"section"==e.type?4:"",body:[{type:"tpl",tpl:`<div style='font-size:20px'>${e.name}</div>`}]}))(t)),"section"!=t.type&&a.push(((e,t)=>({background:"readonly"===e.permission?"":"rgba(255,255,0,.1)",colspan:"table"===e.type?4:3-2*(t-1),align:"left",className:"td-field",body:[da(e)],style:{marginTop:"0",paddingTop:"0",paddingRight:"0",paddingBottom:"0",paddingLeft:"0",marginRight:"0",marginBottom:"0",marginLeft:"0"}}))(t,e.length))})),a},ua=e=>{const a=[],n=[];let r=[];return t.each(e.fields,((t,a)=>{t.is_wide?(0!=r.length&&n.push(r),"table"==t.type&&n.push([Object.assign({},t,{type:"section"})]),(r=[]).push(t),n.push(r),r=[]):(r.push(t),2!=r.length&&a!==e.fields.length-1||(n.push(r),r=[]))})),t.each(n,(e=>{a.push({background:"#F7F7F7",tds:ca(e)})})),a},pa=e=>({type:"table-view",trs:ua(e),id:"u:047f3669468b"});var ma=function(){return(ma=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var r in t=arguments[a])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},fa=function(e){var t=[];return e.charCodeAt(0)===".".charCodeAt(0)&&t.push(""),e.replace(new RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g"),(function(e,a,n,r){return n?e=r.replace(/\\(\\)?/g,"$1"):a&&(e=a.trim()),t.push(e),""})),t};function ba(e,t,a){var n=(e=e&&Object.isFrozen(e)?ya(e):e)?Object.create(e,ma(ma({},a),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,a);return t&&ha(t)&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n}function ya(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 ha(e){var t=typeof e;return e&&"string"!=t&&"number"!=t&&"boolean"!=t&&"function"!=t&&!Array.isArray(e)}var ga=Object.freeze({__proto__:null,absoluteUrl:function(e){return""+K()+e},amisRender:(e,t,a={},n={},r)=>{var i=amisRequire("amis/embed"),{router:r,assets:l}=r;return L(l),i.embed(e,t,a,Object.assign(B(r),n))},amisRootClick:(e,t)=>{"a"===t.target.nodeName.toLocaleLowerCase()&&t.target.href&&(t.preventDefault(),e.push(t.target.href))},cloneObject:ya,conditionsToFilters:oa,createObject:ba,defaultsDeep:Ne,deleteVariable:function(e,t){if(e)if(e.hasOwnProperty(t))delete e[t];else{var a=fa(t);for(t=a.pop();a.length;){var n=a.shift();if(!q(e[n])){if(e[n])throw new Error("目标路径不是纯对象,不能修改");break}e=e[n]=ma({},e[n])}e&&e.hasOwnProperty&&e.hasOwnProperty(t)&&delete e[t]}},execute:jt,executeButton:Ot,extendObject:function(e,t,a){var n=ya(e,a=void 0===a||a);return t&&Object.keys(t).forEach((function(e){return n[e]=t[e]})),n},fetchAPI:J,filtersToConditions:e=>la(e),getAmisObjectRelatedList:Gt,getApp:async function(e){return await J(`/service/api/apps/${e}/menus`)},getApps:async function(){return await J("/service/api/apps/menus")},getAuthToken:H,getAuthorization:M,getButton:Ft,getButtonVisible:(e,t)=>{if(e._visible&&(o.default.startsWith(o.default.trim(e._visible),"function")?(window.eval("var fun = "+e._visible),e.visible=fun):it(e._visible)&&(e.visible=t=>{lt(e._visible,t.record,"#",{now:new Date},t.userSession)})),!o.default.isFunction(e.visible))return e.visible;try{return e.visible(t)}catch(t){}},getButtonVisibleOn:ht,getButtons:_t,getEnv:e=>Qt[e],getEnvs:()=>Qt,getEvn:B,getField:zt,getFileSrc:function(e){return K()+"/api/files/files/"+e},getFlowFormSchema:e=>({type:"page",body:[{type:"service",data:{beijing:"20",tianjing:"19"},body:[{type:"tpl",id:"u:f5bb0ad602a6",tpl:`<div style='font-size:20px'>${e.title}</div>`,inline:!0,wrapperComponent:"",style:{fontFamily:"",fontSize:12,textAlign:"center"}},pa(e)],id:"u:a381684e042b"}],id:"u:63849ea39e12",messages:{},pullRefresh:{},regions:["body"]}),getFormPageInitSchema:async function(e){return{type:"page",bodyClassName:"",regions:["body"],body:[(await Jt(e,{recordId:"${recordId}"})).amisSchema]}},getFormSchema:Jt,getImageSrc:function(e){return K()+"/api/files/images/"+e},getListPageInitSchema:async function(e,a,n){var r=await Rt(e);return{type:"page",bodyClassName:"",regions:["body"],body:[{type:"steedos-object-listview",objectApiName:e,columnsTogglable:!1,showHeader:!0,headerSchema:await Vt(r,t.first(t.keys(r.list_views)))}]}},getListSchema:Ht,getListViewButtons:vt,getListViewColumns:Bt,getListViewItemButtons:Nt,getListViewSort:Lt,getListviewInitSchema:async function(e,a,n){n=n||{};var r,i,l=await Rt(e),o=t.find(l.list_views,((e,t)=>t===a));let s={};return o&&(r=Bt(o,n.formFactor),o=Lt(o),(i=n.defaults||{}).headerSchema||(l=await Vt(l,0,{onlySecordLine:!0,isListviewInit:!0}),i.headerSchema=l),n.defaults=i,delete(s=(l=await Mt(null,e,r,{sort:o,...n})).amisSchema).data.$master,delete s.data._id,delete s.data.recordPermissions,delete s.data.uiSchema),s},getNotifications:async()=>{var e=`\n {\n notifications(filters: ["owner","=","${(e=Y()).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 J("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},getObjectDetailButtons:wt,getObjectDetailMoreButtons:$t,getObjectFieldsFilterBarSchema:rt,getObjectFieldsFilterButtonSchema:at,getObjectFieldsFilterFormSchema:nt,getObjectListHeader:Vt,getObjectListHeaderFieldsFilterBar:kt,getObjectListHeaderFirstLine:xt,getObjectListHeaderSecordLine:It,getObjectRecordDetailHeader:Dt,getObjectRecordDetailRelatedListHeader:At,getObjectRelated:async function({appName:e,masterObjectName:a,objectName:n,relatedFieldName:r,recordId:i,formFactor:l}){let o=null;var s=(o=(s=await zt(n,r))._reference_to||s.reference_to&&!t.isString(s.reference_to)?[[r+"/o","=",a],[r+"/ids","=",i]]:[""+r,"=",i],await Rt(a));return{masterObjectName:a,object_name:n,foreign_key:r,schema:await Ht(e,n,"all",{globalFilter:o,formFactor:l}),record:await Tt(a,i,[s.NAME_FIELD_KEY]),masterObjectUISchema:s}},getObjectRelatedList:Wt,getObjectRelatedListButtons:St,getObjectRelatedListHeader:async function(e,t,a){},getPage:ot,getRecord:Tt,getRecordDetailHeaderSchema:Kt,getRecordDetailRelatedListSchema:Xt,getRecordDetailSchema:Yt,getRecordPageInitSchema:async function(e){var a=await Gt(null,e,"${recordId}",null),n=[{type:"steedos-record-detail-header",label:"标题面板",objectApiName:"${objectName}",recordId:"${recordId}",onEvent:{recordLoaded:{actions:[{actionType:"reload",data:{name:"${record.name}"}}]}}}],r={type:"tabs",tabs:[{title:"详情",body:[{type:"steedos-object-form",label:"对象表单",mode:"read",objectApiName:"${objectName}",recordId:"${recordId}",labelAlign:"left"}]}],className:"bg-white mb-4",linksClassName:"pl-4 pt-2"};return a=t.map(a,(e=>e.schema.amisSchema)),a.length&&r.tabs.push({title:"相关",body:a}),n.push(r),{type:"page",id:`page_${e}_record_detail`,bodyClassName:"",regions:["body"],body:n}},getRecordPermissions:async(e,t)=>await J(`/service/api/@${e}/recordPermissions/`+t,{method:"GET"}),getRelatedFieldValue:Zt,getRelatedsCount:async(e,a)=>{const n=[];return t.each(a,(t=>{n.push(`${t.object_name}: ${t.object_name}__count(filters: [["${t.foreign_key}","=","${e}"]])`)})),a=`\n {\n ${n.join(",")}\n }\n `,(await J("/graphql",{method:"POST",body:JSON.stringify({query:a})})).data},getRootUrl:K,getSearchableFieldsFilterSchema:async function(e,t,a){return nt(e,t,a)},getSelectUserSchema:Je,getSpaceUsersPickerAmisSchema:ea,getSpaceUsersPickerSchema:async function(e,t){var a=await Rt("space_users");return{uiSchema:a,amisSchema:await ea(0,e,t)}},getSteedosAuth:Y,getTableSchema:Mt,getTenantId:U,getUISchema:Rt,getViewSchema:Ut,isExpression:it,isObject:ha,lookupToAmis:Ye,lookupToAmisPicker:He,lookupToAmisSelect:Me,lookupToAmisSelectUser:We,markReadAll:async()=>J("/api/v4/notifications/all/markReadAll",{method:"POST"}),parseSingleExpression:lt,registerRemoteAssets:async e=>{if(e&&0<e.length){let a=e;return t.isString(a)&&(a=a.split(",")),await Builder.registerRemoteAssets(a),e=t.filter(Builder.registry["meta-components"],(function(e){return e.componentName&&e.amis?.render})),t.map(e,(e=>({componentType:e.componentType,componentName:e.componentName,...e.amis.render})))}return[]},registerRenders:L,resetLocalListViewPropsWithSearchableFields:function(e,t){"string"==typeof t&&(t=t.split(",")),e=location.pathname+"/crud/"+e;let a=localStorage.getItem(e);if(a){var n,r=[];for(n in a=JSON.parse(a))new RegExp("__searchable__.*").test(n)&&!t.find((function(e){return new RegExp("__searchable__.*"+e+"$").test(n)}))&&r.push(n);r.forEach((function(e){delete a[e]})),localStorage.setItem(e,JSON.stringify(a))}},setEnv:(e,t)=>{Qt[e]=t},setEnvs:e=>{t.map(e,((e,t)=>{Qt[t]=e}))},setRootUrl:function(e){t.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)},setSteedosAuth:e=>{Object.assign(R,e)},setUISchemaFunction:function(e){Pt=e},setVariable:function(e,t,a,n){if(t in(e=e||{}))e[t]=a;else{var r=!1!==n?fa(t):[t];for(n=r.pop();r.length;){var i=r.shift();e=q(e[i])?e[i]=ma({},e[i]):(Array.isArray(e[i])?e[i]=e[i].concat():(e[i],e[i]={}),e[i])}e[n]=a}},standardButtonsTodo:gt}),_a=function(e,t,a){return d(void 0,void 0,void 0,(function(){var n,r,i,l,o,s,d,u,p,m,f,b;return c(this,(function(c){switch(c.label){case 0:n=e.reference_to,r="".concat(e.name,"__left"),i=[],c.label=1;case 1:c.trys.push([1,6,7,8]),l=function(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.")}(n),o=l.next(),c.label=2;case 2:return o.done?[3,5]:[4,Rt(s=o.value,!1)];case 3:d=c.sent(),i.push({label:d.label,value:s,icon:d.icon}),c.label=4;case 4:return o=l.next(),[3,2];case 5:return[3,8];case 6:return u=c.sent(),f={error:u},[3,8];case 7:try{o&&!o.done&&(b=l.return)&&b.call(l)}finally{if(f)throw f.error}return[7];case 8:return t&&t.o||(t={o:i[0].value,ids:[]}),[4,Rt(t.o,!1)];case 9:return p=c.sent(),m=null,1!=p.enable_enhanced_lookup?[3,11]:[4,He(Object.assign({},e,{reference_to:t.o}),!1,a)];case 10:return m=c.sent(),[3,13];case 11:return[4,Me(Object.assign({},e,{reference_to:t.o}),!1,a)];case 12:m=c.sent(),c.label=13;case 13:return[2,{type:"input-group",label:!1,body:[{type:"select",name:r,options:i,value:"".concat(t.o)},Object.assign({},m,{name:"".concat(e.name,"__right"),id:"right:".concat(e.name),inputClassName:"w-full",value:"".concat(t.ids)})]}]}}))}))},va=function(e,n,r){return i.default.createElement(a.Menu,{items:t.map(n,(function(t){return t.className=t.className,{key:t.name,className:"p-0 min-w-32",label:i.default.createElement(i.default.Fragment,null,e("body",t,r))}}))})};exports.AmisLib=ga,exports.AmisObjectButton=function(a){var n=a.objectName,r=a.name,l=a.data,o=a.render,s=a.className,d=a.listViewId,c=u(e.useState(),2),p=c[0],m=c[1],f=u(e.useState(),2),b=f[0],y=f[1],h=l.appId,g=l.formFactor;e.useEffect((function(){n&&Rt(n,!1).then((function(e){Ft(n,r,{objectName:n,recordId:l._id,appId:h,uiSchema:e,formFactor:g,router:null,listViewId:l.listViewId,props:{className:"antd-Button antd-Button--link"}}).then((function(t){m(t),y(e)}))}))}),[n,r]);if(!p)return i.default.createElement(i.default.Fragment,null,i.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"},i.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"===p.type){var _=p.amis_schema,v=t.isString(_)?JSON.parse(_):_;v&&v.body.length>0&&delete v.body[0].visibleOn;var w=Object.assign(l,{recordId:l._id,objectName:n,listViewId:l.listViewId,app_id:h,className:s});return v&&(v.data=t.defaultsDeep({},v.data,w)),i.default.createElement(i.default.Fragment,null,p&&_?i.default.createElement(i.default.Fragment,null,o("body",v,{data:w,onChange:function(){console.log("change....")}})):null)}return i.default.createElement("button",{onClick:function(){var e=l.dataComponentId;return Ot(p,{objectName:n,listViewId:d||l.listViewId,uiSchema:b,record:l,recordId:l._id,appId:h,formFactor:g,scope:window.SteedosUI.getRef(e)})},className:"antd-Button antd-Button--default antd-Button--size-default ".concat(s||"")},p.label)},exports.AmisObjectFieldLookup=function(a){var n=a.field;a.readonly;var r=a.ctx,l=a.dispatchEvent,o=a.render;a.renderFormItems;var s=a.onChange,p=a.data,m=a.formItemValue,f=u(e.useState(),2),b=f[0],y=f[1],h=u(e.useState(m),2),g=h[0],_=h[1];e.useEffect((function(){_(m)}),[m]),e.useEffect((function(){_a(n,g,r).then((function(e){y(e)}))}),[g]);return i.default.createElement("div",{className:"amis-object-field-lookup"},b?i.default.createElement("div",{className:"container"},o("body",b,{onChange:function(e,a){return d(void 0,void 0,void 0,(function(){var n,r;return c(this,(function(i){switch(i.label){case 0:return n=Object.assign({o:a.endsWith("_left")?e:null==g?void 0:g.o,ids:a.endsWith("_right")?e:null==g?void 0:g.ids}),a.endsWith("_left")&&(n.ids=[]),t.isString(n.ids)&&(n.ids=t.compact(n.ids.split(","))),[4,l("change",ba(p,{fieldValue:n}))];case 1:return(null==(r=i.sent())?void 0:r.prevented)?[2]:[2,s(n)]}}))}))}})):null)},exports.AmisObjectForm=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s,d,u,p;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.recordId,r=e.mode,i=e.layout,l=e.labelAlign,o=e.appId,s=e.objectApiName||"space_users",d=t.difference(t.keys(a),["type","mode","layout"]),u=t.pick(e,d),p={recordId:n,mode:r,layout:"vertical"===i?"normal":i,labelAlign:l,defaults:{formSchema:u},appId:o},"edit"!==r?[3,2]:[4,Jt(s,p)];case 1:case 3:return[2,c.sent().amisSchema];case 2:return n||(p.formInitProps={queryOptions:"top: 1"}),[4,Ut(s,n,p)]}}))}))},exports.AmisObjectListView=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F,j,O,x,I,k;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.top,r=e.perPage,i=e.showHeader,l=e.headerSchema,o=e.ctx,d=e.data,u=e.defaultData,p=e.className,m=void 0===p?"":p,f=e.tableClassName,b=location.pathname.match(/grid\/(\w+)/),y=b&&b[1],h=y||e.listName,g={},_=e.objectApiName||"space_users",o&&o.defaults||(v=t.difference(t.keys(a),["type","showHeader","id"]),(w=t.pick(e,v)).className=f,g={listSchema:w}),l&&(g.headerSchema=l),($=o&&o.setDataToComponentId)||($="service_listview_".concat(_)),N=Object.assign({},d,u),S=(null==o?void 0:o.listViewId)||N.listViewId,[4,Ht(N.appId,_,h,s(s({top:n,perPage:r,showHeader:i,defaults:g},o),{listViewId:S,setDataToComponentId:$}))];case 1:return F=c.sent(),j=F.amisSchema,O=F.uiSchema,x=[j],F.isCustomAmisSchema&&(I=xt(O),x.unshift({type:"wrapper",body:[I],className:"bg-gray-100 pb-0 sm:rounded-tl sm:rounded-tr"})),k=Object.assign({},j.data,N,{listName:h,uiSchema:O,recordPermissions:O.permissions,_id:null}),[2,{type:"service",body:x,className:"steedos-listview p-0 sm:border bg-white sm:shadow sm:rounded border-slate-300 border-solid\t".concat(m),data:k}]}}))}))},exports.AmisObjectTable=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,d,u,p,m,f,b,y,h,g,_,v,w,$,N,S,F;return c(this,(function(c){switch(c.label){case 0:return a=e.$schema,n=e.filters,r=e.amisCondition,i=e.top,l=e.headerSchema,o=e.globalFilter,d=e.sortField,u=e.sortOrder,p=e.extraColumns,m=e.ctx,f=e.data,b=e.defaultData,y=e.columns||[],h={},g=e.objectApiName||"space_users",m&&m.defaults||(_=t.difference(t.keys(a),["type","objectApiName","columns","extraColumns","id"]),v=t.pick(e,_),h={listSchema:v}),l&&(h.headerSchema=l),(w=m&&m.setDataToComponentId)||(w="service_listview_".concat(g)),$=r&&oa(r),N=n||$,[4,Mt((S=Object.assign({},f,b)).appId,g,y,s(s({filters:N,top:i,sortField:d,sortOrder:u,extraColumns:p,globalFilter:o,defaults:h},m),{setDataToComponentId:w}))];case 1:return(F=c.sent().amisSchema).data=Object.assign({},F.data,S),[2,F]}}))}))},exports.AmisProvider=function(e){return d(void 0,void 0,void 0,(function(){return c(this,(function(t){return console.log("AmisProvider props",e),[2,{}]}))}))},exports.AmisRecordDetail=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i;return c(this,(function(l){switch(l.label){case 0:return e.$schema,t=e.appId,a=e.objectApiName,n=void 0===a?"space_users":a,r=e.onEvent,[4,Yt(n,t)];case 1:return i=l.sent().amisSchema,[2,Object.assign({},i,{onEvent:r})]}}))}))},exports.AmisRecordDetailHeader=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n;return c(this,(function(r){switch(r.label){case 0:return e.$schema,t=e.recordId,a=e.onEvent,[4,Kt(e.objectApiName||"space_users",t)];case 1:return n=r.sent().amisSchema,[2,Object.assign({},n,{onEvent:a})]}}))}))},exports.AmisRecordDetailRelatedList=function(e){return d(void 0,void 0,void 0,(function(){var t,a,n,r,i,l,o;return c(this,(function(s){switch(s.label){case 0:return t=e.objectApiName,a=e.recordId,n=e.relatedObjectApiName,e.data,r=e.relatedKey,i=e.top,l=e.hiddenEmptyTable,o=e.appId,t&&n?[4,Xt(t,a,n,r,i,l,o)]:[2,{type:"alert",body:"缺少父级对象或相关列表对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return[2,s.sent().amisSchema]}}))}))},exports.AmisRecordDetailRelatedLists=function(e){return d(void 0,void 0,void 0,(function(){var a,n,r,i,l,o,s;return c(this,(function(d){switch(d.label){case 0:return a=e.objectApiName,n=e.recordId,r=e.appId,e.data,i=e.formFactor,l=e.top,o=void 0===l?5:l,a?[4,Wt(r,a,n,i)]:[2,{type:"alert",body:"缺少父级对象",level:"warning",showIcon:!0,className:"mb-3"}];case 1:return s=d.sent(),[2,{type:"service",body:t.map(s,(function(e){return{type:"steedos-object-related-listview",objectApiName:a,recordId:n,relatedObjectApiName:e.object_name,foreign_key:e.foreign_key,relatedKey:e.foreign_key,top:o,hiddenEmptyTable:!0,appId:r}}))}]}}))}))},exports.AmisSelectUser=function(e){return d(void 0,void 0,void 0,(function(){var t,a;return c(this,(function(n){switch(n.label){case 0:return console.log("AmisSelectUser props",e),t=e.$schema,e.data,[4,Je({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,[2,a]}}))}))},exports.SteedosDropdownButton=function(n){var r=n.data,l=n.render,o=n.className,s=n.buttons,d=n.placement,c=n.onOpenApi;n.store;var p=n.env,m=u(e.useState(i.default.createElement(i.default.Fragment,null)),2),f=m[0],b=m[1];return i.default.createElement(a.Dropdown,{overlay:f,trigger:["click"],onOpenChange:function(e){if(e)if(c)try{p.fetcher(c,ba(r,{})).then((function(e){var a=(null==e?void 0:e.hasOwnProperty("ok"))?e.data:e;b(va(l,s,{data:ba(r,t.defaultsDeep(a,r))}))})).catch((function(e){console.error(e)}))}catch(e){console.error(e)}else b(va(l,s,{data:r}))},placement:d},i.default.createElement("button",{className:"slds-button slds-button_icon slds-button_icon-border-filled slds-button_icon-x-small ".concat(o||"")},i.default.createElement("svg",{fill:"none",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},i.default.createElement("path",{d:"m7 10 5 5 5-5z",fill:"currentColor"}))))};
|
|
2
2
|
//# sourceMappingURL=amis-object.cjs.js.map
|