@next-core/brick-kit 2.154.18 → 2.155.1

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
@@ -3,7 +3,7 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
4
  import _asyncToGenerator$3 from '@babel/runtime/helpers/asyncToGenerator';
5
5
  import _defineProperty$1 from '@babel/runtime/helpers/defineProperty';
6
- import React, { useState, useEffect, useRef, forwardRef, useImperativeHandle, useMemo, useContext, createContext, useReducer, useCallback } from 'react';
6
+ import React, { useState, useEffect, useRef, useCallback, useMemo, forwardRef, useImperativeHandle, useContext, createContext, useReducer } from 'react';
7
7
  import { JsonStorage, toPath, computeRealRoutePath, hasOwnProperty, isObject, isEvaluable, transformAndInject, transform, trackContext, trackState, scanPermissionActionsInStoryboard, precookFunction, cook, resolveContextConcurrently, syncResolveContextConcurrently, trackUsedState, trackUsedContext, shouldAllowRecursiveEvaluations, preevaluate, inject, matchPath, deepFreeze, createProviderClass, removeDeadConditionsInTpl, getTemplateDepsOfStoryboard, getDllAndDepsOfStoryboard, asyncProcessStoryboard, getDllAndDepsByResource, scanRouteAliasInStoryboard, prefetchScript, scanBricksInBrickConf, scanProcessorsInAny, loadScript, scanAppGetMenuInAny, asyncProcessBrick, scanInstalledAppsInStoryboard, removeDeadConditions, restoreDynamicTemplates, scanStoryboard, mapCustomApisToNameAndNamespace } from '@next-core/brick-utils';
8
8
  import _, { set, get, difference, identity, uniqueId, cloneDeep, clamp, isNil, isEmpty, sortBy, orderBy, merge, isObject as isObject$1, uniq, pick, omit, findLastIndex, noop, isString as isString$1 } from 'lodash';
9
9
  import { http, HttpResponseError, HttpAbortError, HttpFetchError } from '@next-core/brick-http';
@@ -995,9 +995,10 @@ function doTransform(data, to, options) {
995
995
  Object.entries(to).map(_ref => {
996
996
  var [k, v] = _ref;
997
997
 
998
- if (Array.isArray(options === null || options === void 0 ? void 0 : options.trackingContextList) && isEvaluable(v)) {
999
- var contextNames = trackContext(v);
1000
- var stateNames = trackState(v);
998
+ if (Array.isArray(options === null || options === void 0 ? void 0 : options.trackingContextList) && (typeof v === "string" ? isEvaluable(v) : isPreEvaluated(v))) {
999
+ var raw = typeof v === "string" ? v : getPreEvaluatedRaw(v);
1000
+ var contextNames = trackContext(raw);
1001
+ var stateNames = trackState(raw);
1001
1002
 
1002
1003
  if (contextNames || stateNames) {
1003
1004
  options.trackingContextList.push({
@@ -2371,6 +2372,9 @@ var symbolForContext = Symbol.for("pre.evaluated.context");
2371
2372
  function isPreEvaluated(raw) {
2372
2373
  return !!(raw !== null && raw !== void 0 && raw[symbolForRaw]);
2373
2374
  }
2375
+ function getPreEvaluatedRaw(pre) {
2376
+ return pre[symbolForRaw];
2377
+ }
2374
2378
  function shouldDismissRecursiveMarkingInjected(raw) {
2375
2379
  if (typeof raw === "string") {
2376
2380
  return shouldAllowRecursiveEvaluations(raw);
@@ -2504,18 +2508,29 @@ function evaluate(raw) {
2504
2508
  });
2505
2509
  }
2506
2510
 
2511
+ var internalContext = _internalApiGetCurrentContext();
2512
+
2513
+ var mergedContext = {}; // Use runtime context over internal context.
2514
+ // Internal context such as `match`, maybe change after `history.push`.
2515
+ // So we prefer memoized runtime context.
2516
+
2517
+ for (var key of ["query", "match", "hash", "pathname", "app", "segues"]) {
2518
+ mergedContext[key] = (hasOwnProperty(runtimeContext, key) ? runtimeContext : internalContext)[key];
2519
+ }
2520
+
2507
2521
  var {
2508
2522
  app: currentApp,
2509
2523
  query,
2510
2524
  match,
2511
- sys,
2512
- flags,
2513
2525
  hash,
2514
2526
  pathname,
2515
- segues,
2527
+ segues
2528
+ } = mergedContext;
2529
+ var {
2530
+ sys,
2531
+ flags,
2516
2532
  storyboardContext
2517
- } = _internalApiGetCurrentContext();
2518
-
2533
+ } = internalContext;
2519
2534
  var app = (_runtimeContext$overr = runtimeContext.overrideApp) !== null && _runtimeContext$overr !== void 0 ? _runtimeContext$overr : currentApp;
2520
2535
 
2521
2536
  function getIndividualGlobal(variableName) {
@@ -2962,11 +2977,22 @@ var computeRealValue = (value, context, injectDeep, internalOptions) => {
2962
2977
 
2963
2978
  if (preEvaluated || isEvaluable(value)) {
2964
2979
  var runtimeContext = {};
2965
- var keys = ["event", "tplContextId", "overrideApp", "appendI18nNamespace", "formContextId"];
2966
2980
 
2967
- for (var key of keys) {
2968
- if (context !== null && context !== void 0 && context[key]) {
2969
- runtimeContext[key] = context[key];
2981
+ if (context) {
2982
+ var keys = ["event", "tplContextId", "overrideApp", "appendI18nNamespace", "formContextId", "query", "match", "app", "segues"];
2983
+
2984
+ for (var key of keys) {
2985
+ if (context[key]) {
2986
+ runtimeContext[key] = context[key];
2987
+ }
2988
+ }
2989
+
2990
+ var simpleKeys = ["hash", "pathname"];
2991
+
2992
+ for (var _key of simpleKeys) {
2993
+ if (hasOwnProperty(context, _key)) {
2994
+ runtimeContext[_key] = context[_key];
2995
+ }
2970
2996
  }
2971
2997
  } // The current runtime context is memoized even if the evaluation maybe lazy.
2972
2998
 
@@ -3055,9 +3081,10 @@ function computeRealProperties(properties, context, injectDeep, trackingContextL
3055
3081
  }
3056
3082
  }
3057
3083
 
3058
- if (Array.isArray(trackingContextList) && isEvaluable(propValue)) {
3059
- var contextNames = trackContext(propValue);
3060
- var stateNames = trackState(propValue);
3084
+ if (Array.isArray(trackingContextList) && (typeof propValue === "string" ? isEvaluable(propValue) : isPreEvaluated(propValue))) {
3085
+ var raw = typeof propValue === "string" ? propValue : getPreEvaluatedRaw(propValue);
3086
+ var contextNames = trackContext(raw);
3087
+ var stateNames = trackState(raw);
3061
3088
 
3062
3089
  if (contextNames || stateNames) {
3063
3090
  trackingContextList.push({
@@ -13064,7 +13091,7 @@ var getCurrentRunTimeBrick = (useBrick, tplTagName, data) => {
13064
13091
 
13065
13092
 
13066
13093
  var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsComponent(_ref) {
13067
- var _internalApiGetCurren, _templateRef$current$, _templateRef$current, _templateRef$current2;
13094
+ var _internalApiGetCurren, _templateRef$current$, _templateRef$current2;
13068
13095
 
13069
13096
  var {
13070
13097
  useBrick,
@@ -13072,6 +13099,9 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13072
13099
  refCallback,
13073
13100
  immediatelyRefCallback
13074
13101
  } = _ref;
13102
+ var firstRunRef = useRef(true);
13103
+ var innerRefCallbackRef = useRef();
13104
+ var elementRef = useRef();
13075
13105
  var templateRef = useRef();
13076
13106
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
13077
13107
  var isBrickAvailable = React.useMemo(() => {
@@ -13126,10 +13156,60 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13126
13156
  }
13127
13157
 
13128
13158
  return brick;
13129
- }), [useBrick, data, isBrickAvailable]);
13130
- var innerRefCallback = React.useCallback( /*#__PURE__*/function () {
13131
- var _ref4 = _asyncToGenerator$3(function* (element) {
13132
- immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
13159
+ }), [useBrick, data, isBrickAvailable, tplTagName]);
13160
+
13161
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
13162
+ var _ref4 = _asyncToGenerator$3(function* (event, handlers, brick) {
13163
+ for (var handler of [].concat(handlers)) {
13164
+ listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13165
+ tplContextId: useBrick[symbolForTplContextId]
13166
+ }), brick)(event);
13167
+ }
13168
+ });
13169
+
13170
+ return function dispatchLifeCycleEvent(_x, _x2, _x3) {
13171
+ return _ref4.apply(this, arguments);
13172
+ };
13173
+ }();
13174
+
13175
+ var updateBrick = useCallback((brick, element) => {
13176
+ brick.element = element;
13177
+ var {
13178
+ [symbolForTplContextId]: tplContextId
13179
+ } = useBrick;
13180
+
13181
+ if (useBrick.iid) {
13182
+ element.dataset.iid = useBrick.iid;
13183
+ }
13184
+
13185
+ setRealProperties(element, brick.properties);
13186
+ unbindListeners(element);
13187
+
13188
+ if (brick.events) {
13189
+ bindListeners(element, transformEvents(data, brick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13190
+ tplContextId
13191
+ }));
13192
+ } // 设置proxyEvent
13193
+
13194
+
13195
+ handleProxyOfCustomTemplate(brick);
13196
+
13197
+ if (element.$$typeof !== "custom-template") {
13198
+ if (!useBrick.brick.includes("-")) {
13199
+ element.$$typeof = "native";
13200
+ } else if (!customElements.get(useBrick.brick)) {
13201
+ element.$$typeof = "invalid";
13202
+ }
13203
+ }
13204
+ }, [data, useBrick]);
13205
+ useEffect(() => {
13206
+ if (firstRunRef.current) {
13207
+ firstRunRef.current = false;
13208
+ return;
13209
+ }
13210
+
13211
+ _asyncToGenerator$3(function* () {
13212
+ var element = elementRef.current;
13133
13213
 
13134
13214
  if (element) {
13135
13215
  var brick;
@@ -13145,32 +13225,38 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13145
13225
  return;
13146
13226
  }
13147
13227
 
13148
- brick.element = element;
13149
- var {
13150
- [symbolForTplContextId]: tplContextId
13151
- } = useBrick;
13228
+ updateBrick(brick, element);
13229
+ }
13230
+ })();
13231
+ }, [runtimeBrick, updateBrick]);
13152
13232
 
13153
- if (useBrick.iid) {
13154
- element.dataset.iid = useBrick.iid;
13155
- }
13233
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
13234
+ var _ref6 = _asyncToGenerator$3(function* (element) {
13235
+ immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
13236
+ elementRef.current = element;
13237
+ var brick;
13156
13238
 
13157
- setRealProperties(element, brick.properties);
13158
- unbindListeners(element);
13239
+ try {
13240
+ brick = yield runtimeBrick;
13241
+ } catch (e) {
13242
+ handleHttpError(e);
13243
+ } // sub-brick rendering is ignored.
13159
13244
 
13160
- if (brick.events) {
13161
- bindListeners(element, transformEvents(data, brick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13162
- tplContextId
13163
- }));
13164
- } // 设置proxyEvent
13165
13245
 
13246
+ if (brick) {
13247
+ if (element) {
13248
+ var _useBrick$lifeCycle;
13249
+
13250
+ updateBrick(brick, element);
13166
13251
 
13167
- handleProxyOfCustomTemplate(brick);
13252
+ if ((_useBrick$lifeCycle = useBrick.lifeCycle) !== null && _useBrick$lifeCycle !== void 0 && _useBrick$lifeCycle.onMount) {
13253
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13254
+ }
13255
+ } else {
13256
+ var _useBrick$lifeCycle2;
13168
13257
 
13169
- if (element.$$typeof !== "custom-template") {
13170
- if (!useBrick.brick.includes("-")) {
13171
- element.$$typeof = "native";
13172
- } else if (!customElements.get(useBrick.brick)) {
13173
- element.$$typeof = "invalid";
13258
+ if ((_useBrick$lifeCycle2 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle2 !== void 0 && _useBrick$lifeCycle2.onUnmount) {
13259
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13174
13260
  }
13175
13261
  }
13176
13262
  }
@@ -13178,18 +13264,28 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13178
13264
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13179
13265
  });
13180
13266
 
13181
- return function (_x) {
13182
- return _ref4.apply(this, arguments);
13267
+ return function (_x4) {
13268
+ return _ref6.apply(this, arguments);
13183
13269
  };
13184
- }(), [runtimeBrick, useBrick, data, refCallback, immediatelyRefCallback]);
13270
+ }(); // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13271
+
13272
+
13273
+ var innerRefCallback = React.useCallback(element => {
13274
+ innerRefCallbackRef.current(element);
13275
+ }, []);
13276
+ var childConfs = useMemo(() => {
13277
+ var _templateRef$current;
13278
+
13279
+ return slotsToChildren(((_templateRef$current = templateRef.current) !== null && _templateRef$current !== void 0 ? _templateRef$current : useBrick).slots);
13280
+ }, [templateRef.current, useBrick]);
13185
13281
 
13186
13282
  if (!isBrickAvailable) {
13187
13283
  return null;
13188
13284
  }
13189
13285
 
13190
- return /*#__PURE__*/React.createElement((_templateRef$current$ = (_templateRef$current = templateRef.current) === null || _templateRef$current === void 0 ? void 0 : _templateRef$current.brick) !== null && _templateRef$current$ !== void 0 ? _templateRef$current$ : tplTagName || useBrick.brick, {
13286
+ return /*#__PURE__*/React.createElement((_templateRef$current$ = (_templateRef$current2 = templateRef.current) === null || _templateRef$current2 === void 0 ? void 0 : _templateRef$current2.brick) !== null && _templateRef$current$ !== void 0 ? _templateRef$current$ : tplTagName || useBrick.brick, {
13191
13287
  ref: innerRefCallback
13192
- }, ...slotsToChildren(((_templateRef$current2 = templateRef.current) !== null && _templateRef$current2 !== void 0 ? _templateRef$current2 : useBrick).slots).map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13288
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13193
13289
  key: index,
13194
13290
  useBrick: item,
13195
13291
  data: data
@@ -13214,11 +13310,11 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13214
13310
  * @param props - 属性。
13215
13311
  */
13216
13312
 
13217
- function BrickAsComponent(_ref5) {
13313
+ function BrickAsComponent(_ref7) {
13218
13314
  var {
13219
13315
  useBrick,
13220
13316
  data
13221
- } = _ref5;
13317
+ } = _ref7;
13222
13318
 
13223
13319
  if (Array.isArray(useBrick)) {
13224
13320
  return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
@@ -13239,8 +13335,8 @@ function slotsToChildren(slots) {
13239
13335
  return [];
13240
13336
  }
13241
13337
 
13242
- return Object.entries(slots).flatMap(_ref6 => {
13243
- var [slot, slotConf] = _ref6;
13338
+ return Object.entries(slots).flatMap(_ref8 => {
13339
+ var [slot, slotConf] = _ref8;
13244
13340
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread(_objectSpread({}, child), {}, {
13245
13341
  properties: _objectSpread(_objectSpread({}, child.properties), {}, {
13246
13342
  slot
@@ -13260,15 +13356,17 @@ function transformEvents(data, events) {
13260
13356
  // eslint-disable-next-line react/display-name
13261
13357
 
13262
13358
 
13263
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref7, ref) {
13264
- var _internalApiGetCurren2, _templateRef$current$2, _templateRef$current3, _templateRef$current4;
13359
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
13360
+ var _internalApiGetCurren2, _templateRef$current$2, _templateRef$current4;
13265
13361
 
13266
13362
  var {
13267
13363
  useBrick,
13268
13364
  data,
13269
13365
  refCallback
13270
- } = _ref7;
13271
- var brickRef = useRef();
13366
+ } = _ref9;
13367
+ var firstRunRef = useRef(true);
13368
+ var innerRefCallbackRef = useRef();
13369
+ var elementRef = useRef();
13272
13370
  var templateRef = useRef();
13273
13371
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
13274
13372
  var isBrickAvailable = React.useMemo(() => {
@@ -13288,7 +13386,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13288
13386
  /* istanbul ignore next (never reach in test) */
13289
13387
 
13290
13388
  useImperativeHandle(ref, () => {
13291
- return brickRef.current;
13389
+ return elementRef.current;
13292
13390
  });
13293
13391
  var runtimeBrick = React.useMemo( /*#__PURE__*/_asyncToGenerator$3(function* () {
13294
13392
  if (!isBrickAvailable) {
@@ -13310,8 +13408,8 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13310
13408
  }); // 设置 properties refProperty值
13311
13409
 
13312
13410
  if (useBrick[symbolForComputedPropsFromProxy]) {
13313
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref9 => {
13314
- var [propName, propValue] = _ref9;
13411
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
13412
+ var [propName, propValue] = _ref11;
13315
13413
  set(brick.properties, propName, propValue);
13316
13414
  });
13317
13415
  }
@@ -13328,10 +13426,60 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13328
13426
  }
13329
13427
 
13330
13428
  return brick;
13331
- }), [useBrick, data, isBrickAvailable]);
13332
- var innerRefCallback = React.useCallback( /*#__PURE__*/function () {
13333
- var _ref10 = _asyncToGenerator$3(function* (element) {
13334
- brickRef.current = element;
13429
+ }), [useBrick, data, isBrickAvailable, tplTagName]);
13430
+
13431
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
13432
+ var _ref12 = _asyncToGenerator$3(function* (event, handlers, brick) {
13433
+ for (var handler of [].concat(handlers)) {
13434
+ listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13435
+ tplContextId: useBrick[symbolForTplContextId]
13436
+ }), brick)(event);
13437
+ }
13438
+ });
13439
+
13440
+ return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
13441
+ return _ref12.apply(this, arguments);
13442
+ };
13443
+ }();
13444
+
13445
+ var updateBrick = useCallback((brick, element) => {
13446
+ brick.element = element;
13447
+ var {
13448
+ [symbolForTplContextId]: tplContextId
13449
+ } = useBrick;
13450
+
13451
+ if (useBrick.iid) {
13452
+ element.dataset.iid = useBrick.iid;
13453
+ }
13454
+
13455
+ setRealProperties(element, brick.properties);
13456
+ unbindListeners(element);
13457
+
13458
+ if (useBrick.events) {
13459
+ bindListeners(element, transformEvents(data, useBrick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13460
+ tplContextId
13461
+ }));
13462
+ } // 设置proxyEvent
13463
+
13464
+
13465
+ handleProxyOfCustomTemplate(brick);
13466
+
13467
+ if (element.$$typeof !== "custom-template") {
13468
+ if (!useBrick.brick.includes("-")) {
13469
+ element.$$typeof = "native";
13470
+ } else if (!customElements.get(useBrick.brick)) {
13471
+ element.$$typeof = "invalid";
13472
+ }
13473
+ }
13474
+ }, [data, useBrick]);
13475
+ useEffect(() => {
13476
+ if (firstRunRef.current) {
13477
+ firstRunRef.current = false;
13478
+ return;
13479
+ }
13480
+
13481
+ _asyncToGenerator$3(function* () {
13482
+ var element = elementRef.current;
13335
13483
 
13336
13484
  if (element) {
13337
13485
  var brick;
@@ -13347,32 +13495,37 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13347
13495
  return;
13348
13496
  }
13349
13497
 
13350
- brick.element = element;
13351
- var {
13352
- [symbolForTplContextId]: tplContextId
13353
- } = useBrick;
13498
+ updateBrick(brick, element);
13499
+ }
13500
+ })();
13501
+ }, [runtimeBrick, updateBrick]);
13354
13502
 
13355
- if (useBrick.iid) {
13356
- element.dataset.iid = useBrick.iid;
13357
- }
13503
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
13504
+ var _ref14 = _asyncToGenerator$3(function* (element) {
13505
+ elementRef.current = element;
13506
+ var brick;
13507
+
13508
+ try {
13509
+ brick = yield runtimeBrick;
13510
+ } catch (e) {
13511
+ handleHttpError(e);
13512
+ } // sub-brick rendering is ignored.
13358
13513
 
13359
- setRealProperties(element, brick.properties);
13360
- unbindListeners(element);
13361
13514
 
13362
- if (useBrick.events) {
13363
- bindListeners(element, transformEvents(data, useBrick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13364
- tplContextId
13365
- }));
13366
- } // 设置proxyEvent
13515
+ if (brick) {
13516
+ if (element) {
13517
+ var _useBrick$lifeCycle3;
13367
13518
 
13519
+ updateBrick(brick, element);
13368
13520
 
13369
- handleProxyOfCustomTemplate(brick);
13521
+ if ((_useBrick$lifeCycle3 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle3 !== void 0 && _useBrick$lifeCycle3.onMount) {
13522
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13523
+ }
13524
+ } else {
13525
+ var _useBrick$lifeCycle4;
13370
13526
 
13371
- if (element.$$typeof !== "custom-template") {
13372
- if (!useBrick.brick.includes("-")) {
13373
- element.$$typeof = "native";
13374
- } else if (!customElements.get(useBrick.brick)) {
13375
- element.$$typeof = "invalid";
13527
+ if ((_useBrick$lifeCycle4 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle4 !== void 0 && _useBrick$lifeCycle4.onUnmount) {
13528
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13376
13529
  }
13377
13530
  }
13378
13531
  }
@@ -13380,18 +13533,28 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13380
13533
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13381
13534
  });
13382
13535
 
13383
- return function (_x2) {
13384
- return _ref10.apply(this, arguments);
13536
+ return function (_x8) {
13537
+ return _ref14.apply(this, arguments);
13385
13538
  };
13386
- }(), [runtimeBrick, useBrick, data, refCallback]);
13539
+ }(); // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13540
+
13541
+
13542
+ var innerRefCallback = React.useCallback(element => {
13543
+ innerRefCallbackRef.current(element);
13544
+ }, []);
13545
+ var childConfs = useMemo(() => {
13546
+ var _templateRef$current3;
13547
+
13548
+ return slotsToChildren(((_templateRef$current3 = templateRef.current) !== null && _templateRef$current3 !== void 0 ? _templateRef$current3 : useBrick).slots);
13549
+ }, [templateRef.current, useBrick]);
13387
13550
 
13388
13551
  if (!isBrickAvailable) {
13389
13552
  return null;
13390
13553
  }
13391
13554
 
13392
- return /*#__PURE__*/React.createElement((_templateRef$current$2 = (_templateRef$current3 = templateRef.current) === null || _templateRef$current3 === void 0 ? void 0 : _templateRef$current3.brick) !== null && _templateRef$current$2 !== void 0 ? _templateRef$current$2 : tplTagName || useBrick.brick, {
13555
+ return /*#__PURE__*/React.createElement((_templateRef$current$2 = (_templateRef$current4 = templateRef.current) === null || _templateRef$current4 === void 0 ? void 0 : _templateRef$current4.brick) !== null && _templateRef$current$2 !== void 0 ? _templateRef$current$2 : tplTagName || useBrick.brick, {
13393
13556
  ref: innerRefCallback
13394
- }, ...slotsToChildren(((_templateRef$current4 = templateRef.current) !== null && _templateRef$current4 !== void 0 ? _templateRef$current4 : useBrick).slots).map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13557
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13395
13558
  key: index,
13396
13559
  useBrick: item,
13397
13560
  data: data