choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
177 lines (141 loc) • 7.42 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.cachedTypeIntlMap = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _mobxReactLite = require("mobx-react-lite");
var _mobx = require("mobx");
var _enum = require("../core/enum");
var _enum2 = require("../data-set/enum");
var _localeContext = require("../locale-context");
var _TableContext = _interopRequireDefault(require("./TableContext"));
var _tooltip = _interopRequireDefault(require("../tooltip"));
var _Button = _interopRequireDefault(require("../button/Button"));
var _Select = _interopRequireDefault(require("../select/Select"));
var _enum3 = require("../button/enum");
var _utils = require("./utils");
var _cachedTypeIntlMap;
var Option = _Select["default"].Option;
var cachedTypeIntlMap = (_cachedTypeIntlMap = {}, (0, _defineProperty2["default"])(_cachedTypeIntlMap, _enum2.RecordCachedType.selected, 'cached_type_selected'), (0, _defineProperty2["default"])(_cachedTypeIntlMap, _enum2.RecordCachedType.add, 'cached_type_created'), (0, _defineProperty2["default"])(_cachedTypeIntlMap, _enum2.RecordCachedType.update, 'cached_type_updated'), (0, _defineProperty2["default"])(_cachedTypeIntlMap, _enum2.RecordCachedType["delete"], 'cached_type_destroyed'), _cachedTypeIntlMap);
exports.cachedTypeIntlMap = cachedTypeIntlMap;
var CachedTips = function CachedTip(props) {
var dataSet = props.dataSet,
tableStore = props.tableStore,
prefixCls = props.prefixCls;
var recordCachedType = tableStore.recordCachedType,
defaultRecordCachedType = tableStore.defaultRecordCachedType;
var options = [];
var selectedLength = dataSet.selected.length,
createdLength = dataSet.cachedCreated.length,
updatedLength = dataSet.cachedUpdated.length,
destroyedLength = dataSet.cachedDestroyed.length;
var lengths = new Map([[_enum2.RecordCachedType.selected, selectedLength], [_enum2.RecordCachedType.add, createdLength], [_enum2.RecordCachedType.update, updatedLength], [_enum2.RecordCachedType["delete"], destroyedLength]]);
lengths.forEach(function (length, key) {
if (length) {
options.push( /*#__PURE__*/_react["default"].createElement(Option, {
key: String(key),
value: key
}, (0, _localeContext.$l)('Table', cachedTypeIntlMap[key])));
if (!defaultRecordCachedType || key === _enum2.RecordCachedType.add) {
defaultRecordCachedType = key;
}
} else {
if (recordCachedType === key) {
recordCachedType = undefined;
}
if (defaultRecordCachedType === key) {
defaultRecordCachedType = undefined;
}
}
});
var optionsRenderer = (0, _react.useCallback)(function (_ref) {
var text = _ref.text,
value = _ref.value;
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, text, /*#__PURE__*/_react["default"].createElement("span", {
className: "".concat(prefixCls, "-cached-type-count")
}, (0, _utils.getCount)(dataSet, value)));
}, [prefixCls, dataSet]);
var handleChangeRecordCachedType = (0, _react.useCallback)((0, _mobx.action)(function (newRecordCachedType) {
tableStore.recordCachedType = newRecordCachedType;
}), [tableStore]);
(0, _react.useEffect)((0, _mobx.action)(function () {
if (tableStore.recordCachedType !== recordCachedType) {
tableStore.recordCachedType = recordCachedType;
}
}), [tableStore, recordCachedType]);
(0, _react.useEffect)((0, _mobx.action)(function () {
if (tableStore.defaultRecordCachedType !== defaultRecordCachedType) {
tableStore.defaultRecordCachedType = defaultRecordCachedType;
if (defaultRecordCachedType === _enum2.RecordCachedType.add) {
tableStore.showCachedSelection = true;
} else if (!defaultRecordCachedType) {
tableStore.showCachedSelection = false;
}
}
}), [tableStore, defaultRecordCachedType]);
if (options.length) {
return /*#__PURE__*/_react["default"].createElement("span", null, (0, _localeContext.$l)('Table', 'cached_tips', {
type: options.length > 1 ? /*#__PURE__*/_react["default"].createElement(_Select["default"], {
className: "".concat(prefixCls, "-cached-type"),
optionRenderer: optionsRenderer,
isFlat: true,
value: recordCachedType || defaultRecordCachedType,
onChange: handleChangeRecordCachedType,
size: _enum.Size.small,
clearButton: false
}, options) : (0, _localeContext.$l)('Table', cachedTypeIntlMap[recordCachedType || defaultRecordCachedType || _enum2.RecordCachedType.selected]),
count: (0, _utils.getCount)(dataSet, recordCachedType || defaultRecordCachedType)
}));
}
return null;
};
var ObserverCachedTips = (0, _mobxReactLite.observer)(CachedTips);
var SelectionTips = function SelectionTips() {
var _useContext = (0, _react.useContext)(_TableContext["default"]),
prefixCls = _useContext.prefixCls,
dataSet = _useContext.dataSet,
tableStore = _useContext.tableStore,
showSelectionCachedButton = _useContext.showSelectionCachedButton,
onShowCachedSelectionChange = _useContext.onShowCachedSelectionChange;
var showCachedSelection = tableStore.showCachedSelection;
var getTitle = function getTitle() {
return (0, _localeContext.$l)('Table', showCachedSelection ? 'hide_cached_records' : 'show_cached_records');
};
var cachedButton = showSelectionCachedButton && (dataSet.cacheSelectionKeys || dataSet.cacheModifiedKeys) && dataSet.cachedRecords.length > 0 ? /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
title: getTitle
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
size: _enum.Size.small,
className: "".concat(prefixCls, "-switch"),
funcType: _enum3.FuncType.flat,
icon: showCachedSelection ? 'visibility_off' : 'visibility',
onClick: (0, _mobx.action)(function () {
var newShowCachedSelection = !showCachedSelection;
tableStore.showCachedSelection = newShowCachedSelection;
if (onShowCachedSelectionChange) {
onShowCachedSelectionChange(newShowCachedSelection);
}
})
})) : null;
if (tableStore.showCachedTips) {
return /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-selection-tips")
}, /*#__PURE__*/_react["default"].createElement(ObserverCachedTips, {
dataSet: dataSet,
tableStore: tableStore,
prefixCls: prefixCls
}), cachedButton);
}
return tableStore.showSelectionTips ? /*#__PURE__*/_react["default"].createElement("div", {
className: "".concat(prefixCls, "-selection-tips")
}, /*#__PURE__*/_react["default"].createElement("span", null, (0, _localeContext.$l)('Table', 'selection_tips', {
count: (0, _utils.getCount)(dataSet, _enum2.RecordCachedType.selected)
})), cachedButton) : cachedButton;
};
SelectionTips.displayName = 'SelectionTips';
var _default = (0, _mobxReactLite.observer)(SelectionTips);
exports["default"] = _default;
//# sourceMappingURL=SelectionTips.js.map