@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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.114.0](https://github.com/easyops-cn/next-core/compare/@next-core/brick-kit@2.113.0...@next-core/brick-kit@2.114.0) (2022-03-29)
7
+
8
+
9
+ ### Features
10
+
11
+ * add MEDIA gloabl object and onMediaChange life cycle ([3192ee4](https://github.com/easyops-cn/next-core/commit/3192ee4e595e2edc78d05b68d6cf0431905296fb))
12
+
13
+
14
+
15
+
16
+
6
17
  # [2.113.0](https://github.com/easyops-cn/next-core/compare/@next-core/brick-kit@2.112.1...@next-core/brick-kit@2.113.0) (2022-03-29)
7
18
 
8
19
 
@@ -2186,6 +2186,56 @@
2186
2186
  return tplContextMap.get(tplContextId);
2187
2187
  }
2188
2188
 
2189
+ var MediaSize;
2190
+
2191
+ (function (MediaSize) {
2192
+ MediaSize["xLarge"] = "xLarge";
2193
+ MediaSize["large"] = "large";
2194
+ MediaSize["medium"] = "medium";
2195
+ MediaSize["small"] = "small";
2196
+ MediaSize["xSmall"] = "xSmall";
2197
+ })(MediaSize || (MediaSize = {}));
2198
+
2199
+ var mediaSizeBreakpointMap = new Map([[MediaSize.xLarge, "1920px"], [MediaSize.large, "1600px"], [MediaSize.medium, "1280px"], [MediaSize.small, "1024px"], [MediaSize.xSmall, 0]]);
2200
+ var mediaEventTarget = new EventTarget$1();
2201
+ var sizeMatchesMap = {};
2202
+ var MEDIA = {};
2203
+
2204
+ function handleMatchesChange(data, size) {
2205
+ var changed = false;
2206
+ sizeMatchesMap[size] = data.matches;
2207
+
2208
+ for (var [_size] of mediaSizeBreakpointMap) {
2209
+ if (sizeMatchesMap[_size] && MEDIA.size !== _size) {
2210
+ MEDIA.size = _size;
2211
+ changed = true;
2212
+ break;
2213
+ }
2214
+ }
2215
+
2216
+ if (changed) {
2217
+ mediaEventTarget.dispatchEvent(new CustomEvent("change", {
2218
+ detail: MEDIA
2219
+ }));
2220
+ }
2221
+ }
2222
+
2223
+ mediaSizeBreakpointMap.forEach((breakpoint, size) => {
2224
+ var mediaQueryList = window.matchMedia("(min-width: ".concat(breakpoint, ")"));
2225
+ handleMatchesChange(mediaQueryList, size);
2226
+
2227
+ if (mediaQueryList.addEventListener) {
2228
+ mediaQueryList.addEventListener("change", event => {
2229
+ handleMatchesChange(event, size);
2230
+ });
2231
+ } else {
2232
+ mediaQueryList.addListener(event => {
2233
+ handleMatchesChange(event, size);
2234
+ });
2235
+ }
2236
+ });
2237
+ var getMedia = () => MEDIA;
2238
+
2189
2239
  var symbolForRaw = Symbol.for("pre.evaluated.raw");
2190
2240
  var symbolForContext = Symbol.for("pre.evaluated.context");
2191
2241
  function isPreEvaluated(raw) {
@@ -2422,6 +2472,9 @@
2422
2472
  case "SYS":
2423
2473
  return getReadOnlyProxy(sys);
2424
2474
 
2475
+ case "MEDIA":
2476
+ return getReadOnlyProxy(getMedia());
2477
+
2425
2478
  case "__WIDGET_FN__":
2426
2479
  return widgetFunctions;
2427
2480
 
@@ -8593,6 +8646,8 @@
8593
8646
 
8594
8647
  _defineProperty__default["default"](this, "anchorUnloadHandlers", []);
8595
8648
 
8649
+ _defineProperty__default["default"](this, "mediaChangeHandlers", []);
8650
+
8596
8651
  _defineProperty__default["default"](this, "messageCloseHandlers", []);
8597
8652
 
8598
8653
  _defineProperty__default["default"](this, "messageHandlers", []);
@@ -9107,6 +9162,7 @@
9107
9162
  onPageLeave,
9108
9163
  onAnchorLoad,
9109
9164
  onAnchorUnload,
9165
+ onMediaChange,
9110
9166
  onMessage,
9111
9167
  onMessageClose
9112
9168
  } = lifeCycle !== null && lifeCycle !== void 0 ? lifeCycle : {};
@@ -9165,6 +9221,15 @@
9165
9221
  });
9166
9222
  }
9167
9223
 
9224
+ if (onMediaChange) {
9225
+ this.mediaChangeHandlers.push({
9226
+ brick,
9227
+ match,
9228
+ tplContextId,
9229
+ handler: onMediaChange
9230
+ });
9231
+ }
9232
+
9168
9233
  if (onMessage) {
9169
9234
  this.messageHandlers.push({
9170
9235
  brick,
@@ -9220,6 +9285,12 @@
9220
9285
  }
9221
9286
  }
9222
9287
 
9288
+ handleMediaChange(detail) {
9289
+ this.dispatchLifeCycleEvent(new CustomEvent("media.change", {
9290
+ detail: getReadOnlyProxy(detail)
9291
+ }), this.mediaChangeHandlers);
9292
+ }
9293
+
9223
9294
  handleMessage() {
9224
9295
  this.messageDispatcher.create(this.messageHandlers, this.getCurrentContext());
9225
9296
  }
@@ -9731,6 +9802,8 @@
9731
9802
 
9732
9803
  _defineProperty__default["default"](this, "navConfig", void 0);
9733
9804
 
9805
+ _defineProperty__default["default"](this, "mediaEventTargetHandler", void 0);
9806
+
9734
9807
  this.kernel = kernel;
9735
9808
  this.featureFlags = this.kernel.getFeatureFlags();
9736
9809
  var history = getHistory();
@@ -10038,7 +10111,12 @@
10038
10111
  _this3.kernel.unsetBars({
10039
10112
  appChanged,
10040
10113
  legacy: actualLegacy
10041
- }); // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.
10114
+ });
10115
+
10116
+ if (_this3.mediaEventTargetHandler) {
10117
+ mediaEventTarget.removeEventListener("change", _this3.mediaEventTargetHandler);
10118
+ _this3.mediaEventTargetHandler = undefined;
10119
+ } // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.
10042
10120
 
10043
10121
 
10044
10122
  _this3.locationContext.handleBeforePageLoad();
@@ -10111,6 +10189,9 @@
10111
10189
  _this3.locationContext.handleMessage();
10112
10190
  }
10113
10191
 
10192
+ _this3.mediaEventTargetHandler = event => _this3.locationContext.handleMediaChange(event.detail);
10193
+
10194
+ mediaEventTarget.addEventListener("change", _this3.mediaEventTargetHandler);
10114
10195
  pageTracker === null || pageTracker === void 0 ? void 0 : pageTracker(locationContext.getCurrentMatch().path); // analytics page_view event
10115
10196
 
10116
10197
  easyopsAnalytics.userAnalytics.event("page_view", _objectSpread__default["default"]({