@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.
@@ -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) {
@@ -2579,7 +2590,12 @@
2579
2590
  return getDynamicReadOnlyProxy({
2580
2591
  get(target, key) {
2581
2592
  var pkg = customProcessorRegistry.get(key);
2582
- return pkg ? getDynamicReadOnlyProxy({
2593
+
2594
+ if (!pkg) {
2595
+ 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'?"));
2596
+ }
2597
+
2598
+ return getDynamicReadOnlyProxy({
2583
2599
  get(t, k) {
2584
2600
  return pkg.get(k);
2585
2601
  },
@@ -2588,7 +2604,7 @@
2588
2604
  return Array.from(pkg.keys());
2589
2605
  }
2590
2606
 
2591
- }) : pkg;
2607
+ });
2592
2608
  },
2593
2609
 
2594
2610
  ownKeys() {
@@ -2956,11 +2972,22 @@
2956
2972
 
2957
2973
  if (preEvaluated || brickUtils.isEvaluable(value)) {
2958
2974
  var runtimeContext = {};
2959
- var keys = ["event", "tplContextId", "overrideApp", "appendI18nNamespace", "formContextId"];
2960
2975
 
2961
- for (var key of keys) {
2962
- if (context !== null && context !== void 0 && context[key]) {
2963
- 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
+ }
2964
2991
  }
2965
2992
  } // The current runtime context is memoized even if the evaluation maybe lazy.
2966
2993
 
@@ -13058,7 +13085,7 @@
13058
13085
 
13059
13086
 
13060
13087
  var SingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo(function SingleBrickAsComponent(_ref) {
13061
- var _internalApiGetCurren, _templateRef$current$, _templateRef$current, _templateRef$current2;
13088
+ var _internalApiGetCurren, _templateRef$current$, _templateRef$current2;
13062
13089
 
13063
13090
  var {
13064
13091
  useBrick,
@@ -13066,6 +13093,9 @@
13066
13093
  refCallback,
13067
13094
  immediatelyRefCallback
13068
13095
  } = _ref;
13096
+ var firstRunRef = React.useRef(true);
13097
+ var innerRefCallbackRef = React.useRef();
13098
+ var elementRef = React.useRef();
13069
13099
  var templateRef = React.useRef();
13070
13100
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren === void 0 ? void 0 : _internalApiGetCurren.id);
13071
13101
  var isBrickAvailable = React__default["default"].useMemo(() => {
@@ -13120,10 +13150,60 @@
13120
13150
  }
13121
13151
 
13122
13152
  return brick;
13123
- }), [useBrick, data, isBrickAvailable]);
13124
- var innerRefCallback = React__default["default"].useCallback( /*#__PURE__*/function () {
13125
- var _ref4 = _asyncToGenerator__default["default"](function* (element) {
13126
- 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;
13127
13207
 
13128
13208
  if (element) {
13129
13209
  var brick;
@@ -13139,32 +13219,38 @@
13139
13219
  return;
13140
13220
  }
13141
13221
 
13142
- brick.element = element;
13143
- var {
13144
- [symbolForTplContextId]: tplContextId
13145
- } = useBrick;
13222
+ updateBrick(brick, element);
13223
+ }
13224
+ })();
13225
+ }, [runtimeBrick, updateBrick]);
13146
13226
 
13147
- if (useBrick.iid) {
13148
- element.dataset.iid = useBrick.iid;
13149
- }
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;
13150
13232
 
13151
- setRealProperties(element, brick.properties);
13152
- unbindListeners(element);
13233
+ try {
13234
+ brick = yield runtimeBrick;
13235
+ } catch (e) {
13236
+ handleHttpError(e);
13237
+ } // sub-brick rendering is ignored.
13153
13238
 
13154
- if (brick.events) {
13155
- bindListeners(element, transformEvents(data, brick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
13156
- tplContextId
13157
- }));
13158
- } // 设置proxyEvent
13159
13239
 
13240
+ if (brick) {
13241
+ if (element) {
13242
+ var _useBrick$lifeCycle;
13160
13243
 
13161
- handleProxyOfCustomTemplate(brick);
13244
+ updateBrick(brick, element);
13162
13245
 
13163
- if (element.$$typeof !== "custom-template") {
13164
- if (!useBrick.brick.includes("-")) {
13165
- element.$$typeof = "native";
13166
- } else if (!customElements.get(useBrick.brick)) {
13167
- 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);
13168
13254
  }
13169
13255
  }
13170
13256
  }
@@ -13172,18 +13258,28 @@
13172
13258
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13173
13259
  });
13174
13260
 
13175
- return function (_x) {
13176
- return _ref4.apply(this, arguments);
13261
+ return function (_x4) {
13262
+ return _ref6.apply(this, arguments);
13177
13263
  };
13178
- }(), [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]);
13179
13275
 
13180
13276
  if (!isBrickAvailable) {
13181
13277
  return null;
13182
13278
  }
13183
13279
 
13184
- 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, {
13185
13281
  ref: innerRefCallback
13186
- }, ...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, {
13187
13283
  key: index,
13188
13284
  useBrick: item,
13189
13285
  data: data
@@ -13208,11 +13304,11 @@
13208
13304
  * @param props - 属性。
13209
13305
  */
13210
13306
 
13211
- function BrickAsComponent(_ref5) {
13307
+ function BrickAsComponent(_ref7) {
13212
13308
  var {
13213
13309
  useBrick,
13214
13310
  data
13215
- } = _ref5;
13311
+ } = _ref7;
13216
13312
 
13217
13313
  if (Array.isArray(useBrick)) {
13218
13314
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React__default["default"].createElement(SingleBrickAsComponent, {
@@ -13233,8 +13329,8 @@
13233
13329
  return [];
13234
13330
  }
13235
13331
 
13236
- return Object.entries(slots).flatMap(_ref6 => {
13237
- var [slot, slotConf] = _ref6;
13332
+ return Object.entries(slots).flatMap(_ref8 => {
13333
+ var [slot, slotConf] = _ref8;
13238
13334
  return Array.isArray(slotConf.bricks) ? slotConf.bricks.map(child => _objectSpread__default["default"](_objectSpread__default["default"]({}, child), {}, {
13239
13335
  properties: _objectSpread__default["default"](_objectSpread__default["default"]({}, child.properties), {}, {
13240
13336
  slot
@@ -13254,15 +13350,17 @@
13254
13350
  // eslint-disable-next-line react/display-name
13255
13351
 
13256
13352
 
13257
- var ForwardRefSingleBrickAsComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(function LegacySingleBrickAsComponent(_ref7, ref) {
13258
- 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;
13259
13355
 
13260
13356
  var {
13261
13357
  useBrick,
13262
13358
  data,
13263
13359
  refCallback
13264
- } = _ref7;
13265
- var brickRef = React.useRef();
13360
+ } = _ref9;
13361
+ var firstRunRef = React.useRef(true);
13362
+ var innerRefCallbackRef = React.useRef();
13363
+ var elementRef = React.useRef();
13266
13364
  var templateRef = React.useRef();
13267
13365
  var tplTagName = getTagNameOfCustomTemplate(useBrick.brick, (_internalApiGetCurren2 = _internalApiGetCurrentContext().app) === null || _internalApiGetCurren2 === void 0 ? void 0 : _internalApiGetCurren2.id);
13268
13366
  var isBrickAvailable = React__default["default"].useMemo(() => {
@@ -13282,7 +13380,7 @@
13282
13380
  /* istanbul ignore next (never reach in test) */
13283
13381
 
13284
13382
  React.useImperativeHandle(ref, () => {
13285
- return brickRef.current;
13383
+ return elementRef.current;
13286
13384
  });
13287
13385
  var runtimeBrick = React__default["default"].useMemo( /*#__PURE__*/_asyncToGenerator__default["default"](function* () {
13288
13386
  if (!isBrickAvailable) {
@@ -13304,8 +13402,8 @@
13304
13402
  }); // 设置 properties refProperty值
13305
13403
 
13306
13404
  if (useBrick[symbolForComputedPropsFromProxy]) {
13307
- Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref9 => {
13308
- var [propName, propValue] = _ref9;
13405
+ Object.entries(useBrick[symbolForComputedPropsFromProxy]).forEach(_ref11 => {
13406
+ var [propName, propValue] = _ref11;
13309
13407
  _.set(brick.properties, propName, propValue);
13310
13408
  });
13311
13409
  }
@@ -13322,10 +13420,60 @@
13322
13420
  }
13323
13421
 
13324
13422
  return brick;
13325
- }), [useBrick, data, isBrickAvailable]);
13326
- var innerRefCallback = React__default["default"].useCallback( /*#__PURE__*/function () {
13327
- var _ref10 = _asyncToGenerator__default["default"](function* (element) {
13328
- 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;
13329
13477
 
13330
13478
  if (element) {
13331
13479
  var brick;
@@ -13341,32 +13489,37 @@
13341
13489
  return;
13342
13490
  }
13343
13491
 
13344
- brick.element = element;
13345
- var {
13346
- [symbolForTplContextId]: tplContextId
13347
- } = useBrick;
13492
+ updateBrick(brick, element);
13493
+ }
13494
+ })();
13495
+ }, [runtimeBrick, updateBrick]);
13348
13496
 
13349
- if (useBrick.iid) {
13350
- element.dataset.iid = useBrick.iid;
13351
- }
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.
13352
13507
 
13353
- setRealProperties(element, brick.properties);
13354
- unbindListeners(element);
13355
13508
 
13356
- if (useBrick.events) {
13357
- bindListeners(element, transformEvents(data, useBrick.events), _objectSpread__default["default"](_objectSpread__default["default"]({}, _internalApiGetCurrentContext()), {}, {
13358
- tplContextId
13359
- }));
13360
- } // 设置proxyEvent
13509
+ if (brick) {
13510
+ if (element) {
13511
+ var _useBrick$lifeCycle3;
13361
13512
 
13513
+ updateBrick(brick, element);
13362
13514
 
13363
- 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;
13364
13520
 
13365
- if (element.$$typeof !== "custom-template") {
13366
- if (!useBrick.brick.includes("-")) {
13367
- element.$$typeof = "native";
13368
- } else if (!customElements.get(useBrick.brick)) {
13369
- 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);
13370
13523
  }
13371
13524
  }
13372
13525
  }
@@ -13374,18 +13527,28 @@
13374
13527
  refCallback === null || refCallback === void 0 ? void 0 : refCallback(element);
13375
13528
  });
13376
13529
 
13377
- return function (_x2) {
13378
- return _ref10.apply(this, arguments);
13530
+ return function (_x8) {
13531
+ return _ref14.apply(this, arguments);
13379
13532
  };
13380
- }(), [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]);
13381
13544
 
13382
13545
  if (!isBrickAvailable) {
13383
13546
  return null;
13384
13547
  }
13385
13548
 
13386
- 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, {
13387
13550
  ref: innerRefCallback
13388
- }, ...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, {
13389
13552
  key: index,
13390
13553
  useBrick: item,
13391
13554
  data: data