@steedos-widgets/amis-object 1.2.6 → 1.2.8

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.
@@ -205,6 +205,39 @@ body {
205
205
  overflow: unset;
206
206
  }
207
207
 
208
+ /* 手机端native时间控件样式 */
209
+ @media (max-width: 768px){
210
+ .steedos-combo-edit .antd-Form-row{
211
+ display: flex !important;
212
+ -moz-column-gap: unset !important;
213
+ column-gap: unset !important;
214
+ }
215
+ .steedos-combo-edit .antd-Form::before{
216
+ content: unset;
217
+ }
218
+
219
+ .steedos-combo-edit .antd-Form .antd-Form-item::after{
220
+ content: unset;
221
+ }
222
+
223
+ .steedos-combo-edit .antd-Form .antd-Form-item{
224
+ padding: 0;
225
+ }
226
+
227
+ .steedos-combo-edit{
228
+ flex-wrap:nowrap !important;
229
+ }
230
+
231
+ .steedos-combo-edit .steedos-native-date .antd-TextControl-input input{
232
+ min-width: 120px;
233
+ align-items: start !important;
234
+ }
235
+
236
+ .steedos-combo-edit .steedos-native-time .antd-TextControl-input input{
237
+ min-width: 70px;
238
+ }
239
+ }
240
+
208
241
  .ant-dropdown-menu {
209
242
  border: 1px solid #e5e5e5;
210
243
  border-radius: 0.25rem;
@@ -608,6 +641,9 @@ body {
608
641
  .rounded-full {
609
642
  border-radius: 9999px
610
643
  }
644
+ .rounded-xl {
645
+ border-radius: 0.75rem
646
+ }
611
647
  .rounded-md {
612
648
  border-radius: 0.375rem
613
649
  }
@@ -724,6 +760,10 @@ body {
724
760
  padding-left: 0.5rem;
725
761
  padding-right: 0.5rem
726
762
  }
763
+ .py-1 {
764
+ padding-top: 0.25rem;
765
+ padding-bottom: 0.25rem
766
+ }
727
767
  .pt-4 {
728
768
  padding-top: 1rem
729
769
  }
@@ -903,6 +943,9 @@ body {
903
943
  outline-offset: 2px
904
944
  }
905
945
  @media (min-width: 640px) {
946
+ .sm\:sticky {
947
+ position: sticky
948
+ }
906
949
  .sm\:m-3 {
907
950
  margin: 0.75rem
908
951
  }
@@ -2983,7 +2983,7 @@ async function getObjectFieldsFilterFormSchema(ctx) {
2983
2983
  return Promise.all(filterFormSearchableFields.map(function (item) {
2984
2984
  const field = _.clone(fields[item]);
2985
2985
  if (
2986
- !_.includes(
2986
+ field && !_.includes(
2987
2987
  [
2988
2988
  "grid",
2989
2989
  "avatar",
@@ -3030,7 +3030,7 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3030
3030
  var filterForm = scope.parent.parent.getComponents().find(function(n){
3031
3031
  return n.props.type === "form";
3032
3032
  });
3033
- filterForm.handleFormSubmit(event)
3033
+ filterForm.handleFormSubmit(event);
3034
3034
  // var filterFormValues = filterForm.getValues();
3035
3035
  // var listView = scope.parent.parent.parent.getComponents().find(function(n){
3036
3036
  // return n.props.type === "crud";
@@ -3044,8 +3044,30 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3044
3044
  // }
3045
3045
  // }
3046
3046
  // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));
3047
+
3048
+ let isMobile = Steedos.isMobile();
3049
+ if(isMobile){
3050
+ // 手机端点击搜索的时候自动收起搜索栏
3051
+ let resizeWindow = function(){
3052
+ //触发amis crud 高度重算
3053
+ setTimeout(()=>{
3054
+ window.dispatchEvent(new Event("resize"))
3055
+ }, 500);
3056
+ }
3057
+ const filterService = filterForm.context.getComponents().find(function(n){
3058
+ return n.props.type === "service";
3059
+ });
3060
+ filterService.setData({showFieldsFilter: false});
3061
+ resizeWindow();
3062
+ // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。
3063
+ let filterFormValues = event.data;
3064
+ let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);
3065
+ let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");
3066
+ let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");
3067
+ crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});
3068
+ }
3047
3069
  `;
3048
- const onResetScript = `
3070
+ const onCancelScript = `
3049
3071
  const scope = event.context.scoped;
3050
3072
  var filterForm = scope.parent.parent.getComponents().find(function(n){
3051
3073
  return n.props.type === "form";
@@ -3073,7 +3095,21 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3073
3095
  }
3074
3096
  }
3075
3097
  listView.handleFilterSubmit(removedValues);
3076
- `;
3098
+ const filterService = filterForm.context.getComponents().find(function(n){
3099
+ return n.props.type === "service";
3100
+ });
3101
+ filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
3102
+ //触发amis crud 高度重算
3103
+ setTimeout(()=>{
3104
+ window.dispatchEvent(new Event("resize"))
3105
+ }, 100);
3106
+ let isMobile = Steedos.isMobile();
3107
+ if(isMobile){
3108
+ // 手机端移除搜索按钮上的红点
3109
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
3110
+ crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});
3111
+ }
3112
+ `;
3077
3113
  const dataProviderInited = `
3078
3114
  const objectName = data.objectName;
3079
3115
  const isLookup = data.isLookup;
@@ -3127,7 +3163,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3127
3163
  });
3128
3164
  // 有过滤条件时自动展开搜索栏
3129
3165
  if(!_.isEmpty(omitedEmptyFormValue)){
3130
- setData({ showFieldsFilter: true });
3166
+ let isMobile = Steedos.isMobile();
3167
+ if(isMobile){
3168
+ // 手机端不展开,只显示搜索按钮上的红点
3169
+ let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)
3170
+ crudService && crudService.setData({isFieldsFilterEmpty: false});
3171
+ }
3172
+ else{
3173
+ setData({ showFieldsFilter: true });
3174
+ }
3131
3175
  }
3132
3176
  }
3133
3177
  }
@@ -3269,14 +3313,15 @@ async function getObjectFieldsFilterBarSchema(objectSchema, ctx) {
3269
3313
  },
3270
3314
  {
3271
3315
  "type": "button",
3272
- "label": "重置",
3316
+ "label": "取消",
3317
+ "name": "btn_filter_form_cancel",
3273
3318
  "visibleOn": "this.filterFormSearchableFields && this.filterFormSearchableFields.length",
3274
3319
  "onEvent": {
3275
3320
  "click": {
3276
3321
  "actions": [
3277
3322
  {
3278
3323
  "actionType": "custom",
3279
- "script": onResetScript
3324
+ "script": onCancelScript
3280
3325
  }
3281
3326
  ]
3282
3327
  }
@@ -3880,11 +3925,36 @@ const filterForm = scope.getComponents().find(function(n){
3880
3925
  const filterService = filterForm.context.getComponents().find(function(n){
3881
3926
  return n.props.type === "service";
3882
3927
  });
3883
- filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
3884
- //触发amis crud 高度重算
3885
- setTimeout(()=>{
3886
- window.dispatchEvent(new Event("resize"))
3887
- }, 100)
3928
+ // filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});
3929
+ let resizeWindow = function(){
3930
+ //触发amis crud 高度重算
3931
+ setTimeout(()=>{
3932
+ window.dispatchEvent(new Event("resize"))
3933
+ }, 500);
3934
+ }
3935
+ let isMobile = Steedos.isMobile();
3936
+ if(filterService.props.data.showFieldsFilter){
3937
+ if(isMobile){
3938
+ // 手机上只能通过取消按钮来关闭搜索栏
3939
+ return;
3940
+ }
3941
+ let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", {
3942
+ direction: "down",
3943
+ name: "btn_filter_form_cancel"
3944
+ });
3945
+ buttonCancel.props.dispatchEvent('click', {}).then(function(){
3946
+ resizeWindow();
3947
+ });
3948
+ }
3949
+ else{
3950
+ filterService.setData({showFieldsFilter: true});
3951
+ resizeWindow();
3952
+ if(isMobile){
3953
+ // 手机端在显示搜索栏时隐藏刷新按钮
3954
+ let crudService = scope.getComponentById("service_listview_" + event.data.objectName);
3955
+ crudService && crudService.setData({showFieldsFilter: true});
3956
+ }
3957
+ }
3888
3958
  `;
3889
3959
 
3890
3960
  function getExportApiRequestAdaptorScript(){
@@ -3969,6 +4039,7 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3969
4039
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
3970
4040
  "label": "",
3971
4041
  "icon": "fa fa-sync",
4042
+ "visibleOn": "${!showFieldsFilter}",
3972
4043
  "onEvent": {
3973
4044
  "click": {
3974
4045
  "actions": [
@@ -3984,6 +4055,15 @@ function getObjectHeaderToolbar(mainObject, formFactor, {showDisplayAs = false,
3984
4055
  "label": "",
3985
4056
  "icon": "fa fa-search",
3986
4057
  "type": "button",
4058
+ "badge": {
4059
+ "offsetx": [
4060
+ -2,
4061
+ 2
4062
+ ],
4063
+ "size":8,
4064
+ "animation": true,
4065
+ "visibleOn": "${isFieldsFilterEmpty == false}"
4066
+ },
3987
4067
  "align": "right",
3988
4068
  "className": "bg-white p-2 rounded border-gray-300 text-gray-500",
3989
4069
  "onEvent": {
@@ -4623,8 +4703,8 @@ function getObjectFooterToolbar(mainObject, formFactor) {
4623
4703
  }
4624
4704
  else {
4625
4705
  return [
4706
+ "switch-per-page",
4626
4707
  "statistics",
4627
- // "switch-per-page",
4628
4708
  "pagination"
4629
4709
  ]
4630
4710
  }
@@ -5816,6 +5896,23 @@ const getAmisFileSchema = (steedosField, readonly)=>{
5816
5896
  return readonly ? getAmisFileReadonlySchema(steedosField) : getAmisFileEditSchema(steedosField);
5817
5897
  };
5818
5898
 
5899
+ /*
5900
+ * @Author: baozhoutao@steedos.com
5901
+ * @Date: 2022-07-20 16:29:22
5902
+ * @LastEditors: Please set LastEditors
5903
+ * @LastEditTime: 2023-05-11 11:19:54
5904
+ * @Description:
5905
+ */
5906
+
5907
+ function getContrastColor(bgColor) {
5908
+ var backgroundColor = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;
5909
+ var r = parseInt(backgroundColor.substr(0, 2), 16);
5910
+ var g = parseInt(backgroundColor.substr(2, 2), 16);
5911
+ var b = parseInt(backgroundColor.substr(4, 2), 16);
5912
+ var brightness = (r * 299 + g * 587 + b * 114) / 1000;
5913
+ return brightness >= 128 ? "#000000" : "#ffffff";
5914
+ }
5915
+
5819
5916
  const OMIT_FIELDS = ['created', 'created_by', 'modified', 'modified_by'];
5820
5917
  // const Lookup = require('./lookup');
5821
5918
 
@@ -5969,6 +6066,8 @@ function getSelectFieldOptions(field){
5969
6066
  }
5970
6067
 
5971
6068
  async function convertSFieldToAmisField(field, readonly, ctx) {
6069
+ // console.log('convertSFieldToAmisField====>', field, readonly, ctx)
6070
+ const isMobile = window.innerWidth <= 768;
5972
6071
  // 创建人和修改人、创建时间和修改时间不显示
5973
6072
  if(___default__namespace.includes(OMIT_FIELDS, field.name) && ctx.showSystemFields != true){
5974
6073
  return;
@@ -6003,20 +6102,42 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
6003
6102
  // }
6004
6103
  // break;
6005
6104
  case 'select':
6006
- convertData = {
6007
- type: getAmisStaticFieldType('select', readonly),
6008
- joinValues: false,
6009
- options: getSelectFieldOptions(field),
6010
- extractValue: true,
6011
- clearable: true,
6012
- labelField: 'label',
6013
- valueField: 'value',
6014
- tpl: readonly ? getSelectTpl(field) : null
6015
- };
6016
- if(field.multiple){
6017
- convertData.multiple = true;
6018
- convertData.extractValue = true;
6105
+ if(readonly){
6106
+ const selectOptions = field.options;
6107
+ let map = {};
6108
+ ___default__namespace.forEach(selectOptions,(option)=>{
6109
+ const optionValue = option.value + '';
6110
+ if(option.color){
6111
+ const background = '#'+option.color;
6112
+ const color = getContrastColor(background);
6113
+ const optionColorStyle = 'background:'+background+';color:'+color;
6114
+ map[optionValue] = `<span class="rounded-xl px-2 py-1" style='${optionColorStyle}'>${option.label}</span>`;
6115
+ }else {
6116
+ map[optionValue] = option.label;
6117
+ }
6118
+ });
6119
+ convertData = {
6120
+ type: "static-mapping",
6121
+ name: field.name,
6122
+ label: field.label,
6123
+ map: map
6124
+ };
6125
+ }else {
6126
+ convertData = {
6127
+ type: getAmisStaticFieldType('select', readonly),
6128
+ joinValues: false,
6129
+ options: getSelectFieldOptions(field),
6130
+ extractValue: true,
6131
+ clearable: true,
6132
+ labelField: 'label',
6133
+ valueField: 'value'
6134
+ };
6135
+ if(field.multiple){
6136
+ convertData.multiple = true;
6137
+ convertData.extractValue = true;
6138
+ }
6019
6139
  }
6140
+
6020
6141
  break;
6021
6142
  case 'boolean':
6022
6143
  convertData = {
@@ -6036,7 +6157,26 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
6036
6157
  };
6037
6158
  break;
6038
6159
  case 'date':
6039
- convertData = {
6160
+ convertData = isMobile && !readonly ? {
6161
+ type: "native-date",
6162
+ pipeIn: (value, data) => {
6163
+ if (value) {
6164
+ value = moment(value).utc().format('YYYY-MM-DD');
6165
+ return value;
6166
+ } else {
6167
+ return "";
6168
+ }
6169
+
6170
+ },
6171
+ pipeOut: (value, oldValue, data) => {
6172
+ if (value) {
6173
+ value = moment(value).format('YYYY-MM-DDT00:00:00.000[Z]');
6174
+ return value;
6175
+ } else {
6176
+ return "";
6177
+ }
6178
+ }
6179
+ } : {
6040
6180
  type: getAmisStaticFieldType('date', readonly),
6041
6181
  inputFormat: "YYYY-MM-DD",
6042
6182
  format:'YYYY-MM-DDT00:00:00.000[Z]',
@@ -6055,12 +6195,48 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
6055
6195
  };
6056
6196
  break;
6057
6197
  case 'datetime':
6058
- convertData = {
6198
+ convertData = isMobile && !readonly ? {
6199
+ type: "combo",
6200
+ pipeIn: (value, data) => {
6201
+ let revalue = {};
6202
+ if (value && value != "Invalid date") {
6203
+ value = moment(value).format('YYYY-MM-DD HH:mm:ss');
6204
+ revalue[field.name + "-native-date"] = value.split(' ')[0];
6205
+ revalue[field.name + "-native-time"] = value.split(' ')[1];
6206
+ } else {
6207
+ revalue[field.name + "-native-date"] = "";
6208
+ revalue[field.name + "-native-time"] = "";
6209
+ }
6210
+ return revalue;
6211
+ },
6212
+ pipeOut: (value, oldValue, data) => {
6213
+ let revalue = "";
6214
+ if (value[field.name + "-native-date"] && value[field.name + "-native-time"]) {
6215
+ revalue = value[field.name + "-native-date"] + " " + value[field.name + "-native-time"];
6216
+ revalue = moment(revalue).utc().format('YYYY-MM-DDTHH:mm:ss.SSS[Z]');
6217
+ }
6218
+ return revalue;
6219
+ },
6220
+ items: [
6221
+ {
6222
+ type: "native-date",
6223
+ name: field.name + "-native-date",
6224
+ className: "steedos-native-date",
6225
+ value: ""
6226
+ },
6227
+ {
6228
+ type: "native-time",
6229
+ name: field.name + "-native-time",
6230
+ className: "steedos-native-time",
6231
+ value: ""
6232
+ }
6233
+ ]
6234
+ } : {
6059
6235
  type: getAmisStaticFieldType('datetime', readonly),
6060
6236
  inputFormat: 'YYYY-MM-DD HH:mm',
6061
- format:'YYYY-MM-DDTHH:mm:ss.SSSZ',
6237
+ format: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
6062
6238
  tpl: readonly ? getDateTimeTpl(field) : null,
6063
- utc: true
6239
+ utc: true,
6064
6240
  };
6065
6241
  break;
6066
6242
  case 'input-time-range':
@@ -6075,7 +6251,26 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
6075
6251
  };
6076
6252
  break;
6077
6253
  case 'time':
6078
- convertData = {
6254
+ convertData = isMobile && !readonly ? {
6255
+ type: "native-time",
6256
+ pipeIn: (value, data) => {
6257
+ if (value) {
6258
+ value = moment(value).utc().format('HH:mm');
6259
+ return value;
6260
+ } else {
6261
+ return "";
6262
+ }
6263
+
6264
+ },
6265
+ pipeOut: (value, oldValue, data) => {
6266
+ if (value) {
6267
+ value = moment('1970-01-01 ' + value).format('1970-01-01THH:mm:00.000[Z]');
6268
+ return value;
6269
+ } else {
6270
+ return "";
6271
+ }
6272
+ }
6273
+ } : {
6079
6274
  type: getAmisStaticFieldType('time', readonly),
6080
6275
  inputFormat: 'HH:mm',
6081
6276
  timeFormat:'HH:mm',
@@ -6279,6 +6474,13 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
6279
6474
  convertData.quickEdit = false;
6280
6475
  }
6281
6476
 
6477
+ let fieldTypeClassName = ' steedos-' + convertData.type + (readonly ? '-readonly' : '-edit');
6478
+ if (convertData.className) {
6479
+ convertData.className = convertData.className + fieldTypeClassName;
6480
+ } else {
6481
+ convertData.className = fieldTypeClassName;
6482
+ }
6483
+
6282
6484
  if(field.visible_on){
6283
6485
  // convertData.visibleOn = `\$${field.visible_on.substring(1, field.visible_on.length -1).replace(/formData./g, '')}`;
6284
6486
  if(field.visible_on.startsWith("{{")){
@@ -6963,6 +7165,7 @@ async function getObjectCRUD(objectSchema, fields, options){
6963
7165
  hiddenOn: options.tableHiddenOn,
6964
7166
  autoFillHeight: options.isRelated ? false : true,
6965
7167
  className: `flex-auto ${crudClassName || ""}`,
7168
+ bodyClassName: "bg-white",
6966
7169
  crudClassName: crudClassName,
6967
7170
  },
6968
7171
  bodyProps,
@@ -7308,7 +7511,31 @@ async function getTableColumns$1(fields, options){
7308
7511
  ...getAmisFileReadonlySchema(field)
7309
7512
  }, field.amis, {name: field.name}));
7310
7513
  }
7311
-
7514
+ else if(field.type === 'select'){
7515
+ const selectOptions = field.options;
7516
+ let map = {};
7517
+ ___default.forEach(selectOptions,(option)=>{
7518
+ const optionValue = option.value + '';
7519
+ if(option.color){
7520
+ const background = '#'+option.color;
7521
+ const color = getContrastColor(background);
7522
+ const optionColorStyle = 'background:'+background+';color:'+color;
7523
+ map[optionValue] = `<span class="rounded-xl px-2 py-1" style='${optionColorStyle}'>${option.label}</span>`;
7524
+ }else {
7525
+ map[optionValue] = option.label;
7526
+ }
7527
+ });
7528
+ columns.push(Object.assign({}, {
7529
+ type: "mapping",
7530
+ name: field.name,
7531
+ label: field.label,
7532
+ map: map,
7533
+ sortable: field.sortable,
7534
+ width: field.width,
7535
+ toggled: field.toggled,
7536
+ className:"whitespace-nowrap",
7537
+ }, field.amis, {name: field.name}));
7538
+ }
7312
7539
  else {
7313
7540
  const tpl = await getFieldTpl(field, options);
7314
7541
 
@@ -13208,7 +13435,7 @@ var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0,
13208
13435
  return __generator(this, function (_d) {
13209
13436
  switch (_d.label) {
13210
13437
  case 0:
13211
- _a = props.className, className = _a === void 0 ? 'sticky top-0 z-10 bg-gray-100 border-b sm:shadow sm:rounded sm:border border-slate-300 p-4' : _a;
13438
+ _a = props.className, className = _a === void 0 ? 'sm:sticky top-0 z-10 bg-gray-100 border-b sm:shadow sm:rounded sm:border border-slate-300 p-4' : _a;
13212
13439
  return [4 /*yield*/, getUISchema(props.objectApiName || "space_users", false)];
13213
13440
  case 1:
13214
13441
  objectUiSchema = _d.sent();
@@ -14766,7 +14993,7 @@ var PageObject = function (props) { return __awaiter(void 0, void 0, void 0, fun
14766
14993
  });
14767
14994
  }); };
14768
14995
 
14769
- var __assign=function(){return (__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,r){return !1}},standard_new:{visible:function(e,t,r){return "cms_files"!==e&&"instances"!==e&&(r?r.allowCreate:void 0)}},standard_edit:{visible:function(e,t,r){if(r)return r.allowEdit}},standard_delete:{visible:function(e,t,r){if(r)return r.allowDelete}},standard_import_data:{visible:function(e,t,r){var n=this.object;if(r)return r.allowCreate&&n.hasImportTemplates}},standard_approve:{visible:function(e,t,r){return !1}},standard_view_instance:{visible:function(e,t,r){return !1}},standard_submit_for_approval:{visible:function(e,t,r){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,r){return !1}},standard_delete_many:{visible:function(e,t,r){return !RegExp("\\w+/view/\\w+").test(location.pathname)&&(r?r.allowDelete:void 0)}}}}},authRequest=function(e,t){var a=null;e=Steedos.absoluteUrl(e);try{var r=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],n={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(t){if(r&&r.length)return r.forEach(function(e){return t.setRequestHeader(e.name,e.value)})},success:function(e){a=e;},error:function(e,t,r){var n,o;e.responseJSON&&e.responseJSON.error?(n=e.responseJSON.error,o=void(a={error:n}),o=n.reason||n.message||n,console.error(o)):console.error(e.responseJSON);}};return $.ajax(Object.assign({},n,t)),a}catch(e){console.error(e);}};function _extends(){return (_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);}return e}).apply(this,arguments)}const newFunctionComponent=o=>e=>{const[t,r]=React.useState(!0);var n=()=>{r(!1);};return ___default.has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{r(!0);},close:n}),React__default["default"].createElement(o,_extends({visible:t,onCancel:n,onClose:n},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},e))},newComponentRender=(r,n)=>(e,t)=>{e.name||(e.name=r+"-"+(e.name||"default")),(t=t||document.getElementById(`steedos-${r}-root-`+e.name))||((t=document.createElement("div")).setAttribute("id",`steedos-${r}-root-`+e.name),document.body.appendChild(t));e=React__default["default"].createElement(newFunctionComponent(n),e);ReactDOM.createRoot(t).render(e);},Modal=___default.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e);}),""+t.join(" ")},getFindOneQuery=(e,t,r)=>{e=e.replace(/\./g,"_");r=getGraphqlFieldsQuery(r);let n="";t=[`id: "${t}"`];return `{record:${e}__findOne${n=0<t.length?`(${t.join(",")})`:n}{${r}}}`},SObject={getRecord:async(e,t,r)=>{return (await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,r)})})).data.record},getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:r})=>{canSaveFilter(t);r.filters&&(r.filters=filtersToConditions(r.filters));},getVisibleFilter:(e,t)=>{return t||(canSaveFilter(e)?e.filters:void 0)},getQueryFilter:(e,t)=>{return canSaveFilter(e)?ListView.getVisibleFilter(e,t):___default.isEmpty(t)?e.filters:[e.filters,"and",t]},getFirstListView:async e=>{e=await window.getUISchema(e);return _.first(_.sortBy(_.values(e.list_views),"sort_no"))}},Router={getAppPath({appId:e}){return "/app/"+e},getPagePath(){},getObjectListViewPath({appId:e,objectName:t,listViewName:r}){return `/app/${e}/${t}/grid/`+r},getObjectDetailPath({appId:e,objectName:t,recordId:r}){return `/app/${e}/${t}/view/`+r},getObjectRelatedViewPath({appId:e,masterObjectName:t,masterRecordId:r,objectName:n,foreignKey:o}){return `/app/${e}/${t}/${r}/${n}/grid?related_field_name=`+o}};var withModalWrap=function(t,e){return function(e){return React.createElement(t,e)}},render=function(e,t,r,n){e=withModalWrap(e),e=React.createElement(e,__assign({},t));return ReactDOM__default["default"].render(e,r)};const safeRunFunction=(t,r,n,o)=>{try{var a=window.Creator;if(!!(!a||!a.getObjectUrl)&&/\bSteedos\b|\bCreator\b|\bMeteor\b|\bSession\b/.test(t))return console.info("调用了Creator|Steedos|Meteor|Session变量的脚本不执行,直接按空值处理。"),"";let e=[];return ___default.isNil(r)||(e=___default.isArray(r)?r:[r]),t.bind(o||{})(...e)}catch(e){return console.log(e),n}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js);}}const isExpression=function(e){var t,r;return "string"==typeof e&&(t=/^{{(function.+)}}$/,r=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(r)))},parseSingleExpression=function(t,e,r,n){var o,a=function(e,t){return "#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(e=void 0===e?{}:e,function(e){return "string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(r))||{};if("string"!=typeof t)return t;o="__G_L_O_B_A_L__",e="\n return "+t.substring(2,t.length-2).replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,o)).replace(/\bglobal\b/g,JSON.stringify(n)).replace(new RegExp("\\b"+o+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(a));try{return Function(e)()}catch(e){return console.log(e,t,r),t}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(e,t)=>{let r=e;return /^\{\w+(\.*\w+)*\}$/.test(e)&&(r=-1<e.indexOf("userId")||-1<e.indexOf("spaceId")||-1<e.indexOf("user.")||-1<e.indexOf("now")?`{${e}}`.replace("{{","{{global."):`{${e}}`.replace("{{","{{formData."),t&&(r=r.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),r},getFieldDefaultValue=(e,t)=>{if(!e)return null;let r=e.defaultValue;e._defaultValue&&(r=safeEval(`(${e._defaultValue})`)),___default.isFunction(r)&&(r=safeRunFunction(r,[],null,{name:e.name})),___default.isString(r)&&(r=getCompatibleDefaultValueExpression(r,e.multiple));var n=isExpression(r);return n&&(r=parseSingleExpression(r,{},"#",t)),"select"===e.type&&(t=e.data_type||"text",!r||n||e.multiple||("text"!==t||___default.isString(r)?"number"!==t||___default.isNumber(r)?"boolean"!==t||___default.isBoolean(r)||(r="true"===r):r=Number(r):r=String(r))),r};function getTreeOptions(t,e){const o=e?.valueField||"value";e?.labelField;const r=e?.unfoldedNum||1,n=[],a=(t,r,n)=>{var e;if(r)return e=_.filter(t,e=>_.includes(r,e[o])),_.each(e,e=>{1<=n?(e.unfolded=!0,e.children&&(e.children=a(t,e.children,n-1))):e.children&&(e.children=a(t,e.children,n));}),e};for(var i=t,s=0;s<i.length;s++)if(i[s].noParent=0,i[s].unfolded=!1,i[s].parent){let e=1;for(var l=0;l<i.length;l++)i[s].parent==i[l][o]&&(e=0);1==e&&(i[s].noParent=1);}else i[s].noParent=1;return _.each(t,e=>{1==e.noParent&&(1<=r?(e.unfolded=!0,n.push(Object.assign({},e,{children:a(t,e.children,r-1)}))):n.push(Object.assign({},e,{children:a(t,e.children,r)})));}),n}const SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef(e){return SteedosUI$1.refs[e]},router:{go:(e,t)=>{var r=window.FlowRouter;if(t)return r?r.go(t):window.open(t);r?r.reload():console.warn("暂不支持自动跳转",e);},reload:()=>{console.log("reload");}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:r})=>{switch(e){case"listview":return `amis-${t}-${r}-listview`;case"form":return `amis-${t}-${r}-form`;case"detail":return `amis-${t}-${r}-detail`;default:return `amis-${t}-${r}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue,getTreeOptions:getTreeOptions});var getBuilderContext=function(){return "undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({getRootUrl:function(e){var t=getBuilderContext();return t.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return (e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e);}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,r=e.authToken;return t&&r?"Bearer ".concat(t,",").concat(r):null}catch(e){console.error(e);}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"==typeof window||window.Steedos||(window.Steedos=Steedos$1),"undefined"==typeof window||window.SteedosUI||(window.SteedosUI=SteedosUI$1);
14996
+ var __assign=function(){return (__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},StandardObjects={Base:{Actions:{standard_query:{visible:function(e,t,n){return !1}},standard_new:{visible:function(e,t,n){return "cms_files"!==e&&"instances"!==e&&(n?n.allowCreate:void 0)}},standard_edit:{visible:function(e,t,n){if(n)return n.allowEdit}},standard_delete:{visible:function(e,t,n){if(n)return n.allowDelete}},standard_import_data:{visible:function(e,t,n){var r=this.object;if(n)return n.allowCreate&&r.hasImportTemplates}},standard_approve:{visible:function(e,t,n){return !1}},standard_view_instance:{visible:function(e,t,n){return !1}},standard_submit_for_approval:{visible:function(e,t,n){return window.Steedos.ProcessManager.allowSubmit.apply(this,[e,t])},todo:function(e,t){return window.Steedos.ProcessManager.submit.apply(this,[e,t])}},standard_follow:{visible:function(e,t,n){return !1}},standard_delete_many:{visible:function(e,t,n){return !RegExp("\\w+/view/\\w+").test(location.pathname)&&(n?n.allowDelete:void 0)}}}}},authRequest=function(e,t){var i=null;e=Steedos.absoluteUrl(e);try{var n=[{name:"Content-Type",value:"application/json"},{name:"Authorization",value:Steedos.getAuthorization()}],r={type:"get",url:e,dataType:"json",contentType:"application/json",beforeSend:function(t){if(n&&n.length)return n.forEach(function(e){return t.setRequestHeader(e.name,e.value)})},success:function(e){i=e;},error:function(e,t,n){var r,o;e.responseJSON&&e.responseJSON.error?(r=e.responseJSON.error,o=void(i={error:r}),o=r.reason||r.message||r,console.error(o)):console.error(e.responseJSON);}};return $.ajax(Object.assign({},r,t)),i}catch(e){console.error(e);}};function _extends(){return (_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e}).apply(this,arguments)}const newFunctionComponent=o=>e=>{const[t,n]=React.useState(!0);var r=()=>{n(!1);};return ___default.has(e,"ref")||(window.SteedosUI.refs[e.name]={show:()=>{n(!0);},close:r}),React__default["default"].createElement(o,_extends({visible:t,onCancel:r,onClose:r},{width:"70%",style:{width:"70%",maxWidth:"950px",minWidth:"480px"}},e))},newComponentRender=(n,r)=>(e,t)=>{e.name||(e.name=n+"-"+(e.name||"default")),(t=t||document.getElementById(`steedos-${n}-root-`+e.name))||((t=document.createElement("div")).setAttribute("id",`steedos-${n}-root-`+e.name),document.body.appendChild(t));e=React__default["default"].createElement(newFunctionComponent(r),e);ReactDOM.createRoot(t).render(e);},Modal=___default.assign(newComponentRender("modal",antd.Modal),{info:antd.Modal.info,success:antd.Modal.success,error:antd.Modal.error,warning:antd.Modal.warning,confirm:antd.Modal.confirm}),Drawer=newComponentRender("drawer",antd.Drawer),getGraphqlFieldsQuery=e=>{const t=["_id"];return e.push("record_permissions"),___default.each(e,e=>{-1<e.indexOf(".")&&(e=e.split(".")[0]),t.push(""+e);}),""+t.join(" ")},getFindOneQuery=(e,t,n)=>{e=e.replace(/\./g,"_");n=getGraphqlFieldsQuery(n);let r="";t=[`id: "${t}"`];return `{record:${e}__findOne${r=0<t.length?`(${t.join(",")})`:r}{${n}}}`},SObject={getRecord:async(e,t,n)=>{return (await fetchAPI("/graphql",{method:"post",body:JSON.stringify({query:getFindOneQuery(e,t,n)})})).data.record},getUISchema:async(e,t)=>getUISchema(e,t)},canSaveFilter=e=>!(!e._id||e.owner!==getSteedosAuth()?.userId),ListView={showFilter:(e,{listView:t,data:n})=>{canSaveFilter(t);n.filters&&(n.filters=filtersToConditions(n.filters));},getVisibleFilter:(e,t)=>{return t||(canSaveFilter(e)?e.filters:void 0)},getQueryFilter:(e,t)=>{return canSaveFilter(e)?ListView.getVisibleFilter(e,t):___default.isEmpty(t)?e.filters:[e.filters,"and",t]},getFirstListView:async e=>{e=await window.getUISchema(e);return _.first(_.sortBy(_.values(e.list_views),"sort_no"))}},Router={getAppPath({appId:e}){return "/app/"+e},getPagePath(){},getObjectListViewPath({appId:e,objectName:t,listViewName:n}){return `/app/${e}/${t}/grid/`+n},getObjectDetailPath({appId:e,objectName:t,recordId:n}){return `/app/${e}/${t}/view/`+n},getObjectRelatedViewPath({appId:e,masterObjectName:t,masterRecordId:n,objectName:r,foreignKey:o}){return `/app/${e}/${t}/${n}/${r}/grid?related_field_name=`+o}};var withModalWrap=function(t,e){return function(e){return React.createElement(t,e)}},render=function(e,t,n,r){e=withModalWrap(e),e=React.createElement(e,__assign({},t));return ReactDOM__default["default"].render(e,n)};const safeRunFunction=(t,n,r,o)=>{try{var i=window.Creator;if(!!(!i||!i.getObjectUrl)&&/\bSteedos\b|\bCreator\b|\bMeteor\b|\bSession\b/.test(t))return console.info("调用了Creator|Steedos|Meteor|Session变量的脚本不执行,直接按空值处理。"),"";let e=[];return ___default.isNil(n)||(e=___default.isArray(n)?n:[n]),t.bind(o||{})(...e)}catch(e){return console.log(e),r}};function safeEval(js){try{return eval(js)}catch(e){console.error(e,js);}}const isExpression=function(e){var t,n;return "string"==typeof e&&(t=/^{{(function.+)}}$/,n=/^{{(.+=>.+)}}$/,!("string"!=typeof e||!e.match(/^{{(.+)}}$/)||e.match(t)||e.match(n)))},parseSingleExpression=function(t,e,n,r){var o,i=function(e,t){return "#"!==t&&t?"string"==typeof t?_.get(e,t):void console.error("path has to be a string"):e||{}}(e=void 0===e?{}:e,function(e){return "string"!=typeof e||1===(e=e.split(".")).length?"#":(e.pop(),e.join("."))}(n))||{};if("string"!=typeof t)return t;o="__G_L_O_B_A_L__",e="\n return "+t.substring(2,t.length-2).replace(/\bformData\b/g,JSON.stringify(e).replace(/\bglobal\b/g,o)).replace(/\bglobal\b/g,JSON.stringify(r)).replace(new RegExp("\\b"+o+"\\b","g"),"global").replace(/rootValue/g,JSON.stringify(i));try{return Function(e)()}catch(e){return console.log(e,t,n),t}};var Expression=Object.freeze({__proto__:null,isExpression:isExpression,parseSingleExpression:parseSingleExpression});const getCompatibleDefaultValueExpression=(e,t)=>{let n=e;return /^\{\w+(\.*\w+)*\}$/.test(e)&&(n=-1<e.indexOf("userId")||-1<e.indexOf("spaceId")||-1<e.indexOf("user.")||-1<e.indexOf("now")?`{${e}}`.replace("{{","{{global."):`{${e}}`.replace("{{","{{formData."),t&&(n=n.replace(/\{\{(.+)\}\}/,"{{[$1]}}"))),n},getFieldDefaultValue=(e,t)=>{if(!e)return null;let n=e.defaultValue;e._defaultValue&&(n=safeEval(`(${e._defaultValue})`)),___default.isFunction(n)&&(n=safeRunFunction(n,[],null,{name:e.name})),___default.isString(n)&&(n=getCompatibleDefaultValueExpression(n,e.multiple));var r=isExpression(n);return r&&(n=parseSingleExpression(n,{},"#",t)),"select"===e.type&&(t=e.data_type||"text",!n||r||e.multiple||("text"!==t||___default.isString(n)?"number"!==t||___default.isNumber(n)?"boolean"!==t||___default.isBoolean(n)||(n="true"===n):n=Number(n):n=String(n))),n};function getTreeOptions(t,e){const o=e?.valueField||"value";e?.labelField;const n=e?.unfoldedNum||1,r=[],i=(t,n,r)=>{var e;if(n)return e=_.filter(t,e=>_.includes(n,e[o])),_.each(e,e=>{1<=r?(e.unfolded=!0,e.children&&(e.children=i(t,e.children,r-1))):e.children&&(e.children=i(t,e.children,r));}),e};for(var a=t,s=0;s<a.length;s++)if(a[s].noParent=0,a[s].unfolded=!1,a[s].parent){let e=1;for(var l=0;l<a.length;l++)a[s].parent==a[l][o]&&(e=0);1==e&&(a[s].noParent=1);}else a[s].noParent=1;return _.each(t,e=>{1==e.noParent&&(1<=n?(e.unfolded=!0,r.push(Object.assign({},e,{children:i(t,e.children,n-1)}))):r.push(Object.assign({},e,{children:i(t,e.children,n)})));}),r}function getClosestAmisComponentByType(t,n,r){let o=(r=r||{}).name;var e=r.direction||"up";let i=t.getComponents().find(function(e){return e.props.type===n&&(!o||e.props.name===o)});if(i)return i;if("down"===e){if(t.children&&t.children.length){for(let e=0;e<t.children.length&&!(i=getClosestAmisComponentByType(t.children[e],n,r));e++);return i}}else if("up"===e&&t.parent)return getClosestAmisComponentByType(t.parent,n,r)}function isFilterFormValuesEmpty(e){let t=!0;var e=_.pickBy(e,function(e,t){return /^__searchable__/g.test(t)});return _.isEmpty(e)||(e=_.omitBy(e,function(e){return _.isNil(e)||_.isObject(e)&&_.isEmpty(e)||_.isArray(e)&&_.isEmpty(e.filter(function(e){return !_.isNil(e)}))||_.isString(e)&&0===e.length}),_.isEmpty(e)||(t=!1)),t}const SteedosUI$1=Object.assign({},{render:render,Router:Router,ListView:ListView,Object:SObject,Modal:Modal,Drawer:Drawer,refs:{},getRef(e){return SteedosUI$1.refs[e]},router:{go:(e,t)=>{var n=window.FlowRouter;if(t)return n?n.go(t):window.open(t);n?n.reload():console.warn("暂不支持自动跳转",e);},reload:()=>{console.log("reload");}},message:antd.message,notification:antd.notification,components:{Button:antd.Button,Space:antd.Space},getRefId:({type:e,appId:t,name:n})=>{switch(e){case"listview":return `amis-${t}-${n}-listview`;case"form":return `amis-${t}-${n}-form`;case"detail":return `amis-${t}-${n}-detail`;default:return `amis-${t}-${n}-`+e}},reloadRecord:()=>{if(window.FlowRouter)return window.FlowRouter.reload()},getFieldDefaultValue:getFieldDefaultValue,getTreeOptions:getTreeOptions,getClosestAmisComponentByType:getClosestAmisComponentByType,isFilterFormValuesEmpty:isFilterFormValuesEmpty});var getBuilderContext=function(){return "undefined"==typeof window?{}:Builder.settings.context||Builder.settings},Steedos$1=__assign({getRootUrl:function(e){var t=getBuilderContext();return t.rootUrl||("undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"")||e},absoluteUrl:function(e){return void 0===e&&(e=""),"".concat(Steedos$1.getRootUrl()).concat(e)},getTenantId:function(){try{var e=getBuilderContext().tenantId;return (e=window.location.search&&!e?new URLSearchParams(window.location.search).get("X-Space-Id"):e)?e:null}catch(e){console.error(e);}},getAuthorization:function(){try{var e=getBuilderContext(),t=e.tenantId,n=e.authToken;return t&&n?"Bearer ".concat(t,",").concat(n):null}catch(e){console.error(e);}},authRequest:authRequest,StandardObjects:StandardObjects},Expression);"undefined"==typeof window||window.Steedos||(window.Steedos=Steedos$1),"undefined"==typeof window||window.SteedosUI||(window.SteedosUI=SteedosUI$1);
14770
14997
 
14771
14998
  var index_esm = /*#__PURE__*/Object.freeze({
14772
14999
  __proto__: null,