@flatbiz/antd
Version:
88 lines (84 loc) • 3.49 kB
JavaScript
/*! @flatjs/forge MIT @flatbiz/antd */
import { c as _toConsumableArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BYm17lo8.js';
import { get } from '@dimjs/utils/get/get';
import { useEffect } from 'react';
import { theme, App } from 'antd';
import { toArray } from '@flatbiz/utils';
import { C as ConfigProviderWrapper } from './config-provider-wrapper-DDa_64Ce.js';
import { F as FbaApp } from './fba-app-DO_YME_j.js';
import { fbaHooks } from './fba-hooks/index.js';
import { jsx } from 'react/jsx-runtime';
/**
* 如果当前项目入口不使用@flatbiz/pro-layout,必须使用 Bootstrap 组件包装
* ```
* Bootstrap 内部
* 1. 封装 antd App组件
* 2. 封装 @flatbiz/antd FbaApp组件
* 3. 适配 light/dark模式
* 4. 封装 antd ConfigProvider 可配置主题
* ```
*/
var Bootstrap = function Bootstrap(props) {
var _props$configProvider, _props$configProvider2;
useEffect(function () {
var bodyStyle = document.body.style.cssText;
var keyValuePairs = {};
if (bodyStyle) {
var regex = /(.+?):\s*(.+?);/g;
var match;
while (match = regex.exec(bodyStyle)) {
var key = match[1].trim();
var value = match[2];
keyValuePairs[key] = value;
}
}
if (props.dark) {
keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.dark.bgColor', '#1b1a1a');
keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.dark.blockBgColor', '#000');
} else {
keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.light.bgColor', '#f9f9f9');
keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.light.blockBgColor', '#FFF');
}
var varStyleText = '';
Object.keys(keyValuePairs).forEach(function (key) {
if (keyValuePairs[key]) {
varStyleText = varStyleText + "".concat(key, ":").concat(keyValuePairs[key], ";");
}
});
document.body.style.cssText = varStyleText;
if (props.dark) {
document.body.classList.add('dark-theme');
} else {
document.body.classList.add('light-theme');
}
if (props.compact) {
document.body.classList.add('compact-theme');
}
}, [props.bgColorConfig, props.dark]);
var innerTheme = fbaHooks.useThemeToken();
var algorithm = (_props$configProvider = props.configProviderProps) === null || _props$configProvider === void 0 || (_props$configProvider = _props$configProvider.theme) === null || _props$configProvider === void 0 ? void 0 : _props$configProvider.algorithm;
var algorithmArray = toArray(algorithm);
algorithmArray = [].concat(_toConsumableArray(algorithmArray), [props.dark ? theme.darkAlgorithm : null, props.compact ? theme.compactAlgorithm : null]).filter(Boolean);
return /*#__PURE__*/jsx(ConfigProviderWrapper, _objectSpread2(_objectSpread2({
locale: props.locale,
componentSize: 'middle',
space: {
size: 'middle'
}
}, props.configProviderProps), {}, {
theme: _objectSpread2(_objectSpread2({}, (_props$configProvider2 = props.configProviderProps) === null || _props$configProvider2 === void 0 ? void 0 : _props$configProvider2.theme), {}, {
algorithm: algorithmArray
}),
children: /*#__PURE__*/jsx(App, {
style: {
'--color-primary': innerTheme.colorPrimary
},
className: "bootstrap-app",
children: /*#__PURE__*/jsx(FbaApp, {
children: props.children
})
})
}));
};
export { Bootstrap as B };
//# sourceMappingURL=bootstrap-NbEW5Nn8.js.map