@next-core/brick-kit 2.154.17 → 2.155.0

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';
@@ -2504,18 +2504,29 @@ function evaluate(raw) {
2504
2504
  });
2505
2505
  }
2506
2506
 
2507
+ var internalContext = _internalApiGetCurrentContext();
2508
+
2509
+ var mergedContext = {}; // Use runtime context over internal context.
2510
+ // Internal context such as `match`, maybe change after `history.push`.
2511
+ // So we prefer memoized runtime context.
2512
+
2513
+ for (var key of ["query", "match", "hash", "pathname", "app", "segues"]) {
2514
+ mergedContext[key] = (hasOwnProperty(runtimeContext, key) ? runtimeContext : internalContext)[key];
2515
+ }
2516
+
2507
2517
  var {
2508
2518
  app: currentApp,
2509
2519
  query,
2510
2520
  match,
2511
- sys,
2512
- flags,
2513
2521
  hash,
2514
2522
  pathname,
2515
- segues,
2523
+ segues
2524
+ } = mergedContext;
2525
+ var {
2526
+ sys,
2527
+ flags,
2516
2528
  storyboardContext
2517
- } = _internalApiGetCurrentContext();
2518
-
2529
+ } = internalContext;
2519
2530
  var app = (_runtimeContext$overr = runtimeContext.overrideApp) !== null && _runtimeContext$overr !== void 0 ? _runtimeContext$overr : currentApp;
2520
2531
 
2521
2532
  function getIndividualGlobal(variableName) {
@@ -2580,7 +2591,12 @@ function evaluate(raw) {
2580
2591
  return getDynamicReadOnlyProxy({
2581
2592
  get(target, key) {
2582
2593
  var pkg = customProcessorRegistry.get(key);
2583
- return pkg ? getDynamicReadOnlyProxy({
2594
+
2595
+ if (!pkg) {
2596
+ throw new Error("'PROCESSORS.".concat(key, "' is not registered! Have you installed the relevant brick package of '").concat(key.replace(/[A-Z]/g, m => "-".concat(m.toLowerCase())), "-NB'?"));
2597
+ }
2598
+
2599
+ return getDynamicReadOnlyProxy({
2584
2600
  get(t, k) {
2585
2601
  return pkg.get(k);
2586
2602
  },
@@ -2589,7 +2605,7 @@ function evaluate(raw) {
2589
2605
  return Array.from(pkg.keys());
2590
2606
  }
2591
2607
 
2592
- }) : pkg;
2608
+ });
2593
2609
  },
2594
2610
 
2595
2611
  ownKeys() {
@@ -2957,11 +2973,22 @@ var computeRealValue = (value, context, injectDeep, internalOptions) => {
2957
2973
 
2958
2974
  if (preEvaluated || isEvaluable(value)) {
2959
2975
  var runtimeContext = {};
2960
- var keys = ["event", "tplContextId", "overrideApp", "appendI18nNamespace", "formContextId"];
2961
2976
 
2962
- for (var key of keys) {
2963
- if (context !== null && context !== void 0 && context[key]) {
2964
- runtimeContext[key] = context[key];
2977
+ if (context) {
2978
+ var keys = ["event", "tplContextId", "overrideApp", "appendI18nNamespace", "formContextId", "query", "match", "app", "segues"];
2979
+
2980
+ for (var key of keys) {
2981
+ if (context[key]) {
2982
+ runtimeContext[key] = context[key];
2983
+ }
2984
+ }
2985
+
2986
+ var simpleKeys = ["hash", "pathname"];
2987
+
2988
+ for (var _key of simpleKeys) {
2989
+ if (hasOwnProperty(context, _key)) {
2990
+ runtimeContext[_key] = context[_key];
2991
+ }
2965
2992
  }
2966
2993
  } // The current runtime context is memoized even if the evaluation maybe lazy.
2967
2994
 
@@ -13059,7 +13086,7 @@ var getCurrentRunTimeBrick = (useBrick, tplTagName, data) => {
13059
13086
 
13060
13087
 
13061
13088
  var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsComponent(_ref) {
13062
- var _internalApiGetCurren, _templateRef$current$, _templateRef$current, _templateRef$current2;
13089
+ var _internalApiGetCurren, _templateRef$current$, _templateRef$current2;
13063
13090
 
13064
13091
  var {
13065
13092
  useBrick,
@@ -13067,6 +13094,9 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13067
13094
  refCallback,
13068
13095
  immediatelyRefCallback
13069
13096
  } = _ref;
13097
+ var firstRunRef = useRef(true);
13098
+ var innerRefCallbackRef = useRef();
13099
+ var elementRef = useRef();
13070
13100
  var templateRef = useRef();
13071
13101
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
13072
13102
  var isBrickAvailable = React.useMemo(() => {
@@ -13121,10 +13151,60 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13121
13151
  }
13122
13152
 
13123
13153
  return brick;
13124
- }), [useBrick, data, isBrickAvailable]);
13125
- var innerRefCallback = React.useCallback( /*#__PURE__*/function () {
13126
- var _ref4 = _asyncToGenerator$3(function* (element) {
13127
- immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
13154
+ }), [useBrick, data, isBrickAvailable, tplTagName]);
13155
+
13156
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
13157
+ var _ref4 = _asyncToGenerator$3(function* (event, handlers, brick) {
13158
+ for (var handler of [].concat(handlers)) {
13159
+ listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13160
+ tplContextId: useBrick[symbolForTplContextId]
13161
+ }), brick)(event);
13162
+ }
13163
+ });
13164
+
13165
+ return function dispatchLifeCycleEvent(_x, _x2, _x3) {
13166
+ return _ref4.apply(this, arguments);
13167
+ };
13168
+ }();
13169
+
13170
+ var updateBrick = useCallback((brick, element) => {
13171
+ brick.element = element;
13172
+ var {
13173
+ [symbolForTplContextId]: tplContextId
13174
+ } = useBrick;
13175
+
13176
+ if (useBrick.iid) {
13177
+ element.dataset.iid = useBrick.iid;
13178
+ }
13179
+
13180
+ setRealProperties(element, brick.properties);
13181
+ unbindListeners(element);
13182
+
13183
+ if (brick.events) {
13184
+ bindListeners(element, transformEvents(data, brick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13185
+ tplContextId
13186
+ }));
13187
+ } // 设置proxyEvent
13188
+
13189
+
13190
+ handleProxyOfCustomTemplate(brick);
13191
+
13192
+ if (element.$$typeof !== "custom-template") {
13193
+ if (!useBrick.brick.includes("-")) {
13194
+ element.$$typeof = "native";
13195
+ } else if (!customElements.get(useBrick.brick)) {
13196
+ element.$$typeof = "invalid";
13197
+ }
13198
+ }
13199
+ }, [data, useBrick]);
13200
+ useEffect(() => {
13201
+ if (firstRunRef.current) {
13202
+ firstRunRef.current = false;
13203
+ return;
13204
+ }
13205
+
13206
+ _asyncToGenerator$3(function* () {
13207
+ var element = elementRef.current;
13128
13208
 
13129
13209
  if (element) {
13130
13210
  var brick;
@@ -13140,32 +13220,38 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13140
13220
  return;
13141
13221
  }
13142
13222
 
13143
- brick.element = element;
13144
- var {
13145
- [symbolForTplContextId]: tplContextId
13146
- } = useBrick;
13223
+ updateBrick(brick, element);
13224
+ }
13225
+ })();
13226
+ }, [runtimeBrick, updateBrick]);
13147
13227
 
13148
- if (useBrick.iid) {
13149
- element.dataset.iid = useBrick.iid;
13150
- }
13228
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
13229
+ var _ref6 = _asyncToGenerator$3(function* (element) {
13230
+ immediatelyRefCallback === null || immediatelyRefCallback === void 0 ? void 0 : immediatelyRefCallback(element);
13231
+ elementRef.current = element;
13232
+ var brick;
13151
13233
 
13152
- setRealProperties(element, brick.properties);
13153
- unbindListeners(element);
13234
+ try {
13235
+ brick = yield runtimeBrick;
13236
+ } catch (e) {
13237
+ handleHttpError(e);
13238
+ } // sub-brick rendering is ignored.
13154
13239
 
13155
- if (brick.events) {
13156
- bindListeners(element, transformEvents(data, brick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13157
- tplContextId
13158
- }));
13159
- } // 设置proxyEvent
13160
13240
 
13241
+ if (brick) {
13242
+ if (element) {
13243
+ var _useBrick$lifeCycle;
13161
13244
 
13162
- handleProxyOfCustomTemplate(brick);
13245
+ updateBrick(brick, element);
13163
13246
 
13164
- if (element.$$typeof !== "custom-template") {
13165
- if (!useBrick.brick.includes("-")) {
13166
- element.$$typeof = "native";
13167
- } else if (!customElements.get(useBrick.brick)) {
13168
- element.$$typeof = "invalid";
13247
+ if ((_useBrick$lifeCycle = useBrick.lifeCycle) !== null && _useBrick$lifeCycle !== void 0 && _useBrick$lifeCycle.onMount) {
13248
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13249
+ }
13250
+ } else {
13251
+ var _useBrick$lifeCycle2;
13252
+
13253
+ if ((_useBrick$lifeCycle2 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle2 !== void 0 && _useBrick$lifeCycle2.onUnmount) {
13254
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13169
13255
  }
13170
13256
  }
13171
13257
  }
@@ -13173,18 +13259,28 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13173
13259
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13174
13260
  });
13175
13261
 
13176
- return function (_x) {
13177
- return _ref4.apply(this, arguments);
13262
+ return function (_x4) {
13263
+ return _ref6.apply(this, arguments);
13178
13264
  };
13179
- }(), [runtimeBrick, useBrick, data, refCallback, immediatelyRefCallback]);
13265
+ }(); // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13266
+
13267
+
13268
+ var innerRefCallback = React.useCallback(element => {
13269
+ innerRefCallbackRef.current(element);
13270
+ }, []);
13271
+ var childConfs = useMemo(() => {
13272
+ var _templateRef$current;
13273
+
13274
+ return slotsToChildren(((_templateRef$current = templateRef.current) !== null && _templateRef$current !== void 0 ? _templateRef$current : useBrick).slots);
13275
+ }, [templateRef.current, useBrick]);
13180
13276
 
13181
13277
  if (!isBrickAvailable) {
13182
13278
  return null;
13183
13279
  }
13184
13280
 
13185
- 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, {
13281
+ 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, {
13186
13282
  ref: innerRefCallback
13187
- }, ...slotsToChildren(((_templateRef$current2 = templateRef.current) !== null && _templateRef$current2 !== void 0 ? _templateRef$current2 : useBrick).slots).map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13283
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13188
13284
  key: index,
13189
13285
  useBrick: item,
13190
13286
  data: data
@@ -13209,11 +13305,11 @@ var SingleBrickAsComponent = /*#__PURE__*/React.memo(function SingleBrickAsCompo
13209
13305
  * @param props - 属性。
13210
13306
  */
13211
13307
 
13212
- function BrickAsComponent(_ref5) {
13308
+ function BrickAsComponent(_ref7) {
13213
13309
  var {
13214
13310
  useBrick,
13215
13311
  data
13216
- } = _ref5;
13312
+ } = _ref7;
13217
13313
 
13218
13314
  if (Array.isArray(useBrick)) {
13219
13315
  return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
@@ -13234,8 +13330,8 @@ function slotsToChildren(slots) {
13234
13330
  return [];
13235
13331
  }
13236
13332
 
13237
- return Object.entries(slots).flatMap(_ref6 => {
13238
- var [slot, slotConf] = _ref6;
13333
+ return Object.entries(slots).flatMap(_ref8 => {
13334
+ var [slot, slotConf] = _ref8;
13239
13335
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread(_objectSpread({}, child), {}, {
13240
13336
  properties: _objectSpread(_objectSpread({}, child.properties), {}, {
13241
13337
  slot
@@ -13255,15 +13351,17 @@ function transformEvents(data, events) {
13255
13351
  // eslint-disable-next-line react/display-name
13256
13352
 
13257
13353
 
13258
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref7, ref) {
13259
- var _internalApiGetCurren2, _templateRef$current$2, _templateRef$current3, _templateRef$current4;
13354
+ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/forwardRef(function LegacySingleBrickAsComponent(_ref9, ref) {
13355
+ var _internalApiGetCurren2, _templateRef$current$2, _templateRef$current4;
13260
13356
 
13261
13357
  var {
13262
13358
  useBrick,
13263
13359
  data,
13264
13360
  refCallback
13265
- } = _ref7;
13266
- var brickRef = useRef();
13361
+ } = _ref9;
13362
+ var firstRunRef = useRef(true);
13363
+ var innerRefCallbackRef = useRef();
13364
+ var elementRef = useRef();
13267
13365
  var templateRef = useRef();
13268
13366
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
13269
13367
  var isBrickAvailable = React.useMemo(() => {
@@ -13283,7 +13381,7 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13283
13381
  /* istanbul ignore next (never reach in test) */
13284
13382
 
13285
13383
  useImperativeHandle(ref, () => {
13286
- return brickRef.current;
13384
+ return elementRef.current;
13287
13385
  });
13288
13386
  var runtimeBrick = React.useMemo( /*#__PURE__*/_asyncToGenerator$3(function* () {
13289
13387
  if (!isBrickAvailable) {
@@ -13305,8 +13403,8 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13305
13403
  }); // 设置 properties refProperty值
13306
13404
 
13307
13405
  if (useBrick[symbolForComputedPropsFromProxy]) {
13308
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref9 => {
13309
- var [propName, propValue] = _ref9;
13406
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
13407
+ var [propName, propValue] = _ref11;
13310
13408
  set(brick.properties, propName, propValue);
13311
13409
  });
13312
13410
  }
@@ -13323,10 +13421,60 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13323
13421
  }
13324
13422
 
13325
13423
  return brick;
13326
- }), [useBrick, data, isBrickAvailable]);
13327
- var innerRefCallback = React.useCallback( /*#__PURE__*/function () {
13328
- var _ref10 = _asyncToGenerator$3(function* (element) {
13329
- brickRef.current = element;
13424
+ }), [useBrick, data, isBrickAvailable, tplTagName]);
13425
+
13426
+ var dispatchLifeCycleEvent = /*#__PURE__*/function () {
13427
+ var _ref12 = _asyncToGenerator$3(function* (event, handlers, brick) {
13428
+ for (var handler of [].concat(handlers)) {
13429
+ listenerFactory(handler, _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13430
+ tplContextId: useBrick[symbolForTplContextId]
13431
+ }), brick)(event);
13432
+ }
13433
+ });
13434
+
13435
+ return function dispatchLifeCycleEvent(_x5, _x6, _x7) {
13436
+ return _ref12.apply(this, arguments);
13437
+ };
13438
+ }();
13439
+
13440
+ var updateBrick = useCallback((brick, element) => {
13441
+ brick.element = element;
13442
+ var {
13443
+ [symbolForTplContextId]: tplContextId
13444
+ } = useBrick;
13445
+
13446
+ if (useBrick.iid) {
13447
+ element.dataset.iid = useBrick.iid;
13448
+ }
13449
+
13450
+ setRealProperties(element, brick.properties);
13451
+ unbindListeners(element);
13452
+
13453
+ if (useBrick.events) {
13454
+ bindListeners(element, transformEvents(data, useBrick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13455
+ tplContextId
13456
+ }));
13457
+ } // 设置proxyEvent
13458
+
13459
+
13460
+ handleProxyOfCustomTemplate(brick);
13461
+
13462
+ if (element.$$typeof !== "custom-template") {
13463
+ if (!useBrick.brick.includes("-")) {
13464
+ element.$$typeof = "native";
13465
+ } else if (!customElements.get(useBrick.brick)) {
13466
+ element.$$typeof = "invalid";
13467
+ }
13468
+ }
13469
+ }, [data, useBrick]);
13470
+ useEffect(() => {
13471
+ if (firstRunRef.current) {
13472
+ firstRunRef.current = false;
13473
+ return;
13474
+ }
13475
+
13476
+ _asyncToGenerator$3(function* () {
13477
+ var element = elementRef.current;
13330
13478
 
13331
13479
  if (element) {
13332
13480
  var brick;
@@ -13342,32 +13490,37 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13342
13490
  return;
13343
13491
  }
13344
13492
 
13345
- brick.element = element;
13346
- var {
13347
- [symbolForTplContextId]: tplContextId
13348
- } = useBrick;
13493
+ updateBrick(brick, element);
13494
+ }
13495
+ })();
13496
+ }, [runtimeBrick, updateBrick]);
13349
13497
 
13350
- if (useBrick.iid) {
13351
- element.dataset.iid = useBrick.iid;
13352
- }
13498
+ innerRefCallbackRef.current = /*#__PURE__*/function () {
13499
+ var _ref14 = _asyncToGenerator$3(function* (element) {
13500
+ elementRef.current = element;
13501
+ var brick;
13502
+
13503
+ try {
13504
+ brick = yield runtimeBrick;
13505
+ } catch (e) {
13506
+ handleHttpError(e);
13507
+ } // sub-brick rendering is ignored.
13353
13508
 
13354
- setRealProperties(element, brick.properties);
13355
- unbindListeners(element);
13356
13509
 
13357
- if (useBrick.events) {
13358
- bindListeners(element, transformEvents(data, useBrick.events), _objectSpread(_objectSpread({}, _internalApiGetCurrentContext()), {}, {
13359
- tplContextId
13360
- }));
13361
- } // 设置proxyEvent
13510
+ if (brick) {
13511
+ if (element) {
13512
+ var _useBrick$lifeCycle3;
13362
13513
 
13514
+ updateBrick(brick, element);
13363
13515
 
13364
- handleProxyOfCustomTemplate(brick);
13516
+ if ((_useBrick$lifeCycle3 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle3 !== void 0 && _useBrick$lifeCycle3.onMount) {
13517
+ dispatchLifeCycleEvent(new CustomEvent("mount"), useBrick.lifeCycle.onMount, brick);
13518
+ }
13519
+ } else {
13520
+ var _useBrick$lifeCycle4;
13365
13521
 
13366
- if (element.$$typeof !== "custom-template") {
13367
- if (!useBrick.brick.includes("-")) {
13368
- element.$$typeof = "native";
13369
- } else if (!customElements.get(useBrick.brick)) {
13370
- element.$$typeof = "invalid";
13522
+ if ((_useBrick$lifeCycle4 = useBrick.lifeCycle) !== null && _useBrick$lifeCycle4 !== void 0 && _useBrick$lifeCycle4.onUnmount) {
13523
+ dispatchLifeCycleEvent(new CustomEvent("unmount"), useBrick.lifeCycle.onUnmount, brick);
13371
13524
  }
13372
13525
  }
13373
13526
  }
@@ -13375,18 +13528,28 @@ var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React.memo( /*#__PURE__*/for
13375
13528
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13376
13529
  });
13377
13530
 
13378
- return function (_x2) {
13379
- return _ref10.apply(this, arguments);
13531
+ return function (_x8) {
13532
+ return _ref14.apply(this, arguments);
13380
13533
  };
13381
- }(), [runtimeBrick, useBrick, data, refCallback]);
13534
+ }(); // ref https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs
13535
+
13536
+
13537
+ var innerRefCallback = React.useCallback(element => {
13538
+ innerRefCallbackRef.current(element);
13539
+ }, []);
13540
+ var childConfs = useMemo(() => {
13541
+ var _templateRef$current3;
13542
+
13543
+ return slotsToChildren(((_templateRef$current3 = templateRef.current) !== null && _templateRef$current3 !== void 0 ? _templateRef$current3 : useBrick).slots);
13544
+ }, [templateRef.current, useBrick]);
13382
13545
 
13383
13546
  if (!isBrickAvailable) {
13384
13547
  return null;
13385
13548
  }
13386
13549
 
13387
- 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, {
13550
+ 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, {
13388
13551
  ref: innerRefCallback
13389
- }, ...slotsToChildren(((_templateRef$current4 = templateRef.current) !== null && _templateRef$current4 !== void 0 ? _templateRef$current4 : useBrick).slots).map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13552
+ }, ...childConfs.map((item, index) => /*#__PURE__*/React.createElement(SingleBrickAsComponent, {
13390
13553
  key: index,
13391
13554
  useBrick: item,
13392
13555
  data: data