choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
300 lines (245 loc) • 8.78 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getConfig = getConfig;
exports.getPrefixCls = getPrefixCls;
exports.getProPrefixCls = getProPrefixCls;
exports.getCustomizable = getCustomizable;
exports["default"] = configure;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _mobx = require("mobx");
var _react = _interopRequireDefault(require("react"));
var _noop = _interopRequireDefault(require("lodash/noop"));
var _isObject = _interopRequireDefault(require("lodash/isObject"));
var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
var _choerodonUiFont = require("choerodon-ui-font");
var _enum = require("../../pro/lib/data-set/enum");
var _localeContext = require("../../pro/lib/locale-context");
var _enum2 = require("../../pro/lib/table/enum");
var _FeedBack = _interopRequireDefault(require("../../pro/lib/data-set/FeedBack"));
var _enum3 = require("../../pro/lib/form/enum");
var _enum4 = require("../../pro/lib/button/enum");
var _utils = require("../../pro/lib/form/utils");
var _enum5 = require("../trigger/enum");
var _enum6 = require("../_util/enum");
var _popover = _interopRequireDefault(require("../popover"));
var _defaultStatus;
function isCustomizable(target) {
return (0, _isObject["default"])(target);
}
var defaultTooltipTheme = function defaultTooltipTheme(target) {
return target === 'validation' ? 'light' : 'dark';
};
var defaultRenderEmpty = function defaultRenderEmpty(componentName) {
switch (componentName) {
case 'Attachment':
return (0, _localeContext.$l)('Attachment', 'no_attachments');
case 'Table':
return (0, _localeContext.$l)('Table', 'empty_data');
case 'Select':
return (0, _localeContext.$l)('Select', 'no_matching_results');
case 'Output':
return '';
default:
}
};
var defaultFormFieldHighlightRenderer = function defaultFormFieldHighlightRenderer(_ref, element) {
var content = _ref.content,
hidden = _ref.hidden,
rest = (0, _objectWithoutProperties2["default"])(_ref, ["content", "hidden"]);
return content ? _react["default"].createElement(_popover["default"], (0, _extends2["default"])({}, hidden ? (0, _objectSpread2["default"])({}, rest, {
visible: false
}) : rest, {
content: content
}), element) : element;
};
var defaultButtonProps = {
color: _enum4.ButtonColor.primary,
funcType: _enum4.FuncType.flat
};
var defaultSpinProps = {
size: _enum6.Size["default"],
wrapperClassName: ''
};
var defaultTableColumnAlign = function defaultTableColumnAlign(_column, field) {
if (field) {
var type = field.type;
switch (type) {
case _enum.FieldType.number:
case _enum.FieldType.currency:
return _enum2.ColumnAlign.right;
case _enum.FieldType["boolean"]:
return _enum2.ColumnAlign.center;
default:
}
}
};
function getComponentKey(component) {
switch (component) {
case 'Tabs':
return 'tabs';
default:
return 'table';
}
}
var defaultLookupCache = {
maxAge: 1000 * 60 * 10,
max: 100
};
var defaultStatus = (_defaultStatus = {}, (0, _defineProperty2["default"])(_defaultStatus, _enum.RecordStatus.add, 'add'), (0, _defineProperty2["default"])(_defaultStatus, _enum.RecordStatus.update, 'update'), (0, _defineProperty2["default"])(_defaultStatus, _enum.RecordStatus["delete"], 'delete'), _defaultStatus);
var defaultCustomizedSave = function defaultCustomizedSave(code, customized, component) {
return localStorage.setItem("".concat(getComponentKey(component), ".customized.").concat(code), JSON.stringify(customized));
};
var defaultCustomizedLoad = function defaultCustomizedLoad(code, component) {
return Promise.resolve(JSON.parse(localStorage.getItem("".concat(getComponentKey(component), ".customized.").concat(code)) || 'null'));
};
var defaultFormatter = {
jsonDate: 'YYYY-MM-DD HH:mm:ss',
date: 'YYYY-MM-DD',
dateTime: 'YYYY-MM-DD HH:mm:ss',
time: 'HH:mm:ss',
year: 'YYYY',
month: 'YYYY-MM',
week: 'GGGG-Wo'
};
var defaultAttachment = {
defaultFileKey: 'file',
defaultFileSize: 0
};
var defaultConfig = {
prefixCls: 'c7n',
proPrefixCls: 'c7n-pro',
iconfontPrefix: 'icon',
ripple: true,
collapseExpandIconPosition: 'left',
collapseTrigger: 'header',
lookupCache: defaultLookupCache,
lookupUrl: function lookupUrl(code) {
return "/common/code/".concat(code, "/");
},
lookupAxiosMethod: 'post',
// lookupBatchAxiosConfig:
// codes => ({
// url: '/common/batch',
// params: codes.reduce((obj, code) => {
// obj[code] = code;
// return obj;
// }, {}),
// }),
lovDefineUrl: function lovDefineUrl(code) {
return "/sys/lov/lov_define?code=".concat(code);
},
lovQueryUrl: function lovQueryUrl(code) {
return "/common/lov/dataset/".concat(code);
},
lovTableProps: {},
lovModalProps: {},
lovAutoSelectSingle: false,
dataKey: 'rows',
totalKey: 'total',
statusKey: '__status',
tlsKey: '__tls',
status: defaultStatus,
labelLayout: _enum3.LabelLayout.horizontal,
queryBar: _enum2.TableQueryBarType.normal,
tableBorder: true,
tableHighLightRow: true,
tableSelectedHighLightRow: false,
tableRowHeight: 30,
tableDefaultRenderer: '',
tableColumnResizable: true,
tableColumnHideable: true,
performanceTableColumnHideable: true,
tableRowDraggable: false,
tableColumnDraggable: false,
performanceTableColumnDraggable: false,
tableColumnAlign: defaultTableColumnAlign,
tableSpinProps: defaultSpinProps,
tableButtonProps: defaultButtonProps,
tableCommandProps: defaultButtonProps,
tableAlwaysShowRowBox: false,
tableUseMouseBatchChoose: false,
tableEditorNextKeyEnterDown: true,
tableAutoFocus: false,
tableKeyboard: false,
tableFilterSearchText: 'params',
tableAutoHeightDiff: 80,
customizedSave: defaultCustomizedSave,
customizedLoad: defaultCustomizedLoad,
tableShowRemovedRow: true,
modalSectionBorder: true,
drawerSectionBorder: true,
drawerTransitionName: 'slide-right',
modalOkFirst: true,
modalAutoCenter: false,
modalKeyboard: true,
modalMaskClosable: false,
buttonColor: _enum4.ButtonColor["default"],
buttonFuncType: _enum4.FuncType.raised,
feedback: _FeedBack["default"],
renderEmpty: defaultRenderEmpty,
icons: _choerodonUiFont.categories,
formatter: defaultFormatter,
dropdownMatchSelectWidth: true,
selectReverse: true,
selectPagingOptionContent: '···',
selectSearchable: false,
selectTrigger: [_enum5.Action.focus, _enum5.Action.click],
useColon: false,
excludeUseColonTagList: _utils.defaultExcludeUseColonTag,
numberFieldNonStrictStep: false,
showInvalidDate: true,
highlightRenderer: defaultFormFieldHighlightRenderer,
onPerformance: _noop["default"],
performanceEnabled: {
Table: false
},
tooltipTheme: defaultTooltipTheme,
showValidation: _enum3.ShowValidation.tooltip,
attachment: defaultAttachment
};
var globalConfig = _mobx.observable.map(defaultConfig);
function getConfig(key) {
return globalConfig.get(key);
}
function getPrefixCls(suffixCls, customizePrefixCls) {
if (customizePrefixCls) {
return customizePrefixCls;
}
return "".concat(getConfig('prefixCls'), "-").concat(suffixCls);
}
function getProPrefixCls(suffixCls, customizePrefixCls) {
if (customizePrefixCls) {
return customizePrefixCls;
}
return "".concat(getConfig('proPrefixCls'), "-").concat(suffixCls);
}
function getCustomizable(component) {
var customizable = getConfig('customizable');
if ((0, _isBoolean["default"])(customizable)) {
return customizable;
}
if (isCustomizable(customizable)) {
return customizable[component];
}
}
var mergeProps = ['transport', 'feedback', 'formatter', 'attachment', 'pagination'];
function configure(config) {
var merge = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
(0, _mobx.runInAction)(function () {
Object.keys(config).forEach(function (key) {
var value = config[key];
if (merge && mergeProps.includes(key) && (0, _isObject["default"])(value)) {
globalConfig.set(key, (0, _objectSpread2["default"])({}, (0, _mobx.toJS)(globalConfig.get(key)), {}, value));
} else {
globalConfig.set(key, config[key]);
}
});
});
}
//# sourceMappingURL=index.js.map