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