@next-core/brick-kit 2.156.4 → 2.156.6

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/index.esm.js CHANGED
@@ -10288,104 +10288,36 @@ function listenOnTrackingContext(brick, trackingContextList, context) {
10288
10288
  }
10289
10289
  }
10290
10290
 
10291
- function ExpandCustomForm(_x, _x2, _x3, _x4) {
10292
- return _ExpandCustomForm.apply(this, arguments);
10293
- }
10291
+ function ExpandCustomForm(formData, brickConf, isPreview, context) {
10292
+ var formContext = new CustomFormContext();
10293
+ formData = initFormContext(formData, brickConf, isPreview);
10294
10294
 
10295
- function _ExpandCustomForm() {
10296
- _ExpandCustomForm = _asyncToGenerator$3(function* (formData, brickConf, isPreview, context) {
10297
- var errorBrick = {
10298
- brick: "presentational-bricks.brick-illustration",
10299
- properties: {
10300
- category: "default",
10301
- header: {
10302
- title: "参数错误"
10303
- },
10304
- mode: "guide",
10305
- name: "search-empty"
10306
- }
10307
- };
10308
- var formContext = new CustomFormContext();
10295
+ if (Array.isArray(formData.context)) {
10296
+ formContext.formState.syncDefine(formData.context, _objectSpread(_objectSpread({}, context), {}, {
10297
+ formContextId: formContext.id
10298
+ }), {});
10299
+ }
10309
10300
 
10310
- if (isPreview && formData.formSchema && formData.formSchema.brick === "forms.general-form") {
10311
- var _formData$formSchema$;
10301
+ return getFinalStoryBoard(formData, brickConf, isPreview, formContext);
10302
+ }
10303
+ function AsyncExpandCustomForm(_x, _x2, _x3, _x4) {
10304
+ return _AsyncExpandCustomForm.apply(this, arguments);
10305
+ }
10312
10306
 
10313
- brickConf["properties"] = _objectSpread(_objectSpread({}, brickConf.properties), (_formData$formSchema$ = formData.formSchema.properties) === null || _formData$formSchema$ === void 0 ? void 0 : _formData$formSchema$.previewConf);
10314
- }
10307
+ function _AsyncExpandCustomForm() {
10308
+ _AsyncExpandCustomForm = _asyncToGenerator$3(function* (formData, brickConf, isPreview, context) {
10309
+ var formContext = new CustomFormContext();
10310
+ formData = initFormContext(formData, brickConf, isPreview);
10315
10311
 
10316
10312
  if (Array.isArray(formData.context)) {
10317
- formData.context.forEach(item => {
10318
- if (brickConf.properties[item.name] !== undefined) {
10319
- item.value = brickConf.properties[item.name];
10320
- }
10321
- });
10322
-
10323
- if (brickConf.properties.condition) {
10324
- formData.context.push({
10325
- name: "condition",
10326
- value: brickConf.properties.condition
10327
- });
10328
- }
10329
-
10330
10313
  yield formContext.formState.define(formData.context, _objectSpread(_objectSpread({}, context), {}, {
10331
10314
  formContextId: formContext.id
10332
10315
  }), {});
10333
10316
  }
10334
10317
 
10335
- try {
10336
- var formStoryboard = getStoryboard([formData.formSchema], [], formData.fields, isPreview, formContext.id);
10337
- formStoryboard[0] = _.isEmpty(formStoryboard[0]) ? errorBrick : formStoryboard[0];
10338
-
10339
- if (formStoryboard[0].brick === "forms.general-form" && brickConf.events) {
10340
- var _formStoryboard$0$eve;
10341
-
10342
- var brickConfEvents = brickConf.events;
10343
- var events = (_formStoryboard$0$eve = formStoryboard[0].events) !== null && _formStoryboard$0$eve !== void 0 ? _formStoryboard$0$eve : {};
10344
- Object.keys(brickConfEvents).forEach(item => {
10345
- var newEvents = Array.isArray(events[item]) ? events[item] : [events[item]];
10346
- var itemEvents = Array.isArray(brickConfEvents[item]) ? brickConfEvents[item] : [brickConfEvents[item]];
10347
- events[item] = _.compact([...newEvents, ...itemEvents]);
10348
- });
10349
- formStoryboard[0].events = events;
10350
- }
10351
-
10352
- return _objectSpread(_objectSpread({}, brickConf), {}, {
10353
- brick: "div",
10354
- slots: {
10355
- "": {
10356
- bricks: [{
10357
- brick: "basic-bricks.micro-view",
10358
- properties: {
10359
- style: {
10360
- padding: "12px"
10361
- }
10362
- },
10363
- slots: {
10364
- content: {
10365
- bricks: formStoryboard,
10366
- type: "bricks"
10367
- }
10368
- }
10369
- }],
10370
- type: "bricks"
10371
- }
10372
- }
10373
- });
10374
- } catch (error) {
10375
- // eslint-disable-next-line no-console
10376
- console.warn(error.message);
10377
- return {
10378
- brick: "div",
10379
- slots: {
10380
- "": {
10381
- bricks: [errorBrick],
10382
- type: "bricks"
10383
- }
10384
- }
10385
- };
10386
- }
10318
+ return getFinalStoryBoard(formData, brickConf, isPreview, formContext);
10387
10319
  });
10388
- return _ExpandCustomForm.apply(this, arguments);
10320
+ return _AsyncExpandCustomForm.apply(this, arguments);
10389
10321
  }
10390
10322
 
10391
10323
  function getDefaultProperties(_name, fields) {
@@ -10683,6 +10615,99 @@ function getStoryboard(datasource, result, fields, isPreview, formContextId) {
10683
10615
 
10684
10616
  return result;
10685
10617
  }
10618
+ function initFormContext(formData, brickConf, isPreview) {
10619
+ if (isPreview && formData.formSchema && formData.formSchema.brick === "forms.general-form") {
10620
+ var _formData$formSchema$;
10621
+
10622
+ brickConf["properties"] = _objectSpread(_objectSpread({}, brickConf.properties), (_formData$formSchema$ = formData.formSchema.properties) === null || _formData$formSchema$ === void 0 ? void 0 : _formData$formSchema$.previewConf);
10623
+ }
10624
+
10625
+ if (Array.isArray(formData.context)) {
10626
+ formData.context.forEach(item => {
10627
+ if (brickConf.properties[item.name] !== undefined) {
10628
+ item.value = brickConf.properties[item.name];
10629
+ }
10630
+ });
10631
+
10632
+ if (brickConf.properties.condition) {
10633
+ formData.context.push({
10634
+ name: "condition",
10635
+ value: brickConf.properties.condition
10636
+ });
10637
+ }
10638
+ }
10639
+
10640
+ return formData;
10641
+ }
10642
+ function getFinalStoryBoard(formData, brickConf, isPreview, formContext) {
10643
+ var result = null;
10644
+ var errorBrick = {
10645
+ brick: "presentational-bricks.brick-illustration",
10646
+ properties: {
10647
+ category: "default",
10648
+ header: {
10649
+ title: "参数错误"
10650
+ },
10651
+ mode: "guide",
10652
+ name: "search-empty"
10653
+ }
10654
+ };
10655
+
10656
+ try {
10657
+ var formStoryboard = getStoryboard([formData.formSchema], [], formData.fields, isPreview, formContext.id);
10658
+ formStoryboard[0] = _.isEmpty(formStoryboard[0]) ? errorBrick : formStoryboard[0];
10659
+
10660
+ if (formStoryboard[0].brick === "forms.general-form" && brickConf.events) {
10661
+ var _formStoryboard$0$eve;
10662
+
10663
+ var brickConfEvents = brickConf.events;
10664
+ var events = (_formStoryboard$0$eve = formStoryboard[0].events) !== null && _formStoryboard$0$eve !== void 0 ? _formStoryboard$0$eve : {};
10665
+ Object.keys(brickConfEvents).forEach(item => {
10666
+ var newEvents = Array.isArray(events[item]) ? events[item] : [events[item]];
10667
+ var itemEvents = Array.isArray(brickConfEvents[item]) ? brickConfEvents[item] : [brickConfEvents[item]];
10668
+ events[item] = _.compact([...newEvents, ...itemEvents]);
10669
+ });
10670
+ formStoryboard[0].events = events;
10671
+ }
10672
+
10673
+ result = _objectSpread(_objectSpread({}, brickConf), {}, {
10674
+ brick: "div",
10675
+ slots: {
10676
+ "": {
10677
+ bricks: [{
10678
+ brick: "basic-bricks.micro-view",
10679
+ properties: {
10680
+ style: {
10681
+ padding: "12px"
10682
+ }
10683
+ },
10684
+ slots: {
10685
+ content: {
10686
+ bricks: formStoryboard,
10687
+ type: "bricks"
10688
+ }
10689
+ }
10690
+ }],
10691
+ type: "bricks"
10692
+ }
10693
+ }
10694
+ });
10695
+ } catch (error) {
10696
+ // eslint-disable-next-line no-console
10697
+ console.warn(error.message);
10698
+ result = {
10699
+ brick: "div",
10700
+ slots: {
10701
+ "": {
10702
+ bricks: [errorBrick],
10703
+ type: "bricks"
10704
+ }
10705
+ }
10706
+ };
10707
+ }
10708
+
10709
+ return result;
10710
+ }
10686
10711
 
10687
10712
  class LocationContext {
10688
10713
  constructor(kernel, location) {
@@ -11187,7 +11212,7 @@ class LocationContext {
11187
11212
 
11188
11213
  if (brick.type === formRenderer) {
11189
11214
  var formData = JSON.parse(brick.properties.formData);
11190
- expandedBrickConf = yield ExpandCustomForm(formData, brickConf, brick.properties.isPreview, context);
11215
+ expandedBrickConf = yield AsyncExpandCustomForm(formData, brickConf, brick.properties.isPreview, context);
11191
11216
  yield _this7.kernel.loadDynamicBricksInBrickConf(expandedBrickConf);
11192
11217
  }
11193
11218
 
@@ -13119,6 +13144,7 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13119
13144
  var innerRefCallbackRef = useRef();
13120
13145
  var elementRef = useRef();
13121
13146
  var templateRef = useRef();
13147
+ var formRef = useRef();
13122
13148
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
13123
13149
  var isBrickAvailable = React.useMemo(() => {
13124
13150
  if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
@@ -13147,7 +13173,14 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13147
13173
  _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
13148
13174
 
13149
13175
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
13150
- templateRef.current = expandTemplateInUseBrick(useBrick, tplTagName, brick); // Let `transform` works still.
13176
+ templateRef.current = expandTemplateInUseBrick(useBrick, tplTagName, brick);
13177
+
13178
+ if (useBrick.brick === formRenderer) {
13179
+ var _useBrick$properties;
13180
+
13181
+ formRef.current = ExpandCustomForm((_useBrick$properties = useBrick.properties) === null || _useBrick$properties === void 0 ? void 0 : _useBrick$properties.formData, useBrick, false);
13182
+ } // Let `transform` works still.
13183
+
13151
13184
 
13152
13185
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
13153
13186
  allowInject: true
@@ -13210,7 +13243,7 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13210
13243
 
13211
13244
  handleProxyOfCustomTemplate(brick);
13212
13245
 
13213
- if (element.$$typeof !== "custom-template") {
13246
+ if (!["formRenderer", "custom-template"].includes(element.$$typeof)) {
13214
13247
  if (!useBrick.brick.includes("-")) {
13215
13248
  element.$$typeof = "native";
13216
13249
  } else if (!customElements.get(useBrick.brick)) {
@@ -13290,10 +13323,10 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13290
13323
  innerRefCallbackRef.current(element);
13291
13324
  }, []);
13292
13325
  var childConfs = useMemo(() => {
13293
- var _templateRef$current;
13326
+ var _ref7, _templateRef$current;
13294
13327
 
13295
- return slotsToChildren(((_templateRef$current = templateRef.current) !== null && _templateRef$current !== void 0 ? _templateRef$current : useBrick).slots);
13296
- }, [templateRef.current, useBrick]);
13328
+ return slotsToChildren(((_ref7 = (_templateRef$current = templateRef.current) !== null && _templateRef$current !== void 0 ? _templateRef$current : formRef.current) !== null && _ref7 !== void 0 ? _ref7 : useBrick).slots);
13329
+ }, [templateRef.current, formRef.current, useBrick]);
13297
13330
 
13298
13331
  if (!isBrickAvailable) {
13299
13332
  return null;
@@ -13326,11 +13359,11 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13326
13359
  * @param props - 属性。
13327
13360
  */
13328
13361
 
13329
- function BrickAsComponent(_ref7) {
13362
+ function BrickAsComponent(_ref8) {
13330
13363
  var {
13331
13364
  useBrick,
13332
13365
  data
13333
- } = _ref7;
13366
+ } = _ref8;
13334
13367
 
13335
13368
  if (Array.isArray(useBrick)) {
13336
13369
  return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
@@ -13351,8 +13384,8 @@ function slotsToChildren(slots) {
13351
13384
  return [];
13352
13385
  }
13353
13386
 
13354
- return Object.entries(slots).flatMap(_ref8 => {
13355
- var [slot, slotConf] = _ref8;
13387
+ return Object.entries(slots).flatMap(_ref9 => {
13388
+ var [slot, slotConf] = _ref9;
13356
13389
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread(_objectSpread({}, child), {}, {
13357
13390
  properties: _objectSpread(_objectSpread({}, child.properties), {}, {
13358
13391
  slot
@@ -13372,19 +13405,20 @@ function transformEvents(data, events) {
13372
13405
  // eslint-disable-next-line react/display-name
13373
13406
 
13374
13407
 
13375
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
13408
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref10, ref) {
13376
13409
  var _internalApiGetCurren2, _templateRef$current$2, _templateRef$current4;
13377
13410
 
13378
13411
  var {
13379
13412
  useBrick,
13380
13413
  data,
13381
13414
  refCallback
13382
- } = _ref9;
13415
+ } = _ref10;
13383
13416
  var firstRunRef = useRef(true);
13384
13417
  var innerRefCallbackRef = useRef();
13385
13418
  var elementRef = useRef();
13386
13419
  var templateRef = useRef();
13387
13420
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
13421
+ var formRef = useRef();
13388
13422
  var isBrickAvailable = React.useMemo(() => {
13389
13423
  if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
13390
13424
  // eslint-disable-next-line
@@ -13417,15 +13451,22 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13417
13451
  _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
13418
13452
 
13419
13453
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
13420
- templateRef.current = expandTemplateInUseBrick(useBrick, tplTagName, brick); // Let `transform` works still.
13454
+ templateRef.current = expandTemplateInUseBrick(useBrick, tplTagName, brick);
13455
+
13456
+ if (useBrick.brick === formRenderer) {
13457
+ var _useBrick$properties2;
13458
+
13459
+ formRef.current = ExpandCustomForm((_useBrick$properties2 = useBrick.properties) === null || _useBrick$properties2 === void 0 ? void 0 : _useBrick$properties2.formData, useBrick, false);
13460
+ } // Let `transform` works still.
13461
+
13421
13462
 
13422
13463
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
13423
13464
  allowInject: true
13424
13465
  }); // 设置 properties refProperty值
13425
13466
 
13426
13467
  if (useBrick[symbolForComputedPropsFromProxy]) {
13427
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
13428
- var [propName, propValue] = _ref11;
13468
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref12 => {
13469
+ var [propName, propValue] = _ref12;
13429
13470
  set(brick.properties, propName, propValue);
13430
13471
  });
13431
13472
  }
@@ -13445,7 +13486,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13445
13486
  }), [useBrick, data, isBrickAvailable, tplTagName]);
13446
13487
 
13447
13488
  var dispatchLifeCycleEvent = /*#__PURE__*/function () {
13448
- var _ref12 = _asyncToGenerator$3(function* (event, handlers, brick) {
13489
+ var _ref13 = _asyncToGenerator$3(function* (event, handlers, brick) {
13449
13490
  for (var handler of [].concat(handlers)) {
13450
13491
  listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13451
13492
  tplContextId: useBrick[symbolForTplContextId]
@@ -13454,7 +13495,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13454
13495
  });
13455
13496
 
13456
13497
  return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
13457
- return _ref12.apply(this, arguments);
13498
+ return _ref13.apply(this, arguments);
13458
13499
  };
13459
13500
  }();
13460
13501
 
@@ -13517,7 +13558,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13517
13558
  }, [runtimeBrick, updateBrick]);
13518
13559
 
13519
13560
  innerRefCallbackRef.current = /*#__PURE__*/function () {
13520
- var _ref14 = _asyncToGenerator$3(function* (element) {
13561
+ var _ref15 = _asyncToGenerator$3(function* (element) {
13521
13562
  elementRef.current = element;
13522
13563
  var brick;
13523
13564
 
@@ -13550,7 +13591,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13550
13591
  });
13551
13592
 
13552
13593
  return function (_x8) {
13553
- return _ref14.apply(this, arguments);
13594
+ return _ref15.apply(this, arguments);
13554
13595
  };
13555
13596
  }(); // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13556
13597
 
@@ -13559,10 +13600,10 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13559
13600
  innerRefCallbackRef.current(element);
13560
13601
  }, []);
13561
13602
  var childConfs = useMemo(() => {
13562
- var _templateRef$current3;
13603
+ var _ref16, _templateRef$current3;
13563
13604
 
13564
- return slotsToChildren(((_templateRef$current3 = templateRef.current) !== null && _templateRef$current3 !== void 0 ? _templateRef$current3 : useBrick).slots);
13565
- }, [templateRef.current, useBrick]);
13605
+ return slotsToChildren(((_ref16 = (_templateRef$current3 = templateRef.current) !== null && _templateRef$current3 !== void 0 ? _templateRef$current3 : formRef.current) !== null && _ref16 !== void 0 ? _ref16 : useBrick).slots);
13606
+ }, [templateRef.current, formRef.current, useBrick]);
13566
13607
 
13567
13608
  if (!isBrickAvailable) {
13568
13609
  return null;