utils.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.parseTabBar = exports.parseWindowOptions = void 0;
  4. const shared_1 = require("@vue/shared");
  5. const pages_1 = require("../pages");
  6. function trimJson(json) {
  7. delete json.maxWidth;
  8. delete json.topWindow;
  9. delete json.leftWindow;
  10. delete json.rightWindow;
  11. if (json.tabBar) {
  12. delete json.tabBar.matchMedia;
  13. }
  14. return json;
  15. }
  16. function convert(to, from, map) {
  17. Object.keys(map).forEach((key) => {
  18. if ((0, shared_1.hasOwn)(from, map[key])) {
  19. to[key] = from[map[key]];
  20. }
  21. });
  22. return to;
  23. }
  24. function parseWindowOptions(style, platform, windowOptionsMap) {
  25. if (!style) {
  26. return {};
  27. }
  28. const platformStyle = style[platform] || {};
  29. (0, pages_1.removePlatformStyle)(trimJson(style));
  30. const res = {};
  31. if (windowOptionsMap) {
  32. return (0, shared_1.extend)(convert(res, style, windowOptionsMap), platformStyle);
  33. }
  34. return (0, shared_1.extend)(res, style, platformStyle);
  35. }
  36. exports.parseWindowOptions = parseWindowOptions;
  37. function trimTabBarJson(tabBar) {
  38. ;
  39. [
  40. 'fontSize',
  41. 'height',
  42. 'iconWidth',
  43. 'midButton',
  44. 'selectedIndex',
  45. 'spacing',
  46. ].forEach((name) => {
  47. delete tabBar[name];
  48. });
  49. return tabBar;
  50. }
  51. function parseTabBar(tabBar, platform, tabBarOptionsMap, tabBarItemOptionsMap) {
  52. const platformStyle = tabBar[platform] || {};
  53. (0, pages_1.removePlatformStyle)(trimTabBarJson(tabBar));
  54. const res = {};
  55. if (tabBarOptionsMap) {
  56. if (tabBarItemOptionsMap && tabBar.list) {
  57. tabBar.list = tabBar.list.map((item) => {
  58. return convert({}, item, tabBarItemOptionsMap);
  59. });
  60. }
  61. convert(res, tabBar, tabBarOptionsMap);
  62. return (0, shared_1.extend)(res, platformStyle);
  63. }
  64. return (0, shared_1.extend)(res, tabBar, platformStyle);
  65. }
  66. exports.parseTabBar = parseTabBar;