react-application-core
Version:
A react-based application core for the business applications.
90 lines • 4.17 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EditedListMiddlewareFactories = void 0;
var redux_effects_promise_1 = require("redux-effects-promise");
var action_builder_1 = require("../../component/action.builder");
var util_1 = require("../../util");
var chained_middleware_1 = require("./chained.middleware");
var default_form_changes_middleware_1 = require("./default-form-changes.middleware");
/**
* @stable [20.01.2021]
* @param cfg
*/
var asChainedConfigEntity = function (cfg) {
return util_1.FilterUtils.defValuesFilter({
action: cfg.action,
nextSection: util_1.SectionUtils.asFormSection(cfg),
path: cfg.path,
state: cfg.state,
});
};
/**
* @middleware
* @stable [20.01.2021]
*
* @param config
*/
var makeCreateEntityMiddleware = function (config) {
return util_1.ConditionUtils.ifNotEmptyThanValue(util_1.FilterUtils.notNilValuesArrayFilter.apply(util_1.FilterUtils, __spreadArrays(chained_middleware_1.ChainedMiddlewareFactories.chainedMiddleware(asChainedConfigEntity(config)) || [], [default_form_changes_middleware_1.DefaultFormChangesMiddlewareFactories.defaultFormChangesMiddleware(config)])), function (actions) { return actions; });
};
/**
* @middleware
* @stable [20.01.2021]
*
* @param cfg
*/
var makeSelectEntityMiddleware = function (cfg) {
var action = cfg.action;
var payload = util_1.Selectors.selectedEntityFromAction(action);
return cfg.lazyLoading
? [
action_builder_1.ListActionBuilder.buildLazyLoadAction(util_1.SectionUtils.asListSection(cfg), util_1.FilterUtils.defValuesFilter({
preventEffects: util_1.Selectors.preventEffectsFromAction(action),
previousAction: util_1.Selectors.previousActionFromAction(action),
selected: payload,
}))
]
: chained_middleware_1.ChainedMiddlewareFactories.chainedMiddleware(__assign(__assign({}, asChainedConfigEntity(cfg)), { payload: payload }));
};
/**
* @middleware
* @stable [20.01.2021]
*
* @param config
*/
var makeLazyLoadedEntityMiddleware = function (config) {
return util_1.ConditionUtils.ifNotEmptyThanValue(util_1.FilterUtils.notNilValuesArrayFilter.apply(util_1.FilterUtils, __spreadArrays(util_1.ConditionUtils.ifNotNilThanValue(util_1.Selectors.previousActionTypeFromAction(config.action), function (previousActionType) { return [
redux_effects_promise_1.EffectsAction.create(redux_effects_promise_1.EffectsActionBuilder.buildDoneActionType(previousActionType))
]; }, []), chained_middleware_1.ChainedMiddlewareFactories.chainedMiddleware(__assign(__assign({}, asChainedConfigEntity(config)), { payload: config.action.data })) || [])), function (actions) { return actions; });
};
/**
* @stable [20.01.2021]
*/
var EditedListMiddlewareFactories = /** @class */ (function () {
function EditedListMiddlewareFactories() {
}
EditedListMiddlewareFactories.createEntityMiddleware = makeCreateEntityMiddleware;
EditedListMiddlewareFactories.lazyLoadedEntityMiddleware = makeLazyLoadedEntityMiddleware;
EditedListMiddlewareFactories.selectEntityMiddleware = makeSelectEntityMiddleware;
return EditedListMiddlewareFactories;
}());
exports.EditedListMiddlewareFactories = EditedListMiddlewareFactories;
//# sourceMappingURL=edited-list.middleware.js.map