@kmkf-fe-packages/basic-components 2.10.2 → 2.10.3

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 (2) hide show
  1. package/dist/index.esm.js +116 -37
  2. package/package.json +3 -3
package/dist/index.esm.js CHANGED
@@ -867,10 +867,21 @@ var ApaasUpload = function ApaasUpload(_ref) {
867
867
  });
868
868
  };
869
869
  }, [pasteDefaultStates]);
870
+ // 阻止浏览器默认拖拽行为(防止外部图片拖入时覆盖整个页面)
871
+ var handleDragOver = function handleDragOver(e) {
872
+ e.preventDefault();
873
+ e.stopPropagation();
874
+ };
875
+ var handleDrop = function handleDrop(e) {
876
+ e.preventDefault();
877
+ e.stopPropagation();
878
+ };
870
879
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", {
871
880
  className: styles.tips
872
881
  }, "\u5141\u8BB8\u4E0A\u4F20", maxCount, "\u5F20\u56FE\u7247"), /*#__PURE__*/React.createElement("div", {
873
- className: styles.imageBox
882
+ className: styles.imageBox,
883
+ onDragOver: handleDragOver,
884
+ onDrop: handleDrop
874
885
  }, !disabled && /*#__PURE__*/React.createElement("div", {
875
886
  className: styles.imagePaste
876
887
  }, pasteDefaultStates ? /*#__PURE__*/React.createElement("div", {
@@ -1221,12 +1232,23 @@ var ApaasUploadAsync = function ApaasUploadAsync(_ref, ref) {
1221
1232
  taskCompleted: !uploading
1222
1233
  };
1223
1234
  }, [uploading]);
1235
+ // 阻止浏览器默认拖拽行为(防止外部图片拖入时覆盖整个页面)
1236
+ var handleDragOver = function handleDragOver(e) {
1237
+ e.preventDefault();
1238
+ e.stopPropagation();
1239
+ };
1240
+ var handleDrop = function handleDrop(e) {
1241
+ e.preventDefault();
1242
+ e.stopPropagation();
1243
+ };
1224
1244
  return /*#__PURE__*/React.createElement(Spin, {
1225
1245
  spinning: uploading
1226
1246
  }, /*#__PURE__*/React.createElement("p", {
1227
1247
  className: styles$1.tips
1228
1248
  }, "\u5141\u8BB8\u4E0A\u4F20", maxCount, "\u5F20\u56FE\u7247"), /*#__PURE__*/React.createElement("div", {
1229
- className: styles$1.imageBox
1249
+ className: styles$1.imageBox,
1250
+ onDragOver: handleDragOver,
1251
+ onDrop: handleDrop
1230
1252
  }, !disabled && /*#__PURE__*/React.createElement("div", {
1231
1253
  className: styles$1.imagePaste
1232
1254
  }, pasteDefaultStates ? /*#__PURE__*/React.createElement("div", {
@@ -1527,12 +1549,23 @@ var ApaasUploadProAsync = function ApaasUploadProAsync(_ref, ref) {
1527
1549
  taskCompleted: !uploading
1528
1550
  };
1529
1551
  }, [uploading]);
1552
+ // 阻止浏览器默认拖拽行为(防止外部图片拖入时覆盖整个页面)
1553
+ var handleDragOver = function handleDragOver(e) {
1554
+ e.preventDefault();
1555
+ e.stopPropagation();
1556
+ };
1557
+ var handleDrop = function handleDrop(e) {
1558
+ e.preventDefault();
1559
+ e.stopPropagation();
1560
+ };
1530
1561
  return /*#__PURE__*/React.createElement(Spin, {
1531
1562
  spinning: uploading
1532
1563
  }, /*#__PURE__*/React.createElement("p", {
1533
1564
  className: styles$2.tips
1534
1565
  }, "\u5141\u8BB8\u4E0A\u4F20", maxCount, "\u5F20\u56FE\u7247"), /*#__PURE__*/React.createElement("div", {
1535
- className: styles$2.imageProBox
1566
+ className: styles$2.imageProBox,
1567
+ onDragOver: handleDragOver,
1568
+ onDrop: handleDrop
1536
1569
  }, !disabled && /*#__PURE__*/React.createElement("div", {
1537
1570
  className: styles$2.imageProPaste
1538
1571
  }, pasteDefaultStates ? /*#__PURE__*/React.createElement("div", {
@@ -7502,12 +7535,23 @@ var ApaasUploadFile = function ApaasUploadFile(_ref) {
7502
7535
  setFileName('');
7503
7536
  setVisible(false);
7504
7537
  };
7538
+ // 阻止浏览器默认拖拽行为(防止外部图片拖入时覆盖整个页面)
7539
+ var handleDragOver = function handleDragOver(e) {
7540
+ e.preventDefault();
7541
+ e.stopPropagation();
7542
+ };
7543
+ var handleDrop = function handleDrop(e) {
7544
+ e.preventDefault();
7545
+ e.stopPropagation();
7546
+ };
7505
7547
  return /*#__PURE__*/React.createElement(Spin, {
7506
7548
  spinning: uploading
7507
7549
  }, /*#__PURE__*/React.createElement("p", {
7508
7550
  className: styles$3.tips
7509
7551
  }, "\u5141\u8BB8\u4E0A\u4F20", maxCount, "\u4E2A\u6587\u4EF6"), /*#__PURE__*/React.createElement("div", {
7510
- className: styles$3.imageBox
7552
+ className: styles$3.imageBox,
7553
+ onDragOver: handleDragOver,
7554
+ onDrop: handleDrop
7511
7555
  }, !disabled && /*#__PURE__*/React.createElement("div", {
7512
7556
  className: styles$3.imagePaste
7513
7557
  }, pasteDefaultStates ? /*#__PURE__*/React.createElement("div", {
@@ -7819,6 +7863,7 @@ var ParseLogistics = function ParseLogistics(props) {
7819
7863
  onChange === null || onChange === void 0 ? void 0 : onChange(data);
7820
7864
  }).catch(function (e) {
7821
7865
  handleAIIdentify(fullAddress);
7866
+ console.log(e);
7822
7867
  }).finally(function () {
7823
7868
  setLoading(false);
7824
7869
  });
@@ -7842,6 +7887,7 @@ var ParseLogistics = function ParseLogistics(props) {
7842
7887
  var data = res.data;
7843
7888
  onChange === null || onChange === void 0 ? void 0 : onChange(data);
7844
7889
  }).catch(function (e) {
7890
+ console.log(e);
7845
7891
  message.error('识别失败,请输入正确的信息');
7846
7892
  }).finally(function () {
7847
7893
  setAiLoading(false);
@@ -12069,7 +12115,7 @@ var Goods = function Goods(props) {
12069
12115
  return querySkus({
12070
12116
  shopId: shopId,
12071
12117
  numIids: numIid
12072
- }).catch(function () {});
12118
+ }).catch(console.debug);
12073
12119
  case 5:
12074
12120
  res = _context3.sent;
12075
12121
  data = (res === null || res === void 0 ? void 0 : res.success) && (res === null || res === void 0 ? void 0 : res.data);
@@ -12453,7 +12499,7 @@ var GoodItem = function GoodItem(props) {
12453
12499
  return querySkus({
12454
12500
  shopId: shopId,
12455
12501
  numIids: numIid
12456
- }).catch(function () {});
12502
+ }).catch(console.debug);
12457
12503
  case 5:
12458
12504
  res = _context3.sent;
12459
12505
  data = (res === null || res === void 0 ? void 0 : res.success) && (res === null || res === void 0 ? void 0 : res.data);
@@ -13395,6 +13441,7 @@ var LogisticsInterception = function LogisticsInterception(props) {
13395
13441
  });
13396
13442
  }
13397
13443
  }
13444
+ console.log('newValue', newValue);
13398
13445
  onChange === null || onChange === void 0 ? void 0 : onChange(newValue, type);
13399
13446
  };
13400
13447
  //智能识别回调
@@ -13977,14 +14024,21 @@ var LogisticsMoreTrajectory = function LogisticsMoreTrajectory(props) {
13977
14024
  }); // 1、初始值没有 传入值有请求快照
13978
14025
  // 2、初始值有 传入值有 其中有不一样的请求快照
13979
14026
  // 3、初始值有 传入值有 都一样的返回初始值
14027
+ console.log('list', initList, valueList, changeList);
14028
+ // console.log('old', initValue, value, changeValue);
14029
+ // console.log('一样', JSON.stringify(initList) !== JSON.stringify(valueList));
14030
+ // console.log(
14031
+ // '一样2',
14032
+ // JSON.stringify(changeList) !== JSON.stringify(valueList),
14033
+ // );
13980
14034
  if (!(!initList.length && !valueList.length)) {
13981
- _context.next = 7;
14035
+ _context.next = 8;
13982
14036
  break;
13983
14037
  }
13984
14038
  return _context.abrupt("return");
13985
- case 7:
14039
+ case 8:
13986
14040
  if (!(JSON.stringify(initList) === JSON.stringify(valueList))) {
13987
- _context.next = 13;
14041
+ _context.next = 14;
13988
14042
  break;
13989
14043
  }
13990
14044
  initSnapshotList = initValue.reduce(function (prv, next) {
@@ -14003,13 +14057,13 @@ var LogisticsMoreTrajectory = function LogisticsMoreTrajectory(props) {
14003
14057
  setNewValue(initValue);
14004
14058
  onChange(initValue);
14005
14059
  }
14006
- _context.next = 29;
14060
+ _context.next = 30;
14007
14061
  break;
14008
- case 13:
14062
+ case 14:
14009
14063
  if (!(
14010
14064
  //开启了物流快照才会获取快照信息
14011
14065
  hasSnapshot && JSON.stringify(initList) !== JSON.stringify(valueList) && JSON.stringify(changeList) !== JSON.stringify(valueList))) {
14012
- _context.next = 28;
14066
+ _context.next = 29;
14013
14067
  break;
14014
14068
  }
14015
14069
  hasSave.current = false;
@@ -14018,7 +14072,7 @@ var LogisticsMoreTrajectory = function LogisticsMoreTrajectory(props) {
14018
14072
  });
14019
14073
  listValue = cloneDeep(value);
14020
14074
  if (!hasValue) {
14021
- _context.next = 23;
14075
+ _context.next = 24;
14022
14076
  break;
14023
14077
  }
14024
14078
  requestList = valueList.map(function (item) {
@@ -14037,9 +14091,9 @@ var LogisticsMoreTrajectory = function LogisticsMoreTrajectory(props) {
14037
14091
  });
14038
14092
  }
14039
14093
  });
14040
- _context.next = 21;
14094
+ _context.next = 22;
14041
14095
  return Promise.allSettled(requestList);
14042
- case 21:
14096
+ case 22:
14043
14097
  requestValues = _context.sent;
14044
14098
  listValue = cloneDeep(value).map(function (item, index) {
14045
14099
  var _requestValues$index, _requestValues$index$, _requestValues$index$2;
@@ -14047,15 +14101,15 @@ var LogisticsMoreTrajectory = function LogisticsMoreTrajectory(props) {
14047
14101
  trajectorySnapshot: (_requestValues$index = requestValues[index]) === null || _requestValues$index === void 0 ? void 0 : (_requestValues$index$ = _requestValues$index.value) === null || _requestValues$index$ === void 0 ? void 0 : (_requestValues$index$2 = _requestValues$index$.data) === null || _requestValues$index$2 === void 0 ? void 0 : _requestValues$index$2.logisticsStatusDesc
14048
14102
  });
14049
14103
  });
14050
- case 23:
14104
+ case 24:
14051
14105
  setChangeValue(listValue);
14052
14106
  setNewValue(listValue);
14053
14107
  onChange(listValue);
14054
- _context.next = 29;
14108
+ _context.next = 30;
14055
14109
  break;
14056
- case 28:
14057
- setNewValue(value);
14058
14110
  case 29:
14111
+ setNewValue(value);
14112
+ case 30:
14059
14113
  case "end":
14060
14114
  return _context.stop();
14061
14115
  }
@@ -16229,7 +16283,7 @@ var GoodList = function GoodList(props, ref) {
16229
16283
  } else {
16230
16284
  reject$1(res);
16231
16285
  }
16232
- }).catch(function () {});
16286
+ }).catch(console.error);
16233
16287
  };
16234
16288
  getMore();
16235
16289
  };
@@ -18280,6 +18334,7 @@ var SearchHeader = function SearchHeader(_ref) {
18280
18334
  timeOptions = _ref.timeOptions,
18281
18335
  ShopList = _ref.ShopList,
18282
18336
  onSubmit = _ref.onSubmit;
18337
+ console.log('allFields', allFields);
18283
18338
  // const fixedFieldsOptions = useMemo(() => {
18284
18339
  // return allFields.filter(item => fixedFields?.includes(item.id));
18285
18340
  // }, [fixedFields, allFields]);
@@ -18535,7 +18590,9 @@ var WorkorderList = function WorkorderList(props, ref) {
18535
18590
  loading: false
18536
18591
  }));
18537
18592
  setWorkOrderList(newDataSource);
18538
- }).catch(function (error) {}));
18593
+ }).catch(function (error) {
18594
+ console.log('**** 获取表格数据错误', error);
18595
+ }));
18539
18596
  case 19:
18540
18597
  case "end":
18541
18598
  return _context.stop();
@@ -22778,6 +22835,7 @@ var getColumns$6 = function getColumns() {
22778
22835
  title: "\u5B9E\u9645\u8865\u53D1\u6570\u91CF",
22779
22836
  width: 100,
22780
22837
  validator: function validator(_rule, value, extraParams) {
22838
+ console.log('实际补发数量-extraParams', extraParams);
22781
22839
  if (!(extraParams === null || extraParams === void 0 ? void 0 : extraParams.quantityVerify)) return undefined;
22782
22840
  var title = '';
22783
22841
  if (((value === null || value === void 0 ? void 0 : value.kmReissueGoods) || []).some(function (goods) {
@@ -25050,7 +25108,7 @@ var SelectTradeGoods = function SelectTradeGoods(_ref) {
25050
25108
  while (1) switch (_context2.prev = _context2.next) {
25051
25109
  case 0:
25052
25110
  if (!validSystemOrderFn) {
25053
- _context2.next = 6;
25111
+ _context2.next = 7;
25054
25112
  break;
25055
25113
  }
25056
25114
  _context2.next = 3;
@@ -25058,38 +25116,39 @@ var SelectTradeGoods = function SelectTradeGoods(_ref) {
25058
25116
  case 3:
25059
25117
  flag = _context2.sent;
25060
25118
  if (!(flag === false)) {
25061
- _context2.next = 6;
25119
+ _context2.next = 7;
25062
25120
  break;
25063
25121
  }
25122
+ console.log('validSystemOrderFn校验不通过');
25064
25123
  return _context2.abrupt("return");
25065
- case 6:
25124
+ case 7:
25066
25125
  if (!validSystemOrder) {
25067
- _context2.next = 9;
25126
+ _context2.next = 10;
25068
25127
  break;
25069
25128
  }
25070
25129
  message.warning('请选择补发系统单');
25071
25130
  return _context2.abrupt("return");
25072
- case 9:
25131
+ case 10:
25073
25132
  if (!(getDataSourceAsync && (!(dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) || isReloadSelectTable))) {
25074
- _context2.next = 12;
25133
+ _context2.next = 13;
25075
25134
  break;
25076
25135
  }
25077
- _context2.next = 12;
25136
+ _context2.next = 13;
25078
25137
  return getDataSourceAsync();
25079
- case 12:
25138
+ case 13:
25080
25139
  if (!['KM_GOODS', 'KM_REISSUE_GOODS', 'KM_RETURN_GOODS'].includes(type)) {
25081
- _context2.next = 15;
25140
+ _context2.next = 16;
25082
25141
  break;
25083
25142
  }
25084
- _context2.next = 15;
25143
+ _context2.next = 16;
25085
25144
  return getKmSupplier(dataSource);
25086
- case 15:
25145
+ case 16:
25087
25146
  setTradeGoodsVisible(true);
25088
25147
  // 补发直接传入的是systemNo
25089
25148
  if (isShowSelect && isReissueType) {
25090
25149
  setSelectSystemNo(selectedSystemOrders || []);
25091
25150
  }
25092
- case 17:
25151
+ case 18:
25093
25152
  case "end":
25094
25153
  return _context2.stop();
25095
25154
  }
@@ -25290,6 +25349,7 @@ var GoodItem$1 = function GoodItem(props) {
25290
25349
  var isShowSelect = type && ['WDT_GOODS', 'BS_E3_GOODS', 'GY_GOODS', 'JST_GOODS', 'WLN_GOODS', 'KM_GOODS', 'JY_GOODS', 'JY_REISSUE_GOODS', 'JKY_GOODS', 'JKY_REISSUE_GOODS', 'WLN_REISSUE_GOODS', 'GY_REISSUE_GOODS', 'KM_REISSUE_GOODS', 'KM_RETURN_GOODS', 'BS_E3_REISSUE_GOODS', 'WDT_REISSUE_GOODS', 'JST_REISSUE_GOODS'].includes(type) || false;
25291
25350
  var isReissueType = type && ['GY_REISSUE_GOODS', 'KM_REISSUE_GOODS', 'BS_E3_REISSUE_GOODS', 'WDT_REISSUE_GOODS', 'JST_REISSUE_GOODS', 'JY_REISSUE_GOODS', 'JKY_REISSUE_GOODS', 'WLN_REISSUE_GOODS'].includes(type) || false;
25292
25351
  var refModal = useRef();
25352
+ console.debug('表格数据', value);
25293
25353
  var handleDelete = function handleDelete(record, index) {
25294
25354
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(value[index]);
25295
25355
  var newList = _toConsumableArray(value).filter(function (item, i) {
@@ -26070,6 +26130,7 @@ var BsReissue = function BsReissue(props) {
26070
26130
  var _typeMap$type2;
26071
26131
  pubsub.subscribe("".concat(typeMap === null || typeMap === void 0 ? void 0 : (_typeMap$type2 = typeMap[type]) === null || _typeMap$type2 === void 0 ? void 0 : _typeMap$type2.reissueSelectList), function (_, data) {
26072
26132
  var _typeMap$type3;
26133
+ console.log('reissueSelectList', data);
26073
26134
  if (disabled) return;
26074
26135
  var newValue = _objectSpread2(_objectSpread2({}, data.goodValue), {}, {
26075
26136
  shopCode: data === null || data === void 0 ? void 0 : data.shopCode
@@ -27875,6 +27936,7 @@ var OrderSubForm = function OrderSubForm(props) {
27875
27936
  manual = props.manual,
27876
27937
  correlationList = props.subConfig.correlationList,
27877
27938
  effects = props.effects;
27939
+ console.log('effects', effects);
27878
27940
  var valueRef = useRef(value);
27879
27941
  useEffect(function () {
27880
27942
  valueRef.current = value;
@@ -28071,7 +28133,7 @@ var OrderSubForm = function OrderSubForm(props) {
28071
28133
  onChange(_objectSpread2(_objectSpread2({}, value), {}, {
28072
28134
  allOrders: allOrders
28073
28135
  }));
28074
- }).catch(function () {}) : Promise.resolve();
28136
+ }).catch(console.debug) : Promise.resolve();
28075
28137
  };
28076
28138
  var getAllTradeGoodsDetails = function getAllTradeGoodsDetails() {
28077
28139
  var goodDetails = (value === null || value === void 0 ? void 0 : value.allOrders) || [];
@@ -29292,6 +29354,10 @@ var CommonExchangeGoods = function CommonExchangeGoods(props) {
29292
29354
  return new Promise(function (resolve) {
29293
29355
  pubsub.subscribeOnce(componentMap$4[compType].eventNameMap.returnGoodsSysorderBack, function (_, data) {
29294
29356
  resolve(data);
29357
+ console.log('getDataSourceAsync---111data--', data, getGoodDetails({
29358
+ returnGoodsValue: data,
29359
+ mode: isStrict
29360
+ }));
29295
29361
  setOriginDataSource(getGoodDetails({
29296
29362
  returnGoodsValue: data,
29297
29363
  mode: isStrict
@@ -29300,6 +29366,7 @@ var CommonExchangeGoods = function CommonExchangeGoods(props) {
29300
29366
  pubsub.publish(componentMap$4[compType].eventNameMap.returnGoodsSysorder, compType);
29301
29367
  });
29302
29368
  };
29369
+ console.log('aaa--', originDataSource);
29303
29370
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(GoodItem$1, _objectSpread2(_objectSpread2({
29304
29371
  key: componentMap$4[compType].type
29305
29372
  }, props), {}, {
@@ -32149,13 +32216,20 @@ var IdInputSelect = function IdInputSelect(props) {
32149
32216
  tradeId = form.getFieldValue('m3ap1EvEyd');
32150
32217
  skxReturnExpressCode = (_form$getFieldValue = form.getFieldValue('4487c6516b')) === null || _form$getFieldValue === void 0 ? void 0 : (_form$getFieldValue$ = _form$getFieldValue[0]) === null || _form$getFieldValue$ === void 0 ? void 0 : _form$getFieldValue$.logisticsCode;
32151
32218
  blurFrom = form.getFieldValue('skx_return_billNo_blur_from');
32219
+ console.log('asyncQueryData---', {
32220
+ skxReturnExpressCode: skxReturnExpressCode,
32221
+ blurFrom: blurFrom,
32222
+ tradeId: tradeId,
32223
+ tradeIdRef: tradeIdRef.current,
32224
+ form: form
32225
+ });
32152
32226
  if (!(type === 'SKX_OUTBOUND_NOTICE_NO' && !tradeId || type === 'SKX_RETURN_BILL_NO' && !tradeId && !skxReturnExpressCode)) {
32153
- _context3.next = 6;
32227
+ _context3.next = 7;
32154
32228
  break;
32155
32229
  }
32156
32230
  setDataSource([]);
32157
32231
  return _context3.abrupt("return");
32158
- case 6:
32232
+ case 7:
32159
32233
  setSpinning(true);
32160
32234
  // 判断是从哪个组件失焦,若是从[SKX]退换物流信息(TH)失焦,则根据物流单号查询,若是从订单号组件失焦,则根据订单号查询
32161
32235
  typeMap$6[type].asyncGetData(type === 'SKX_RETURN_BILL_NO' && blurFrom === '4487c6516b' ? {
@@ -32169,7 +32243,7 @@ var IdInputSelect = function IdInputSelect(props) {
32169
32243
  }).finally(function () {
32170
32244
  setSpinning(false);
32171
32245
  });
32172
- case 8:
32246
+ case 9:
32173
32247
  case "end":
32174
32248
  return _context3.stop();
32175
32249
  }
@@ -32261,6 +32335,11 @@ var IdInputSelect = function IdInputSelect(props) {
32261
32335
  }))));
32262
32336
  };
32263
32337
  var handleChange = function handleChange(val, isInput) {
32338
+ console.log('handleChange---', {
32339
+ val: val,
32340
+ value: value,
32341
+ isInput: isInput
32342
+ });
32264
32343
  var isReturnBillNoChange = type === 'SKX_RETURN_BILL_NO' && form.getFieldValue('skx_return_billNo_blur_from') === '4487c6516b';
32265
32344
  onChange === null || onChange === void 0 ? void 0 : onChange(val, value !== val && (!!isInput || isReturnBillNoChange));
32266
32345
  // 如果类型是[SKX]退换货单号,则根据blurFrom判断是从[SKX]退换物流信息(TH)失焦,则调用onBlur
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmkf-fe-packages/basic-components",
3
- "version": "2.10.2",
3
+ "version": "2.10.3",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "ISC",
@@ -20,7 +20,7 @@
20
20
  "watch": "nodemon --ignore dist/ --ignore node_modules/ --watch src/ -C -e ts,tsx,less --debug -x 'yarn async'"
21
21
  },
22
22
  "dependencies": {
23
- "@kmkf-fe-packages/kmkf-utils": "2.10.2",
23
+ "@kmkf-fe-packages/kmkf-utils": "2.10.3",
24
24
  "ahooks": "^3.7.4",
25
25
  "ali-react-table": "2.6.1",
26
26
  "bignumber.js": "^9.1.2",
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "387ea03be973184576757f0edf49a85e9eae8ea4"
69
+ "gitHead": "9de8ccc40cd591ee7d1d8692497008cf8fc98db3"
70
70
  }