UNPKG

tandem-front-end

Version:

Visual editor for web components

70 lines 3.06 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; }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var recompose_1 = require("recompose"); var DropdownMenuItem = require("./view.pc").DropdownMenuItem; var tandem_common_1 = require("tandem-common"); exports.dropdownMenuOptionFromValue = function (value) { return ({ label: value, value: value }); }; exports.default = recompose_1.compose(recompose_1.pure, recompose_1.withState("open", "setOpen", false), recompose_1.withHandlers({ onClick: function (_a) { var open = _a.open, setOpen = _a.setOpen; return function () { setOpen(!open); }; }, onItemClick: function (_a) { var onChange = _a.onChange, onChangeComplete = _a.onChangeComplete, setOpen = _a.setOpen; return function (item, event) { if (onChange) { onChange(item.value); } if (onChangeComplete) { onChangeComplete(item.value); } setOpen(false); }; }, onKeyDown: function (_a) { var setOpen = _a.setOpen; return function (event) { if (event.key === "Enter") { setOpen(true); } }; }, onBlur: function (_a) { var setOpen = _a.setOpen; return function () { // setOpen(false); }; } }), function (Base) { return function (_a) { var value = _a.value, _b = _a.options, options = _b === void 0 ? tandem_common_1.EMPTY_ARRAY : _b, open = _a.open, onKeyDown = _a.onKeyDown, onBlur = _a.onBlur, onItemClick = _a.onItemClick, rest = __rest(_a, ["value", "options", "open", "onKeyDown", "onBlur", "onItemClick"]); var menuItems = open ? options.map(function (item, i) { return (React.createElement(DropdownMenuItem, { key: i, onClick: function (event) { return onItemClick(item, event); } }, item.label)); }) : tandem_common_1.EMPTY_ARRAY; var selectedItem = options.find(function (item) { return item.value === value; }); return (React.createElement(Base, __assign({ popoverProps: { open: open }, tabIndex: 0, onKeyDown: onKeyDown, onBlur: onBlur, menuProps: { children: menuItems }, labelProps: { text: (selectedItem && selectedItem.label) || "--" } }, rest))); }; }); //# sourceMappingURL=controller.js.map