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