@steedos-widgets/sortable 6.3.0-beta.10 → 6.3.0-beta.12

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/assets.json CHANGED
@@ -3,8 +3,8 @@
3
3
  {
4
4
  "package": "@steedos-widgets/sortable",
5
5
  "urls": [
6
- "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.10/dist/sortable.umd.js",
7
- "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.10/dist/sortable.umd.css"
6
+ "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.12/dist/sortable.umd.js",
7
+ "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.12/dist/sortable.umd.css"
8
8
  ],
9
9
  "library": "BuilderSortable"
10
10
  }
@@ -15,10 +15,10 @@
15
15
  "npm": {
16
16
  "package": "@steedos-widgets/sortable"
17
17
  },
18
- "url": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.10/dist/meta.js",
18
+ "url": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.12/dist/meta.js",
19
19
  "urls": {
20
- "default": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.10/dist/meta.js",
21
- "design": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.10/dist/meta.js"
20
+ "default": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.12/dist/meta.js",
21
+ "design": "https://unpkg.com/@steedos-widgets/sortable@6.3.0-beta.12/dist/meta.js"
22
22
  }
23
23
  }
24
24
  ]
@@ -54130,9 +54130,9 @@ function getSelectMap(selectOptions){
54130
54130
  }
54131
54131
 
54132
54132
  function getNameTplUrl(field, ctx){
54133
- if(ctx.objectName === 'cms_files'){
54134
- return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
54135
- }
54133
+ // if(ctx.objectName === 'cms_files'){
54134
+ // return "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}"
54135
+ // }
54136
54136
  const href = Router.getObjectDetailPath({
54137
54137
  ...ctx, formFactor: ctx.formFactor, appId: "${appId}", objectName: ctx.objectName || "${objectName}", recordId: `\${${ctx.idFieldName}}`
54138
54138
  });
@@ -54322,12 +54322,15 @@ async function getFieldTpl (field, options){
54322
54322
  }
54323
54323
  }
54324
54324
 
54325
- async function getFieldsTemplate(fields, display){
54325
+ async function getFieldsTemplate(object, fields, display){
54326
54326
  let expandFields = [];
54327
54327
  if(display != false){
54328
54328
  display = true;
54329
54329
  }
54330
54330
  let fieldsName = ['_id'];
54331
+ if(!object.datasource || object.datasource === 'default' || object.datasource === 'meteor'){
54332
+ fieldsName.push('space');
54333
+ }
54331
54334
  let displayFields = [];
54332
54335
  let fieldsArr = [];
54333
54336
  if(lodash.exports.isArray(fields)){
@@ -54413,7 +54416,7 @@ async function getFindQuery(object, recordId, fields, options){
54413
54416
  // return item.replace(/^{/,"").replace(/}$/,"");
54414
54417
  // }).join(",")) : "";
54415
54418
 
54416
- const fieldsTemplate = `${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}`;
54419
+ const fieldsTemplate = `${await getFieldsTemplate(object, fields, options.expand)}${treeFields}${cfsFields}`;
54417
54420
 
54418
54421
  return {
54419
54422
  orderBy: "${orderBy}",
@@ -54642,6 +54645,7 @@ var frontend_form_confirm$1 = "Confirm";
54642
54645
  var frontend_form_delete$1 = "Delete";
54643
54646
  var frontend_form_view$1 = "view";
54644
54647
  var frontend_form_details$1 = "details";
54648
+ var frontend_form_validation_failed_url$1 = "The URL format is incorrect";
54645
54649
  var frontend_delete_confirm_text$1 = "Are you sure you want to delete this item?";
54646
54650
  var frontend_delete_many_selected_required$1 = "Please select the item to be deleted";
54647
54651
  var frontend_delete_many_confirm_text$1 = "Are you sure you want to delete?";
@@ -54730,6 +54734,7 @@ var en_us = {
54730
54734
  frontend_form_delete: frontend_form_delete$1,
54731
54735
  frontend_form_view: frontend_form_view$1,
54732
54736
  frontend_form_details: frontend_form_details$1,
54737
+ frontend_form_validation_failed_url: frontend_form_validation_failed_url$1,
54733
54738
  frontend_delete_confirm_text: frontend_delete_confirm_text$1,
54734
54739
  frontend_delete_many_selected_required: frontend_delete_many_selected_required$1,
54735
54740
  frontend_delete_many_confirm_text: frontend_delete_many_confirm_text$1,
@@ -54819,6 +54824,7 @@ var frontend_form_confirm = "确认";
54819
54824
  var frontend_form_delete = "删除";
54820
54825
  var frontend_form_view = "查看";
54821
54826
  var frontend_form_details = "详情";
54827
+ var frontend_form_validation_failed_url = "URL 格式不正确";
54822
54828
  var frontend_delete_confirm_text = "确定要删除此项目?";
54823
54829
  var frontend_delete_many_selected_required = "请选择要删除的项";
54824
54830
  var frontend_delete_many_confirm_text = "确定要删除吗?";
@@ -54908,6 +54914,7 @@ var zh_cn = {
54908
54914
  frontend_form_delete: frontend_form_delete,
54909
54915
  frontend_form_view: frontend_form_view,
54910
54916
  frontend_form_details: frontend_form_details,
54917
+ frontend_form_validation_failed_url: frontend_form_validation_failed_url,
54911
54918
  frontend_delete_confirm_text: frontend_delete_confirm_text,
54912
54919
  frontend_delete_many_selected_required: frontend_delete_many_selected_required,
54913
54920
  frontend_delete_many_confirm_text: frontend_delete_many_confirm_text,
@@ -55012,6 +55019,29 @@ instance
55012
55019
  }
55013
55020
  });
55014
55021
 
55022
+ /*
55023
+ * @Author: baozhoutao@steedos.com
55024
+ * @Date: 2022-07-13 15:18:03
55025
+ * @LastEditors: baozhoutao@steedos.com
55026
+ * @LastEditTime: 2023-04-11 10:34:26
55027
+ * @Description:
55028
+ */
55029
+
55030
+ async function getPage({type, pageId = '', appId, objectName = '', recordId = '', formFactor = 'LARGE'}){
55031
+ const api = `/api/pageSchema/${type}?app=${appId}&objectApiName=${objectName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`;
55032
+ const page = await fetchAPI(api);
55033
+ if (page && page.schema) {
55034
+ page.schema = JSON.parse(page.schema);
55035
+ if(page.schema.data){
55036
+ delete page.schema.data.recordId;
55037
+ delete page.schema.data.objectName;
55038
+ delete page.schema.data.context;
55039
+ delete page.schema.data.global;
55040
+ }
55041
+ return page;
55042
+ }
55043
+ }
55044
+
55015
55045
  async function getQuickEditSchema(object, columnField, options){
55016
55046
  let field = object.fields[columnField.name];
55017
55047
  //判断在amis3.2以上环境下,放开批量编辑与lookup的单元格编辑
@@ -55481,6 +55511,59 @@ function getFieldWidth(width){
55481
55511
  }
55482
55512
  }
55483
55513
 
55514
+ async function getColumnItemOnClick(field, options){
55515
+ const recordPage = await getPage({ type: 'record', appId: options.appId, objectName: options.objectName, formFactor: options.formFactor });
55516
+ const drawerRecordDetailSchema = recordPage ? Object.assign({}, recordPage.schema, {
55517
+ "recordId": `\${${options.idFieldName}}`,
55518
+ "data": {
55519
+ ...recordPage.schema.data,
55520
+ "_inDrawer": true, // 用于判断是否在抽屉中
55521
+ "recordLoaded": false, // 重置数据加载状态
55522
+ }
55523
+ }) : {
55524
+ "type": "steedos-record-detail",
55525
+ "objectApiName": "${objectName}",
55526
+ "recordId": `\${${options.idFieldName}}`,
55527
+ "showBackButton": false,
55528
+ "showButtons": true,
55529
+ "data": {
55530
+ "_inDrawer": true, // 用于判断是否在抽屉中
55531
+ "recordLoaded": false, // 重置数据加载状态
55532
+ }
55533
+ };
55534
+
55535
+ if(!(field.is_name || field.name === options.labelFieldName)){
55536
+ drawerRecordDetailSchema.objectApiName = field.reference_to;
55537
+ drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
55538
+ }
55539
+ return {
55540
+ "click": {
55541
+ "actions": [
55542
+ {
55543
+ "actionType": "drawer",
55544
+ "drawer": {
55545
+ "type": "drawer",
55546
+ "title": " ",
55547
+ "headerClassName": "hidden",
55548
+ "size": "lg",
55549
+ "bodyClassName": "p-0 m-0 bg-gray-100",
55550
+ "closeOnEsc": true,
55551
+ "closeOnOutside": true,
55552
+ "resizable": true,
55553
+ "actions": [],
55554
+ "body": [
55555
+ drawerRecordDetailSchema
55556
+ ],
55557
+ "className": "steedos-record-detail-drawer app-popover",
55558
+ "id": "u:fc5f055afa8c"
55559
+ },
55560
+ "preventDefault": true
55561
+ }
55562
+ ]
55563
+ }
55564
+ };
55565
+ }
55566
+
55484
55567
  async function getTableColumns(object, fields, options){
55485
55568
  const columns = [];
55486
55569
  if(!options.isLookup && !options.isInputTable){
@@ -55520,7 +55603,10 @@ async function getTableColumns(object, fields, options){
55520
55603
  delete fieldAmis?.className;
55521
55604
 
55522
55605
  let columnItem;
55523
- if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files'){
55606
+
55607
+ // PC客户端点击名称字段直接预览
55608
+ let isNode = !!(window && window.nw && window.nw.require);
55609
+ if((field.is_name || field.name === options.labelFieldName) && options.objectName === 'cms_files' && isNode){
55524
55610
  const previewFileScript = `
55525
55611
  var data = event.data;
55526
55612
  var file_name = data.versions ? data.name : "${field.label}";
@@ -55535,20 +55621,20 @@ async function getTableColumns(object, fields, options){
55535
55621
  "onEvent": {
55536
55622
  "click": {
55537
55623
  "actions": [
55538
- {
55539
- "args": {
55540
- "api": {
55541
- "url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
55542
- "method": "get",
55543
- "headers": {
55544
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
55545
- }
55546
- }
55547
- },
55548
- "actionType": "download",
55549
- // "expression": "!!!window?.nw?.require"//浏览器上直接下载
55550
- "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
55551
- },
55624
+ // {
55625
+ // "args": {
55626
+ // "api": {
55627
+ // "url": "${(versions[0] && versions[0].url) ? versions[0].url+'?download=true' : context.rootUrl+'/api/files/files/'+versions[0]+'?download=true'}",
55628
+ // "method": "get",
55629
+ // "headers": {
55630
+ // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
55631
+ // }
55632
+ // }
55633
+ // },
55634
+ // "actionType": "download",
55635
+ // // "expression": "!!!window?.nw?.require"//浏览器上直接下载
55636
+ // "expression": "!!!(window && window.nw && window.nw.require)"//浏览器上直接下载
55637
+ // },
55552
55638
  {
55553
55639
  "args": {},
55554
55640
  "actionType": "custom",
@@ -55646,51 +55732,7 @@ async function getTableColumns(object, fields, options){
55646
55732
  }
55647
55733
 
55648
55734
  if(window.innerWidth >= 768 && ((field.is_name || field.name === options.labelFieldName) || ((field.type == 'lookup' || field.type == 'master_detail') && lodash.exports.isString(field.reference_to) && field.multiple != true)) && options.isRelated){
55649
-
55650
- const drawerRecordDetailSchema = {
55651
- "type": "steedos-record-detail",
55652
- "objectApiName": "${objectName}",
55653
- "recordId": `\${${options.idFieldName}}`,
55654
- "showBackButton": false,
55655
- "showButtons": true,
55656
- "data": {
55657
- "_inDrawer": true, // 用于判断是否在抽屉中
55658
- "recordLoaded": false, // 重置数据加载状态
55659
- }
55660
- };
55661
-
55662
-
55663
- if(!(field.is_name || field.name === options.labelFieldName)){
55664
- drawerRecordDetailSchema.objectApiName = field.reference_to;
55665
- drawerRecordDetailSchema.recordId = `\${_display.${field.name}.value}`;
55666
- }
55667
-
55668
- columnItem.onEvent = {
55669
- "click": {
55670
- "actions": [
55671
- {
55672
- "actionType": "drawer",
55673
- "drawer": {
55674
- "type": "drawer",
55675
- "title": " ",
55676
- "headerClassName": "hidden",
55677
- "size": "lg",
55678
- "bodyClassName": "p-0 m-0 bg-gray-100",
55679
- "closeOnEsc": true,
55680
- "closeOnOutside": true,
55681
- "resizable": true,
55682
- "actions": [],
55683
- "body": [
55684
- drawerRecordDetailSchema
55685
- ],
55686
- "className": "steedos-record-detail-drawer app-popover",
55687
- "id": "u:fc5f055afa8c"
55688
- },
55689
- "preventDefault": true
55690
- }
55691
- ]
55692
- }
55693
- };
55735
+ columnItem.onEvent = await getColumnItemOnClick(field, options);
55694
55736
  }
55695
55737
 
55696
55738
  }
@@ -55903,17 +55945,23 @@ async function getMobileTableColumns(fields, options){
55903
55945
  onEvent: {
55904
55946
  "click": {
55905
55947
  "actions": [
55948
+ // {
55949
+ // "args": {
55950
+ // "api": {
55951
+ // "url": url,
55952
+ // "method": "get",
55953
+ // "headers": {
55954
+ // "Authorization": "Bearer ${context.tenantId},${context.authToken}"
55955
+ // }
55956
+ // }
55957
+ // },
55958
+ // "actionType": "download"
55959
+ // }
55906
55960
  {
55961
+ "actionType": "link",
55907
55962
  "args": {
55908
- "api": {
55909
- "url": url,
55910
- "method": "get",
55911
- "headers": {
55912
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
55913
- }
55914
- }
55915
- },
55916
- "actionType": "download"
55963
+ "link": url
55964
+ }
55917
55965
  }
55918
55966
  ],
55919
55967
  "weight": 0
@@ -59737,7 +59785,11 @@ async function lookupToAmisPicker(field, readonly, ctx){
59737
59785
  // 如果当前元素不是数组,则处理该元素
59738
59786
  // 下面正则用于匹配amis公式\${}
59739
59787
  if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
59740
- arr[i] = currentAmis.evaluate(arr[i], api.data.$self);
59788
+ try{
59789
+ arr[i] = currentAmis.evaluate(arr[i], api.context);
59790
+ }catch(ex){
59791
+ console.error("运行lookup过滤公式时出现错误:",ex);
59792
+ }
59741
59793
  }
59742
59794
  }
59743
59795
  }
@@ -60154,7 +60206,11 @@ async function lookupToAmisSelect(field, readonly, ctx){
60154
60206
  // 如果当前元素不是数组,则处理该元素
60155
60207
  // 下面正则用于匹配amis公式\${}
60156
60208
  if(/\\\$\\\{([^}]*)\\\}/.test(arr[i])) {
60157
- arr[i] = currentAmis.evaluate(arr[i], api.data.$self);
60209
+ try{
60210
+ arr[i] = currentAmis.evaluate(arr[i], api.context);
60211
+ }catch(ex){
60212
+ console.error("运行lookup过滤公式时出现错误:",ex);
60213
+ }
60158
60214
  }
60159
60215
  }
60160
60216
  }
@@ -61149,6 +61205,21 @@ async function convertSFieldToAmisField(field, readonly, ctx) {
61149
61205
  type: getAmisStaticFieldType('url', readonly, field),
61150
61206
  static: readonly ? true : false
61151
61207
  };
61208
+ if(!readonly){
61209
+ // amis input-url控件不支持相对路径,这里支持下
61210
+ // 如果要使用amis原生input-url控件的默认的isUrl验证效果或自定义字段validations效果,配置字段的amis.validations属性即可,配置为null或空字符串则使用amis默认的isUrl效果
61211
+ let fieldAmisValidations = field.amis?.validations;
61212
+ if(typeof fieldAmisValidations === "undefined"){
61213
+ Object.assign(convertData, {
61214
+ "validations": {
61215
+ "matchRegexp": "^((http:\\/\\/|https:\\/\\/|ftp:\\/\\/|sftp:\\/\\/)+([^\\s\\/\\.]+(\\.[^\\s\\/\\.]+)+))*(\\/[^\\s\\.\\/]+)*$"
61216
+ },
61217
+ "validationErrors": {
61218
+ "matchRegexp": instance.t('frontend_form_validation_failed_url')//"URL 格式不正确"
61219
+ }
61220
+ });
61221
+ }
61222
+ }
61152
61223
  if(readonly && field.show_as_qr){
61153
61224
  convertData = {
61154
61225
  type: "control",