@next-core/brick-kit 2.113.0 → 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
 
@@ -8594,6 +8647,8 @@ class LocationContext {
8594
8647
 
8595
8648
  _defineProperty$1(this, "anchorUnloadHandlers", []);
8596
8649
 
8650
+ _defineProperty$1(this, "mediaChangeHandlers", []);
8651
+
8597
8652
  _defineProperty$1(this, "messageCloseHandlers", []);
8598
8653
 
8599
8654
  _defineProperty$1(this, "messageHandlers", []);
@@ -9108,6 +9163,7 @@ class LocationContext {
9108
9163
  onPageLeave,
9109
9164
  onAnchorLoad,
9110
9165
  onAnchorUnload,
9166
+ onMediaChange,
9111
9167
  onMessage,
9112
9168
  onMessageClose
9113
9169
  } = lifeCycle !== null && lifeCycle !== void 0 ? lifeCycle : {};
@@ -9166,6 +9222,15 @@ class LocationContext {
9166
9222
  });
9167
9223
  }
9168
9224
 
9225
+ if (onMediaChange) {
9226
+ this.mediaChangeHandlers.push({
9227
+ brick,
9228
+ match,
9229
+ tplContextId,
9230
+ handler: onMediaChange
9231
+ });
9232
+ }
9233
+
9169
9234
  if (onMessage) {
9170
9235
  this.messageHandlers.push({
9171
9236
  brick,
@@ -9221,6 +9286,12 @@ class LocationContext {
9221
9286
  }
9222
9287
  }
9223
9288
 
9289
+ handleMediaChange(detail) {
9290
+ this.dispatchLifeCycleEvent(new CustomEvent("media.change", {
9291
+ detail: getReadOnlyProxy(detail)
9292
+ }), this.mediaChangeHandlers);
9293
+ }
9294
+
9224
9295
  handleMessage() {
9225
9296
  this.messageDispatcher.create(this.messageHandlers, this.getCurrentContext());
9226
9297
  }
@@ -9732,6 +9803,8 @@ class Router {
9732
9803
 
9733
9804
  _defineProperty$1(this, "navConfig", void 0);
9734
9805
 
9806
+ _defineProperty$1(this, "mediaEventTargetHandler", void 0);
9807
+
9735
9808
  this.kernel = kernel;
9736
9809
  this.featureFlags = this.kernel.getFeatureFlags();
9737
9810
  var history = getHistory();
@@ -10039,7 +10112,12 @@ class Router {
10039
10112
  _this3.kernel.unsetBars({
10040
10113
  appChanged,
10041
10114
  legacy: actualLegacy
10042
- }); // 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`.
10043
10121
 
10044
10122
 
10045
10123
  _this3.locationContext.handleBeforePageLoad();
@@ -10112,6 +10190,9 @@ class Router {
10112
10190
  _this3.locationContext.handleMessage();
10113
10191
  }
10114
10192
 
10193
+ _this3.mediaEventTargetHandler = event => _this3.locationContext.handleMediaChange(event.detail);
10194
+
10195
+ mediaEventTarget.addEventListener("change", _this3.mediaEventTargetHandler);
10115
10196
  pageTracker === null || pageTracker === void 0 ? void 0 : pageTracker(locationContext.getCurrentMatch().path); // analytics page_view event
10116
10197
 
10117
10198
  userAnalytics.event("page_view", _objectSpread({