@codeurs/react-simple-wheel-picker
Version:
- This package is simple and flexible wheel picker for React - This package move like same as native applications picker - This package support accessibility
35 lines • 3.68 kB
JavaScript
"use strict";
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importStar(require("react"));
var styled_components_1 = __importStar(require("styled-components"));
var optionID_1 = require("../constants/optionID");
var Item = styled_components_1.default.li(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: left;\n cursor: pointer;\n ", "\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n justify-content: left;\n cursor: pointer;\n ",
"\n"])), function (props) { return "\n min-height: " + props.height + "px;\n "; });
var fadeIn = styled_components_1.keyframes(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"], ["\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n"])));
var ICON_WIDTH = 20;
var Icon = styled_components_1.default.span(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n bottom: 0;\n left: -10px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ", "px;\n opacity: 0;\n animation: ", " 200ms ease-in;\n animation-fill-mode: forwards;\n animation-delay: 200ms;\n ", "\n"], ["\n position: absolute;\n top: 0;\n bottom: 0;\n left: -10px;\n display: flex;\n justify-content: center;\n align-items: center;\n width: ", "px;\n opacity: 0;\n animation: ", " 200ms ease-in;\n animation-fill-mode: forwards;\n animation-delay: 200ms;\n ",
"\n"])), ICON_WIDTH, fadeIn, function (props) { return "\n font-size: " + props.fontSize + ";\n "; });
var Text = styled_components_1.default.p(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin: 0;\n text-align: left;\n word-wrap: break-word;\n padding-left: 10px;\n ", "\n"], ["\n margin: 0;\n text-align: left;\n word-wrap: break-word;\n padding-left: 10px;\n ",
"\n"])), function (props) { return "\n color: " + (props.isActive ? props.activeColor : props.color) + ";\n font-size: " + props.fontSize + "px;\n "; });
var WheelPickerItem = function (_a, ref) {
var id = _a.id, value = _a.value, activeID = _a.activeID, height = _a.height, color = _a.color, activeColor = _a.activeColor, fontSize = _a.fontSize, onClick = _a.onClick;
var selected = id === activeID;
return (react_1.default.createElement(Item, { role: "option", "aria-selected": selected, "aria-label": value.toString(), ref: ref, id: "" + optionID_1.OPTION_ID + id, "data-itemid": id, "data-itemvalue": value, height: height, onClick: onClick },
selected && react_1.default.createElement(Icon, { fontSize: fontSize }, "\u2713"),
react_1.default.createElement("span", { style: { width: ICON_WIDTH } }),
react_1.default.createElement(Text, { isActive: selected, color: color, activeColor: activeColor, fontSize: fontSize }, value)));
};
exports.default = react_1.forwardRef(WheelPickerItem);
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
//# sourceMappingURL=WheelPickerItem.js.map