UNPKG

reactware

Version:

Reactware is an open source toolkit for developing desktop PWA with HTML, CSS, and JS

304 lines (241 loc) 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var Styles = _interopRequireWildcard(require("../styles")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _templateObject9() { var data = _taggedTemplateLiteral(["\n min-height: 100px;\n padding: 5px;\n overflow-y: auto;\n background: #535353;\n"]); _templateObject9 = function _templateObject9() { return data; }; return data; } function _templateObject8() { var data = _taggedTemplateLiteral(["\n background: #535353;\n color: white;\n border-bottom: 2px solid transparent;\n border-top: 1px solid #6a6a6a;\n "]); _templateObject8 = function _templateObject8() { return data; }; return data; } function _templateObject7() { var data = _taggedTemplateLiteral(["\n &:last-child {\n border-right: 1px solid transparent;\n }\n "]); _templateObject7 = function _templateObject7() { return data; }; return data; } function _templateObject6() { var data = _taggedTemplateLiteral(["\n ", ";\n\n position: relative;\n padding: 3px 7px;\n color: rgba(255,255,255, 0.5);\n border-right: 1px solid #282828;\n display: inline-block;\n cursor: default;\n white-space: nowrap;\n white-space: nowrap; \n overflow: hidden;\n text-overflow: ellipsis;\n\n border-top: 1px solid transparent;\n border-bottom: 2px solid transparent;\n\n ", ";\n \n ", "\n\n"]); _templateObject6 = function _templateObject6() { return data; }; return data; } function _templateObject5() { var data = _taggedTemplateLiteral(["\n grid-template-columns: ", ";\n "]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = _taggedTemplateLiteral(["\n grid-template-columns: ", ";\n "]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = _taggedTemplateLiteral(["\n display: grid;\n grid-auto-flow: column;\n\n ", "\n\n ", "\n\n background-image: linear-gradient(#4a4a4a 0%,#3c3c3c 10%,#373737 90%,#020202 95%, #e0e0e0 100%);\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = _taggedTemplateLiteral(["\n ", "\n\n display: grid;\n grid-template-rows: auto 1fr;\n width: 100%;\n\n background: #535353;\n border: 1px solid #282828;\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = _taggedTemplateLiteral(["\n ", "\n\n cursor: pointer;\n text-decoration: none;\n color: #7fa9d2;\n text-shadow: 0 -1px 0 black;\n \n &:visited {\n color: #7fa9d2;\n }\n\n &:hover {\n color: #71a0cf;\n }\n\n &:active {\n color: #95bfea;\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var A = _styledComponents.default.a(_templateObject(), Styles.font.size); // export default class Tabs extends React.Component { // static propTypes = { // to: PropTypes.string, // onClick: PropTypes.func, // }; // static defaultProps = { // to: null, // onClick: () => {}, // }; // constructor(props) { // super(props); // this.state = { // }; // } // onClick(event) { // const { onClick, to } = this.props; // if (!to) event.preventDefault(); // onClick(event); // } // render() { // const { // props: { // children, to, ...rest // }, // } = this; // // <PanelGroupContainer> // // <PanelGroup footer="footer"> // // <Panel name="Fonts">1</Panel> // // <Panel name="Colors">2</Panel> // // <Panel name="Styles">3</Panel> // // </PanelGroup> // // </PanelGroupContainer> // return ( // <A // onClick={event => this.onClick(event)} // target="_blank" // href={to} // {...rest} // > // {children} // </A> // ); // } // } // const Panel = (props) => ( // <div className="panel-body"> // {props.children} // </div> // ); // const ResizeHandle = (props) => { // const { vertical, NE, NW, area, action, ...rest } = props; // const text = NE ? "·" : ((NW) ? '·' : (vertical ? '⋮' : '···')); // const className = NE ? "ne" : ((NW) ? 'nw' : (vertical ? 'vertical' : '')); // return ( // <div // className={`resize area-${area} ${className}`} // onMouseDown={(event) => action(event, area)} // {...rest} // > // { text } // </div> // ); // } var Container = _styledComponents.default.div(_templateObject2(), Styles.font.size); // ${props => props.spaced && css` // display: grid; // grid-auto-flow: column; // grid-template-columns: repeat(auto-fit, minmax(10px, 1fr)); // `} var Headers = _styledComponents.default.div(_templateObject3(), function (props) { return (0, _styledComponents.css)(_templateObject4(), props.items.map(function (item, index) { return index === props.active ? 'minmax(max-content,max-content) ' : 'minmax(10px, min-content) '; })); }, function (props) { return props.spaced && (0, _styledComponents.css)(_templateObject5(), props.items.map(function (item, index) { return index === props.active ? 'minmax(max-content,1fr) ' : '1fr '; })); }); var Header = _styledComponents.default.div(_templateObject6(), Styles.other.unselectable, function (props) { return props.spaced && (0, _styledComponents.css)(_templateObject7()); }, function (props) { return props.active && (0, _styledComponents.css)(_templateObject8()); }); var Body = _styledComponents.default.div(_templateObject9()); var Tabs = /*#__PURE__*/ function (_React$Component) { _inherits(Tabs, _React$Component); function Tabs(props) { var _this; _classCallCheck(this, Tabs); _this = _possibleConstructorReturn(this, _getPrototypeOf(Tabs).call(this, props)); _this.state = { active: props.active }; return _this; } _createClass(Tabs, [{ key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { var active = this.props.active; if (nextProps.active !== active) { this.setState({ active: nextProps.active }); } } }, { key: "onClick", value: function onClick(index, item, event) { var onChange = this.props.onChange; this.setState({ active: index }); onChange(index, item, event); } }, { key: "render", value: function render() { var _this2 = this; var _this$props = this.props, items = _this$props.items, spaced = _this$props.spaced, active = this.state.active; return _react.default.createElement(Container, null, _react.default.createElement(Headers, { spaced: spaced, active: active, items: items }, items.map(function (item, index) { return _react.default.createElement(Header, { key: "header-".concat(item.label), onClick: function onClick(event) { return _this2.onClick(index, item, event); }, active: index === active, spaced: spaced }, item.label); })), _react.default.createElement(Body, null, items[active] && items[active].content)); } }]); return Tabs; }(_react.default.Component); exports.default = Tabs; _defineProperty(Tabs, "propTypes", { items: _propTypes.default.arrayOf(_propTypes.default.shape({ label: _propTypes.default.any, content: _propTypes.default.any })).isRequired, active: _propTypes.default.number, spaced: _propTypes.default.bool, onChange: _propTypes.default.func }); _defineProperty(Tabs, "defaultProps", { active: 0, spaced: false, onChange: function onChange() {} });