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