choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
161 lines (143 loc) • 4.62 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.StoreProvider = exports["default"] = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireWildcard(require("react"));
var _configure = require("../../../../../lib/configure");
var _dataSet = _interopRequireDefault(require("../../../data-set"));
var _interface = require("../../../data-set/interface");
function processAxiosConfig() {
var axiosConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var args = arguments.length > 1 ? arguments[1] : undefined;
if (typeof axiosConfig === 'function') {
return axiosConfig((0, _objectSpread2["default"])({}, args));
}
return axiosConfig;
}
function getTransportConfig(props) {
var config = props.config,
type = props.type,
searchCode = props.searchCode,
queryDataSet = props.queryDataSet,
tableFilterAdapter = props.tableFilterAdapter;
return processAxiosConfig(tableFilterAdapter, {
type: type,
config: config,
searchCode: searchCode,
queryDataSet: queryDataSet
});
}
var ConditionDataSet = function ConditionDataSet() {
return {
paging: false,
fields: [{
name: 'fieldName',
type: _interface.FieldType.string
}, {
name: 'comparator',
type: _interface.FieldType.string,
defaultValue: 'EQUAL'
}, {
name: 'value'
}, {
name: 'searchConditionId',
type: _interface.FieldType.number
}],
dataToJSON: _interface.DataToJSON.all,
events: {
update: function update() {}
}
};
};
var QuickFilterDataSet = function QuickFilterDataSet(_ref) {
var searchCode = _ref.searchCode,
queryDataSet = _ref.queryDataSet,
tableFilterAdapter = _ref.tableFilterAdapter;
return {
paging: false,
autoQuery: false,
primaryKey: 'searchId',
transport: {
adapter: function adapter(config, type) {
return getTransportConfig({
config: config,
type: type,
searchCode: searchCode,
queryDataSet: queryDataSet,
tableFilterAdapter: tableFilterAdapter
});
}
},
fields: [{
name: 'searchName',
type: 'string',
maxLength: 10,
required: true
}, {
name: 'searchId',
type: 'string'
}, {
name: 'defaultFlag',
type: 'boolean',
falseValue: 0,
trueValue: 1
}, {
name: 'searchCode',
type: 'string',
defaultValue: searchCode
}, {
name: 'conditionList',
type: 'object'
}]
};
};
var Store = (0, _react.createContext)({});
var _default = Store;
exports["default"] = _default;
var StoreProvider = function StoreProvider(props) {
var children = props.children,
dynamicFilterBar = props.dynamicFilterBar,
queryDataSet = props.queryDataSet,
searchCode = props.searchCode;
var searchCodes = (dynamicFilterBar === null || dynamicFilterBar === void 0 ? void 0 : dynamicFilterBar.searchCode) || searchCode;
var tableFilterAdapter = (dynamicFilterBar === null || dynamicFilterBar === void 0 ? void 0 : dynamicFilterBar.tableFilterAdapter) || (0, _configure.getConfig)('tableFilterAdapter');
var filterMenuDS = (0, _react.useMemo)(function () {
return new _dataSet["default"]({
autoCreate: true,
fields: [{
name: 'filterName',
type: _interface.FieldType.string,
textField: 'searchName',
valueField: 'searchId',
options: new _dataSet["default"]({
selection: _interface.DataSetSelection.single
}),
ignore: _interface.FieldIgnore.always
}]
});
}, []);
var conditionDataSet = (0, _react.useMemo)(function () {
return new _dataSet["default"](ConditionDataSet());
}, []);
var menuDataSet = (0, _react.useMemo)(function () {
return new _dataSet["default"](QuickFilterDataSet({
searchCode: searchCodes,
queryDataSet: queryDataSet,
tableFilterAdapter: tableFilterAdapter
}));
}, []);
var value = (0, _objectSpread2["default"])({}, props, {
menuDataSet: menuDataSet,
filterMenuDS: filterMenuDS,
conditionDataSet: conditionDataSet
});
return _react["default"].createElement(Store.Provider, {
value: value
}, children);
};
exports.StoreProvider = StoreProvider;
//# sourceMappingURL=QuickFilterDataSet.js.map