@steedos-widgets/amis-lib 0.0.1

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.
Files changed (34) hide show
  1. package/README.md +23 -0
  2. package/dist/amis-lib.umd.js +314 -0
  3. package/dist/amis-lib.umd.min.js +314 -0
  4. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  5. package/dist/index.cjs.js +315 -0
  6. package/dist/index.cjs.js.map +1 -0
  7. package/dist/index.d.ts +9 -0
  8. package/dist/index.esm.js +315 -0
  9. package/dist/index.esm.js.map +1 -0
  10. package/dist/types/config/index.d.ts +8 -0
  11. package/dist/types/index.d.ts +9 -0
  12. package/dist/types/lib/amis.d.ts +9 -0
  13. package/dist/types/lib/apps.d.ts +2 -0
  14. package/dist/types/lib/buttons.d.ts +11 -0
  15. package/dist/types/lib/converter/amis/api.d.ts +54 -0
  16. package/dist/types/lib/converter/amis/fields/index.d.ts +54 -0
  17. package/dist/types/lib/converter/amis/fields/list.d.ts +43 -0
  18. package/dist/types/lib/converter/amis/fields/lookup.d.ts +185 -0
  19. package/dist/types/lib/converter/amis/fields/sections.d.ts +22 -0
  20. package/dist/types/lib/converter/amis/fields/table.d.ts +34 -0
  21. package/dist/types/lib/converter/amis/form.d.ts +22 -0
  22. package/dist/types/lib/converter/amis/graphql.d.ts +22 -0
  23. package/dist/types/lib/converter/amis/index.d.ts +320 -0
  24. package/dist/types/lib/converter/amis/tpl.d.ts +11 -0
  25. package/dist/types/lib/converter/amis/util.d.ts +1 -0
  26. package/dist/types/lib/expression.d.ts +2 -0
  27. package/dist/types/lib/notification.d.ts +2 -0
  28. package/dist/types/lib/objects.d.ts +709 -0
  29. package/dist/types/lib/page.d.ts +1 -0
  30. package/dist/types/lib/public.env.d.ts +4 -0
  31. package/dist/types/lib/record.d.ts +3 -0
  32. package/dist/types/lib/router.d.ts +52 -0
  33. package/dist/types/lib/steedos.client.d.ts +13 -0
  34. package/package.json +62 -0
package/README.md ADDED
@@ -0,0 +1,23 @@
1
+ <!--
2
+ * @Author: baozhoutao@steedos.com
3
+ * @Date: 2022-09-01 09:11:13
4
+ * @LastEditors: baozhoutao@steedos.com
5
+ * @LastEditTime: 2022-09-05 17:53:19
6
+ * @Description:
7
+ -->
8
+ # Amis-lib
9
+
10
+ ## 获取表单页面
11
+ getFormSchema
12
+
13
+ ## 获取只读页面
14
+ getViewSchema
15
+
16
+ ## 获取列表视图
17
+ getListSchema
18
+
19
+ ## 获取所有相关表
20
+ getObjectRelatedList
21
+
22
+ ## 获取单个相关表
23
+ getObjectRelated
@@ -0,0 +1,314 @@
1
+ !function(e,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports,require("lodash")):"function"==typeof define&&define.amd?define(["exports","lodash"],a):a((e="undefined"!=typeof globalThis?globalThis:e||self)["amis-lib"]={},e._$1)}(this,function(e,s){window;function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function B(t){var i;return t&&t.__esModule?t:(i=Object.create(null),t&&Object.keys(t).forEach(function(e){var a;"default"!==e&&(a=Object.getOwnPropertyDescriptor(t,e),Object.defineProperty(i,e,a.get?a:{enumerable:!0,get:function(){return t[e]}}))}),i.default=t,Object.freeze(i))}var y=B(s),c=q(s);const a={},i=()=>Builder.settings.context||Builder.settings;async function l(e,a={credentials:"include"}){const t={"Content-Type":"application/json"};var i=n();if(!i)throw new Error(401);t.Authorization=i,a.headers=Object.assign({},t,a.headers);const r=await fetch(""+p()+e,a);if(401===r.status)throw new Error(401);i=await r.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function o(){try{const a=i().tenantId;var e;return(window.location.search&&!a&&(e=new URLSearchParams(window.location.search),a=e.get("X-Space-Id")),a)?a:null}catch(e){console.error(e)}}function d(){try{var e=i().authToken;return e?e:null}catch(e){console.error(e)}}function n(){try{var e=i(),a=e.tenantId,t=e.authToken;return a&&t?`Bearer ${a},`+t:null}catch(e){console.error(e)}}function u(e){return""+p()+e}function p(e){var a=i();return a.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e}const t=()=>s.cloneDeep(a);async function m(e,a){0!=a&&(a=!0);let t=["_id"],i=[],r=[];for(const n of r=y.isArray(e)?e:y.values(e)){var l;n.name.indexOf(".")<0&&(a&&("lookup"==n.type||"master_detail"==n.type)&&n.reference_to?(l=(await j(n.reference_to)).NAME_FIELD_KEY||"name",t.push(`${n.name}:${n.name}__expand{_id,${l}${n.reference_to_field?","+n.reference_to_field:""}}`)):t.push(n.alias?n.alias+":"+n.name:n.name),"date"!==n.type&&"datetime"!=n.type&&"boolean"!=n.type||t.push(""+n.name),"date"!==n.type&&"datetime"!=n.type&&"boolean"!=n.type&&"select"!=n.type&&"file"!=n.type||i.push(""+n.name))}return i=y.uniq(i),t=y.uniq(t),0<i.length?`${t.join(",")},_display{${i.join(",")}}`:""+t.join(" ")}async function r(e,a,t,i){let r="",l=(a&&(r=`(filters:["${e.idFieldName}", "=", "${a}"])`),"data");return i&&(i.alias&&(l=i.alias),i.filters&&(r=`(filters:${i.filters})`),i.queryOptions&&(r=`(${i.queryOptions})`)),{query:`{${l}:${e.name}${r}{${await m(t)}}}`}}function L(e){return`
2
+ const formData = api.data.$;
3
+ for (key in formData){
4
+ // image、select等字段清空值后保存的空字符串转换为null。
5
+ if(formData[key] === ''){
6
+ formData[key] = null;
7
+ }
8
+ }
9
+ const objectName = api.data.objectName;
10
+ const fieldsName = Object.keys(formData);
11
+ delete formData.created;
12
+ delete formData.created_by;
13
+ delete formData.modified;
14
+ delete formData.modified_by;
15
+ delete formData._display;
16
+ ${function(e){let a=[],t={};return e.forEach(e=>{"image"===e.type&&(a.push(e.name),t[e.name]={name:e.name,multiple:e.multiple})}),a.length?`
17
+ let imgFieldsKeys = ${JSON.stringify(a)};
18
+ let imgFields = ${JSON.stringify(t)};
19
+ imgFieldsKeys.forEach((item)=>{
20
+ let imgFieldValue = formData[item];
21
+ if(imgFieldValue && imgFieldValue.length){
22
+ // 因为表单初始化接口的接收适配器中为image字段值添加了url前缀(为了字段编辑时正常显示图片),所以保存时移除(为了字段值保存时正常保存id,而不是url)。
23
+ if(imgFields[item].multiple){
24
+ if(imgFieldValue instanceof Array){
25
+ formData[item] = imgFieldValue.map((value)=>{
26
+ let itemValue = value?.split('/');
27
+ return itemValue[itemValue.length - 1];
28
+ });
29
+ }
30
+ }else{
31
+ let imgValue = imgFieldValue.split('/');
32
+ formData[item] = imgValue[imgValue.length - 1];
33
+ }
34
+ }
35
+ })
36
+ `:""}(e)}
37
+ ${function(e){let a=[],t={};return e.forEach(e=>{"file"===e.type&&(a.push(e.name),t[e.name]={name:e.name,multiple:e.multiple})}),a.length?`
38
+ let fileFieldsKeys = ${JSON.stringify(a)};
39
+ let fileFields = ${JSON.stringify(t)};
40
+ fileFieldsKeys.forEach((item)=>{
41
+ let fileFieldValue = formData[item];
42
+ if(fileFieldValue){
43
+ // 因为表单初始化接口的接收适配器中为file字段值重写了值及格式(为了字段编辑时正常显示附件名、点击附件名正常下载),所以保存时还原(为了字段值保存时正常保存id)。
44
+ if(fileFields[item].multiple){
45
+ if(fileFieldValue instanceof Array && fileFieldValue.length){
46
+ formData[item] = fileFieldValue.map((value)=>{
47
+ if(typeof value === 'object'){
48
+ return value.value;
49
+ }else{
50
+ return value;
51
+ }
52
+ });
53
+ }
54
+ }else{
55
+ formData[item] = typeof fileFieldValue === 'object' ? fileFieldValue.value : fileFieldValue;
56
+ }
57
+ }
58
+ })
59
+ `:""}(e)}
60
+ let query = \`mutation{record: \${objectName}__insert(doc: {__saveData}){_id}}\`;
61
+ if(formData.recordId && formData.recordId !='new'){
62
+ query = \`mutation{record: \${objectName}__update(id: "\${formData._id}", doc: {__saveData}){_id}}\`;
63
+ };
64
+ delete formData._id;
65
+ let __saveData = JSON.stringify(JSON.stringify(formData));
66
+ `}async function f(e,a,t,i){var r=i.limit||10;let l=`(top: ${r})`,n=(a&&(l=`(filters:["_id", "=", "${a}"], top: ${r})`),"data");return i&&(i.alias&&(n=i.alias),i.filters&&(l=`(filters:${i.filters})`),i.queryOptions&&(l=`(${i.queryOptions})`)),{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${n}:${e.name}${l}{${await m(t,i.expand)}},count:${e.name}__count(filters:{__filters})}`}}function g(e){if(!e)return"${context.rootUrl}/graphql"}const b={getAppPath({formFactor:e,appId:a}){return`/${"SMALL"===e?"mapp":"app"}/`+a},getPagePath(){},getObjectListViewPath({formFactor:e,appId:a,objectName:t,listViewName:i}){return`/${"SMALL"===e?"mapp":"app"}/${a}/${t}/grid/`+i},getObjectDetailPath({formFactor:e,appId:a,objectName:t,recordId:i}){return`/${"SMALL"===e?"mapp":"app"}/${a}/${t}/view/`+i},getObjectRelatedViewPath({formFactor:e,appId:a,masterObjectName:t,masterRecordId:i,objectName:r,foreignKey:l}){return`/${"SMALL"===e?"mapp":"app"}/${a}/${t}/${i}/${r}/grid?related_field_name=`+l}};function h(e){return`<div>\${_display.${e.name}}</div>`}function $(e){return`<div>\${_display.${e.name}}</div>`}function v(e){return`<div>\${_display.${e.name}}</div>`}function w(e,a){var t;return e.reference_to?e.multiple?(t=b.getObjectDetailPath({formFactor:a.formFactor,appId:a.appId,objectName:e.reference_to,recordId:"<%=item._id%>"}),`
67
+ <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${t}"><%=item.name%></a> <% }); %><% } %>
68
+ `):`<a href="${b.getObjectDetailPath({formFactor:a.formFactor,appId:a.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.name}</a>`:v(e)}function P(e){return`<% if (data.${e.name}) { %>
69
+ <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">
70
+ <span class="slds-assistive-text"><%=data._display.${e.name}%></span>
71
+ </span>
72
+ <% } %>`}function U(e){return`<% if (data.${e.name}) { %>
73
+ <span>······</span>
74
+ <% } %>`}function F(e,a){if(e.is_name||e.name===a.labelFieldName)return t=e,"cms_files"===(i=a).objectName?`<a href="\${context.rootUrl}/api/files/files/\${versions[0]}?download=true">\${${t.name}}</a>`:`<a href="${b.getObjectDetailPath({formFactor:i.formFactor,appId:i.appId,objectName:i.tabId,recordId:`\${${i.idFieldName}}`})}">\${${t.name}}</a>`;var t,i;switch(e.type){case"password":return U(e);case"boolean":return P(e);case"select":return v(e);case"date":return h(e);case"datetime":return $(e);case"lookup":case"master_detail":return w(e,a)}}var S={newRecordMode:"modal",editRecordMode:"modal",perPage:20};function Y(e,a){return{mode:"table",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:{perPage:(a=a||{}).top||S.perPage},columns:function(e,i){const r=[{name:"_index",type:"text",width:32,placeholder:""}];return y.each(e,function(a){if(!a.is_name&&a.name!==i.labelFieldName||"cms_files"!==i.objectName){var t=F(a,i);let e=t?"tpl":"text";a.hidden||a.extra||r.push({name:a.name,label:a.label,sortable:a.sortable,width:a.width,type:e,tpl:t,toggled:a.toggled})}else r.push({type:"button",label:`\${${a.name}}`,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"})}),r}(e,a),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${a.labelFieldName}}`,autoFillHeight:!1}}async function J(e,a,t){const i=[];let{globalFilter:r,filter:l}=t;y.isArray(l)&&(l=y.map(l,function(e){return e.operation?[e.field,e.operation,e.value]:e})),y.each(a,function(e){e.searchable&&i.push(e.name)});t=e.key_field||"_id";const n=await async function(e,a,t,i){e=await f(e,a,t,i);return{method:"post",url:g(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}(e,null,a,{alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});return n.data.$term="$term",n.data.$self="$$",n.data.filter="$filter",n.requestAdaptor=`
75
+ const selfData = JSON.parse(JSON.stringify(api.data.$self));
76
+ ${r?`var filters = ${JSON.stringify(r)};`:"var filters = [];"}
77
+ if(_.isEmpty(filters)){
78
+ filters = api.data.filter || [${JSON.stringify(l)}];
79
+ }else{
80
+ filters = [filters, 'and', api.data.filter || [${JSON.stringify(l)}]]
81
+ }
82
+ var pageSize = api.data.pageSize || 10;
83
+ var pageNo = api.data.pageNo || 1;
84
+ var skip = (pageNo - 1) * pageSize;
85
+ var orderBy = api.data.orderBy || '';
86
+ var orderDir = api.data.orderDir || '';
87
+ var sort = orderBy + ' ' + orderDir;
88
+ var allowSearchFields = ${JSON.stringify(i)};
89
+ if(api.data.$term){
90
+ filters = [["name", "contains", "'+ api.data.$term +'"]];
91
+ }else if(selfData.op === 'loadOptions' && selfData.value){
92
+ filters = [["${t.name}", "=", selfData.value]];
93
+ }
94
+
95
+ var searchableFilter = [];
96
+ _.each(selfData, (value, key)=>{
97
+ if(!_.isEmpty(value) || _.isBoolean(value)){
98
+ if(_.startsWith(key, '__searchable__between__')){
99
+ searchableFilter.push([\`\${key.replace("__searchable__between__", "")}\`, "between", value])
100
+ }else if(_.startsWith(key, '__searchable__')){
101
+ if(_.isString(value)){
102
+ searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "contains", value])
103
+ }else{
104
+ searchableFilter.push([\`\${key.replace("__searchable__", "")}\`, "=", value])
105
+ }
106
+ }
107
+ }
108
+ });
109
+
110
+ if(searchableFilter.length > 0){
111
+ if(filters.length > 0 ){
112
+ filters = [filters, 'and', searchableFilter];
113
+ }else{
114
+ searchableFilter = filters;
115
+ }
116
+ }
117
+
118
+ if(allowSearchFields){
119
+ allowSearchFields.forEach(function(key){
120
+ const keyValue = selfData[key];
121
+ if(keyValue){
122
+ filters.push([key, "contains", keyValue]);
123
+ }
124
+ })
125
+ }
126
+
127
+ if(selfData.__keywords && allowSearchFields){
128
+ const keywordsFilters = [];
129
+ allowSearchFields.forEach(function(key, index){
130
+ const keyValue = selfData.__keywords;
131
+ if(keyValue){
132
+ keywordsFilters.push([key, "contains", keyValue]);
133
+ if(index < allowSearchFields.length - 1){
134
+ keywordsFilters.push('or');
135
+ }
136
+ }
137
+ })
138
+ filters.push(keywordsFilters);
139
+ }
140
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
141
+ return api;
142
+ `,n.adaptor=`
143
+ _.each(payload.data.rows, function(item, index){
144
+ item._index = index + 1;
145
+ })
146
+ window.postMessage(Object.assign({type: "listview.loaded"}), "*")
147
+ return payload;
148
+ `,n}function R(e,i){const r=[];return _.each(e,function(e){var a=F(e,i);let t=a?"tpl":"text";e.hidden||e.extra||r.push({name:e.name,label:e.label,sortable:e.sortable,width:e.width,type:t,tpl:a,toggled:e.toggled})}),{type:"hbox",columns:r}}function z(e){return{perPage:e.top||10}}const k=async t=>{let i=t.reference_to;if(i){"users"===i&&(i="space_users",t.reference_to_field="user");var r=await j(i);let e=null,a=t.reference_to_field;return a=a||r.idFieldName||"_id",e="_id"===a?{name:"_id",label:"ID",type:"text",toggled:!1}:r.fields[a]||{name:a},{objectName:i,valueField:e,labelField:r.fields[r.NAME_FIELD_KEY||"name"]}}};async function C(i,r,l){var n=await k(i);if(n){var o,s=await j(n.objectName);const d=[];let e=0;const c=[],u=[],p=(y.each(s.fields,(e,a)=>{"_id"==a||e.hidden||(y.has(e,"name")||(e.name=a),u.push(e))}),y.each(y.sortBy(u,"sort_no"),function(a){e<5&&(y.find(d,function(e){return e.name===a.name})||(e++,d.push(a),a.searchable&&c.push(a.name)))}),{[n.labelField.name]:n.labelField,[n.valueField.name]:n.valueField}),m=(y.each(d,e=>{e.hidden||(p[e.name]=e)}),await K({name:n.objectName},null,p,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'}));m.data.$term="$term",m.data.$self="$$",m.requestAdaptor=`
149
+ const selfData = JSON.parse(JSON.stringify(api.data.$self));
150
+ var filters = [];
151
+ var pageSize = api.data.pageSize || 10;
152
+ var pageNo = api.data.pageNo || 1;
153
+ var skip = (pageNo - 1) * pageSize;
154
+ var orderBy = api.data.orderBy || '';
155
+ var orderDir = api.data.orderDir || '';
156
+ var sort = orderBy + ' ' + orderDir;
157
+ var allowSearchFields = ${JSON.stringify(c)};
158
+ if(api.data.$term){
159
+ filters = [["name", "contains", "'+ api.data.$term +'"]];
160
+ }else if(selfData.op === 'loadOptions' && selfData.value){
161
+ filters = [["${n.valueField.name}", "=", selfData.value]];
162
+ }
163
+ if(allowSearchFields){
164
+ allowSearchFields.forEach(function(key){
165
+ const keyValue = selfData[key];
166
+ if(keyValue){
167
+ filters.push([key, "contains", keyValue]);
168
+ }
169
+ })
170
+ }
171
+ api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());
172
+ return api;
173
+ `;let a=20,t=(s.paging&&!1===s.paging.enabled&&(a=1e3),null);t="SMALL"===l.formFactor?(s=d,{mode:"list",name:"thelist",draggable:!(o={top:a,...l,actions:!1}),headerToolbar:["reload"],defaultParams:z(o),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...R(s,o).columns],actions:!1===o.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:b.getObjectDetailPath({formFactor:o.formFactor,appId:o.appId,objectName:o.tabId,recordId:"${_id}"})}]}}):Y(d,{top:a,...l});const f={type:O("picker",r),labelField:n.labelField.name,valueField:n.valueField.name,modalMode:"dialog",source:m,size:"lg",pickerSchema:t,joinValues:!1,extractValue:!0};return i.multiple&&(f.multiple=!0,f.extractValue=!0),r&&(f.tpl=w(i,l)),f}}async function H(e,a,t){var i=await k(e);let r,l=((r=i?await K({name:i.objectName},null,{[i.labelField.name]:Object.assign({},i.labelField,{alias:"label"}),[i.valueField.name]:Object.assign({},i.valueField,{alias:"value"})},{expand:!1,alias:"options",queryOptions:"filters: {__filters}, top: {__top}"}):{method:"post",url:g(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"}}).data.$term="$term",r.data.$value=`$${e.name}.`+(i?i.valueField.name:"_id"),y.each(e.depend_on,function(e){r.data[e]="$"+e}),r.data.$="$$",r.data.rfield="${object_name}",r.requestAdaptor=`
174
+ var filters = '[]';
175
+ var top = 10;
176
+ if(api.data.$term){
177
+ filters = '["name", "contains", "'+ api.data.$term +'"]';
178
+ }else if(api.data.$value){
179
+ filters = '["_id", "=", "'+ api.data.$value +'"]';
180
+ }
181
+ api.data.query = api.data.query.replace(/{__filters}/g, filters).replace('{__top}', top);
182
+ return api;
183
+ `,i?i.labelField.name:""),n=i?i.valueField.name:"";e._optionsFunction&&(r.adaptor=`
184
+ payload.data.options = eval(${e._optionsFunction})(api.data);
185
+ return payload;
186
+ `,l="label",n="value");const o={type:O("select",a),joinValues:!1,extractValue:!0,labelField:l,valueField:n,autoComplete:r};return!y.has(e,"defaultValue")||y.isString(e.defaultValue)&&e.defaultValue.startsWith("{")||(o.value=e.defaultValue),e.multiple&&(o.multiple=!0,o.extractValue=!0),a&&(o.tpl=w(e,t)),o}async function K(e,a,t,i){e=await f(e,a,t,i);return{method:"post",url:g(),data:e,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function W(e,a,t){var i=await k(e);return(i&&1==(await j(i.objectName)).enable_enhanced_lookup?C:H)(e,a,t)}const x=["created","created_by","modified","modified_by"],Z=["text","date","file","image","datetime","time","number","currency","percent","password","url","email"];function O(e,a){return a?y.includes(["text"],e)?"static-"+e:"static":y.includes(Z,e)?"input-"+e:e}function G(a,e){const t=Object.assign({subFields:[]},a);e=y.filter(e,function(e){return e.name.startsWith(a.name+".")});return t.subFields=e,t}function X(a,e){const t=Object.assign({subFields:[]},a);e=y.filter(e,function(e){return e.name.startsWith(a.name+".")});return t.subFields=e,t}async function N(r,l,e){let a=null;if(!y.includes(x,r.name)||1==e.showSystemFields){var t,n={name:e.fieldNamePrefix?""+e.fieldNamePrefix+r.name:r.name,label:r.label,labelRemark:r.inlineHelpText,required:(y.has(e,"required")?e:r).required};let i={};switch(r.type){case"text":i.type=O("text",l);break;case"textarea":i.type=O("textarea",l),i.tpl=`<b><%=data.${r.name}%></b>`;break;case"html":i={type:"editor",language:"html",value:r.defaultValue||""};break;case"select":i={type:O("select",l),joinValues:!1,options:function(e){const a=e.data_type||"text",t=[];return y.each(e.options,e=>{switch(a){case"number":t.push({label:e.label,value:Number(e.value)});break;case"text":t.push({label:e.label,value:String(e.value)});break;case"boolean":t.push({label:e.label,value:"false"!==e.value})}}),t}(r),extractValue:!0,clearable:!0,labelField:"label",valueField:"value",tpl:l?v(r):null},!y.has(r,"defaultValue")||y.isString(r.defaultValue)&&r.defaultValue.startsWith("{")||(t=r.data_type||"text",null!=r.defaultValue&&("text"===t?i.value=String(r.defaultValue):"number"===t?i.value=Number(r.defaultValue):"boolean"===t&&(i.value="false"!==r.defaultValue))),r.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:O("checkbox",l),option:r.inlineHelpText,tpl:l?P(r):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:l?h(r):null};break;case"date":i={type:O("date",l),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:l?h(r):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:l?$(r):null,utc:!0};break;case"datetime":i={type:O("datetime",l),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSS[Z]",tpl:l?$(r):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:l?$(r):null};break;case"time":i={type:O("time",l),inputFormat:"HH:mm",timeFormat:"1970-01-01THH:mm:00.000[Z]",format:"1970-01-01THH:mm:00.000[Z]",tpl:l?$(r):null};break;case"number":case"currency":i={type:O("number",l),min:r.min,max:r.max,precision:r.scale};break;case"input-array":i=Object.assign({},r,n);break;case"input-range":i={type:"input-range",min:r.min,max:r.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i={type:O("number",l),min:r.min,max:r.max,precision:r.scale};break;case"password":i={type:O("password",l),tpl:l?U(r):null};break;case"lookup":case"master_detail":i=await W(r,l,e);break;case"autonumber":break;case"url":i={type:O("url",l)};break;case"email":i={type:O("email",l)};break;case"image":a=u("/api/files/images/"),i={type:O("image",l),receiver:{method:"post",url:"${context.rootUrl}/s3/images",adaptor:`
187
+ var rootUrl = ${JSON.stringify(a)};
188
+ payload = {
189
+ status: response.status == 200 ? 0 : response.status,
190
+ msg: response.statusText,
191
+ data: {
192
+ value: payload._id,
193
+ filename: payload.original.name,
194
+ url: rootUrl + payload._id,
195
+ }
196
+ }
197
+ return payload;
198
+ `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},r.multiple&&(i.multiple=!0,i.joinValues=!1,i.extractValue=!0);break;case"file":a=u("/api/files/files/"),i={type:O("file",l),receiver:{method:"post",url:"${context.rootUrl}/s3/files",adaptor:`
199
+ var rootUrl = ${JSON.stringify(a)};
200
+ payload = {
201
+ status: response.status == 200 ? 0 : response.status,
202
+ msg: response.statusText,
203
+ data: {
204
+ value: payload._id,
205
+ name: payload.original.name,
206
+ url: rootUrl + payload._id,
207
+ }
208
+ }
209
+ return payload;
210
+ `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},r.multiple&&(i.multiple=!0,i.joinValues=!1,i.extractValue=!0);break;case"formula":case"summary":break;case"code":i={type:"editor",language:r.language,value:r.defaultValue||""};break;case"toggle":i={type:"switch"};break;case"grid":i={type:"input-table",strictMode:!1,affixHeader:!1,editable:!l,addable:!l,removable:!l,draggable:!l,columns:[]},y.each(r.subFields,function(e){var a=e.name.replace(r.name+".$.","").replace(r.name+".","");const t=N(Object.assign({},e,{name:a}),l);t&&(delete t.name,delete t.label,i.columns.push({name:a,label:e.label,quickEdit:!l&&t}))})}return y.isEmpty(i)?void 0:(r.is_wide?i.className="col-span-2 m-1":i.className="m-1",l&&(i.className=i.className+" slds-form-element_readonly"),i.labelClassName="text-left",l&&(i.quickEdit=!1),r.visible_on&&(i.visibleOn="$"+r.visible_on.substring(1,r.visible_on.length-1).replace(/formData./g,"")),Object.assign({},n,i))}}const Q=100;async function ee(e,a,t){return{method:"post",url:g()+"?rf="+(new Date).getTime(),cache:Q,adaptor:function(e){let t="";return e=y.filter(e,function(e){return e.name.indexOf(".")<0&&("select"==e.type&&e.options||("lookup"==e.type||"master_detail"==e.type)&&!e.reference_to)}),y.each(e,function(e){var a;y.includes(x,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.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;`)}),`
211
+ if(payload.data.data){
212
+ var data = payload.data.data[0];
213
+ ${t}
214
+ payload.data = data;
215
+ window.postMessage(Object.assign({type: "record.loaded"}, {record: data}), "*")
216
+ }
217
+ return payload;
218
+ `}(t),data:await r(e,a,t),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function ae(e,a,t){return{method:"post",url:g(),sendOn:"!!this.recordId",cache:Q,adaptor:`
219
+ if(payload.data.data){
220
+ var data = payload.data.data[0];
221
+ if(data){
222
+ ${function(e){e=y.filter(e,function(e){return e.name.indexOf(".")<0&&("lookup"==e.type||"master_detail"==e.type)&&e.reference_to});let t="";return y.each(e,function(e){var a;y.includes(x,e.name)||(a=e.reference_to_field||"_id",e.multiple?t+=`data.${e.name} = _.map(data.${e.name}, '${a}');`:t+=`data.${e.name} = data.${e.name} ? data.${e.name}.${a}:null;`)}),t}(t)}
223
+ ${function(e){let a=[],t={};var i=u("/api/files/images/");return e.forEach(e=>{"image"===e.type&&(a.push(e.name),t[e.name]={name:e.name,multiple:e.multiple})}),a.length?`
224
+ // image字段值添加URL前缀
225
+ let imgFieldsKeys = ${JSON.stringify(a)};
226
+ let imgFields = ${JSON.stringify(t)};
227
+ let rootUrl = ${JSON.stringify(i)};
228
+ imgFieldsKeys.forEach((item)=>{
229
+ let imgFieldValue = data[item];
230
+ if(imgFieldValue && imgFieldValue.length){
231
+ if(imgFields[item].multiple){
232
+ if(imgFieldValue instanceof Array){
233
+ data[item] = imgFieldValue.map((value)=>{ return rootUrl + value});
234
+ }
235
+ }else{
236
+ data[item] = rootUrl + imgFieldValue;
237
+ }
238
+ }
239
+ })
240
+ `:""}(t)}
241
+ ${function(e){let a=[],t={};var i=u("/api/files/files/");return e.forEach(e=>{"file"===e.type&&(a.push(e.name),t[e.name]={name:e.name,multiple:e.multiple})}),a.length?`
242
+ // file字段值重写以便编辑时正常显示附件名、点击附件名正常下载附件
243
+ let fileFieldsKeys = ${JSON.stringify(a)};
244
+ let fileFields = ${JSON.stringify(t)};
245
+ let fileRootUrl = ${JSON.stringify(i)};
246
+ fileFieldsKeys.forEach((item)=>{
247
+ let fileFieldValue = data[item];
248
+ if(fileFieldValue && fileFieldValue.length){
249
+ const fileFieldNames = data._display[item].split(',');
250
+ if(fileFields[item].multiple){
251
+ if(fileFieldValue instanceof Array){
252
+ data[item] = fileFieldValue.map((value, index)=>{
253
+ return {
254
+ value: value,
255
+ name: fileFieldNames[index],
256
+ url: fileRootUrl + value + "?download=true",
257
+ state: "uploaded"
258
+ }
259
+ });
260
+ }
261
+ }else{
262
+ data[item] = {
263
+ value: fileFieldValue,
264
+ name: fileFieldNames[0],
265
+ url: fileRootUrl + fileFieldValue + "?download=true",
266
+ state: "uploaded"
267
+ };
268
+ }
269
+ }
270
+ })
271
+ `:""}(t)}
272
+ //初始化接口返回的字段移除字段值为null的字段
273
+ for (key in data){
274
+ if(data[key] === null){
275
+ delete data[key];
276
+ }
277
+ }
278
+ };
279
+ payload.data = data;
280
+ delete payload.extensions;
281
+ }
282
+ return payload;
283
+ `,data:await r(e,a,t),headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function te(e,a,t){return{method:"post",url:g(),data:{objectName:"${objectName}",$:"$$",recordId:"${recordId}",modalName:"${modalName}"},requestAdaptor:`
284
+ ${L(t)}
285
+ api.data = {query: query.replace('{__saveData}', __saveData)};
286
+ return api;
287
+ `,responseData:{recordId:"${record._id}"},adaptor:`
288
+ return payload;
289
+ `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}const ie=e=>{let i=[];return i.length=0,y.forEach(e.fields,(e,a)=>{y.has(e,"name")||(e.name=a)}),y.forEach(y.sortBy(e.fields,"sort_no"),e=>{e.group&&"null"!=e.group&&"-"!=e.group||(e.group="通用");var a=e.name,t=/\w+\.\w+/.test(a);"grid"!=e.type&&"object"!=e.type||(e.is_wide=!0),t||e.hidden||i.push(Object.assign({name:a},e,{permission:{allowEdit:!0}}))}),i},re=async(a,e,t,i)=>{var r,e=y.filter(e,{group:t});if(e.length!=y.filter(e,["hidden",!0]).length){const l=[];for(const n of e){let e=n;"grid"===n.type?e=await X(n,a):"object"===n.type&&(e=await G(n,a)),e.name.indexOf(".")<0&&((r=await N(e,e.readonly,i))&&l.push(r))}return{type:"fieldSet",title:t,collapsable:!0,body:l}}},le=async(e,a,t)=>{var i=ie(a);const r=[];for(const n in y.groupBy(i,"group")){var l=await re(e,i,n,t);0<l.body.length&&r.push(l)}return r};async function ne(e,a,t){return le(e,a,t)}function oe(e){return[{type:"button",level:"danger",label:"批量删除",actionType:"ajax",confirmText:"确定要删除吗",id:"batchDelete",api:(e=e.name,{method:"post",url:g(),requestAdaptor:`
290
+ var ids = api.data.ids.split(",");
291
+ var deleteArray = [];
292
+ ids.forEach((id,index)=>{
293
+ deleteArray.push(\`delete__\${index}:${e}__delete(id: "\${id}")\`);
294
+ })
295
+ api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
296
+ return api;
297
+ `,data:{ids:"${ids}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}})}]}async function se(e,a,t){var i=oe(e);const r={toolbar:[],footerToolbar:["statistics","pagination"],headerToolbar:"SMALL"===t.formFactor?["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}],bulkActions:i,bodyClassName:""};let l=null;i="listview_"+e.name;if("SMALL"===t.formFactor)delete r.bulkActions,delete r.headerToolbar,delete r.footerToolbar,l=Object.assign({},function(e,a){let t=null;var i=_.find(e,e=>e.name===a.labelFieldName);return i&&(t=F(i,a)),{mode:"cards",name:"cards",draggable:!1,headerToolbar:["statistics","pagination"],defaultParams:z(a),syncLocation:!1,keepItemSelectionOnPageChange:!1,checkOnItemClick:!1,labelTpl:`\${${a.labelFieldName}}`,card:{type:"card",header:{title:t},body:[...R(_.filter(e,e=>e.name!=a.labelFieldName),a).columns]}}}(a,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},t,{actions:!1})),{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!1,api:await J(e,a,t)},r);else{const n=Y(a,Object.assign({idFieldName:e.idFieldName,labelFieldName:e.NAME_FIELD_KEY||"name"},t));delete n.mode,l=Object.assign({},n,{type:"crud",primaryField:"_id",id:i,name:i,keepItemSelectionOnPageChange:!0,api:await J(e,a,t)},r)}return{type:"service",bodyClassName:"",name:"page",data:{context:{rootUrl:p(),tenantId:o(),authToken:d()}},body:l}}const de=e=>{var a=t();return{mode:e,user:a,spaceId:a.spaceId,userId:a.userId}};const ce=(e,a,t)=>{e=e.replace(/\./g,"_");t=(e=>{const a=["_id"];return e.push("record_permissions"),s.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),a.push(""+e)}),""+a.join(" ")})(t);let i="";const r=[`id: "${a}"`];return`{record:${e}__findOne${i=0<r.length?`(${r.join(",")})`:i}{${t}}}`},ue=async(e,a,t)=>{return(await l("/graphql",{method:"post",body:JSON.stringify({query:ce(e,a,t)})})).data.record};const I={},pe=(e,a)=>{I[e]=a},me=e=>c.default.cloneDeep(I[e]),fe=e=>c.default.has(I,e);async function j(a,e){if(a){if(!fe(a)||e){var i,e=`/service/api/@${a.replace(/\./g,"_")}/uiSchema`;let t=null;try{t=await l(e,{method:"get"}),pe(a,t);for(const r in t.fields)!t.fields||"lookup"!==(i=t.fields[r]).type&&"master_detail"!==i.type||!i.reference_to||await j(i.reference_to)||delete t.fields[r];s.each(t.list_views,(e,a)=>{e.name=a,s.has(e,"columns")||(e.columns=t.list_views.all.columns)})}catch(e){console.error("getUISchema",a,e),pe(a,null)}}return me(a)}}async function D(e,a){return(await j(e))?.fields[a]}async function V(e,a,t,i={}){const r=await j(a);var l=c.default.find(r.list_views,(e,a)=>a===t);if(!l)return{uiSchema:r};r.fields;const n=[];var o=((e,a)=>{let t=[];return t="SMALL"===a?s.isEmpty(e.mobile_columns)?s.slice(e.columns,0,4):e.mobile_columns:e.columns})(l,i.formFactor),o=(l&&o&&c.default.each(o,function(e){c.default.isString(e)&&r.fields[e]?n.push(r.fields[e]):c.default.isObject(e)&&r.fields[e.field]&&n.push(Object.assign({},r.fields[e.field],{width:e.width,wrap:e.wrap}))}),l&&l.extra_columns&&c.default.each(l.extra_columns,function(e){c.default.isString(e)?n.push({extra:!0,name:e}):c.default.isObject(e)&&n.push({extra:!0,name:e.field})}),o=n,await se(r,o,{tabId:a,appId:e,objectName:a,...i,filter:l.filters}));return{uiSchema:r,amisSchema:o}}const ye="__G_L_O_B_A_L__",ge=function(e){var a,t;return"string"==typeof e&&(a=/^{{(function.+)}}$/,t=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(a)||e.match(t)))},_e=function(a,e,t,i,r={}){var l,n;if(void 0===e&&(e={}),n="string"!=typeof(n=t)||1===(n=n.split(".")).length?"#":(n.pop(),n.join(".")),l=e,n=("#"!==(n=n)&&n?"string"==typeof n?y.get(l,n):void console.error("path has to be a string"):l||{})||{},"string"!=typeof a)return a;l=a.substring(2,a.length-2),r=`
298
+ var $user=${JSON.stringify(r)}; return `+l.replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,ye)).replace(/\bglobal\b/g,JSON.stringify(i)).replace(new RegExp("\\b"+ye+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(n));try{return Function(r)()}catch(e){return console.log(e,a,t),a}},be=()=>({now:new Date}),A=(a,e)=>{if(a._visible&&(c.default.startsWith(c.default.trim(a._visible),"function")?(window.eval("var fun = "+a._visible),a.visible=fun):ge(a._visible)&&(a.visible=e=>{_e(a._visible,e.record,"#",be(),e.userSession)})),!c.default.isFunction(a.visible))return a.visible;try{return a.visible(e)}catch(e){}},T={standard_new:(e,a)=>{const{appId:t,listViewId:i,uiSchema:r,formFactor:l,data:n,router:o,options:s={}}=a;a=S.newRecordMode;SteedosUI?.Object.newRecord({onSubmitted:()=>{SteedosUI.getRef(i).getComponentByName("page.listview_"+r.name).handleAction({},{actionType:"reload"})},onCancel:()=>{SteedosUI.getRef(i).getComponentByName("page.listview_"+r.name).handleAction({},{actionType:"reload"})},appId:t,formFactor:l,name:SteedosUI.getRefId({type:a+"-form"}),title:"新建 "+r.label,objectName:r.name,data:n,recordId:"new",type:a,options:s,router:o})},standard_edit:(e,a)=>{var t=S.newRecordMode;const{appId:i,recordId:r,uiSchema:l,formFactor:n,router:o,options:s={}}=a;SteedosUI?.Object.editRecord({appId:i,name:SteedosUI.getRefId({type:t+"-form"}),title:"编辑 "+l.label,objectName:l.name,recordId:r,type:t,options:s,router:o,formFactor:n,onSubmitted:()=>{SteedosUI.getRef(SteedosUI.getRefId({type:"detail",appId:i,name:l.name})).getComponentById("detail_"+r).reload()}})},standard_delete:(e,a)=>{},standard_delete_many:(e,a)=>{var{listViewId:a,uiSchema:t}=a;const i=SteedosUI?.getRef(a).getComponentByName("page.listview_"+t.name);c.default.isEmpty(i.props.store.toJSON().selectedItems)?i.handleAction({},{actionType:"toast",toast:{items:[{position:"top-right",body:"请选择要删除的项"}]}}):i.handleBulkAction(i.props.store.toJSON().selectedItems,[],{},i.props.bulkActions[0])}},E=(a,t)=>{const i=a.permissions.disabled_actions;let e=c.default.sortBy(c.default.values(a.actions),"sort");return c.default.has(a,"allow_customActions")&&(e=c.default.filter(e,e=>c.default.include(a.allow_customActions,e.name))),c.default.has(a,"exclude_actions")&&(e=c.default.filter(e,e=>!c.default.include(a.exclude_actions,e.name))),c.default.each(e,e=>{t.isMobile&&-1<["record","record_only"].indexOf(e.on)&&"standard_edit"!=e.name&&("record_only"==e.on?e.on="record_only_more":e.on="record_more")}),t.isMobile&&-1<["cms_files","cfs.files.filerecord"].indexOf(a.name)&&c.default.map(e,e=>{"standard_edit"===e.name&&(e.on="record_more"),"download"===e.name&&(e.on="record")}),c.default.filter(e,e=>c.default.indexOf(i,e.name)<0)};const M={};e.absoluteUrl=u,e.execute=(e,a)=>{if(e.todo)return c.default.isString(e.todo)&&c.default.startsWith(c.default.trim(e.todo),"function")&&(window.eval("var fun = "+e.todo),e.todo=fun),c.default.isFunction(e.todo)?e.todo.apply({},[a]):void 0},e.fetchAPI=l,e.getApp=async function(e){return await l(`/service/api/apps/${e}/menus`)},e.getApps=async function(){return await l("/service/api/apps/menus")},e.getAuthToken=d,e.getAuthorization=n,e.getButtons=E,e.getEnv=e=>M[e],e.getEnvs=()=>M,e.getField=D,e.getFileSrc=function(e){return p()+"/api/files/files/"+e},e.getFormSchema=async function(e,a){var t,i,r,e=await j(e);return t=e,i=(a=a).recordId,r=c.default.values(t.fields),{uiSchema:e,amisSchema:await{type:"page",bodyClassName:"p-0",regions:["body"],name:"page_edit_"+i,data:{global:de("edit"),recordId:i,objectName:t.name,context:{rootUrl:p(),tenantId:o(),authToken:d()}},initApi:null,initFetch:null,body:[{type:"form",mode:"SMALL"===a.formFactor?"normal":"horizontal",persistData:!1,promptPageLeave:!0,name:"form_edit_"+i,debug:!1,title:"",submitText:"",api:await te(0,0,r),initApi:await ae(t,i,r),initFetch:"new"!=i,body:await ne(r,t,a),panelClassName:"m-0 sm:rounded-lg shadow-none",bodyClassName:"p-0",className:"p-4 sm:p-0 steedos-amis-form"}]}}},e.getImageSrc=function(e){return p()+"/api/files/images/"+e},e.getListSchema=V,e.getListViewButtons=(a,t)=>{var e=E(a,t);const i=c.default.filter(e,e=>"list"==e.on&&A(e,t)),r=c.default.find(e,e=>"standard_new"==e.name);return"cms_files"!=a.name&&a.permissions.allowCreate&&r&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_new.visible.apply")&&i.push({label:r.label,name:r.name,on:r.on,type:r.type,todo:e=>T.standard_new.call({},e,{listViewId:t.listViewId,appId:t.app_id,uiSchema:a,formFactor:t.formFactor,router:t.router,data:t.data,options:"SMALL"===t.formFactor?{props:{width:"100%",style:{width:"100%"},bodyStyle:{padding:"0px",paddingTop:"0px"}}}:null})}),i},e.getNotifications=async()=>{var e=t(),e=`
299
+ {
300
+ notifications(filters: ["owner","=","${e.userId}"], sort: "created desc,name", top : 10){
301
+ _id,name,body,related_to,related_name,url,owner,is_read,from,created
302
+ },
303
+ unReadCount: notifications__count(filters: [["owner","=","${e.userId}"], ["is_read", "!=", true]])
304
+ }
305
+ `;return(await l("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},e.getObjectDetailButtons=(a,t)=>{var e=E(a,t);const i=c.default.filter(e,e=>("record"==e.on||"record_only"==e.on)&&A(e,t)),r=c.default.find(e,e=>"standard_edit"==e.name);return t.permissions?.allowEdit&&r&&0<r._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_edit.visible.apply")&&i.push({label:r.label,name:r.name,on:r.on,type:r.type,todo:e=>T.standard_edit.call({},e,{recordId:t.recordId,appId:t.app_id,uiSchema:a,formFactor:t.formFactor,router:t.router,options:"SMALL"===t.formFactor?{props:{width:"100%",style:{width:"100%"},bodyStyle:{padding:"0px",paddingTop:"0px"}}}:null})}),c.default.sortBy(i,"sort")},e.getObjectDetailMoreButtons=(e,a)=>{e=E(e,a);const t=c.default.filter(e,e=>("record_more"==e.on||"record_only_more"==e.on)&&A(e,a)),i=c.default.find(e,e=>"standard_delete"==e.name);return a.permissions?.allowDelete&&i&&0<i._visible.indexOf("Steedos.StandardObjects.Base.Actions.standard_delete.visible.apply")&&t.push({label:i.label,name:i.name,on:i.on,type:"amis_action",confirmText:"确定要删除此项目?",sort:i.sort,amis_actions:[{args:{api:{method:"post",url:g(),requestAdaptor:`
306
+ var deleteArray = [];
307
+ deleteArray.push(\`delete:${a.objectName}__delete(id: "${a.recordId}")\`);
308
+ api.data = {query: \`mutation{\${deleteArray.join(',')}}\`};
309
+ return api;
310
+ `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}},messages:{success:"删除成功",failed:"删除失败"}},actionType:"ajax"}]}),c.default.sortBy(t,"sort")},e.getObjectRelated=async function(e,a,t,i,r,l){let n=null;var o=await D(t,i),o=(n=o._reference_to||o.reference_to&&!c.default.isString(o.reference_to)?[[i+"/o","=",a],[i+"/ids","=",r]]:[""+i,"=",r],await j(a,l));return{masterObjectName:a,object_name:t,foreign_key:i,schema:await V(e,t,"all",{globalFilter:n,formFactor:l}),record:await ue(a,r,[o.NAME_FIELD_KEY]),masterObjectUISchema:o}},e.getObjectRelateds=async function(a,t,i,r){var e=await j(t);const l=[],n=[].concat(e.details||[]);e.enable_files&&n.push("cms_files.parent");for(const d of n){var o=d.split(".");let e=null;var s=await D(o[0],o[1]);e=s._reference_to||s.reference_to&&!c.default.isString(s.reference_to)?[[o[1]+"/o","=",t],[o[1]+"/ids","=",i]]:[""+o[1],"=",i],l.push({masterObjectName:t,object_name:o[0],foreign_key:o[1],schema:await V(a,o[0],"all",{globalFilter:e,formFactor:r})})}return l},e.getPage=async function(e,a,t="",i,r="LARGE"){return await l(`/api/pageSchema/app?app=${a}&objectApiName=${t}&recordId=${i}&pageId=${e}&formFactor=`+r)},e.getRecord=ue,e.getRecordPermissions=async(e,a)=>{return await l(`/service/api/@${e}/recordPermissions/`+a,{method:"GET"})},e.getRelatedsCount=async(a,e)=>{const t=[];s.each(e,e=>{t.push(`${e.object_name}: ${e.object_name}__count(filters: [["${e.foreign_key}","=","${a}"]])`)});e=`
311
+ {
312
+ ${t.join(",")}
313
+ }
314
+ `;return(await l("/graphql",{method:"POST",body:JSON.stringify({query:e})})).data},e.getRootUrl=p,e.getSearchableFieldsFilterSchema=async function(e){const a=[];for(var t of e)if(!c.default.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],t.type)){delete t.defaultValue,delete t.required,delete t.is_wide,delete t.readonly,delete t.hidden,delete t.omit;const i=await async function(a,e,t){let i=a,r=("grid"===i.type?i=await X(a,e):"object"===a.type&&(i=await G(a,e)),"__searchable__");if(i.name.indexOf(".")<0){let e=s.cloneDeep(i);s.includes(["textarea","html","code","autonumber"],i.type)&&(e.type="text"),"number"!==i.type&&"currency"!==i.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,r+="between__"),"date"===i.type&&(e.type="input-date-range",e.is_wide=!0,r+="between__"),"datetime"===i.type&&(e.type="input-datetime-range",e.is_wide=!0,r+="between__"),"time"===i.type&&(e.type="input-time-range",e.is_wide=!0,r+="between__"),"users"===i.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0;a=await N(e,!1,Object.assign({},t,{fieldNamePrefix:r,required:!1,showSystemFields:!0}));if(a)return a}}(t,e,{});i&&(i.className="min-w-[200px] pr-4 max-w-[350px] grow",a.push(i))}return{title:"",type:"form",name:"listview-filter-form",mode:"normal",wrapWithPanel:!1,className:"flex flex-row w-full flex-wrap mb-3",body:a}},e.getSteedosAuth=t,e.getTenantId=o,e.getUISchema=j,e.getViewSchema=async function(e,a,t){var i,r,e=await j(e);return i=e,a=a,t=t,r=c.default.values(i.fields),{uiSchema:e,amisSchema:await{type:"service",name:"page_readonly_"+a,id:"detail_"+a,data:{global:de("read"),context:{rootUrl:p(),tenantId:o(),authToken:d()}},api:await ee(i,a,r),body:[{type:"form",mode:"SMALL"===t.formFactor?"normal":"horizontal",persistData:!1,promptPageLeave:!1,name:"form_readonly_"+a,debug:!1,title:"",data:{formData:"$$"},wrapWithPanel:!1,body:await ne(s.map(r,e=>{e.readonly=!0}),i,t),className:"steedos-amis-form",actions:[]}]}}},e.isExpression=ge,e.markReadAll=async()=>l("/api/v4/notifications/all/markReadAll",{method:"POST"}),e.parseSingleExpression=_e,e.setEnv=(e,a)=>{M[e]=a},e.setEnvs=e=>{s.map(e,(e,a)=>{M[a]=e})},e.setRootUrl=function(e){s.endsWith(e,"/")&&(e=e.substring(0,e.length-1)),localStorage.setItem("steedos:rootUrl",e)},e.setSteedosAuth=e=>{Object.assign(a,e)},e.standardButtonsTodo=T,Object.defineProperty(e,"__esModule",{value:!0})});