@next-core/brick-kit 2.164.1 → 2.164.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.
@@ -11894,7 +11894,7 @@
11894
11894
  * @param props - 属性。
11895
11895
  */
11896
11896
  var SingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo(function SingleBrickAsComponent(_ref) {
11897
- var _internalApiGetCurren, _brick, _ref8;
11897
+ var _internalApiGetCurren, _expandedBrickConf$br;
11898
11898
  var {
11899
11899
  useBrick,
11900
11900
  data,
@@ -11904,7 +11904,6 @@
11904
11904
  var firstRunRef = React.useRef(true);
11905
11905
  var innerRefCallbackRef = React.useRef();
11906
11906
  var elementRef = React.useRef();
11907
- var expandedBrickConfRef = React.useRef();
11908
11907
  var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
11909
11908
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
11910
11909
  var isBrickAvailable = React.useMemo(() => {
@@ -11940,15 +11939,22 @@
11940
11939
  if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
11941
11940
  return;
11942
11941
  }
11943
- _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
11942
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
11943
+
11944
+ // 需要等待构件加载完成,因为构件可能包含属性初始化逻辑。
11945
+ // 如果先创建构件,再完成构件加载,其属性默认初始化动作会覆盖用户定义的属性。
11946
+ // 另一方面,避免额外的 MicroTask,因为 graph.general-graph 构件依赖固定的 useBrick 渲染时机。
11947
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
11948
+ yield promise;
11949
+ }
11944
11950
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
11945
11951
  var expanded = useBrick.brick === formRenderer ? (requireSuspense ? AsyncExpandCustomForm : ExpandCustomForm)(typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData, useBrick, false) : expandTemplateInUseBrick(useBrick, tplTagName, brick, requireSuspense);
11946
11952
  if (requireSuspense) {
11947
11953
  setExpandedBrickConf(yield expanded);
11948
- setSuspenseReady(true);
11949
11954
  } else {
11950
- expandedBrickConfRef.current = expanded;
11955
+ setExpandedBrickConf(expanded);
11951
11956
  }
11957
+ setSuspenseReady(true);
11952
11958
 
11953
11959
  // Let `transform` works still.
11954
11960
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12074,14 +12080,12 @@
12074
12080
  var innerRefCallback = React__default["default"].useCallback(element => {
12075
12081
  innerRefCallbackRef.current(element);
12076
12082
  }, []);
12077
- var childConfs = React.useMemo(() => {
12078
- var _ref7;
12079
- return slotsToChildren(((_ref7 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref7 !== void 0 ? _ref7 : useBrick).slots);
12080
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12081
- if (!isBrickAvailable || requireSuspense && !suspenseReady) {
12083
+ var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
12084
+ if (!isBrickAvailable || !suspenseReady) {
12082
12085
  return null;
12083
12086
  }
12084
- return /*#__PURE__*/React__default["default"].createElement((_brick = (_ref8 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) === null || _ref8 === void 0 ? void 0 : _ref8.brick) !== null && _brick !== void 0 ? _brick : tplTagName || useBrick.brick, {
12087
+ var tagName = (_expandedBrickConf$br = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br !== void 0 ? _expandedBrickConf$br : tplTagName || useBrick.brick;
12088
+ return /*#__PURE__*/React__default["default"].createElement(tagName, {
12085
12089
  ref: innerRefCallback
12086
12090
  }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12087
12091
  key: index,
@@ -12108,11 +12112,11 @@
12108
12112
  *
12109
12113
  * @param props - 属性。
12110
12114
  */
12111
- function BrickAsComponent(_ref9) {
12115
+ function BrickAsComponent(_ref7) {
12112
12116
  var {
12113
12117
  useBrick,
12114
12118
  data
12115
- } = _ref9;
12119
+ } = _ref7;
12116
12120
  if (Array.isArray(useBrick)) {
12117
12121
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12118
12122
  key: index,
@@ -12129,8 +12133,8 @@
12129
12133
  if (!slots) {
12130
12134
  return [];
12131
12135
  }
12132
- return Object.entries(slots).flatMap(_ref10 => {
12133
- var [slot, slotConf] = _ref10;
12136
+ return Object.entries(slots).flatMap(_ref8 => {
12137
+ var [slot, slotConf] = _ref8;
12134
12138
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread__default["default"](_objectSpread__default["default"]({}, child), {}, {
12135
12139
  properties: _objectSpread__default["default"](_objectSpread__default["default"]({}, child.properties), {}, {
12136
12140
  slot
@@ -12148,17 +12152,16 @@
12148
12152
 
12149
12153
  /* istanbul ignore next */
12150
12154
  // eslint-disable-next-line react/display-name
12151
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref11, ref) {
12152
- var _internalApiGetCurren2, _brick2, _ref18;
12155
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
12156
+ var _internalApiGetCurren2, _expandedBrickConf$br2;
12153
12157
  var {
12154
12158
  useBrick,
12155
12159
  data,
12156
12160
  refCallback
12157
- } = _ref11;
12161
+ } = _ref9;
12158
12162
  var firstRunRef = React.useRef(true);
12159
12163
  var innerRefCallbackRef = React.useRef();
12160
12164
  var elementRef = React.useRef();
12161
- var expandedBrickConfRef = React.useRef();
12162
12165
  var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12163
12166
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
12164
12167
  var isBrickAvailable = React__default["default"].useMemo(() => {
@@ -12199,15 +12202,18 @@
12199
12202
  if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12200
12203
  return;
12201
12204
  }
12202
- _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12205
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12206
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12207
+ yield promise;
12208
+ }
12203
12209
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12204
12210
  var expanded = useBrick.brick === formRenderer ? (requireSuspense ? AsyncExpandCustomForm : ExpandCustomForm)(typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData, useBrick, false) : expandTemplateInUseBrick(useBrick, tplTagName, brick, requireSuspense);
12205
12211
  if (requireSuspense) {
12206
12212
  setExpandedBrickConf(yield expanded);
12207
- setSuspenseReady(true);
12208
12213
  } else {
12209
- expandedBrickConfRef.current = expanded;
12214
+ setExpandedBrickConf(expanded);
12210
12215
  }
12216
+ setSuspenseReady(true);
12211
12217
 
12212
12218
  // Let `transform` works still.
12213
12219
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12216,8 +12222,8 @@
12216
12222
 
12217
12223
  // 设置 properties refProperty值
12218
12224
  if (useBrick[symbolForComputedPropsFromProxy]) {
12219
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref13 => {
12220
- var [propName, propValue] = _ref13;
12225
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
12226
+ var [propName, propValue] = _ref11;
12221
12227
  _.set(brick.properties, propName, propValue);
12222
12228
  });
12223
12229
  }
@@ -12233,7 +12239,7 @@
12233
12239
  return brick;
12234
12240
  }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12235
12241
  var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12236
- var _ref14 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12242
+ var _ref12 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12237
12243
  for (var handler of [].concat(handlers)) {
12238
12244
  listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12239
12245
  tplContextId: useBrick[symbolForTplContextId]
@@ -12241,7 +12247,7 @@
12241
12247
  }
12242
12248
  });
12243
12249
  return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
12244
- return _ref14.apply(this, arguments);
12250
+ return _ref12.apply(this, arguments);
12245
12251
  };
12246
12252
  }();
12247
12253
  var updateBrick = React.useCallback((brick, element) => {
@@ -12292,7 +12298,7 @@
12292
12298
  })();
12293
12299
  }, [runtimeBrick, updateBrick]);
12294
12300
  innerRefCallbackRef.current = /*#__PURE__*/function () {
12295
- var _ref16 = _asyncToGenerator__default["default"](function* (element) {
12301
+ var _ref14 = _asyncToGenerator__default["default"](function* (element) {
12296
12302
  elementRef.current = element;
12297
12303
  var brick;
12298
12304
  try {
@@ -12318,7 +12324,7 @@
12318
12324
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
12319
12325
  });
12320
12326
  return function (_x8) {
12321
- return _ref16.apply(this, arguments);
12327
+ return _ref14.apply(this, arguments);
12322
12328
  };
12323
12329
  }();
12324
12330
 
@@ -12326,14 +12332,12 @@
12326
12332
  var innerRefCallback = React__default["default"].useCallback(element => {
12327
12333
  innerRefCallbackRef.current(element);
12328
12334
  }, []);
12329
- var childConfs = React.useMemo(() => {
12330
- var _ref17;
12331
- return slotsToChildren(((_ref17 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref17 !== void 0 ? _ref17 : useBrick).slots);
12332
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12333
- if (!isBrickAvailable || requireSuspense && !suspenseReady) {
12335
+ var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
12336
+ if (!isBrickAvailable || !suspenseReady) {
12334
12337
  return null;
12335
12338
  }
12336
- return /*#__PURE__*/React__default["default"].createElement((_brick2 = (_ref18 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) === null || _ref18 === void 0 ? void 0 : _ref18.brick) !== null && _brick2 !== void 0 ? _brick2 : tplTagName || useBrick.brick, {
12339
+ var tagName = (_expandedBrickConf$br2 = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br2 !== void 0 ? _expandedBrickConf$br2 : tplTagName || useBrick.brick;
12340
+ return /*#__PURE__*/React__default["default"].createElement(tagName, {
12337
12341
  ref: innerRefCallback
12338
12342
  }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12339
12343
  key: index,