@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.bundle.js +409 -393
- package/dist/index.bundle.js.map +1 -1
- package/dist/index.esm.js +408 -395
- package/dist/index.esm.js.map +1 -1
- package/dist/types/BrickAsComponent.d.ts +6 -2
- package/dist/types/BrickAsComponent.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.bundle.js
CHANGED
|
@@ -12602,159 +12602,163 @@
|
|
|
12602
12602
|
return brick;
|
|
12603
12603
|
};
|
|
12604
12604
|
|
|
12605
|
-
|
|
12606
|
-
|
|
12607
|
-
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12616
|
-
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12627
|
-
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
12633
|
-
|
|
12634
|
-
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
})
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
|
|
12646
|
-
|
|
12647
|
-
|
|
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);
|
|
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
|
+
}
|
|
12668
12648
|
|
|
12669
|
-
|
|
12670
|
-
|
|
12671
|
-
|
|
12672
|
-
|
|
12673
|
-
|
|
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);
|
|
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);
|
|
12683
12654
|
|
|
12684
|
-
|
|
12685
|
-
|
|
12686
|
-
|
|
12687
|
-
|
|
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);
|
|
12688
12669
|
|
|
12689
|
-
|
|
12690
|
-
|
|
12691
|
-
|
|
12692
|
-
var [propName, propValue] = _ref3;
|
|
12693
|
-
_.set(brick.properties, propName, propValue);
|
|
12670
|
+
// Let `transform` works still.
|
|
12671
|
+
transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
|
|
12672
|
+
allowInject: true
|
|
12694
12673
|
});
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
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()), {}, {
|
|
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()), {}, {
|
|
12712
12688
|
tplContextId: useBrick[symbolForTplContextId],
|
|
12713
12689
|
formContextId: useBrick[symbolForFormContextId]
|
|
12714
|
-
})
|
|
12690
|
+
}));
|
|
12715
12691
|
}
|
|
12716
|
-
|
|
12717
|
-
|
|
12718
|
-
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12732
|
-
|
|
12733
|
-
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
formContextId
|
|
12738
|
-
}
|
|
12739
|
-
|
|
12740
|
-
|
|
12741
|
-
|
|
12742
|
-
|
|
12743
|
-
|
|
12744
|
-
|
|
12745
|
-
|
|
12746
|
-
|
|
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
|
+
}));
|
|
12747
12725
|
}
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
|
|
12757
|
-
|
|
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;
|
|
12758
12762
|
var brick;
|
|
12759
12763
|
try {
|
|
12760
12764
|
brick = yield runtimeBrick;
|
|
@@ -12762,62 +12766,83 @@
|
|
|
12762
12766
|
handleHttpError(e);
|
|
12763
12767
|
}
|
|
12764
12768
|
// sub-brick rendering is ignored.
|
|
12765
|
-
if (
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
|
|
12771
|
-
|
|
12772
|
-
|
|
12773
|
-
|
|
12774
|
-
|
|
12775
|
-
|
|
12776
|
-
|
|
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);
|
|
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
|
+
}
|
|
12794
12781
|
}
|
|
12795
12782
|
}
|
|
12796
|
-
|
|
12797
|
-
|
|
12798
|
-
|
|
12799
|
-
|
|
12800
|
-
|
|
12801
|
-
};
|
|
12802
|
-
}();
|
|
12783
|
+
refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
|
|
12784
|
+
});
|
|
12785
|
+
return function (_x4) {
|
|
12786
|
+
return _ref6.apply(this, arguments);
|
|
12787
|
+
};
|
|
12788
|
+
}();
|
|
12803
12789
|
|
|
12804
|
-
|
|
12805
|
-
|
|
12806
|
-
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
|
|
12816
|
-
|
|
12817
|
-
|
|
12818
|
-
|
|
12819
|
-
|
|
12820
|
-
|
|
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
|
+
}
|
|
12821
12846
|
|
|
12822
12847
|
/**
|
|
12823
12848
|
* 可以渲染 `useBrick` 的 React 组件。
|
|
@@ -12837,23 +12862,7 @@
|
|
|
12837
12862
|
*
|
|
12838
12863
|
* @param props - 属性。
|
|
12839
12864
|
*/
|
|
12840
|
-
|
|
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
|
-
}
|
|
12865
|
+
var BrickAsComponent = BrickAsComponentFactory(React__default["default"]);
|
|
12857
12866
|
function slotsToChildren(slots) {
|
|
12858
12867
|
if (!slots) {
|
|
12859
12868
|
return [];
|
|
@@ -12876,138 +12885,156 @@
|
|
|
12876
12885
|
}
|
|
12877
12886
|
|
|
12878
12887
|
/* istanbul ignore next */
|
|
12879
|
-
// eslint-disable-next-line
|
|
12880
|
-
|
|
12881
|
-
var
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
|
-
|
|
12889
|
-
|
|
12890
|
-
|
|
12891
|
-
|
|
12892
|
-
|
|
12893
|
-
|
|
12894
|
-
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12899
|
-
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
var
|
|
12907
|
-
|
|
12908
|
-
|
|
12909
|
-
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
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
|
|
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;
|
|
12946
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);
|
|
12947
12952
|
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
|
|
12951
|
-
var [propName, propValue] = _ref11;
|
|
12952
|
-
_.set(brick.properties, propName, propValue);
|
|
12953
|
+
// Let `transform` works still.
|
|
12954
|
+
transformProperties(brick.properties, data, useBrick.transform, useBrick.transformFrom, undefined, {
|
|
12955
|
+
allowInject: true
|
|
12953
12956
|
});
|
|
12954
|
-
|
|
12955
|
-
|
|
12956
|
-
|
|
12957
|
-
|
|
12958
|
-
|
|
12959
|
-
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
|
|
12965
|
-
|
|
12966
|
-
|
|
12967
|
-
|
|
12968
|
-
for (var handler of [].concat(handlers)) {
|
|
12969
|
-
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()), {}, {
|
|
12970
12971
|
tplContextId: useBrick[symbolForTplContextId]
|
|
12971
|
-
})
|
|
12972
|
+
}));
|
|
12972
12973
|
}
|
|
12973
|
-
|
|
12974
|
-
|
|
12975
|
-
|
|
12976
|
-
|
|
12977
|
-
|
|
12978
|
-
|
|
12979
|
-
|
|
12980
|
-
|
|
12981
|
-
|
|
12982
|
-
|
|
12983
|
-
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
tplContextId
|
|
12991
|
-
}
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
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
|
+
}));
|
|
13000
13002
|
}
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
|
|
13004
|
-
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
13008
|
-
|
|
13009
|
-
|
|
13010
|
-
|
|
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;
|
|
13011
13038
|
var brick;
|
|
13012
13039
|
try {
|
|
13013
13040
|
brick = yield runtimeBrick;
|
|
@@ -13015,61 +13042,47 @@
|
|
|
13015
13042
|
handleHttpError(e);
|
|
13016
13043
|
}
|
|
13017
13044
|
// sub-brick rendering is ignored.
|
|
13018
|
-
if (
|
|
13019
|
-
|
|
13020
|
-
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
|
|
13029
|
-
|
|
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);
|
|
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
|
+
}
|
|
13046
13057
|
}
|
|
13047
13058
|
}
|
|
13048
|
-
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
};
|
|
13054
|
-
}();
|
|
13059
|
+
refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
|
|
13060
|
+
});
|
|
13061
|
+
return function (_x8) {
|
|
13062
|
+
return _ref14.apply(this, arguments);
|
|
13063
|
+
};
|
|
13064
|
+
}();
|
|
13055
13065
|
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
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"]);
|
|
13073
13086
|
|
|
13074
13087
|
var Pagination$1 = {
|
|
13075
13088
|
// Options.jsx
|
|
@@ -14847,14 +14860,17 @@
|
|
|
14847
14860
|
}
|
|
14848
14861
|
|
|
14849
14862
|
exports.BrickAsComponent = BrickAsComponent;
|
|
14863
|
+
exports.BrickAsComponentFactory = BrickAsComponentFactory;
|
|
14850
14864
|
exports.BrickWrapper = BrickWrapper;
|
|
14851
14865
|
exports.DisplayByFeatureFlags = DisplayByFeatureFlags;
|
|
14852
14866
|
exports.EasyopsEmpty = EasyopsEmpty;
|
|
14853
14867
|
exports.ErrorBoundary = ErrorBoundary;
|
|
14854
14868
|
exports.FeatureFlagsProvider = FeatureFlagsProvider;
|
|
14855
14869
|
exports.ForwardRefSingleBrickAsComponent = ForwardRefSingleBrickAsComponent;
|
|
14870
|
+
exports.ForwardRefSingleBrickAsComponentFactory = ForwardRefSingleBrickAsComponentFactory;
|
|
14856
14871
|
exports.ModalElement = ModalElement;
|
|
14857
14872
|
exports.SingleBrickAsComponent = SingleBrickAsComponent;
|
|
14873
|
+
exports.SingleBrickAsComponentFactory = SingleBrickAsComponentFactory;
|
|
14858
14874
|
exports.StoryboardFunctionRegistryFactory = StoryboardFunctionRegistryFactory;
|
|
14859
14875
|
exports.UpdatingElement = UpdatingElement;
|
|
14860
14876
|
exports.WebsocketMessageRequest = WebsocketMessageRequest;
|