UNPKG

monadic_react

Version:

A monadic library for easily composing React-based libraries.

111 lines 22.4 kB
"use strict"; var __assign = (this && this.__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; }; Object.defineProperty(exports, "__esModule", { value: true }); var Immutable = require("immutable"); var core_1 = require("./core"); var primitives_1 = require("./primitives"); var html_1 = require("./html"); var combinators_1 = require("./combinators"); exports.simple_inner_form = function (mode, model_name, entries) { return function (c) { return combinators_1.repeat(model_name(c.model) + "_repeater")(function (c) { return combinators_1.any(model_name(c.model) + "_inner_form")(entries.map(function (e) { return e.kind == "string" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return e.in(c.model); }, function (c) { return function (s) { var new_c = e.out(c.model)(s); var errors = e.get_errors(new_c); return { model: new_c, errors: errors.length > 0 ? c.errors.set(e.field_name, errors) : c.errors.remove(e.field_name) }; }; }, html_1.label(e.field_name, true)(html_1.div("monadic-field " + (c.errors.has(e.field_name) ? "monadic-field-error" : ""))(primitives_1.string(mode, "text", model_name(c.model) + "_" + e.field_name)))) : e.kind == "number" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return e.in(c.model); }, function (c) { return function (s) { var new_c = e.out(c.model)(s); var errors = e.get_errors(new_c); return { model: new_c, errors: errors.length > 0 ? c.errors.set(e.field_name, errors) : c.errors.remove(e.field_name) }; }; }, html_1.label(e.field_name, true)(html_1.div("monadic-field " + (c.errors.has(e.field_name) ? "monadic-field-error" : ""))(primitives_1.number(mode, model_name(c.model) + "_" + e.field_name)))) : e.kind == "image" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return e.in(c.model); }, function (c) { return function (s) { var new_c = e.out(c.model)(s); var errors = e.get_errors(new_c); return { model: new_c, errors: errors.length > 0 ? c.errors.set(e.field_name, errors) : c.errors.remove(e.field_name) }; }; }, html_1.label(e.field_name, true)(html_1.div("monadic-field " + (c.errors.has(e.field_name) ? "monadic-field-error" : ""))(html_1.image(mode, model_name(c.model) + "_" + e.field_name)))) : e.kind == "lazy image" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return null; }, function (c) { return function (_) { return c; }; }, function (_) { return e.download(c.model).then(model_name(c.model) + "_" + e.field_name + "_downloader", function (src) { return combinators_1.repeat()(function (src) { return html_1.label(e.field_name, true)(html_1.image(mode, model_name(c.model) + "_" + e.field_name))(src).then(model_name(c.model) + "_" + e.field_name + "_uploader", function (new_src) { return e.upload(c.model)(new_src); }); })(src); }).ignore(); }) : e.kind == "file" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return e.in(c.model); }, function (c) { return function (s) { var new_c = e.out(c.model)(s); var errors = e.get_errors(new_c); return { model: new_c, errors: errors.length > 0 ? c.errors.set(e.field_name, errors) : c.errors.remove(e.field_name) }; }; }, html_1.label(e.field_name, true)(html_1.div("monadic-field " + (c.errors.has(e.field_name) ? "monadic-field-error" : ""))(function (_) { return html_1.file(mode, e.filename(c.model), e.url(c.model)).ignore_with(null); }))) : e.kind == "lazy file" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return null; }, function (c) { return function (f) { return (__assign({}, c, { model: e.out(c.model)(f) })); }; }, function (_) { return html_1.label(e.field_name, true)(function (_) { return html_1.file(mode, e.filename(c.model), e.url(c.model)).then(model_name(c.model) + "_" + e.field_name + "_uploader", function (f) { return e.upload(c.model)(f).ignore_with(f); }); })(null); }) : e.kind == "datetime" ? combinators_1.retract(model_name(c.model) + "_" + e.field_name + "_retract")(function (c) { return e.in(c.model); }, function (c) { return function (s) { var new_c = e.out(c.model)(s); var errors = e.get_errors(new_c); return { model: new_c, errors: errors.length > 0 ? c.errors.set(e.field_name, errors) : c.errors.remove(e.field_name) }; }; }, primitives_1.date_time(mode, e.field_name, function () { return "Creating date_time formfield"; })) : null; }))(c); })(c); }; }; exports.form_errors = function (model_name, entries) { return function (fd) { return combinators_1.any("form-errors")(entries.map(function (e) { return e.kind != "lazy image" && e.kind != "image" ? function (c) { return c.errors.has(e.field_name) ? primitives_1.string("view", "text", model_name(c.model) + "_" + e.field_name)("" + c.errors.get(e.field_name)).ignore(model_name(c.model) + "_" + e.field_name + "_error_ignore").never() : core_1.unit(null).never(); } : function (c) { return core_1.unit(null).never(); }; }))(fd).filter(function (_) { return false; }); }; }; exports.simple_form_with_autosave = function (mode, model_name, entries, download_M, upload_M) { return download_M.then(undefined, function (c) { return exports.simple_inner_form(mode, model_name, entries)({ model: c, errors: Immutable.Map() }) .then(model_name(c) + "_error_recap", combinators_1.any()([ function (c) { return exports.form_errors(model_name, entries)(c).ignore_with(c).filter(function (_) { return false; }); }, function (c) { return core_1.unit(c); } ])) .filter(function (c) { return c.errors.isEmpty(); }, model_name(c) + "_error_filter") .map(function (c) { return c.model; }).then(model_name(c) + "_uploader", combinators_1.delay(200, model_name(c) + "_delay")(upload_M)).ignore(); }); }; exports.simple_form_with_save_button = function (mode, model_name, entries, download_M, upload_M) { return download_M.then(undefined, function (c) { return exports.simple_inner_form(mode, model_name, entries)({ model: c, errors: Immutable.Map() }).then(model_name(c) + "_form", function (c) { return combinators_1.any()([ exports.form_errors(model_name, entries), function (c) { return html_1.button("save", !c.errors.isEmpty())(c); } ])(c); }).map(function (c) { return c.model; }).then(model_name(c) + "_uploader", combinators_1.delay(200, model_name(c) + "_delayer")(upload_M)).ignore(); }); }; exports.simple_form_with_prev_and_next_buttons = function (mode, model_name, entries, prev_enabled, next_enabled, prev_visible, next_visible, on_prev, on_next) { return function (c) { return exports.simple_inner_form(mode, model_name, entries)(c).then(model_name(c.model) + "_form", function (c) { return combinators_1.any()([ exports.form_errors(model_name, entries), function (c) { return prev_visible(c) ? html_1.button("prev", prev_enabled(c))(c).map(function (c) { return (__assign({}, c, { model: on_prev(c.model) })); }) : core_1.unit(c).filter(function (_) { return false; }); }, function (c) { return next_visible(c) ? html_1.button("next", next_enabled(c))(c).map(function (c) { return (__assign({}, c, { model: on_next(c.model) })); }) : core_1.unit(c).filter(function (_) { return false; }); } ])(c); }); }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVhY3RfbW9uYWQvZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLHFDQUFzQztBQUN0QywrQkFBMEM7QUFDMUMsMkNBQXdFO0FBQ3hFLCtCQUFnRjtBQUNoRiw2Q0FBNEY7QUFpQmpGLFFBQUEsaUJBQWlCLEdBQUcsVUFBWSxJQUFTLEVBQUUsVUFBd0IsRUFBRSxPQUFzQjtJQUNwRyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxvQkFBTSxDQUFpQixVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFXLENBQUMsQ0FBQyxVQUFBLENBQUM7UUFDbEUsT0FBQSxpQkFBRyxDQUE4QixVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBYSxDQUFDLENBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDO1lBQ1gsT0FBQSxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVE7Z0JBQ2hCLHFCQUFPLENBQXlCLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQUksQ0FBQyxDQUFDLFVBQVUsYUFBVSxDQUFDLENBQzVFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQWIsQ0FBYSxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsVUFBQSxDQUFDO29CQUN4QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDN0IsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFDaEMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxD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