UNPKG

bucklescript-tea

Version:
135 lines (122 loc) 3.64 kB
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE 'use strict'; var List = require("bs-platform/lib/js/list.js"); var Vdom = require("../src-ocaml/vdom.js"); var Block = require("bs-platform/lib/js/block.js"); var Tea_app = require("../src-ocaml/tea_app.js"); var Tea_html = require("../src-ocaml/tea_html.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); function select(param_0) { return /* Select */[param_0]; } function render_selected(param) { if (param !== undefined) { return Tea_html.div(undefined, undefined, /* [] */0, /* :: */[ /* Text */Block.__(1, ["you selected " + param]), /* :: */[ Tea_html.div(undefined, undefined, /* :: */[ Vdom.onMsg("click", /* Delete */0), /* [] */0 ], /* :: */[ /* Text */Block.__(1, ["delete selection"]), /* [] */0 ]), /* [] */0 ] ]); } else { return Tea_html.div(undefined, undefined, /* [] */0, /* :: */[ /* Text */Block.__(1, ["Nothing selected"]), /* [] */0 ]); } } function lang(l, is_selected) { var msg = /* Select */[l]; return Tea_html.li(undefined, undefined, /* :: */[ Vdom.onMsg("click", msg), /* :: */[ Vdom.style("color", "blue"), /* :: */[ is_selected ? Vdom.style("border", "1px solid black") : Tea_html.noProp, /* :: */[ is_selected ? /* Attribute */Block.__(1, [ "", "lang", l ]) : Tea_html.noProp, /* [] */0 ] ] ] ], /* :: */[ /* Text */Block.__(1, [l]), /* [] */0 ]); } function render_languages(selected, languages) { var is_selected = function (selected, language) { if (selected !== undefined) { return language === Caml_option.valFromOption(selected); } else { return false; } }; var rendered = List.map((function (l) { return lang(l, is_selected(selected, l)); }), languages); return Tea_html.ul(undefined, undefined, /* [] */0, rendered); } function update(state, param) { if (param) { return { selected: param[0], languages: state.languages }; } else { return { selected: undefined, languages: state.languages }; } } function view(state) { return Tea_html.div(undefined, undefined, /* [] */0, /* :: */[ render_selected(state.selected), /* :: */[ render_languages(state.selected, state.languages), /* [] */0 ] ]); } var partial_arg_model = { selected: "Erlang", languages: /* :: */[ "Erlang", /* :: */[ "Ocaml", /* :: */[ "Clojure", /* [] */0 ] ] ] }; var partial_arg = { model: partial_arg_model, update: update, view: view }; function main(param, param$1) { return Tea_app.beginnerProgram(partial_arg, param, param$1); } var $$delete = /* Delete */0; exports.select = select; exports.$$delete = $$delete; exports.render_selected = render_selected; exports.lang = lang; exports.render_languages = render_languages; exports.update = update; exports.view = view; exports.main = main; /* Tea_html Not a pure module */