@steedos-widgets/amis-object 1.1.0-beta.1 → 1.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,7 @@ export declare const AmisInstanceDetail: (props: any) => Promise<{
3
3
  type: string;
4
4
  name: string;
5
5
  className: string;
6
+ bodyClassName: string;
6
7
  title: {
7
8
  type: string;
8
9
  label: string;
@@ -204,6 +205,9 @@ export declare const AmisInstanceDetail: (props: any) => Promise<{
204
205
  size: string;
205
206
  title: string;
206
207
  className: string;
208
+ headerClassName: string;
209
+ bodyClassName: string;
210
+ footerClassName: string;
207
211
  drawerContainer: () => any;
208
212
  body: {
209
213
  type: string;
@@ -270,6 +274,7 @@ export declare const AmisInstanceDetail: (props: any) => Promise<{
270
274
  id: string;
271
275
  multiple: boolean;
272
276
  required: boolean;
277
+ selectFirst: boolean;
273
278
  source: {
274
279
  url: string;
275
280
  headers: {
@@ -193,6 +193,10 @@ body {
193
193
  height: calc(100% - 40px);
194
194
  }
195
195
 
196
+ /* nav下配置itemBadge属性后item不会自动撑开 */
197
+ .antd-Nav-Menu-item-wrap .antd-Badge{
198
+ width: -webkit-fill-available;
199
+ }
196
200
 
197
201
  .ant-dropdown-menu {
198
202
  border: 1px solid #e5e5e5;
@@ -384,6 +388,9 @@ body {
384
388
  .h-14 {
385
389
  height: 3.5rem
386
390
  }
391
+ .h-full {
392
+ height: 100%
393
+ }
387
394
  .h-5 {
388
395
  height: 1.25rem
389
396
  }
@@ -405,9 +412,6 @@ body {
405
412
  .h-7 {
406
413
  height: 1.75rem
407
414
  }
408
- .h-full {
409
- height: 100%
410
- }
411
415
  .h-8 {
412
416
  height: 2rem
413
417
  }
@@ -651,6 +655,9 @@ body {
651
655
  .pt-2 {
652
656
  padding-top: 0.5rem
653
657
  }
658
+ .pt-0 {
659
+ padding-top: 0px
660
+ }
654
661
  .pl-1\.5 {
655
662
  padding-left: 0.375rem
656
663
  }
@@ -1134,6 +1141,9 @@ body.sidebar #sidebar {
1134
1141
  border: none !important;
1135
1142
  box-shadow: none !important;
1136
1143
  }
1144
+ .steedos-amis-instance-view .instance-form-view .antd-Form-static .antd-Form-control {
1145
+ padding-left: 0.75rem !important;
1146
+ }
1137
1147
  .steedos-amis-instance-view .instance-form-view .antd-Number {
1138
1148
  background-color: transparent !important;
1139
1149
  border: none !important;
@@ -1162,17 +1172,12 @@ body.sidebar #sidebar {
1162
1172
  .steedos-amis-instance-view .form-control {
1163
1173
  background: no-repeat;
1164
1174
  }
1165
- .steedos-amis-instance-view .instance-form-view tbody td {
1166
- border: 1px solid #000;
1167
- padding-left: 0.75rem !important;
1168
- }
1169
1175
  .steedos-amis-instance-view .form-control .antd-Table-table thead th {
1170
1176
  background: transparent !important;
1171
1177
  border-color: #000;
1172
1178
  }
1173
1179
  .steedos-amis-instance-view .form-control .antd-Table-table tbody td {
1174
1180
  border: 1px solid #000;
1175
- padding-left: 0.75rem !important;
1176
1181
  }
1177
1182
  .steedos-amis-instance-view .form-control .antd-Table-table tbody td:last-child {
1178
1183
  border-right: none !important;
@@ -1288,7 +1288,7 @@ function getRecordPermissionsQuery(object, recordId, options){
1288
1288
  function getApi$2 (isMobile){
1289
1289
  if(isMobile);else {
1290
1290
  // return __meteor_runtime_config__.ROOT_URL_PATH_PREFIX + "/graphql"
1291
- return `\${context.rootUrl}/graphql`
1291
+ return `\${context.rootUrl}/graphql?reload=\${additionalFilters}`
1292
1292
  }
1293
1293
  }
1294
1294
 
@@ -1435,10 +1435,18 @@ async function getSource$1(field, ctx) {
1435
1435
  }
1436
1436
  data.$value = `$${valueField}`;
1437
1437
  // data["&"] = "$$";
1438
+
1439
+ const fieldValue = ctx.value;
1440
+
1438
1441
  const requestAdaptor = `
1439
1442
  var filters = [['parent', '=', null]];
1440
1443
  api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));
1441
1444
  var defaultValue = api.data.$value;
1445
+ var fieldValue = ${JSON.stringify(fieldValue)};
1446
+ if(!defaultValue && fieldValue){
1447
+ // 如果表单中没有字段值,则认字段上配置的value属性
1448
+ defaultValue = fieldValue;
1449
+ }
1442
1450
  var optionsFiltersOp = "${field.multiple ? "in" : "="}";
1443
1451
  var optionsFilters = [["user", optionsFiltersOp, []]];
1444
1452
  if (defaultValue) {
@@ -1547,7 +1555,7 @@ async function getDeferApi$1(field, ctx) {
1547
1555
  `;
1548
1556
  return {
1549
1557
  "method": "post",
1550
- "url": getApi$2() + "?ref=${ref}&dep=${value}",
1558
+ "url": getApi$2() + "&ref=${ref}&dep=${value}",
1551
1559
  "requestAdaptor": requestAdaptor,
1552
1560
  "adaptor": adaptor,
1553
1561
  "data": data,
@@ -1656,6 +1664,11 @@ async function getSelectUserSchema(field, readonly, ctx) {
1656
1664
  if (typeof amisSchema.searchable !== "boolean") {
1657
1665
  amisSchema.searchable = true;
1658
1666
  }
1667
+
1668
+ if(ctx.value){
1669
+ amisSchema.value = ctx.value;
1670
+ }
1671
+
1659
1672
  const onEvent = field.onEvent;
1660
1673
  if (onEvent) {
1661
1674
  amisSchema.onEvent = onEvent;
@@ -4055,7 +4068,7 @@ async function getDeferApi(field, ctx) {
4055
4068
  `;
4056
4069
  return {
4057
4070
  "method": "post",
4058
- "url": getApi$2() + "?dep=${value}",
4071
+ "url": getApi$2() + "&dep=${value}",
4059
4072
  "requestAdaptor": requestAdaptor,
4060
4073
  "adaptor": adaptor,
4061
4074
  "data": data,
@@ -4564,6 +4577,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
4564
4577
  type: getAmisStaticFieldType('select', readonly),
4565
4578
  joinValues: false,
4566
4579
  extractValue: true,
4580
+ clearable: true,
4567
4581
  // labelField: labelField,
4568
4582
  // valueField: valueField,
4569
4583
  source: apiInfo,
@@ -4758,6 +4772,14 @@ async function getIdsPickerSchema(field, readonly, ctx){
4758
4772
  data.extractValue = true;
4759
4773
  }
4760
4774
 
4775
+ if(ctx.value){
4776
+ data.value = ctx.value;
4777
+ }
4778
+
4779
+ if(ctx.selectFirst != undefined){
4780
+ data.selectFirst = ctx.selectFirst;
4781
+ }
4782
+
4761
4783
  if(readonly){
4762
4784
  data.tpl = await getLookupTpl(field, ctx);
4763
4785
  }
@@ -5732,15 +5754,17 @@ async function getEditFormInitApi(object, recordId, fields){
5732
5754
  const dataKeys = _.keys(data);
5733
5755
  const uiSchema = api.body.uiSchema;
5734
5756
  const fieldKeys = uiSchema && _.keys(uiSchema.fields);
5735
- _.each(dataKeys, function(key){
5736
- if(fieldKeys.indexOf(key)<0){
5737
- delete data[key];
5738
- }
5739
- })
5740
5757
 
5741
5758
  if(data){
5742
5759
  ${getScriptForAddUrlPrefixForImgFields(fields)}
5743
5760
  ${getScriptForRewriteValueForFileFields(fields)}
5761
+
5762
+ _.each(dataKeys, function(key){
5763
+ if(fieldKeys.indexOf(key)<0){
5764
+ delete data[key];
5765
+ }
5766
+ })
5767
+
5744
5768
  //初始化接口返回的字段移除字段值为null的字段
5745
5769
  for (key in data){
5746
5770
  if(data[key] === null){
@@ -6821,6 +6845,10 @@ async function getTableApi(mainObject, fields, options){
6821
6845
 
6822
6846
  if(!_.isEmpty(systemFilters)){
6823
6847
  filters = systemFilters;
6848
+ };
6849
+
6850
+ if(api.data.$self.additionalFilters){
6851
+ userFilters.push(api.data.$self.additionalFilters)
6824
6852
  }
6825
6853
 
6826
6854
  if(!_.isEmpty(userFilters)){
@@ -9341,6 +9369,7 @@ const getNextStepInput = async (instance) => {
9341
9369
  id: "u:next_step",
9342
9370
  multiple: false,
9343
9371
  required: true,
9372
+ selectFirst: true,
9344
9373
  "source": {
9345
9374
  "url": "${context.rootUrl}/api/workflow/v2/nextStep?judge=${new_judge}",
9346
9375
  "headers": {
@@ -9368,20 +9397,7 @@ const getNextStepInput = async (instance) => {
9368
9397
  "judge": "${new_judge}",
9369
9398
  }
9370
9399
  },
9371
- // "labelField": "name",
9372
- // "valueField": "_id",
9373
9400
  "onEvent": {
9374
- // "change": {
9375
- // "weight": 0,
9376
- // "actions": [
9377
- // {
9378
- // "componentId": "u:next_users",
9379
- // "args": {
9380
- // },
9381
- // "actionType": "reload"
9382
- // }
9383
- // ]
9384
- // },
9385
9401
  "change": {
9386
9402
  "weight": 0,
9387
9403
  "actions": [
@@ -9395,7 +9411,6 @@ const getNextStepInput = async (instance) => {
9395
9411
  "actionType": "setValue"
9396
9412
  },
9397
9413
  {
9398
- // "componentId": "u:next_step",
9399
9414
  "args": {
9400
9415
  next_step: "${event.data.value}",
9401
9416
  },
@@ -9404,7 +9419,6 @@ const getNextStepInput = async (instance) => {
9404
9419
  },
9405
9420
  ]
9406
9421
  }
9407
-
9408
9422
  }
9409
9423
  },
9410
9424
  ],
@@ -9679,6 +9693,9 @@ const getApprovalDrawerSchema = async (instance) => {
9679
9693
  size: "sm",
9680
9694
  title: `${instance.step.name}`,
9681
9695
  className: "approval-drawer absolute",
9696
+ headerClassName: 'p-2',
9697
+ bodyClassName: 'p-2',
9698
+ footerClassName: 'p-2 pt-0',
9682
9699
  drawerContainer: ()=>{
9683
9700
  return window.$(".antd-Page-content",window.$(".steedos-instance-wrapper"))[0];
9684
9701
  },
@@ -10032,7 +10049,7 @@ const getInstanceApprovalHistory = async ()=>{
10032
10049
  * @Author: baozhoutao@steedos.com
10033
10050
  * @Date: 2022-09-07 16:20:45
10034
10051
  * @LastEditors: baozhoutao@steedos.com
10035
- * @LastEditTime: 2023-03-18 17:29:01
10052
+ * @LastEditTime: 2023-03-22 14:43:18
10036
10053
  * @Description:
10037
10054
  */
10038
10055
 
@@ -10745,6 +10762,7 @@ const getFlowFormSchema = async (instance, box) => {
10745
10762
  type: "page",
10746
10763
  name: "instancePage",
10747
10764
  className: "steedos-amis-instance-view",
10765
+ bodyClassName: "overflow-y-auto h-full",
10748
10766
  "title": {
10749
10767
  "type": "steedos-record-detail-header",
10750
10768
  "label": "标题面板",
@@ -12114,15 +12132,15 @@ var AmisRecordDetailHeader = function (props) { return __awaiter(void 0, void 0,
12114
12132
  * @Author: baozhoutao@steedos.com
12115
12133
  * @Date: 2022-12-08 10:32:17
12116
12134
  * @LastEditors: baozhoutao@steedos.com
12117
- * @LastEditTime: 2023-03-07 12:40:53
12135
+ * @LastEditTime: 2023-03-22 15:41:38
12118
12136
  * @Description:
12119
12137
  */
12120
12138
  var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void 0, function () {
12121
- var appId, _a, objectApiName, recordId, onEvent, schema, recordDetailData;
12139
+ var className, appId, _a, objectApiName, recordId, onEvent, schema, recordDetailData;
12122
12140
  return __generator(this, function (_b) {
12123
12141
  switch (_b.label) {
12124
12142
  case 0:
12125
- props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, recordId = props.recordId, onEvent = props.onEvent, props.defaultData;
12143
+ className = props.className, props.$schema, appId = props.appId, _a = props.objectApiName, objectApiName = _a === void 0 ? "space_users" : _a, recordId = props.recordId, onEvent = props.onEvent, props.defaultData;
12126
12144
  return [4 /*yield*/, getRecordDetailSchema(objectApiName, appId, { onEvent: onEvent })];
12127
12145
  case 1:
12128
12146
  schema = (_b.sent()).amisSchema;
@@ -12131,6 +12149,7 @@ var AmisRecordDetail = function (props) { return __awaiter(void 0, void 0, void
12131
12149
  recordDetailData.recordId = recordId;
12132
12150
  }
12133
12151
  schema.data = Object.assign({}, schema.data, recordDetailData);
12152
+ schema.className = className;
12134
12153
  return [2 /*return*/, schema];
12135
12154
  }
12136
12155
  });
@@ -12217,37 +12236,40 @@ var AmisRecordDetailRelatedLists = function (props) { return __awaiter(void 0, v
12217
12236
  }); };
12218
12237
 
12219
12238
  var AmisSelectUser = function (props) { return __awaiter(void 0, void 0, void 0, function () {
12220
- var $schema, ids, idsTrackOn, _a, readonly, _b, ctx, amisSchema, steedosField, error_1;
12221
- return __generator(this, function (_c) {
12222
- switch (_c.label) {
12239
+ var $schema, ids, idsTrackOn, _a, readonly, _b, selectFirst, amis, _c, ctx, value, amisSchema, steedosField, options, error_1;
12240
+ return __generator(this, function (_d) {
12241
+ switch (_d.label) {
12223
12242
  case 0:
12224
- console.log("AmisSelectUser props", props);
12225
- $schema = props.$schema, props.data, ids = props.ids, idsTrackOn = props.idsTrackOn, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.ctx, ctx = _b === void 0 ? {} : _b;
12226
- _c.label = 1;
12243
+ $schema = props.$schema, props.data, ids = props.ids, idsTrackOn = props.idsTrackOn, _a = props.readonly, readonly = _a === void 0 ? false : _a, _b = props.selectFirst, selectFirst = _b === void 0 ? false : _b, amis = props.amis, _c = props.ctx, ctx = _c === void 0 ? {} : _c;
12244
+ value = $schema.value;
12245
+ _d.label = 1;
12227
12246
  case 1:
12228
- _c.trys.push([1, 3, , 4]);
12247
+ _d.trys.push([1, 3, , 4]);
12229
12248
  steedosField = {
12230
12249
  type: "lookup",
12231
12250
  reference_to: "users",
12232
12251
  name: $schema.name,
12252
+ label: $schema.label,
12233
12253
  multiple: $schema.multiple,
12234
12254
  required: $schema.required,
12235
12255
  searchable: $schema.searchable,
12236
12256
  onEvent: $schema.onEvent,
12237
- filters: $schema.filters
12257
+ filters: $schema.filters,
12258
+ amis: amis
12238
12259
  };
12239
- return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, Object.assign.apply(Object, __spreadArray(__spreadArray([{}], __read(ctx), false), [{ ids: ids, idsTrackOn: idsTrackOn }], false)))];
12260
+ options = Object.assign.apply(Object, __spreadArray(__spreadArray([{}], __read(ctx), false), [{ ids: ids, idsTrackOn: idsTrackOn, selectFirst: selectFirst }], false));
12261
+ if (value) {
12262
+ options.value = value;
12263
+ }
12264
+ return [4 /*yield*/, index.convertSFieldToAmisField(steedosField, readonly, options)];
12240
12265
  case 2:
12241
- amisSchema = _c.sent();
12266
+ amisSchema = _d.sent();
12242
12267
  return [3 /*break*/, 4];
12243
12268
  case 3:
12244
- error_1 = _c.sent();
12269
+ error_1 = _d.sent();
12245
12270
  console.log("error", error_1);
12246
12271
  return [3 /*break*/, 4];
12247
- case 4:
12248
- amisSchema.name = $schema.name;
12249
- amisSchema.label = $schema.label;
12250
- return [2 /*return*/, amisSchema];
12272
+ case 4: return [2 /*return*/, amisSchema];
12251
12273
  }
12252
12274
  });
12253
12275
  }); };
@@ -12587,7 +12609,7 @@ var AmisAppMenu = function (props) { return __awaiter(void 0, void 0, void 0, fu
12587
12609
  "source": {
12588
12610
  "method": "get",
12589
12611
  "url": "${context.rootUrl}/service/api/apps/".concat(appId, "/menus"),
12590
- "adaptor": "\n try {\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined') {\n _.each(tabs, (tab) => {\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n })\n })\n } else {\n\n if(stacked){\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": true,\n \"children\": _.map(tabs, (tab) => {\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n }\n })\n })\n }else{\n _.each(tabs, (tab) => {\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n });\n })\n }\n\n \n }\n });\n payload.data = data.nav;\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n "),
12612
+ "adaptor": "\n try {\n const data = { nav: [] };\n const stacked = ".concat(stacked, ";\n const showIcon = ").concat(showIcon, ";\n const selectedId = '").concat(selectedId, "';\n if(stacked){\n _.each(_.groupBy(payload.children, 'group'), (tabs, groupName) => {\n if (groupName === 'undefined' || groupName === '') {\n _.each(tabs, (tab) => {\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n })\n })\n } else {\n data.nav.push({\n \"label\": groupName,\n \"unfolded\": true,\n \"children\": _.map(tabs, (tab) => {\n return {\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n }\n })\n }) \n }\n });\n }else{\n _.each(payload.children, (tab)=>{\n data.nav.push({\n \"label\": showIcon ? {\n type: 'tpl',\n tpl: `<span class='fill-slate-500 text-slate-700 block -ml-px no-underline group flex items-center text-[15px] font-medium rounded-md'><svg class=\"mr-1 flex-shrink-0 h-6 w-6\"><use xlink:href=\"/assets/icons/standard-sprite/svg/symbols.svg#${tab.icon || 'account'}\"></use></svg>${tab.name}</span>`\n } : tab.name,\n \"to\": tab.path,\n // active: selectedId === tab.id,\n });\n })\n }\n \n payload.data = data.nav;\n } catch (error) {\n console.log(`error`, error)\n }\n return payload;\n "),
12591
12613
  "headers": {
12592
12614
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
12593
12615
  },
@@ -13147,7 +13169,7 @@ var PageListView = function (props) { return __awaiter(void 0, void 0, void 0, f
13147
13169
  return [2 /*return*/, {
13148
13170
  type: 'service',
13149
13171
  data: defData,
13150
- "className": (displayAs === 'grid') ? '' : 'p-0 flex flex-1 overflow-hidden h-full',
13172
+ "className": (displayAs === 'grid') ? 'h-full' : 'p-0 flex flex-1 overflow-hidden h-full',
13151
13173
  body: (displayAs === 'grid') ? ___default.defaultsDeep({ data: defData }, listSchema) : [
13152
13174
  {
13153
13175
  "type": "wrapper",
@@ -13185,13 +13207,14 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
13185
13207
  recordPage = _a.sent();
13186
13208
  recordSchema = recordPage ? JSON.parse(recordPage.schema) : {
13187
13209
  "type": "wrapper",
13188
- "className": "p-0 m-0 sm:m-3 flex-1",
13210
+ "className": "overflow-y-auto p-0 m-0 flex-1 h-full",
13189
13211
  "name": "amis-".concat(appId, "-").concat(objectApiName, "-detail"),
13190
13212
  "body": [
13191
13213
  {
13192
13214
  "type": "steedos-record-detail",
13193
13215
  "recordId": "${recordId}",
13194
13216
  "objectApiName": "${objectName}",
13217
+ className: "sm:m-3",
13195
13218
  appId: appId,
13196
13219
  }
13197
13220
  ],
@@ -13219,7 +13242,7 @@ var PageRecordDetail = function (props) { return __awaiter(void 0, void 0, void
13219
13242
  },
13220
13243
  {
13221
13244
  "type": "wrapper",
13222
- "className": 'p-0 flex-1 overflow-y-auto focus:outline-none lg:order-last',
13245
+ "className": 'p-0 flex-1 focus:outline-none lg:order-last h-full',
13223
13246
  "body": ___default.defaultsDeep({ data: defData }, recordSchema)
13224
13247
  }
13225
13248
  ]