@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.
package/dist/index.esm.js CHANGED
@@ -5526,7 +5526,7 @@ var BootstrapV2Api_getAppStoryboardV2 = /*#__PURE__*/function () {
5526
5526
  }();
5527
5527
 
5528
5528
  /**
5529
- * @description 获取bricks信息
5529
+ * @description 获取bricks/templates信息
5530
5530
  * @endpoint GET /api/v1/api_gateway/bricks
5531
5531
  */
5532
5532
  var BootstrapV2Api_getBricksInfo = /*#__PURE__*/function () {
@@ -6747,7 +6747,7 @@ function _standaloneBootstrap() {
6747
6747
  // eslint-disable-next-line no-console
6748
6748
  console.warn("request runtime api from api-gateway failed: ", error, ", something might went wrong running standalone micro app");
6749
6749
  return;
6750
- }), window.DEVELOPER_PREVIEW ? BootstrapV2Api_getBricksInfo({}) : null];
6750
+ })];
6751
6751
  if (!window.NO_AUTH_GUARD) {
6752
6752
  var matches;
6753
6753
  var appId = window.APP_ID || (window.APP_ROOT && (matches = window.APP_ROOT.match(/^(?:(?:\/next)?\/)?sa-static\/([^/]+)\/versions\//)) ? matches[1] : null);
@@ -6756,7 +6756,7 @@ function _standaloneBootstrap() {
6756
6756
  safeGetRuntimeMicroAppStandalone(appId);
6757
6757
  }
6758
6758
  }
6759
- var [bootstrapResult, confString, runtimeData, previewPackageData] = yield Promise.all(requests);
6759
+ var [bootstrapResult, confString, runtimeData] = yield Promise.all(requests);
6760
6760
  var conf;
6761
6761
  try {
6762
6762
  conf = confString ? yaml.safeLoad(confString, {
@@ -6811,12 +6811,6 @@ function _standaloneBootstrap() {
6811
6811
  }
6812
6812
  }
6813
6813
  }
6814
- if (previewPackageData) {
6815
- Object.assign(bootstrapResult, {
6816
- brickPackages: previewPackageData.bricksInfo,
6817
- templatePackages: previewPackageData.templatesInfo
6818
- });
6819
- }
6820
6814
  return _objectSpread(_objectSpread({}, bootstrapResult), {}, {
6821
6815
  settings
6822
6816
  });
@@ -6843,6 +6837,41 @@ function _safeGetRuntimeMicroAppStandalone() {
6843
6837
  return _safeGetRuntimeMicroAppStandalone.apply(this, arguments);
6844
6838
  }
6845
6839
 
6840
+ function getPreviewBootstrap() {
6841
+ return _getPreviewBootstrap.apply(this, arguments);
6842
+ }
6843
+ function _getPreviewBootstrap() {
6844
+ _getPreviewBootstrap = _asyncToGenerator$3(function* () {
6845
+ var [runtimeData, previewPackageData] = yield Promise.all([BootstrapStandaloneApi_runtimeStandalone().catch(function (error) {
6846
+ // make it not crash when the backend service is not updated.
6847
+ // eslint-disable-next-line no-console
6848
+ console.warn("request runtime api from api-gateway failed: ", error, ", something might went wrong running standalone micro app");
6849
+ return;
6850
+ }), BootstrapV2Api_getBricksInfo({})]);
6851
+ var result = {
6852
+ storyboards: [],
6853
+ microApps: []
6854
+ };
6855
+ if (runtimeData) {
6856
+ var runtimeSettings = runtimeData.settings;
6857
+ if (!isEmpty(runtimeSettings)) {
6858
+ Object.assign(result, {
6859
+ settings: runtimeSettings
6860
+ });
6861
+ }
6862
+ }
6863
+ if (previewPackageData) {
6864
+ var _previewPackageData$b, _previewPackageData$t;
6865
+ Object.assign(result, {
6866
+ brickPackages: (_previewPackageData$b = previewPackageData.bricksInfo) !== null && _previewPackageData$b !== void 0 ? _previewPackageData$b : [],
6867
+ templatePackages: (_previewPackageData$t = previewPackageData.templatesInfo) !== null && _previewPackageData$t !== void 0 ? _previewPackageData$t : []
6868
+ });
6869
+ }
6870
+ return result;
6871
+ });
6872
+ return _getPreviewBootstrap.apply(this, arguments);
6873
+ }
6874
+
6846
6875
  /**
6847
6876
  * Take input from [0, n] and return it as [0, 1]
6848
6877
  * @hidden
@@ -8335,7 +8364,7 @@ class Kernel {
8335
8364
  document.body.classList.add("bars-hidden-in-iframe");
8336
8365
  }
8337
8366
  yield Promise.all([_this2.loadCheckLogin(), _this2.loadMicroApps()]);
8338
- if (_this2.bootstrapData.storyboards.length === 0) {
8367
+ if (_this2.bootstrapData.storyboards.length === 0 && !window.DEVELOPER_PREVIEW) {
8339
8368
  throw new Error("No storyboard were found.");
8340
8369
  }
8341
8370
  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);
@@ -8410,6 +8439,11 @@ class Kernel {
8410
8439
  loadMicroApps(params, interceptorParams) {
8411
8440
  var _this4 = this;
8412
8441
  return _asyncToGenerator$3(function* () {
8442
+ // istanbul ignore if
8443
+ if (window.DEVELOPER_PREVIEW) {
8444
+ _this4.bootstrapData = yield getPreviewBootstrap();
8445
+ return;
8446
+ }
8413
8447
  var data = yield window.STANDALONE_MICRO_APPS ? standaloneBootstrap() : BootstrapV2Api_bootstrapV2(_objectSpread({
8414
8448
  appFields: "defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons,standaloneMode",
8415
8449
  ignoreTemplateFields: "templates",
@@ -11861,7 +11895,7 @@ var getCurrentRunTimeBrick = (useBrick, tplTagName, data) => {
11861
11895
  * @param props - 属性。
11862
11896
  */
11863
11897
  var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsComponent(_ref) {
11864
- var _internalApiGetCurren, _brick, _ref8;
11898
+ var _internalApiGetCurren, _expandedBrickConf$br;
11865
11899
  var {
11866
11900
  useBrick,
11867
11901
  data,
@@ -11871,7 +11905,6 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
11871
11905
  var firstRunRef = useRef(true);
11872
11906
  var innerRefCallbackRef = useRef();
11873
11907
  var elementRef = useRef();
11874
- var expandedBrickConfRef = useRef();
11875
11908
  var [expandedBrickConf, setExpandedBrickConf] = useState(null);
11876
11909
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
11877
11910
  var isBrickAvailable = useMemo(() => {
@@ -11904,18 +11937,25 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
11904
11937
  }
11905
11938
 
11906
11939
  // If the router state is initial, ignore rendering the sub-brick.
11907
- if (_internalApiGetRouterState() === "initial") {
11940
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
11908
11941
  return;
11909
11942
  }
11910
- _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
+ }
11911
11951
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
11912
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);
11913
11953
  if (requireSuspense) {
11914
11954
  setExpandedBrickConf(yield expanded);
11915
- setSuspenseReady(true);
11916
11955
  } else {
11917
- expandedBrickConfRef.current = expanded;
11956
+ setExpandedBrickConf(expanded);
11918
11957
  }
11958
+ setSuspenseReady(true);
11919
11959
 
11920
11960
  // Let `transform` works still.
11921
11961
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12041,14 +12081,12 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
12041
12081
  var innerRefCallback = React.useCallback(element => {
12042
12082
  innerRefCallbackRef.current(element);
12043
12083
  }, []);
12044
- var childConfs = useMemo(() => {
12045
- var _ref7;
12046
- return slotsToChildren(((_ref7 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref7 !== void 0 ? _ref7 : useBrick).slots);
12047
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12048
- 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) {
12049
12086
  return null;
12050
12087
  }
12051
- 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, {
12052
12090
  ref: innerRefCallback
12053
12091
  }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12054
12092
  key: index,
@@ -12075,11 +12113,11 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
12075
12113
  *
12076
12114
  * @param props - 属性。
12077
12115
  */
12078
- function BrickAsComponent(_ref9) {
12116
+ function BrickAsComponent(_ref7) {
12079
12117
  var {
12080
12118
  useBrick,
12081
12119
  data
12082
- } = _ref9;
12120
+ } = _ref7;
12083
12121
  if (Array.isArray(useBrick)) {
12084
12122
  return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12085
12123
  key: index,
@@ -12096,8 +12134,8 @@ function slotsToChildren(slots) {
12096
12134
  if (!slots) {
12097
12135
  return [];
12098
12136
  }
12099
- return Object.entries(slots).flatMap(_ref10 => {
12100
- var [slot, slotConf] = _ref10;
12137
+ return Object.entries(slots).flatMap(_ref8 => {
12138
+ var [slot, slotConf] = _ref8;
12101
12139
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread(_objectSpread({}, child), {}, {
12102
12140
  properties: _objectSpread(_objectSpread({}, child.properties), {}, {
12103
12141
  slot
@@ -12115,17 +12153,16 @@ function transformEvents(data, events) {
12115
12153
 
12116
12154
  /* istanbul ignore next */
12117
12155
  // eslint-disable-next-line react/display-name
12118
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref11, ref) {
12119
- var _internalApiGetCurren2, _brick2, _ref18;
12156
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
12157
+ var _internalApiGetCurren2, _expandedBrickConf$br2;
12120
12158
  var {
12121
12159
  useBrick,
12122
12160
  data,
12123
12161
  refCallback
12124
- } = _ref11;
12162
+ } = _ref9;
12125
12163
  var firstRunRef = useRef(true);
12126
12164
  var innerRefCallbackRef = useRef();
12127
12165
  var elementRef = useRef();
12128
- var expandedBrickConfRef = useRef();
12129
12166
  var [expandedBrickConf, setExpandedBrickConf] = useState(null);
12130
12167
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
12131
12168
  var isBrickAvailable = React.useMemo(() => {
@@ -12163,18 +12200,21 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12163
12200
  }
12164
12201
 
12165
12202
  // If the router state is initial, ignore rendering the sub-brick.
12166
- if (_internalApiGetRouterState() === "initial") {
12203
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12167
12204
  return;
12168
12205
  }
12169
- _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12206
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12207
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12208
+ yield promise;
12209
+ }
12170
12210
  var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12171
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);
12172
12212
  if (requireSuspense) {
12173
12213
  setExpandedBrickConf(yield expanded);
12174
- setSuspenseReady(true);
12175
12214
  } else {
12176
- expandedBrickConfRef.current = expanded;
12215
+ setExpandedBrickConf(expanded);
12177
12216
  }
12217
+ setSuspenseReady(true);
12178
12218
 
12179
12219
  // Let `transform` works still.
12180
12220
  transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
@@ -12183,8 +12223,8 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12183
12223
 
12184
12224
  // 设置 properties refProperty值
12185
12225
  if (useBrick[symbolForComputedPropsFromProxy]) {
12186
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref13 => {
12187
- var [propName, propValue] = _ref13;
12226
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
12227
+ var [propName, propValue] = _ref11;
12188
12228
  set(brick.properties, propName, propValue);
12189
12229
  });
12190
12230
  }
@@ -12200,7 +12240,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12200
12240
  return brick;
12201
12241
  }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12202
12242
  var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12203
- var _ref14 = _asyncToGenerator$3(function* (event, handlers, brick) {
12243
+ var _ref12 = _asyncToGenerator$3(function* (event, handlers, brick) {
12204
12244
  for (var handler of [].concat(handlers)) {
12205
12245
  listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
12206
12246
  tplContextId: useBrick[symbolForTplContextId]
@@ -12208,7 +12248,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12208
12248
  }
12209
12249
  });
12210
12250
  return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
12211
- return _ref14.apply(this, arguments);
12251
+ return _ref12.apply(this, arguments);
12212
12252
  };
12213
12253
  }();
12214
12254
  var updateBrick = useCallback((brick, element) => {
@@ -12259,7 +12299,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12259
12299
  })();
12260
12300
  }, [runtimeBrick, updateBrick]);
12261
12301
  innerRefCallbackRef.current = /*#__PURE__*/function () {
12262
- var _ref16 = _asyncToGenerator$3(function* (element) {
12302
+ var _ref14 = _asyncToGenerator$3(function* (element) {
12263
12303
  elementRef.current = element;
12264
12304
  var brick;
12265
12305
  try {
@@ -12285,7 +12325,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12285
12325
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
12286
12326
  });
12287
12327
  return function (_x8) {
12288
- return _ref16.apply(this, arguments);
12328
+ return _ref14.apply(this, arguments);
12289
12329
  };
12290
12330
  }();
12291
12331
 
@@ -12293,14 +12333,12 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
12293
12333
  var innerRefCallback = React.useCallback(element => {
12294
12334
  innerRefCallbackRef.current(element);
12295
12335
  }, []);
12296
- var childConfs = useMemo(() => {
12297
- var _ref17;
12298
- return slotsToChildren(((_ref17 = requireSuspense ? expandedBrickConf : expandedBrickConfRef.current) !== null && _ref17 !== void 0 ? _ref17 : useBrick).slots);
12299
- }, [expandedBrickConf, expandedBrickConfRef.current, useBrick, requireSuspense]);
12300
- 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) {
12301
12338
  return null;
12302
12339
  }
12303
- 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, {
12304
12342
  ref: innerRefCallback
12305
12343
  }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12306
12344
  key: index,
@@ -14082,5 +14120,5 @@ function constructEventListener(handler) {
14082
14120
  });
14083
14121
  }
14084
14122
 
14085
- export { BrickAsComponent, BrickWrapper, DisplayByFeatureFlags, EasyopsEmpty, ErrorBoundary, FeatureFlagsProvider, ForwardRefSingleBrickAsComponent, ModalElement, SingleBrickAsComponent, StoryboardFunctionRegistryFactory, UpdatingElement, abortController, authenticate, batchSetAppsLocalTheme, checkIf, checkIfByTransform, constructEventListener, createHistory, createRuntime, developHelper, doTransform, event, getAuth, getCssPropertyValue, getCurrentTheme, getHistory, getMockInfo, getRealValue, getRuntime, getRuntimeMisc, handleHttpError, httpErrorToString, i18nText, initI18n, isLoggedIn, logout, looseCheckIf, looseCheckIfByTransform, looseCheckIfOfComputed, method, preprocessTransformProperties, property, reTransformForDevtools, renderEasyopsEmpty, transformElementProperties, transformIntermediateData, transformProperties, useApplyPageTitle, useCurrentApp, useCurrentMode, useCurrentTheme, useFeatureFlags, useLocation, useProvider, useRecentApps };
14123
+ export { BrickAsComponent, BrickWrapper, DisplayByFeatureFlags, EasyopsEmpty, ErrorBoundary, FeatureFlagsProvider, ForwardRefSingleBrickAsComponent, ModalElement, SingleBrickAsComponent, StoryboardFunctionRegistryFactory, UpdatingElement, abortController, applyTheme, authenticate, batchSetAppsLocalTheme, checkIf, checkIfByTransform, constructEventListener, createHistory, createRuntime, developHelper, doTransform, event, getAuth, getCssPropertyValue, getCurrentTheme, getHistory, getMockInfo, getRealValue, getRuntime, getRuntimeMisc, handleHttpError, httpErrorToString, i18nText, initI18n, isLoggedIn, logout, looseCheckIf, looseCheckIfByTransform, looseCheckIfOfComputed, method, preprocessTransformProperties, property, reTransformForDevtools, renderEasyopsEmpty, transformElementProperties, transformIntermediateData, transformProperties, useApplyPageTitle, useCurrentApp, useCurrentMode, useCurrentTheme, useFeatureFlags, useLocation, useProvider, useRecentApps };
14086
14124
  //# sourceMappingURL=index.esm.js.map