uni-ticket-system/node_modules/@dcloudio/uni-cli-shared/dist/json/mp/utils.js
2023-12-05 10:11:10 +08:00

67 lines
2.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseTabBar = exports.parseWindowOptions = void 0;
const shared_1 = require("@vue/shared");
const pages_1 = require("../pages");
function trimJson(json) {
delete json.maxWidth;
delete json.topWindow;
delete json.leftWindow;
delete json.rightWindow;
if (json.tabBar) {
delete json.tabBar.matchMedia;
}
return json;
}
function convert(to, from, map) {
Object.keys(map).forEach((key) => {
if ((0, shared_1.hasOwn)(from, map[key])) {
to[key] = from[map[key]];
}
});
return to;
}
function parseWindowOptions(style, platform, windowOptionsMap) {
if (!style) {
return {};
}
const platformStyle = style[platform] || {};
(0, pages_1.removePlatformStyle)(trimJson(style));
const res = {};
if (windowOptionsMap) {
return (0, shared_1.extend)(convert(res, style, windowOptionsMap), platformStyle);
}
return (0, shared_1.extend)(res, style, platformStyle);
}
exports.parseWindowOptions = parseWindowOptions;
function trimTabBarJson(tabBar) {
;
[
'fontSize',
'height',
'iconWidth',
'midButton',
'selectedIndex',
'spacing',
].forEach((name) => {
delete tabBar[name];
});
return tabBar;
}
function parseTabBar(tabBar, platform, tabBarOptionsMap, tabBarItemOptionsMap) {
const platformStyle = tabBar[platform] || {};
(0, pages_1.removePlatformStyle)(trimTabBarJson(tabBar));
const res = {};
if (tabBarOptionsMap) {
if (tabBarItemOptionsMap && tabBar.list) {
tabBar.list = tabBar.list.map((item) => {
return convert({}, item, tabBarItemOptionsMap);
});
}
convert(res, tabBar, tabBarOptionsMap);
return (0, shared_1.extend)(res, platformStyle);
}
return (0, shared_1.extend)(res, tabBar, platformStyle);
}
exports.parseTabBar = parseTabBar;