@next-core/brick-kit 2.178.1 → 2.178.3

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.
@@ -11951,6 +11951,11 @@
11951
11951
  } else if (isHttpAbortError(error)) {
11952
11952
  return;
11953
11953
  } else {
11954
+ var noAuthGuardLoginPath = getRuntime().getMiscSettings().noAuthGuardLoginPath;
11955
+ if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {
11956
+ history.replace(noAuthGuardLoginPath);
11957
+ return;
11958
+ }
11954
11959
  yield _this3.kernel.layoutBootstrap(layoutType);
11955
11960
  var brickPageError = _this3.kernel.presetBricks.pageError;
11956
11961
  yield _this3.kernel.loadDynamicBricks([brickPageError]);
@@ -12602,159 +12607,163 @@
12602
12607
  return brick;
12603
12608
  };
12604
12609
 
12605
- /**
12606
- * 可以渲染单个 `useBrick` 的 React 组件。
12607
- *
12608
- * @example
12609
- *
12610
- * ```tsx
12611
- * <BrickAsComponent
12612
- * useBrick={{
12613
- * brick: "your.any-brick"
12614
- * }}
12615
- * data={yourData}
12616
- * />
12617
- * ```
12618
- *
12619
- * @param props - 属性。
12620
- */
12621
- var SingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo(function SingleBrickAsComponent(_ref) {
12622
- var _internalApiGetCurren, _expandedBrickConf$br;
12623
- var {
12624
- useBrick,
12625
- data,
12626
- refCallback,
12627
- immediatelyRefCallback
12628
- } = _ref;
12629
- var firstRunRef = React.useRef(true);
12630
- var innerRefCallbackRef = React.useRef();
12631
- var elementRef = React.useRef();
12632
- var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12633
- var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
12634
- var isBrickAvailable = React.useMemo(() => {
12635
- if (brickUtils.isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
12636
- // eslint-disable-next-line
12637
- console.warn("Currently resolvable-if in `useBrick` is not supported.");
12638
- } else if (!looseCheckIfByTransform(useBrick, data, {
12639
- allowInject: true,
12640
- // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充
12641
- tplContextId: useBrick[symbolForTplContextId]
12642
- })) {
12643
- return false;
12644
- }
12645
- return true;
12646
- }, [useBrick, data]);
12647
- var requireSuspense = React.useMemo(() => {
12648
- var context;
12649
- if (useBrick.brick === formRenderer) {
12650
- var formData = typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData;
12651
- context = formData.context;
12652
- } else if (tplTagName) {
12653
- context = customTemplateRegistry.get(tplTagName).state;
12654
- }
12655
- return Array.isArray(context) && context.some(ctx => !!ctx.resolve);
12656
- }, [tplTagName, useBrick]);
12657
- var [suspenseReady, setSuspenseReady] = React.useState(false);
12658
- var runtimeBrick = React.useMemo( /*#__PURE__*/_asyncToGenerator__default["default"](function* () {
12659
- if (!isBrickAvailable) {
12660
- return null;
12661
- }
12662
-
12663
- // If the router state is initial, ignore rendering the sub-brick.
12664
- if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12665
- return;
12666
- }
12667
- var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12610
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
12611
+ function SingleBrickAsComponentFactory(React) {
12612
+ function SingleBrickAsComponent(_ref) {
12613
+ var _internalApiGetCurren, _expandedBrickConf$br;
12614
+ var {
12615
+ useBrick,
12616
+ data,
12617
+ refCallback,
12618
+ immediatelyRefCallback
12619
+ } = _ref;
12620
+ var firstRunRef = React.useRef(true);
12621
+ var innerRefCallbackRef = React.useRef();
12622
+ var elementRef = React.useRef();
12623
+ var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12624
+ var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
12625
+ var isBrickAvailable = React.useMemo(() => {
12626
+ if (brickUtils.isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
12627
+ // eslint-disable-next-line
12628
+ console.warn("Currently resolvable-if in `useBrick` is not supported.");
12629
+ } else if (!looseCheckIfByTransform(useBrick, data, {
12630
+ allowInject: true,
12631
+ // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充
12632
+ tplContextId: useBrick[symbolForTplContextId]
12633
+ })) {
12634
+ return false;
12635
+ }
12636
+ return true;
12637
+ }, [useBrick, data]);
12638
+ var requireSuspense = React.useMemo(() => {
12639
+ var context;
12640
+ if (useBrick.brick === formRenderer) {
12641
+ var formData = typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData;
12642
+ context = formData.context;
12643
+ } else if (tplTagName) {
12644
+ context = customTemplateRegistry.get(tplTagName).state;
12645
+ }
12646
+ return Array.isArray(context) && context.some(ctx => !!ctx.resolve);
12647
+ }, [tplTagName, useBrick]);
12648
+ var [suspenseReady, setSuspenseReady] = React.useState(false);
12649
+ var runtimeBrick = React.useMemo( /*#__PURE__*/_asyncToGenerator__default["default"](function* () {
12650
+ if (!isBrickAvailable) {
12651
+ return null;
12652
+ }
12668
12653
 
12669
- // 需要等待构件加载完成,因为构件可能包含属性初始化逻辑。
12670
- // 如果先创建构件,再完成构件加载,其属性默认初始化动作会覆盖用户定义的属性。
12671
- // 另一方面,避免额外的 MicroTask,因为 graph.general-graph 构件依赖固定的 useBrick 渲染时机。
12672
- if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12673
- yield promise;
12674
- }
12675
- var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12676
- 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);
12677
- if (requireSuspense) {
12678
- setExpandedBrickConf(yield expanded);
12679
- } else {
12680
- setExpandedBrickConf(expanded);
12681
- }
12682
- setSuspenseReady(true);
12654
+ // If the router state is initial, ignore rendering the sub-brick.
12655
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12656
+ return;
12657
+ }
12658
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12683
12659
 
12684
- // Let `transform` works still.
12685
- transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
12686
- allowInject: true
12687
- });
12660
+ // 需要等待构件加载完成,因为构件可能包含属性初始化逻辑。
12661
+ // 如果先创建构件,再完成构件加载,其属性默认初始化动作会覆盖用户定义的属性。
12662
+ // 另一方面,避免额外的 MicroTask,因为 graph.general-graph 构件依赖固定的 useBrick 渲染时机。
12663
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12664
+ yield promise;
12665
+ }
12666
+ var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12667
+ 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);
12668
+ if (requireSuspense) {
12669
+ setExpandedBrickConf(yield expanded);
12670
+ } else {
12671
+ setExpandedBrickConf(expanded);
12672
+ }
12673
+ setSuspenseReady(true);
12688
12674
 
12689
- // 设置 properties refProperty值
12690
- if (useBrick[symbolForComputedPropsFromProxy]) {
12691
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref3 => {
12692
- var [propName, propValue] = _ref3;
12693
- _.set(brick.properties, propName, propValue);
12675
+ // Let `transform` works still.
12676
+ transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
12677
+ allowInject: true
12694
12678
  });
12695
- }
12696
- if (useBrick.lifeCycle) {
12697
- var resolver = _internalApiGetResolver();
12698
- yield resolver.resolve({
12699
- brick: useBrick.brick,
12700
- lifeCycle: useBrick.lifeCycle
12701
- }, brick, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12702
- tplContextId: useBrick[symbolForTplContextId],
12703
- formContextId: useBrick[symbolForFormContextId]
12704
- }));
12705
- }
12706
- return brick;
12707
- }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12708
- var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12709
- var _ref4 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12710
- for (var handler of [].concat(handlers)) {
12711
- listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12679
+
12680
+ // 设置 properties refProperty值
12681
+ if (useBrick[symbolForComputedPropsFromProxy]) {
12682
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref3 => {
12683
+ var [propName, propValue] = _ref3;
12684
+ _.set(brick.properties, propName, propValue);
12685
+ });
12686
+ }
12687
+ if (useBrick.lifeCycle) {
12688
+ var resolver = _internalApiGetResolver();
12689
+ yield resolver.resolve({
12690
+ brick: useBrick.brick,
12691
+ lifeCycle: useBrick.lifeCycle
12692
+ }, brick, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12712
12693
  tplContextId: useBrick[symbolForTplContextId],
12713
12694
  formContextId: useBrick[symbolForFormContextId]
12714
- }), brick)(event);
12695
+ }));
12715
12696
  }
12716
- });
12717
- return function dispatchLifeCycleEvent(_x, _x2, _x3) {
12718
- return _ref4.apply(this, arguments);
12719
- };
12720
- }();
12721
- var updateBrick = React.useCallback((brick, element) => {
12722
- brick.element = element;
12723
- var {
12724
- [symbolForTplContextId]: tplContextId
12725
- } = useBrick;
12726
- var {
12727
- [symbolForFormContextId]: formContextId
12728
- } = useBrick;
12729
- if (useBrick.iid) {
12730
- element.dataset.iid = useBrick.iid;
12731
- }
12732
- setRealProperties(element, brick.properties);
12733
- unbindListeners(element);
12734
- if (brick.events) {
12735
- bindListeners(element, transformEvents(data, brick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12736
- tplContextId,
12737
- formContextId
12738
- }));
12739
- }
12740
- // 设置proxyEvent
12741
- handleProxyOfCustomTemplate(brick);
12742
- if (!["formRenderer", "custom-template"].includes(element.$$typeof)) {
12743
- if (!useBrick.brick.includes("-")) {
12744
- element.$$typeof = "native";
12745
- } else if (!customElements.get(useBrick.brick)) {
12746
- element.$$typeof = "invalid";
12697
+ return brick;
12698
+ }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12699
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12700
+ var _ref4 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12701
+ for (var handler of [].concat(handlers)) {
12702
+ listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12703
+ tplContextId: useBrick[symbolForTplContextId],
12704
+ formContextId: useBrick[symbolForFormContextId]
12705
+ }), brick)(event);
12706
+ }
12707
+ });
12708
+ return function dispatchLifeCycleEvent(_x, _x2, _x3) {
12709
+ return _ref4.apply(this, arguments);
12710
+ };
12711
+ }();
12712
+ var updateBrick = React.useCallback((brick, element) => {
12713
+ brick.element = element;
12714
+ var {
12715
+ [symbolForTplContextId]: tplContextId
12716
+ } = useBrick;
12717
+ var {
12718
+ [symbolForFormContextId]: formContextId
12719
+ } = useBrick;
12720
+ if (useBrick.iid) {
12721
+ element.dataset.iid = useBrick.iid;
12722
+ }
12723
+ setRealProperties(element, brick.properties);
12724
+ unbindListeners(element);
12725
+ if (brick.events) {
12726
+ bindListeners(element, transformEvents(data, brick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12727
+ tplContextId,
12728
+ formContextId
12729
+ }));
12747
12730
  }
12748
- }
12749
- }, [data, useBrick]);
12750
- React.useEffect(() => {
12751
- if (firstRunRef.current) {
12752
- firstRunRef.current = false;
12753
- return;
12754
- }
12755
- _asyncToGenerator__default["default"](function* () {
12756
- var element = elementRef.current;
12757
- if (element) {
12731
+ // 设置proxyEvent
12732
+ handleProxyOfCustomTemplate(brick);
12733
+ if (!["formRenderer", "custom-template"].includes(element.$$typeof)) {
12734
+ if (!useBrick.brick.includes("-")) {
12735
+ element.$$typeof = "native";
12736
+ } else if (!customElements.get(useBrick.brick)) {
12737
+ element.$$typeof = "invalid";
12738
+ }
12739
+ }
12740
+ }, [data, useBrick]);
12741
+ React.useEffect(() => {
12742
+ if (firstRunRef.current) {
12743
+ firstRunRef.current = false;
12744
+ return;
12745
+ }
12746
+ _asyncToGenerator__default["default"](function* () {
12747
+ var element = elementRef.current;
12748
+ if (element) {
12749
+ var brick;
12750
+ try {
12751
+ brick = yield runtimeBrick;
12752
+ } catch (e) {
12753
+ handleHttpError(e);
12754
+ }
12755
+ // sub-brick rendering is ignored.
12756
+ if (!brick) {
12757
+ return;
12758
+ }
12759
+ updateBrick(brick, element);
12760
+ }
12761
+ })();
12762
+ }, [runtimeBrick, updateBrick]);
12763
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
12764
+ var _ref6 = _asyncToGenerator__default["default"](function* (element) {
12765
+ immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
12766
+ elementRef.current = element;
12758
12767
  var brick;
12759
12768
  try {
12760
12769
  brick = yield runtimeBrick;
@@ -12762,62 +12771,83 @@
12762
12771
  handleHttpError(e);
12763
12772
  }
12764
12773
  // sub-brick rendering is ignored.
12765
- if (!brick) {
12766
- return;
12767
- }
12768
- updateBrick(brick, element);
12769
- }
12770
- })();
12771
- }, [runtimeBrick, updateBrick]);
12772
- innerRefCallbackRef.current = /*#__PURE__*/function () {
12773
- var _ref6 = _asyncToGenerator__default["default"](function* (element) {
12774
- immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
12775
- elementRef.current = element;
12776
- var brick;
12777
- try {
12778
- brick = yield runtimeBrick;
12779
- } catch (e) {
12780
- handleHttpError(e);
12781
- }
12782
- // sub-brick rendering is ignored.
12783
- if (brick) {
12784
- if (element) {
12785
- var _useBrick$lifeCycle;
12786
- updateBrick(brick, element);
12787
- if ((_useBrick$lifeCycle = useBrick.lifeCycle) !== null && _useBrick$lifeCycle !== void 0 && _useBrick$lifeCycle.onMount) {
12788
- dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
12789
- }
12790
- } else {
12791
- var _useBrick$lifeCycle2;
12792
- if ((_useBrick$lifeCycle2 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle2 !== void 0 && _useBrick$lifeCycle2.onUnmount) {
12793
- dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
12774
+ if (brick) {
12775
+ if (element) {
12776
+ var _useBrick$lifeCycle;
12777
+ updateBrick(brick, element);
12778
+ if ((_useBrick$lifeCycle = useBrick.lifeCycle) !== null && _useBrick$lifeCycle !== void 0 && _useBrick$lifeCycle.onMount) {
12779
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
12780
+ }
12781
+ } else {
12782
+ var _useBrick$lifeCycle2;
12783
+ if ((_useBrick$lifeCycle2 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle2 !== void 0 && _useBrick$lifeCycle2.onUnmount) {
12784
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
12785
+ }
12794
12786
  }
12795
12787
  }
12796
- }
12797
- refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
12798
- });
12799
- return function (_x4) {
12800
- return _ref6.apply(this, arguments);
12801
- };
12802
- }();
12788
+ refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
12789
+ });
12790
+ return function (_x4) {
12791
+ return _ref6.apply(this, arguments);
12792
+ };
12793
+ }();
12803
12794
 
12804
- // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
12805
- var innerRefCallback = React__default["default"].useCallback(element => {
12806
- innerRefCallbackRef.current(element);
12807
- }, []);
12808
- var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
12809
- if (!isBrickAvailable || !suspenseReady) {
12810
- return null;
12811
- }
12812
- var tagName = (_expandedBrickConf$br = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br !== void 0 ? _expandedBrickConf$br : tplTagName || useBrick.brick;
12813
- return /*#__PURE__*/React__default["default"].createElement(tagName, {
12814
- ref: innerRefCallback
12815
- }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12816
- key: index,
12817
- useBrick: item,
12818
- data: data
12819
- })));
12820
- });
12795
+ // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
12796
+ var innerRefCallback = React.useCallback(element => {
12797
+ innerRefCallbackRef.current(element);
12798
+ }, []);
12799
+ var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
12800
+ if (!isBrickAvailable || !suspenseReady) {
12801
+ return null;
12802
+ }
12803
+ var tagName = (_expandedBrickConf$br = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br !== void 0 ? _expandedBrickConf$br : tplTagName || useBrick.brick;
12804
+ return React.createElement(tagName, {
12805
+ ref: innerRefCallback
12806
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12807
+ key: index,
12808
+ useBrick: item,
12809
+ data: data
12810
+ })));
12811
+ }
12812
+ return React.memo(SingleBrickAsComponent);
12813
+ }
12814
+
12815
+ /**
12816
+ * 可以渲染单个 `useBrick` 的 React 组件。
12817
+ *
12818
+ * @example
12819
+ *
12820
+ * ```tsx
12821
+ * <BrickAsComponent
12822
+ * useBrick={{
12823
+ * brick: "your.any-brick"
12824
+ * }}
12825
+ * data={yourData}
12826
+ * />
12827
+ * ```
12828
+ *
12829
+ * @param props - 属性。
12830
+ */
12831
+ var SingleBrickAsComponent = SingleBrickAsComponentFactory(React__default["default"]);
12832
+ function BrickAsComponentFactory(React) {
12833
+ return function BrickAsComponent(_ref7) {
12834
+ var {
12835
+ useBrick,
12836
+ data
12837
+ } = _ref7;
12838
+ if (Array.isArray(useBrick)) {
12839
+ return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12840
+ key: index,
12841
+ useBrick: item,
12842
+ data: data
12843
+ })));
12844
+ }
12845
+ return /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
12846
+ useBrick: useBrick,
12847
+ data: data
12848
+ });
12849
+ };
12850
+ }
12821
12851
 
12822
12852
  /**
12823
12853
  * 可以渲染 `useBrick` 的 React 组件。
@@ -12837,23 +12867,7 @@
12837
12867
  *
12838
12868
  * @param props - 属性。
12839
12869
  */
12840
- function BrickAsComponent(_ref7) {
12841
- var {
12842
- useBrick,
12843
- data
12844
- } = _ref7;
12845
- if (Array.isArray(useBrick)) {
12846
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12847
- key: index,
12848
- useBrick: item,
12849
- data: data
12850
- })));
12851
- }
12852
- return /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
12853
- useBrick: useBrick,
12854
- data: data
12855
- });
12856
- }
12870
+ var BrickAsComponent = BrickAsComponentFactory(React__default["default"]);
12857
12871
  function slotsToChildren(slots) {
12858
12872
  if (!slots) {
12859
12873
  return [];
@@ -12876,138 +12890,156 @@
12876
12890
  }
12877
12891
 
12878
12892
  /* istanbul ignore next */
12879
- // eslint-disable-next-line react/display-name
12880
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
12881
- var _internalApiGetCurren2, _expandedBrickConf$br2;
12882
- var {
12883
- useBrick,
12884
- data,
12885
- refCallback
12886
- } = _ref9;
12887
- var firstRunRef = React.useRef(true);
12888
- var innerRefCallbackRef = React.useRef();
12889
- var elementRef = React.useRef();
12890
- var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12891
- var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
12892
- var isBrickAvailable = React__default["default"].useMemo(() => {
12893
- if (brickUtils.isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
12894
- // eslint-disable-next-line
12895
- console.warn("Currently resolvable-if in `useBrick` is not supported.");
12896
- } else if (!looseCheckIfByTransform(useBrick, data, {
12897
- allowInject: true,
12898
- // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充
12899
- tplContextId: useBrick[symbolForTplContextId]
12900
- })) {
12901
- return false;
12902
- }
12903
- return true;
12904
- }, [useBrick, data]);
12905
- var requireSuspense = React.useMemo(() => {
12906
- var context;
12907
- if (useBrick.brick === formRenderer) {
12908
- var formData = typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData;
12909
- context = formData.context;
12910
- } else if (tplTagName) {
12911
- context = customTemplateRegistry.get(tplTagName).state;
12912
- }
12913
- return Array.isArray(context) && context.some(ctx => !!ctx.resolve);
12914
- }, [tplTagName, useBrick]);
12915
- var [suspenseReady, setSuspenseReady] = React.useState(false);
12916
-
12917
- /* istanbul ignore next (never reach in test) */
12918
- React.useImperativeHandle(ref, () => {
12919
- return elementRef.current;
12920
- });
12921
- var runtimeBrick = React__default["default"].useMemo( /*#__PURE__*/_asyncToGenerator__default["default"](function* () {
12922
- if (!isBrickAvailable) {
12923
- return null;
12924
- }
12925
-
12926
- // If the router state is initial, ignore rendering the sub-brick.
12927
- if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12928
- return;
12929
- }
12930
- var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12931
- if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12932
- yield promise;
12933
- }
12934
- var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12935
- 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);
12936
- if (requireSuspense) {
12937
- setExpandedBrickConf(yield expanded);
12938
- } else {
12939
- setExpandedBrickConf(expanded);
12940
- }
12941
- setSuspenseReady(true);
12942
-
12943
- // Let `transform` works still.
12944
- transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
12945
- allowInject: true
12893
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
12894
+ function ForwardRefSingleBrickAsComponentFactory(React) {
12895
+ var fn = React.forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
12896
+ var _internalApiGetCurren2, _expandedBrickConf$br2;
12897
+ var {
12898
+ useBrick,
12899
+ data,
12900
+ refCallback
12901
+ } = _ref9;
12902
+ var firstRunRef = React.useRef(true);
12903
+ var innerRefCallbackRef = React.useRef();
12904
+ var elementRef = React.useRef();
12905
+ var [expandedBrickConf, setExpandedBrickConf] = React.useState(null);
12906
+ var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
12907
+ var isBrickAvailable = React.useMemo(() => {
12908
+ if (brickUtils.isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {
12909
+ // eslint-disable-next-line
12910
+ console.warn("Currently resolvable-if in `useBrick` is not supported.");
12911
+ } else if (!looseCheckIfByTransform(useBrick, data, {
12912
+ allowInject: true,
12913
+ // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充
12914
+ tplContextId: useBrick[symbolForTplContextId]
12915
+ })) {
12916
+ return false;
12917
+ }
12918
+ return true;
12919
+ }, [useBrick, data]);
12920
+ var requireSuspense = React.useMemo(() => {
12921
+ var context;
12922
+ if (useBrick.brick === formRenderer) {
12923
+ var formData = typeof useBrick.properties.formData === "string" ? JSON.parse(useBrick.properties.formData) : useBrick.properties.formData;
12924
+ context = formData.context;
12925
+ } else if (tplTagName) {
12926
+ context = customTemplateRegistry.get(tplTagName).state;
12927
+ }
12928
+ return Array.isArray(context) && context.some(ctx => !!ctx.resolve);
12929
+ }, [tplTagName, useBrick]);
12930
+ var [suspenseReady, setSuspenseReady] = React.useState(false);
12931
+
12932
+ /* istanbul ignore next (never reach in test) */
12933
+ React.useImperativeHandle(ref, () => {
12934
+ return elementRef.current;
12946
12935
  });
12936
+ var runtimeBrick = React.useMemo( /*#__PURE__*/_asyncToGenerator__default["default"](function* () {
12937
+ if (!isBrickAvailable) {
12938
+ return null;
12939
+ }
12940
+
12941
+ // If the router state is initial, ignore rendering the sub-brick.
12942
+ if (_internalApiGetRouterState() === "initial" && !window.DEVELOPER_PREVIEW) {
12943
+ return;
12944
+ }
12945
+ var promise = _internalApiLoadDynamicBricksInBrickConf(useBrick).catch(handleHttpError);
12946
+ if (useBrick.brick.includes("-") && !customElements.get(useBrick.brick)) {
12947
+ yield promise;
12948
+ }
12949
+ var brick = getCurrentRunTimeBrick(useBrick, tplTagName, data);
12950
+ 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);
12951
+ if (requireSuspense) {
12952
+ setExpandedBrickConf(yield expanded);
12953
+ } else {
12954
+ setExpandedBrickConf(expanded);
12955
+ }
12956
+ setSuspenseReady(true);
12947
12957
 
12948
- // 设置 properties refProperty值
12949
- if (useBrick[symbolForComputedPropsFromProxy]) {
12950
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
12951
- var [propName, propValue] = _ref11;
12952
- _.set(brick.properties, propName, propValue);
12958
+ // Let `transform` works still.
12959
+ transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
12960
+ allowInject: true
12953
12961
  });
12954
- }
12955
- if (useBrick.lifeCycle) {
12956
- var resolver = _internalApiGetResolver();
12957
- yield resolver.resolve({
12958
- brick: useBrick.brick,
12959
- lifeCycle: useBrick.lifeCycle
12960
- }, brick, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12961
- tplContextId: useBrick[symbolForTplContextId]
12962
- }));
12963
- }
12964
- return brick;
12965
- }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12966
- var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12967
- var _ref12 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12968
- for (var handler of [].concat(handlers)) {
12969
- listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12962
+
12963
+ // 设置 properties refProperty值
12964
+ if (useBrick[symbolForComputedPropsFromProxy]) {
12965
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
12966
+ var [propName, propValue] = _ref11;
12967
+ _.set(brick.properties, propName, propValue);
12968
+ });
12969
+ }
12970
+ if (useBrick.lifeCycle) {
12971
+ var resolver = _internalApiGetResolver();
12972
+ yield resolver.resolve({
12973
+ brick: useBrick.brick,
12974
+ lifeCycle: useBrick.lifeCycle
12975
+ }, brick, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12970
12976
  tplContextId: useBrick[symbolForTplContextId]
12971
- }), brick)(event);
12977
+ }));
12972
12978
  }
12973
- });
12974
- return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
12975
- return _ref12.apply(this, arguments);
12976
- };
12977
- }();
12978
- var updateBrick = React.useCallback((brick, element) => {
12979
- brick.element = element;
12980
- var {
12981
- [symbolForTplContextId]: tplContextId
12982
- } = useBrick;
12983
- if (useBrick.iid) {
12984
- element.dataset.iid = useBrick.iid;
12985
- }
12986
- setRealProperties(element, brick.properties);
12987
- unbindListeners(element);
12988
- if (useBrick.events) {
12989
- bindListeners(element, transformEvents(data, useBrick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12990
- tplContextId
12991
- }));
12992
- }
12993
- // 设置proxyEvent
12994
- handleProxyOfCustomTemplate(brick);
12995
- if (element.$$typeof !== "custom-template") {
12996
- if (!useBrick.brick.includes("-")) {
12997
- element.$$typeof = "native";
12998
- } else if (!customElements.get(useBrick.brick)) {
12999
- element.$$typeof = "invalid";
12979
+ return brick;
12980
+ }), [useBrick, data, isBrickAvailable, tplTagName, requireSuspense]);
12981
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
12982
+ var _ref12 = _asyncToGenerator__default["default"](function* (event, handlers, brick) {
12983
+ for (var handler of [].concat(handlers)) {
12984
+ listenerFactory(handler, _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
12985
+ tplContextId: useBrick[symbolForTplContextId]
12986
+ }), brick)(event);
12987
+ }
12988
+ });
12989
+ return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
12990
+ return _ref12.apply(this, arguments);
12991
+ };
12992
+ }();
12993
+ var updateBrick = React.useCallback((brick, element) => {
12994
+ brick.element = element;
12995
+ var {
12996
+ [symbolForTplContextId]: tplContextId
12997
+ } = useBrick;
12998
+ if (useBrick.iid) {
12999
+ element.dataset.iid = useBrick.iid;
13000
+ }
13001
+ setRealProperties(element, brick.properties);
13002
+ unbindListeners(element);
13003
+ if (useBrick.events) {
13004
+ bindListeners(element, transformEvents(data, useBrick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
13005
+ tplContextId
13006
+ }));
13000
13007
  }
13001
- }
13002
- }, [data, useBrick]);
13003
- React.useEffect(() => {
13004
- if (firstRunRef.current) {
13005
- firstRunRef.current = false;
13006
- return;
13007
- }
13008
- _asyncToGenerator__default["default"](function* () {
13009
- var element = elementRef.current;
13010
- if (element) {
13008
+ // 设置proxyEvent
13009
+ handleProxyOfCustomTemplate(brick);
13010
+ if (element.$$typeof !== "custom-template") {
13011
+ if (!useBrick.brick.includes("-")) {
13012
+ element.$$typeof = "native";
13013
+ } else if (!customElements.get(useBrick.brick)) {
13014
+ element.$$typeof = "invalid";
13015
+ }
13016
+ }
13017
+ }, [data, useBrick]);
13018
+ React.useEffect(() => {
13019
+ if (firstRunRef.current) {
13020
+ firstRunRef.current = false;
13021
+ return;
13022
+ }
13023
+ _asyncToGenerator__default["default"](function* () {
13024
+ var element = elementRef.current;
13025
+ if (element) {
13026
+ var brick;
13027
+ try {
13028
+ brick = yield runtimeBrick;
13029
+ } catch (e) {
13030
+ handleHttpError(e);
13031
+ }
13032
+ // sub-brick rendering is ignored.
13033
+ if (!brick) {
13034
+ return;
13035
+ }
13036
+ updateBrick(brick, element);
13037
+ }
13038
+ })();
13039
+ }, [runtimeBrick, updateBrick]);
13040
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
13041
+ var _ref14 = _asyncToGenerator__default["default"](function* (element) {
13042
+ elementRef.current = element;
13011
13043
  var brick;
13012
13044
  try {
13013
13045
  brick = yield runtimeBrick;
@@ -13015,61 +13047,47 @@
13015
13047
  handleHttpError(e);
13016
13048
  }
13017
13049
  // sub-brick rendering is ignored.
13018
- if (!brick) {
13019
- return;
13020
- }
13021
- updateBrick(brick, element);
13022
- }
13023
- })();
13024
- }, [runtimeBrick, updateBrick]);
13025
- innerRefCallbackRef.current = /*#__PURE__*/function () {
13026
- var _ref14 = _asyncToGenerator__default["default"](function* (element) {
13027
- elementRef.current = element;
13028
- var brick;
13029
- try {
13030
- brick = yield runtimeBrick;
13031
- } catch (e) {
13032
- handleHttpError(e);
13033
- }
13034
- // sub-brick rendering is ignored.
13035
- if (brick) {
13036
- if (element) {
13037
- var _useBrick$lifeCycle3;
13038
- updateBrick(brick, element);
13039
- if ((_useBrick$lifeCycle3 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle3 !== void 0 && _useBrick$lifeCycle3.onMount) {
13040
- dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13041
- }
13042
- } else {
13043
- var _useBrick$lifeCycle4;
13044
- if ((_useBrick$lifeCycle4 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle4 !== void 0 && _useBrick$lifeCycle4.onUnmount) {
13045
- dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13050
+ if (brick) {
13051
+ if (element) {
13052
+ var _useBrick$lifeCycle3;
13053
+ updateBrick(brick, element);
13054
+ if ((_useBrick$lifeCycle3 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle3 !== void 0 && _useBrick$lifeCycle3.onMount) {
13055
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13056
+ }
13057
+ } else {
13058
+ var _useBrick$lifeCycle4;
13059
+ if ((_useBrick$lifeCycle4 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle4 !== void 0 && _useBrick$lifeCycle4.onUnmount) {
13060
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13061
+ }
13046
13062
  }
13047
13063
  }
13048
- }
13049
- refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13050
- });
13051
- return function (_x8) {
13052
- return _ref14.apply(this, arguments);
13053
- };
13054
- }();
13064
+ refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13065
+ });
13066
+ return function (_x8) {
13067
+ return _ref14.apply(this, arguments);
13068
+ };
13069
+ }();
13055
13070
 
13056
- // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13057
- var innerRefCallback = React__default["default"].useCallback(element => {
13058
- innerRefCallbackRef.current(element);
13059
- }, []);
13060
- var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
13061
- if (!isBrickAvailable || !suspenseReady) {
13062
- return null;
13063
- }
13064
- var tagName = (_expandedBrickConf$br2 = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br2 !== void 0 ? _expandedBrickConf$br2 : tplTagName || useBrick.brick;
13065
- return /*#__PURE__*/React__default["default"].createElement(tagName, {
13066
- ref: innerRefCallback
13067
- }, ...childConfs.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
13068
- key: index,
13069
- useBrick: item,
13070
- data: data
13071
- })));
13072
- }));
13071
+ // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13072
+ var innerRefCallback = React.useCallback(element => {
13073
+ innerRefCallbackRef.current(element);
13074
+ }, []);
13075
+ var childConfs = React.useMemo(() => isBrickAvailable && suspenseReady ? slotsToChildren((expandedBrickConf !== null && expandedBrickConf !== void 0 ? expandedBrickConf : useBrick).slots) : [], [isBrickAvailable, suspenseReady, expandedBrickConf, useBrick]);
13076
+ if (!isBrickAvailable || !suspenseReady) {
13077
+ return null;
13078
+ }
13079
+ var tagName = (_expandedBrickConf$br2 = expandedBrickConf === null || expandedBrickConf === void 0 ? void 0 : expandedBrickConf.brick) !== null && _expandedBrickConf$br2 !== void 0 ? _expandedBrickConf$br2 : tplTagName || useBrick.brick;
13080
+ return React.createElement(tagName, {
13081
+ ref: innerRefCallback
13082
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13083
+ key: index,
13084
+ useBrick: item,
13085
+ data: data
13086
+ })));
13087
+ });
13088
+ return React.memo(fn);
13089
+ }
13090
+ var ForwardRefSingleBrickAsComponent = ForwardRefSingleBrickAsComponentFactory(React__default["default"]);
13073
13091
 
13074
13092
  var Pagination$1 = {
13075
13093
  // Options.jsx
@@ -14847,14 +14865,17 @@
14847
14865
  }
14848
14866
 
14849
14867
  exports.BrickAsComponent = BrickAsComponent;
14868
+ exports.BrickAsComponentFactory = BrickAsComponentFactory;
14850
14869
  exports.BrickWrapper = BrickWrapper;
14851
14870
  exports.DisplayByFeatureFlags = DisplayByFeatureFlags;
14852
14871
  exports.EasyopsEmpty = EasyopsEmpty;
14853
14872
  exports.ErrorBoundary = ErrorBoundary;
14854
14873
  exports.FeatureFlagsProvider = FeatureFlagsProvider;
14855
14874
  exports.ForwardRefSingleBrickAsComponent = ForwardRefSingleBrickAsComponent;
14875
+ exports.ForwardRefSingleBrickAsComponentFactory = ForwardRefSingleBrickAsComponentFactory;
14856
14876
  exports.ModalElement = ModalElement;
14857
14877
  exports.SingleBrickAsComponent = SingleBrickAsComponent;
14878
+ exports.SingleBrickAsComponentFactory = SingleBrickAsComponentFactory;
14858
14879
  exports.StoryboardFunctionRegistryFactory = StoryboardFunctionRegistryFactory;
14859
14880
  exports.UpdatingElement = UpdatingElement;
14860
14881
  exports.WebsocketMessageRequest = WebsocketMessageRequest;