safe-area.js 6.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var cache = null;
  4. function getSafeArea() {
  5. return new Promise(function (resolve, reject) {
  6. if (cache != null) {
  7. resolve(cache);
  8. } else {
  9. wx.getSystemInfo({
  10. success: function success(_a) {
  11. var model = _a.model,
  12. screenHeight = _a.screenHeight,
  13. statusBarHeight = _a.statusBarHeight;
  14. var iphoneX = /iphone x/i.test(model);
  15. var iphoneNew = /iPhone11/i.test(model) && screenHeight === 812;
  16. cache = {
  17. isIPhoneX: iphoneX || iphoneNew,
  18. statusBarHeight: statusBarHeight
  19. };
  20. resolve(cache);
  21. },
  22. fail: reject
  23. });
  24. }
  25. });
  26. }
  27. exports.safeArea = function (_a) {
  28. var _b = _a === void 0 ? {} : _a,
  29. _c = _b.safeAreaInsetBottom,
  30. safeAreaInsetBottom = _c === void 0 ? true : _c,
  31. _d = _b.safeAreaInsetTop,
  32. safeAreaInsetTop = _d === void 0 ? false : _d;
  33. return Behavior({
  34. properties: {
  35. safeAreaInsetTop: {
  36. type: Boolean,
  37. value: safeAreaInsetTop
  38. },
  39. safeAreaInsetBottom: {
  40. type: Boolean,
  41. value: safeAreaInsetBottom
  42. }
  43. },
  44. created: function created() {
  45. var _this = this;
  46. getSafeArea().then(function (_a) {
  47. var isIPhoneX = _a.isIPhoneX,
  48. statusBarHeight = _a.statusBarHeight;
  49. _this.set({ isIPhoneX: isIPhoneX, statusBarHeight: statusBarHeight });
  50. });
  51. }
  52. });
  53. };
  54. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNhZmUtYXJlYS5qcyJdLCJuYW1lcyI6WyJPYmplY3QiLCJ2YWx1ZSIsImNhY2hlIiwicmVzb2x2ZSIsInd4Iiwic3VjY2VzcyIsIm1vZGVsIiwiX2EiLCJzY3JlZW5IZWlnaHQiLCJzdGF0dXNCYXJIZWlnaHQiLCJpcGhvbmVYIiwiaXBob25lTmV3IiwiaXNJUGhvbmVYIiwiZmFpbCIsInJlamVjdCIsImV4cG9ydHMiLCJfYiIsIl9jIiwic2FmZUFyZWFJbnNldEJvdHRvbSIsIl9kIiwic2FmZUFyZWFJbnNldFRvcCIsInByb3BlcnRpZXMiLCJ0eXBlIiwiY3JlYXRlZCIsIl90aGlzIiwiZ2V0U2FmZUFyZWEiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxRQUFKLElBQUE7QUFDQSxTQUFBLFdBQUEsR0FBdUI7QUFDbkIsV0FBTyxJQUFBLE9BQUEsQ0FBWSxVQUFBLE9BQUEsRUFBQSxNQUFBLEVBQTJCO0FBQzFDLFlBQUlBLFNBQUosSUFBQSxFQUFtQjtBQUNmQyxvQkFBQUEsS0FBQUE7QUFESixTQUFBLE1BR0s7QUFDREMsZUFBQUEsYUFBQUEsQ0FBaUI7QUFDYkMseUJBQVMsU0FBQSxPQUFBLENBQUEsRUFBQSxFQUFjO0FBQ25CLHdCQUFJQyxRQUFRQyxHQUFaLEtBQUE7QUFBQSx3QkFBc0JDLGVBQWVELEdBQXJDLFlBQUE7QUFBQSx3QkFBc0RFLGtCQUFrQkYsR0FBeEUsZUFBQTtBQUNBLHdCQUFJRyxVQUFVLFlBQUEsSUFBQSxDQUFkLEtBQWMsQ0FBZDtBQUNBLHdCQUFJQyxZQUFZLFlBQUEsSUFBQSxDQUFBLEtBQUEsS0FBMkJILGlCQUEzQyxHQUFBO0FBQ0FOLDRCQUFRO0FBQ0pVLG1DQUFXRixXQURQLFNBQUE7QUFFSkQseUNBQWlCQTtBQUZiLHFCQUFSUDtBQUlBQyw0QkFBQUEsS0FBQUE7QUFUUyxpQkFBQTtBQVdiVSxzQkFBTUM7QUFYTyxhQUFqQlY7QUFhSDtBQWxCTCxLQUFPLENBQVA7QUFvQkg7QUFDRFcsUUFBQUEsUUFBQUEsR0FBbUIsVUFBQSxFQUFBLEVBQWM7QUFDN0IsUUFBSUMsS0FBS1QsT0FBTyxLQUFQQSxDQUFBQSxHQUFBQSxFQUFBQSxHQUFULEVBQUE7QUFBQSxRQUFrQ1UsS0FBS0QsR0FBdkMsbUJBQUE7QUFBQSxRQUErREUsc0JBQXNCRCxPQUFPLEtBQVBBLENBQUFBLEdBQUFBLElBQUFBLEdBQXJGLEVBQUE7QUFBQSxRQUFnSEUsS0FBS0gsR0FBckgsZ0JBQUE7QUFBQSxRQUEwSUksbUJBQW1CRCxPQUFPLEtBQVBBLENBQUFBLEdBQUFBLEtBQUFBLEdBQTdKLEVBQUE7QUFDQSxXQUFPLFNBQVM7QUFDWkUsb0JBQVk7QUFDUkQsOEJBQWtCO0FBQ2RFLHNCQURjLE9BQUE7QUFFZHJCLHVCQUFPbUI7QUFGTyxhQURWO0FBS1JGLGlDQUFxQjtBQUNqQkksc0JBRGlCLE9BQUE7QUFFakJyQix1QkFBT2lCO0FBRlU7QUFMYixTQURBO0FBV1pLLGlCQUFTLFNBQUEsT0FBQSxHQUFZO0FBQ2pCLGdCQUFJQyxRQUFKLElBQUE7QUFDQUMsMEJBQUFBLElBQUFBLENBQW1CLFVBQUEsRUFBQSxFQUFjO0FBQzdCLG9CQUFJYixZQUFZTCxHQUFoQixTQUFBO0FBQUEsb0JBQThCRSxrQkFBa0JGLEdBQWhELGVBQUE7QUFDQWlCLHNCQUFBQSxHQUFBQSxDQUFVLEVBQUVaLFdBQUYsU0FBQSxFQUF3QkgsaUJBQWxDZSxlQUFVLEVBQVZBO0FBRkpDLGFBQUFBO0FBSUg7QUFqQlcsS0FBVCxDQUFQO0FBRkpWLENBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgY2FjaGUgPSBudWxsO1xuZnVuY3Rpb24gZ2V0U2FmZUFyZWEoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgaWYgKGNhY2hlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJlc29sdmUoY2FjaGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd3guZ2V0U3lzdGVtSW5mbyh7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtb2RlbCA9IF9hLm1vZGVsLCBzY3JlZW5IZWlnaHQgPSBfYS5zY3JlZW5IZWlnaHQsIHN0YXR1c0JhckhlaWdodCA9IF9hLnN0YXR1c0JhckhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlwaG9uZVggPSAvaXBob25lIHgvaS50ZXN0KG1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlwaG9uZU5ldyA9IC9pUGhvbmUxMS9pLnRlc3QobW9kZWwpICYmIHNjcmVlbkhlaWdodCA9PT0gODEyO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSVBob25lWDogaXBob25lWCB8fCBpcGhvbmVOZXcsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJIZWlnaHQ6IHN0YXR1c0JhckhlaWdodFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGZhaWw6IHJlamVjdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmV4cG9ydHMuc2FmZUFyZWEgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2MgPSBfYi5zYWZlQXJlYUluc2V0Qm90dG9tLCBzYWZlQXJlYUluc2V0Qm90dG9tID0gX2MgPT09IHZvaWQgMCA/IHRydWUgOiBfYywgX2QgPSBfYi5zYWZlQXJlYUluc2V0VG9wLCBzYWZlQXJlYUluc2V0VG9wID0gX2QgPT09IHZvaWQgMCA/IGZhbHNlIDogX2Q7XG4gICAgcmV0dXJuIEJlaGF2aW9yKHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgc2FmZUFyZWFJbnNldFRvcDoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICAgICAgdmFsdWU6IHNhZmVBcmVhSW5zZXRUb3BcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYWZlQXJlYUluc2V0Qm90dG9tOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgICAgICB2YWx1ZTogc2FmZUFyZWFJbnNldEJvdHRvbVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgZ2V0U2FmZUFyZWEoKS50aGVuKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHZhciBpc0lQaG9uZVggPSBfYS5pc0lQaG9uZVgsIHN0YXR1c0JhckhlaWdodCA9IF9hLnN0YXR1c0JhckhlaWdodDtcbiAgICAgICAgICAgICAgICBfdGhpcy5zZXQoeyBpc0lQaG9uZVg6IGlzSVBob25lWCwgc3RhdHVzQmFySGVpZ2h0OiBzdGF0dXNCYXJIZWlnaHQgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbiJdLCJmaWxlIjoic2FmZS1hcmVhLmpzIn0=