@next-core/brick-kit 2.111.3 → 2.114.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
@@ -2187,6 +2187,56 @@ function getCustomTemplateContext(tplContextId) {
2187
2187
  return tplContextMap.get(tplContextId);
2188
2188
  }
2189
2189
 
2190
+ var MediaSize;
2191
+
2192
+ (function (MediaSize) {
2193
+ MediaSize["xLarge"] = "xLarge";
2194
+ MediaSize["large"] = "large";
2195
+ MediaSize["medium"] = "medium";
2196
+ MediaSize["small"] = "small";
2197
+ MediaSize["xSmall"] = "xSmall";
2198
+ })(MediaSize || (MediaSize = {}));
2199
+
2200
+ var mediaSizeBreakpointMap = new Map([[MediaSize.xLarge, "1920px"], [MediaSize.large, "1600px"], [MediaSize.medium, "1280px"], [MediaSize.small, "1024px"], [MediaSize.xSmall, 0]]);
2201
+ var mediaEventTarget = new EventTarget$1();
2202
+ var sizeMatchesMap = {};
2203
+ var MEDIA = {};
2204
+
2205
+ function handleMatchesChange(data, size) {
2206
+ var changed = false;
2207
+ sizeMatchesMap[size] = data.matches;
2208
+
2209
+ for (var [_size] of mediaSizeBreakpointMap) {
2210
+ if (sizeMatchesMap[_size] && MEDIA.size !== _size) {
2211
+ MEDIA.size = _size;
2212
+ changed = true;
2213
+ break;
2214
+ }
2215
+ }
2216
+
2217
+ if (changed) {
2218
+ mediaEventTarget.dispatchEvent(new CustomEvent("change", {
2219
+ detail: MEDIA
2220
+ }));
2221
+ }
2222
+ }
2223
+
2224
+ mediaSizeBreakpointMap.forEach((breakpoint, size) => {
2225
+ var mediaQueryList = window.matchMedia("(min-width: ".concat(breakpoint, ")"));
2226
+ handleMatchesChange(mediaQueryList, size);
2227
+
2228
+ if (mediaQueryList.addEventListener) {
2229
+ mediaQueryList.addEventListener("change", event => {
2230
+ handleMatchesChange(event, size);
2231
+ });
2232
+ } else {
2233
+ mediaQueryList.addListener(event => {
2234
+ handleMatchesChange(event, size);
2235
+ });
2236
+ }
2237
+ });
2238
+ var getMedia = () => MEDIA;
2239
+
2190
2240
  var symbolForRaw = Symbol.for("pre.evaluated.raw");
2191
2241
  var symbolForContext = Symbol.for("pre.evaluated.context");
2192
2242
  function isPreEvaluated(raw) {
@@ -2423,6 +2473,9 @@ function evaluate(raw) {
2423
2473
  case "SYS":
2424
2474
  return getReadOnlyProxy(sys);
2425
2475
 
2476
+ case "MEDIA":
2477
+ return getReadOnlyProxy(getMedia());
2478
+
2426
2479
  case "__WIDGET_FN__":
2427
2480
  return widgetFunctions;
2428
2481
 
@@ -2664,6 +2717,7 @@ var symbolAppId = Symbol("appId");
2664
2717
  // Caching menu requests to avoid flicker.
2665
2718
  var menuCache = new Map();
2666
2719
  var menuTitleCache = new Map();
2720
+ var processMenuCache = new Map();
2667
2721
  function constructMenu(_x, _x2, _x3) {
2668
2722
  return _constructMenu.apply(this, arguments);
2669
2723
  }
@@ -2700,12 +2754,14 @@ function constructMenuByMenusList(_x4, _x5, _x6) {
2700
2754
 
2701
2755
  function _constructMenuByMenusList() {
2702
2756
  _constructMenuByMenusList = _asyncToGenerator$4(function* (menus, context, kernel) {
2703
- yield Promise.all(menus.map(menuId => processMenu(menuId, context, kernel)));
2757
+ processMenuCache.clear();
2758
+ var data = yield Promise.all(menus.map(menuId => processMenu(menuId, context, kernel)));
2759
+ data.forEach((item, index) => processMenuCache.set(menus[index], item));
2704
2760
  });
2705
2761
  return _constructMenuByMenusList.apply(this, arguments);
2706
2762
  }
2707
2763
 
2708
- var getMenu = menuId => menuCache.get(menuId);
2764
+ var getMenu = menuId => processMenuCache.get(menuId);
2709
2765
  function fetchMenuById(_x7, _x8) {
2710
2766
  return _fetchMenuById.apply(this, arguments);
2711
2767
  }
@@ -3115,6 +3171,11 @@ function _dev_only_getFakeKernel(overrides) {
3115
3171
  getProviderBrick: kernel.getProviderBrick.bind(kernel)
3116
3172
  }, overrides);
3117
3173
  }
3174
+ /* istanbul ignore next */
3175
+
3176
+ function _dev_only_updateStoryboard(appId, storyboardPatch) {
3177
+ kernel._dev_only_updateStoryboard(appId, storyboardPatch);
3178
+ }
3118
3179
  class Runtime {
3119
3180
  constructor() {
3120
3181
  _defineProperty$1(this, "registerBrickTemplate", registerBrickTemplate);
@@ -7798,9 +7859,9 @@ class Kernel {
7798
7859
  }
7799
7860
 
7800
7861
  doFulfilStoryboard(storyboard) {
7801
- return _asyncToGenerator$4(function* () {
7802
- var _storyboard$meta;
7862
+ var _this5 = this;
7803
7863
 
7864
+ return _asyncToGenerator$4(function* () {
7804
7865
  if (window.STANDALONE_MICRO_APPS) {
7805
7866
  Object.assign(storyboard, {
7806
7867
  $$fulfilled: true
@@ -7819,28 +7880,43 @@ class Kernel {
7819
7880
  });
7820
7881
  }
7821
7882
 
7822
- storyboard.app.$$routeAliasMap = scanRouteAliasInStoryboard(storyboard);
7883
+ _this5.postProcessStoryboard(storyboard);
7884
+ })();
7885
+ }
7823
7886
 
7824
- if ((_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 && _storyboard$meta.i18n) {
7825
- // Prefix to avoid conflict between brick package's i18n namespace.
7826
- var i18nNamespace = getI18nNamespace("app", storyboard.app.id); // Support any language in `meta.i18n`.
7887
+ postProcessStoryboard(storyboard) {
7888
+ var _storyboard$meta;
7827
7889
 
7828
- Object.entries(storyboard.meta.i18n).forEach(_ref => {
7829
- var [lang, resources] = _ref;
7830
- i18next.addResourceBundle(lang, i18nNamespace, resources);
7831
- });
7832
- }
7833
- })();
7890
+ storyboard.app.$$routeAliasMap = scanRouteAliasInStoryboard(storyboard);
7891
+
7892
+ if ((_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 && _storyboard$meta.i18n) {
7893
+ // Prefix to avoid conflict between brick package's i18n namespace.
7894
+ var i18nNamespace = getI18nNamespace("app", storyboard.app.id); // Support any language in `meta.i18n`.
7895
+
7896
+ Object.entries(storyboard.meta.i18n).forEach(_ref => {
7897
+ var [lang, resources] = _ref;
7898
+ i18next.addResourceBundle(lang, i18nNamespace, resources);
7899
+ });
7900
+ }
7901
+ }
7902
+
7903
+ _dev_only_updateStoryboard(appId, storyboardPatch) {
7904
+ var storyboard = this.bootstrapData.storyboards.find(item => item.app.id === appId);
7905
+ Object.assign(storyboard, _objectSpread(_objectSpread({}, storyboardPatch), {}, {
7906
+ $$fulfilling: Promise.resolve(),
7907
+ $$fulfilled: true
7908
+ }));
7909
+ this.postProcessStoryboard(storyboard);
7834
7910
  }
7835
7911
 
7836
7912
  loadDepsOfStoryboard(storyboard) {
7837
- var _this5 = this;
7913
+ var _this6 = this;
7838
7914
 
7839
7915
  return _asyncToGenerator$4(function* () {
7840
7916
  var {
7841
7917
  brickPackages,
7842
7918
  templatePackages
7843
- } = _this5.bootstrapData;
7919
+ } = _this6.bootstrapData;
7844
7920
 
7845
7921
  if (storyboard.dependsAll) {
7846
7922
  var dllPath = window.DLL_PATH || {};
@@ -7906,7 +7982,7 @@ class Kernel {
7906
7982
  }
7907
7983
 
7908
7984
  loadDynamicBricksInBrickConf(brickConf) {
7909
- var _this6 = this;
7985
+ var _this7 = this;
7910
7986
 
7911
7987
  return _asyncToGenerator$4(function* () {
7912
7988
  // Notice: `brickConf` contains runtime data,
@@ -7914,12 +7990,12 @@ class Kernel {
7914
7990
  // which could cause stack overflow while traversing.
7915
7991
  var bricks = scanBricksInBrickConf(brickConf);
7916
7992
  var processors = scanProcessorsInAny(brickConf);
7917
- yield _this6.loadDynamicBricks(bricks, processors);
7993
+ yield _this7.loadDynamicBricks(bricks, processors);
7918
7994
  })();
7919
7995
  }
7920
7996
 
7921
7997
  loadDynamicBricks(bricks, processors) {
7922
- var _this7 = this;
7998
+ var _this8 = this;
7923
7999
 
7924
8000
  return _asyncToGenerator$4(function* () {
7925
8001
  var filteredBricks = bricks.filter( // Only try to load undefined custom elements.
@@ -7931,7 +8007,7 @@ class Kernel {
7931
8007
  } = getDllAndDepsByResource({
7932
8008
  bricks: filteredBricks,
7933
8009
  processors
7934
- }, _this7.bootstrapData.brickPackages);
8010
+ }, _this8.bootstrapData.brickPackages);
7935
8011
  yield loadScriptOfDll(dll);
7936
8012
  yield loadScriptOfBricksOrTemplates(deps);
7937
8013
  yield loadLazyBricks(filteredBricks);
@@ -7939,7 +8015,7 @@ class Kernel {
7939
8015
  }
7940
8016
 
7941
8017
  loadEditorBricks(editorBricks) {
7942
- var _this8 = this;
8018
+ var _this9 = this;
7943
8019
 
7944
8020
  return _asyncToGenerator$4(function* () {
7945
8021
  var {
@@ -7948,7 +8024,7 @@ class Kernel {
7948
8024
  } = getDllAndDepsByResource({
7949
8025
  editorBricks: editorBricks.filter( // Only try to load undefined custom elements.
7950
8026
  item => !customElements.get(item))
7951
- }, _this8.bootstrapData.brickPackages);
8027
+ }, _this9.bootstrapData.brickPackages);
7952
8028
  yield loadScriptOfDll(dll);
7953
8029
  yield loadScriptOfBricksOrTemplates(deps);
7954
8030
  })();
@@ -8052,10 +8128,10 @@ class Kernel {
8052
8128
  }
8053
8129
 
8054
8130
  getMicroAppApiOrchestrationMapAsync() {
8055
- var _this9 = this;
8131
+ var _this10 = this;
8056
8132
 
8057
8133
  return _asyncToGenerator$4(function* () {
8058
- return yield _this9.allMicroAppApiOrchestrationPromise;
8134
+ return yield _this10.allMicroAppApiOrchestrationPromise;
8059
8135
  })();
8060
8136
  }
8061
8137
 
@@ -8147,14 +8223,14 @@ class Kernel {
8147
8223
  }
8148
8224
 
8149
8225
  getRelatedAppsAsync(appId) {
8150
- var _this10 = this;
8226
+ var _this11 = this;
8151
8227
 
8152
8228
  return _asyncToGenerator$4(function* () {
8153
8229
  if (!appId) {
8154
8230
  return [];
8155
8231
  }
8156
8232
 
8157
- var allRelatedApps = yield _this10.allRelatedAppsPromise;
8233
+ var allRelatedApps = yield _this11.allRelatedAppsPromise;
8158
8234
  var thisApp = allRelatedApps.find(item => item.microAppId === appId);
8159
8235
 
8160
8236
  if (!thisApp) {
@@ -8166,38 +8242,38 @@ class Kernel {
8166
8242
  }
8167
8243
 
8168
8244
  updateWorkspaceStack() {
8169
- var _this11 = this;
8245
+ var _this12 = this;
8170
8246
 
8171
8247
  return _asyncToGenerator$4(function* () {
8172
- if (_this11.currentApp && _this11.currentApp.id) {
8248
+ if (_this12.currentApp && _this12.currentApp.id) {
8173
8249
  var workspace = {
8174
- appId: _this11.currentApp.id,
8175
- appName: _this11.currentApp.name,
8176
- appLocaleName: _this11.currentApp.localeName,
8177
- url: _this11.currentUrl
8250
+ appId: _this12.currentApp.id,
8251
+ appName: _this12.currentApp.name,
8252
+ appLocaleName: _this12.currentApp.localeName,
8253
+ url: _this12.currentUrl
8178
8254
  };
8179
8255
 
8180
- if (_this11.workspaceStack.length > 0) {
8181
- var previousWorkspace = _this11.workspaceStack[_this11.workspaceStack.length - 1];
8256
+ if (_this12.workspaceStack.length > 0) {
8257
+ var previousWorkspace = _this12.workspaceStack[_this12.workspaceStack.length - 1];
8182
8258
 
8183
- var _relatedApps = yield _this11.getRelatedAppsAsync(previousWorkspace.appId);
8259
+ var _relatedApps = yield _this12.getRelatedAppsAsync(previousWorkspace.appId);
8184
8260
 
8185
- if (_relatedApps.some(item => item.microAppId === _this11.currentApp.id)) {
8261
+ if (_relatedApps.some(item => item.microAppId === _this12.currentApp.id)) {
8186
8262
  Object.assign(previousWorkspace, workspace);
8187
8263
  return;
8188
8264
  }
8189
8265
  }
8190
8266
 
8191
- var relatedApps = yield _this11.getRelatedAppsAsync(_this11.currentApp.id);
8267
+ var relatedApps = yield _this12.getRelatedAppsAsync(_this12.currentApp.id);
8192
8268
 
8193
8269
  if (relatedApps.length > 0) {
8194
- _this11.workspaceStack.push(workspace);
8270
+ _this12.workspaceStack.push(workspace);
8195
8271
 
8196
8272
  return;
8197
8273
  }
8198
8274
  }
8199
8275
 
8200
- _this11.workspaceStack = [];
8276
+ _this12.workspaceStack = [];
8201
8277
  })();
8202
8278
  }
8203
8279
 
@@ -8238,22 +8314,22 @@ class Kernel {
8238
8314
  }
8239
8315
 
8240
8316
  getProviderBrick(provider) {
8241
- var _this12 = this;
8317
+ var _this13 = this;
8242
8318
 
8243
8319
  return _asyncToGenerator$4(function* () {
8244
8320
  if (isCustomApiProvider(provider)) {
8245
8321
  provider = CUSTOM_API_PROVIDER;
8246
8322
  }
8247
8323
 
8248
- if (_this12.providerRepository.has(provider)) {
8249
- return _this12.providerRepository.get(provider);
8324
+ if (_this13.providerRepository.has(provider)) {
8325
+ return _this13.providerRepository.get(provider);
8250
8326
  }
8251
8327
 
8252
8328
  if (provider === CUSTOM_API_PROVIDER && !customElements.get(provider)) {
8253
8329
  registerCustomApi();
8254
8330
  }
8255
8331
 
8256
- yield _this12.loadDynamicBricks([provider]);
8332
+ yield _this13.loadDynamicBricks([provider]);
8257
8333
 
8258
8334
  if (!customElements.get(provider)) {
8259
8335
  throw new Error("Provider not defined: \"".concat(provider, "\"."));
@@ -8261,7 +8337,7 @@ class Kernel {
8261
8337
 
8262
8338
  var brick = document.createElement(provider);
8263
8339
 
8264
- _this12.providerRepository.set(provider, brick);
8340
+ _this13.providerRepository.set(provider, brick);
8265
8341
 
8266
8342
  return brick;
8267
8343
  })();
@@ -8571,6 +8647,8 @@ class LocationContext {
8571
8647
 
8572
8648
  _defineProperty$1(this, "anchorUnloadHandlers", []);
8573
8649
 
8650
+ _defineProperty$1(this, "mediaChangeHandlers", []);
8651
+
8574
8652
  _defineProperty$1(this, "messageCloseHandlers", []);
8575
8653
 
8576
8654
  _defineProperty$1(this, "messageHandlers", []);
@@ -9085,6 +9163,7 @@ class LocationContext {
9085
9163
  onPageLeave,
9086
9164
  onAnchorLoad,
9087
9165
  onAnchorUnload,
9166
+ onMediaChange,
9088
9167
  onMessage,
9089
9168
  onMessageClose
9090
9169
  } = lifeCycle !== null && lifeCycle !== void 0 ? lifeCycle : {};
@@ -9143,6 +9222,15 @@ class LocationContext {
9143
9222
  });
9144
9223
  }
9145
9224
 
9225
+ if (onMediaChange) {
9226
+ this.mediaChangeHandlers.push({
9227
+ brick,
9228
+ match,
9229
+ tplContextId,
9230
+ handler: onMediaChange
9231
+ });
9232
+ }
9233
+
9146
9234
  if (onMessage) {
9147
9235
  this.messageHandlers.push({
9148
9236
  brick,
@@ -9198,6 +9286,12 @@ class LocationContext {
9198
9286
  }
9199
9287
  }
9200
9288
 
9289
+ handleMediaChange(detail) {
9290
+ this.dispatchLifeCycleEvent(new CustomEvent("media.change", {
9291
+ detail: getReadOnlyProxy(detail)
9292
+ }), this.mediaChangeHandlers);
9293
+ }
9294
+
9201
9295
  handleMessage() {
9202
9296
  this.messageDispatcher.create(this.messageHandlers, this.getCurrentContext());
9203
9297
  }
@@ -9709,6 +9803,8 @@ class Router {
9709
9803
 
9710
9804
  _defineProperty$1(this, "navConfig", void 0);
9711
9805
 
9806
+ _defineProperty$1(this, "mediaEventTargetHandler", void 0);
9807
+
9712
9808
  this.kernel = kernel;
9713
9809
  this.featureFlags = this.kernel.getFeatureFlags();
9714
9810
  var history = getHistory();
@@ -10016,7 +10112,12 @@ class Router {
10016
10112
  _this3.kernel.unsetBars({
10017
10113
  appChanged,
10018
10114
  legacy: actualLegacy
10019
- }); // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.
10115
+ });
10116
+
10117
+ if (_this3.mediaEventTargetHandler) {
10118
+ mediaEventTarget.removeEventListener("change", _this3.mediaEventTargetHandler);
10119
+ _this3.mediaEventTargetHandler = undefined;
10120
+ } // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.
10020
10121
 
10021
10122
 
10022
10123
  _this3.locationContext.handleBeforePageLoad();
@@ -10089,6 +10190,9 @@ class Router {
10089
10190
  _this3.locationContext.handleMessage();
10090
10191
  }
10091
10192
 
10193
+ _this3.mediaEventTargetHandler = event => _this3.locationContext.handleMediaChange(event.detail);
10194
+
10195
+ mediaEventTarget.addEventListener("change", _this3.mediaEventTargetHandler);
10092
10196
  pageTracker === null || pageTracker === void 0 ? void 0 : pageTracker(locationContext.getCurrentMatch().path); // analytics page_view event
10093
10197
 
10094
10198
  userAnalytics.event("page_view", _objectSpread({
@@ -12837,7 +12941,8 @@ var developHelper = {
12837
12941
  getFakeKernel: _dev_only_getFakeKernel,
12838
12942
 
12839
12943
  /** @deprecated Keep it for backward-compatibility. */
12840
- checkoutTplContext: noop
12944
+ checkoutTplContext: noop,
12945
+ updateStoryboard: _dev_only_updateStoryboard
12841
12946
  };
12842
12947
 
12843
12948
  var _excluded$2 = ["type"];