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