@next-core/brick-kit 2.164.0 → 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.
@@ -5525,7 +5525,7 @@
5525
5525
  }();
5526
5526
 
5527
5527
  /**
5528
- * @description 获取bricks信息
5528
+ * @description 获取bricks/templates信息
5529
5529
  * @endpoint GET /api/v1/api_gateway/bricks
5530
5530
  */
5531
5531
  var BootstrapV2Api_getBricksInfo = /*#__PURE__*/function () {
@@ -6746,7 +6746,7 @@
6746
6746
  // eslint-disable-next-line no-console
6747
6747
  console.warn("request runtime api from api-gateway failed: ", error, ", something might went wrong running standalone micro app");
6748
6748
  return;
6749
- }), window.DEVELOPER_PREVIEW ? BootstrapV2Api_getBricksInfo({}) : null];
6749
+ })];
6750
6750
  if (!window.NO_AUTH_GUARD) {
6751
6751
  var matches;
6752
6752
  var appId = window.APP_ID || (window.APP_ROOT && (matches = window.APP_ROOT.match(/^(?:(?:\/next)?\/)?sa-static\/([^/]+)\/versions\//)) ? matches[1] : null);
@@ -6755,7 +6755,7 @@
6755
6755
  safeGetRuntimeMicroAppStandalone(appId);
6756
6756
  }
6757
6757
  }
6758
- var [bootstrapResult, confString, runtimeData, previewPackageData] = yield Promise.all(requests);
6758
+ var [bootstrapResult, confString, runtimeData] = yield Promise.all(requests);
6759
6759
  var conf;
6760
6760
  try {
6761
6761
  conf = confString ? yaml__default["default"].safeLoad(confString, {
@@ -6810,12 +6810,6 @@
6810
6810
  }
6811
6811
  }
6812
6812
  }
6813
- if (previewPackageData) {
6814
- Object.assign(bootstrapResult, {
6815
- brickPackages: previewPackageData.bricksInfo,
6816
- templatePackages: previewPackageData.templatesInfo
6817
- });
6818
- }
6819
6813
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, bootstrapResult), {}, {
6820
6814
  settings
6821
6815
  });
@@ -6842,6 +6836,41 @@
6842
6836
  return _safeGetRuntimeMicroAppStandalone.apply(this, arguments);
6843
6837
  }
6844
6838
 
6839
+ function getPreviewBootstrap() {
6840
+ return _getPreviewBootstrap.apply(this, arguments);
6841
+ }
6842
+ function _getPreviewBootstrap() {
6843
+ _getPreviewBootstrap = _asyncToGenerator__default["default"](function* () {
6844
+ var [runtimeData, previewPackageData] = yield Promise.all([BootstrapStandaloneApi_runtimeStandalone().catch(function (error) {
6845
+ // make it not crash when the backend service is not updated.
6846
+ // eslint-disable-next-line no-console
6847
+ console.warn("request runtime api from api-gateway failed: ", error, ", something might went wrong running standalone micro app");
6848
+ return;
6849
+ }), BootstrapV2Api_getBricksInfo({})]);
6850
+ var result = {
6851
+ storyboards: [],
6852
+ microApps: []
6853
+ };
6854
+ if (runtimeData) {
6855
+ var runtimeSettings = runtimeData.settings;
6856
+ if (!_.isEmpty(runtimeSettings)) {
6857
+ Object.assign(result, {
6858
+ settings: runtimeSettings
6859
+ });
6860
+ }
6861
+ }
6862
+ if (previewPackageData) {
6863
+ var _previewPackageData$b, _previewPackageData$t;
6864
+ Object.assign(result, {
6865
+ brickPackages: (_previewPackageData$b = previewPackageData.bricksInfo) !== null && _previewPackageData$b !== void 0 ? _previewPackageData$b : [],
6866
+ templatePackages: (_previewPackageData$t = previewPackageData.templatesInfo) !== null && _previewPackageData$t !== void 0 ? _previewPackageData$t : []
6867
+ });
6868
+ }
6869
+ return result;
6870
+ });
6871
+ return _getPreviewBootstrap.apply(this, arguments);
6872
+ }
6873
+
6845
6874
  /**
6846
6875
  * Take input from [0, n] and return it as [0, 1]
6847
6876
  * @hidden
@@ -8334,7 +8363,7 @@
8334
8363
  document.body.classList.add("bars-hidden-in-iframe");
8335
8364
  }
8336
8365
  yield Promise.all([_this2.loadCheckLogin(), _this2.loadMicroApps()]);
8337
- if (_this2.bootstrapData.storyboards.length === 0) {
8366
+ if (_this2.bootstrapData.storyboards.length === 0 && !window.DEVELOPER_PREVIEW) {
8338
8367
  throw new Error("No storyboard were found.");
8339
8368
  }
8340
8369
  generateColorTheme((_this2$bootstrapData$ = _this2.bootstrapData.settings) === null || _this2$bootstrapData$ === void 0 ? void 0 : (_this2$bootstrapData$2 = _this2$bootstrapData$.misc) === null || _this2$bootstrapData$2 === void 0 ? void 0 : _this2$bootstrapData$2.theme);
@@ -8409,6 +8438,11 @@
8409
8438
  loadMicroApps(params, interceptorParams) {
8410
8439
  var _this4 = this;
8411
8440
  return _asyncToGenerator__default["default"](function* () {
8441
+ // istanbul ignore if
8442
+ if (window.DEVELOPER_PREVIEW) {
8443
+ _this4.bootstrapData = yield getPreviewBootstrap();
8444
+ return;
8445
+ }
8412
8446
  var data = yield window.STANDALONE_MICRO_APPS ? standaloneBootstrap() : BootstrapV2Api_bootstrapV2(_objectSpread__default["default"]({
8413
8447
  appFields: "defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons,standaloneMode",
8414
8448
  ignoreTemplateFields: "templates",
@@ -11860,7 +11894,7 @@
11860
11894
  * @param props - 属性。
11861
11895
  */
11862
11896
  var SingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo(function SingleBrickAsComponent(_ref) {
11863
- var _internalApiGetCurren, _brick, _ref8;
11897
+ var _internalApiGetCurren, _expandedBrickConf$br;
11864
11898
  var {
11865
11899
  useBrick,
11866
11900
  data,
@@ -11870,7 +11904,6 @@
11870
11904
  var firstRunRef = React.useRef(true);
11871
11905
  var innerRefCallbackRef = React.useRef();
11872
11906
  var elementRef = React.useRef();
11873
- var expandedBrickConfRef = React.useRef();
11874
11907
  var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
11875
11908
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
11876
11909
  var isBrickAvailable = React.useMemo(() => {
@@ -11903,18 +11936,25 @@
11903
11936
  }
11904
11937
 
11905
11938
  // If the router state is initial, ignore rendering the sub-brick.
11906
- if (_internalApiGetRouterState() === "initial") {
11939
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
11907
11940
  return;
11908
11941
  }
11909
- _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
+ }
11910
11950
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
11911
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);
11912
11952
  if (requireSuspense) {
11913
11953
  setExpandedBrickConf(yield expanded);
11914
- setSuspenseReady(true);
11915
11954
  } else {
11916
- expandedBrickConfRef.current = expanded;
11955
+ setExpandedBrickConf(expanded);
11917
11956
  }
11957
+ setSuspenseReady(true);
11918
11958
 
11919
11959
  // Let `transform` works still.
11920
11960
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12040,14 +12080,12 @@
12040
12080
  var innerRefCallback = React__default["default"].useCallback(element => {
12041
12081
  innerRefCallbackRef.current(element);
12042
12082
  }, []);
12043
- var childConfs = React.useMemo(() => {
12044
- var _ref7;
12045
- return slotsToChildren(((_ref7 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref7 !== void 0 ? _ref7 : useBrick).slots);
12046
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12047
- 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) {
12048
12085
  return null;
12049
12086
  }
12050
- 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, {
12051
12089
  ref: innerRefCallback
12052
12090
  }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12053
12091
  key: index,
@@ -12074,11 +12112,11 @@
12074
12112
  *
12075
12113
  * @param props - 属性。
12076
12114
  */
12077
- function BrickAsComponent(_ref9) {
12115
+ function BrickAsComponent(_ref7) {
12078
12116
  var {
12079
12117
  useBrick,
12080
12118
  data
12081
- } = _ref9;
12119
+ } = _ref7;
12082
12120
  if (Array.isArray(useBrick)) {
12083
12121
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12084
12122
  key: index,
@@ -12095,8 +12133,8 @@
12095
12133
  if (!slots) {
12096
12134
  return [];
12097
12135
  }
12098
- return Object.entries(slots).flatMap(_ref10 => {
12099
- var [slot, slotConf] = _ref10;
12136
+ return Object.entries(slots).flatMap(_ref8 => {
12137
+ var [slot, slotConf] = _ref8;
12100
12138
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread__default["default"](_objectSpread__default["default"]({}, child), {}, {
12101
12139
  properties: _objectSpread__default["default"](_objectSpread__default["default"]({}, child.properties), {}, {
12102
12140
  slot
@@ -12114,17 +12152,16 @@
12114
12152
 
12115
12153
  /* istanbul ignore next */
12116
12154
  // eslint-disable-next-line react/display-name
12117
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref11, ref) {
12118
- var _internalApiGetCurren2, _brick2, _ref18;
12155
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
12156
+ var _internalApiGetCurren2, _expandedBrickConf$br2;
12119
12157
  var {
12120
12158
  useBrick,
12121
12159
  data,
12122
12160
  refCallback
12123
- } = _ref11;
12161
+ } = _ref9;
12124
12162
  var firstRunRef = React.useRef(true);
12125
12163
  var innerRefCallbackRef = React.useRef();
12126
12164
  var elementRef = React.useRef();
12127
- var expandedBrickConfRef = React.useRef();
12128
12165
  var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12129
12166
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
12130
12167
  var isBrickAvailable = React__default["default"].useMemo(() => {
@@ -12162,18 +12199,21 @@
12162
12199
  }
12163
12200
 
12164
12201
  // If the router state is initial, ignore rendering the sub-brick.
12165
- if (_internalApiGetRouterState() === "initial") {
12202
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12166
12203
  return;
12167
12204
  }
12168
- _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12205
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12206
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12207
+ yield promise;
12208
+ }
12169
12209
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12170
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);
12171
12211
  if (requireSuspense) {
12172
12212
  setExpandedBrickConf(yield expanded);
12173
- setSuspenseReady(true);
12174
12213
  } else {
12175
- expandedBrickConfRef.current = expanded;
12214
+ setExpandedBrickConf(expanded);
12176
12215
  }
12216
+ setSuspenseReady(true);
12177
12217
 
12178
12218
  // Let `transform` works still.
12179
12219
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12182,8 +12222,8 @@
12182
12222
 
12183
12223
  // 设置 properties refProperty值
12184
12224
  if (useBrick[symbolForComputedPropsFromProxy]) {
12185
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref13 => {
12186
- var [propName, propValue] = _ref13;
12225
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
12226
+ var [propName, propValue] = _ref11;
12187
12227
  _.set(brick.properties, propName, propValue);
12188
12228
  });
12189
12229
  }
@@ -12199,7 +12239,7 @@
12199
12239
  return brick;
12200
12240
  }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12201
12241
  var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12202
- var _ref14 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12242
+ var _ref12 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12203
12243
  for (var handler of [].concat(handlers)) {
12204
12244
  listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12205
12245
  tplContextId: useBrick[symbolForTplContextId]
@@ -12207,7 +12247,7 @@
12207
12247
  }
12208
12248
  });
12209
12249
  return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
12210
- return _ref14.apply(this, arguments);
12250
+ return _ref12.apply(this, arguments);
12211
12251
  };
12212
12252
  }();
12213
12253
  var updateBrick = React.useCallback((brick, element) => {
@@ -12258,7 +12298,7 @@
12258
12298
  })();
12259
12299
  }, [runtimeBrick, updateBrick]);
12260
12300
  innerRefCallbackRef.current = /*#__PURE__*/function () {
12261
- var _ref16 = _asyncToGenerator__default["default"](function* (element) {
12301
+ var _ref14 = _asyncToGenerator__default["default"](function* (element) {
12262
12302
  elementRef.current = element;
12263
12303
  var brick;
12264
12304
  try {
@@ -12284,7 +12324,7 @@
12284
12324
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
12285
12325
  });
12286
12326
  return function (_x8) {
12287
- return _ref16.apply(this, arguments);
12327
+ return _ref14.apply(this, arguments);
12288
12328
  };
12289
12329
  }();
12290
12330
 
@@ -12292,14 +12332,12 @@
12292
12332
  var innerRefCallback = React__default["default"].useCallback(element => {
12293
12333
  innerRefCallbackRef.current(element);
12294
12334
  }, []);
12295
- var childConfs = React.useMemo(() => {
12296
- var _ref17;
12297
- return slotsToChildren(((_ref17 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref17 !== void 0 ? _ref17 : useBrick).slots);
12298
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12299
- 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) {
12300
12337
  return null;
12301
12338
  }
12302
- 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, {
12303
12341
  ref: innerRefCallback
12304
12342
  }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12305
12343
  key: index,
@@ -14093,6 +14131,7 @@
14093
14131
  exports.StoryboardFunctionRegistryFactory = StoryboardFunctionRegistryFactory;
14094
14132
  exports.UpdatingElement = UpdatingElement;
14095
14133
  exports.abortController = abortController;
14134
+ exports.applyTheme = applyTheme;
14096
14135
  exports.authenticate = authenticate;
14097
14136
  exports.batchSetAppsLocalTheme = batchSetAppsLocalTheme;
14098
14137
  exports.checkIf = checkIf;