sws-frontend
Version:
sws frontend project
175 lines • 9.62 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var react_bootstrap_1 = require("react-bootstrap");
var Waypoint = require('react-waypoint');
var ReactCSSTransitionGroup = require("react-addons-css-transition-group");
require("./worksheet.scss");
var Sheet = (function (_super) {
__extends(Sheet, _super);
function Sheet(props) {
var _this = _super.call(this, props) || this;
_this.onEnter = function () {
this.setState({ fixed: false });
};
_this.onLeave = function () {
this.setState({ fixed: true });
};
_this.state = { fixed: false };
return _this;
}
Sheet.prototype.render = function () {
var _this = this;
var _a = this.props, log = _a.log, subtitle = _a.subtitle, backButton = _a.backButton, title = _a.title, children = _a.children, loading = _a.loading, className = _a.className, onWaitCancel = _a.onWaitCancel, icon = _a.icon, subpage = _a.subpage;
var buttons = []; //partition(React.Children.toArray(children), function(p:any) { return (p.type == BarButton) || (p.props.role == "button") } );
var itemProps = [];
var rest = [];
var headerContent; //a wrapper with header-content as role
React.Children.toArray(children).map(function (p) {
if (p.props.role == "button" || p.type == exports.BarButton) {
buttons.push(p);
}
else if (p.props.role == "item-prop") {
itemProps.push(p);
}
else if (p.props.role == 'header-content') {
headerContent = p;
}
else {
rest.push(p);
}
});
var BackButton = (backButton &&
React.createElement("div", { className: "back-button" }, backButton.map(function (b, index) {
return React.createElement("a", { key: index, onClick: b.callback },
React.createElement("i", { className: "material-icons" }, "chevron_right"),
React.createElement("span", { className: "text" }, b.text));
})));
var header = React.createElement("div", { className: "worksheet-header" },
BackButton,
React.createElement("div", { className: "worksheet-headertitle" },
icon && React.createElement("i", { className: "material-icons" }, icon),
" ",
title,
subpage && React.createElement("small", null, subpage)),
subtitle &&
React.createElement("div", { className: "worksheet-subtitle" },
React.createElement("p", { className: "lead" }, subtitle)),
itemProps &&
React.createElement("div", { className: "item-props" }, itemProps),
React.createElement("div", { className: "worksheet-headerbar" }, buttons),
headerContent);
// {
// false &&
// <Sticky onStickyStateChange={() => {this.setState({fixed: !this.state.fixed})}} stickyClassName={"sticky"} className="sticky-item" topOffset={0} stickyStyle={ { marginTop: 0 }}>
// <div className="nav-scroll-fixed"></div>
// </Sticky>
// }
return (React.createElement(react_bootstrap_1.Panel, { className: className ? 'worksheet ' + className : 'worksheet', header: header },
React.createElement(ReactCSSTransitionGroup, { transitionName: "slide", transitionEnterTimeout: 300, transitionLeaveTimeout: 200 }, loading ?
React.createElement("div", { className: "worksheet-spinner-wrapper" },
React.createElement("div", { className: "worksheet-spinner-group" },
React.createElement("div", { className: "worksheet-spinner-spinner-wrapper" },
React.createElement("div", { className: "worksheet-spinner" })),
React.createElement(react_bootstrap_1.Button, { bsStyle: "info", className: "worksheet-spinner-button", onClick: onWaitCancel },
"Enough waiting, quit this now ",
React.createElement("i", { className: "material-icons" }, "close")),
log &&
React.createElement("div", { className: "log" }, log)))
: null),
React.createElement(Waypoint, { scrollableAncestor: window, onEnter: function () { return _this.onEnter(); }, onLeave: function () { return _this.onLeave(); } }),
React.createElement("div", { className: "content " + (this.state.fixed ? "fixed" : "not-fixed") },
React.createElement("div", { className: "nav-scroll-fixed" }),
rest)));
};
return Sheet;
}(React.Component));
exports.default = Sheet;
exports.BarButton = function (p) {
var iconLeft = p.iconLeft, _a = p.text, text = _a === void 0 ? "" : _a, role = p.role, name = p.name, _b = p.disabled, disabled = _b === void 0 ? false : _b, onClick = p.onClick, error = p.error, errorMessage = p.errorMessage, errorNumber = p.errorNumber, children = p.children;
var classes = 'material-icons md-24 md-light circle-icon worksheet-button';
if (role)
classes = classes + (" theme-" + role);
var content;
if (children) {
content = children;
}
else {
content =
React.createElement("div", null,
iconLeft && React.createElement("i", { className: classes }, name),
text && React.createElement("span", { className: "text" }, text),
!iconLeft && React.createElement("i", { className: classes }, name),
error &&
React.createElement("span", { className: "badge badge-error" },
React.createElement("i", { className: "material-icons" }, "warning"),
errorNumber),
error &&
React.createElement("span", { className: "error-message-wrapper" },
React.createElement("span", { className: "error-message" }, errorMessage || "You have some errors to solve")));
}
return (React.createElement("a", { className: "btn-topbar btn btn-lg btn-" + role + " " + (disabled ? "disabled" : "") + " " + (text ? " with-text" : "no-text") + " " + (error ? 'with-error' : '') + " " + (p.className ? p.className : ''), role: "button", onClick: disabled ? undefined : onClick }, content));
};
exports.BarButtonsGroup = function (p) {
var children = p.children;
//const [buttons] = partition(React.Children.toArray(children),['type', BarButton]);
return (React.createElement(react_bootstrap_1.ButtonGroup, { className: "btn-topbar " + p.className, role: "group" }, children));
};
exports.ItemLightProp = function (p) {
var children = p.children, label = p.label, icon = p.icon, onClick = p.onClick, btnStyle = p.btnStyle, tooltip = p.tooltip, className = p.className;
var tooltipComponent = function (body) { return React.createElement(react_bootstrap_1.Tooltip, { id: "tooltip" }, body); };
var ItemProp = (React.createElement(react_bootstrap_1.Button, { bsSize: "xsmall", className: (className ? className : '') + " " + "item-prop right-btn " + (onClick ? "with-link" : "no-link"), onClick: onClick, bsStyle: btnStyle || "default" },
icon && React.createElement("span", { className: "icon" },
React.createElement("i", { className: "material-icons" }, icon)),
label &&
React.createElement("small", null, label),
React.createElement("strong", null, children),
onClick && React.createElement("span", { className: "icon-link" },
React.createElement("i", { className: "material-icons" }, "navigate_next"))));
return (tooltip ?
React.createElement(react_bootstrap_1.OverlayTrigger, { placement: "bottom", overlay: tooltipComponent(tooltip) }, ItemProp)
: React.createElement("span", null, ItemProp));
};
//<span onClick={onClick} className="badge bg-default">{label && <small>{label} </small>}{ children }</span>
// <ButtonGroup bsSize="small">
// {
// (icon) &&
// <Button className="icon-btn" bsStyle="info">
// {icon && <i className="material-icons">{icon}</i>}
// </Button>
// }
// <Button onClick={onClick} bsStyle={btnStyle || "default"}>
// {
// label &&
// <small>{label}</small>
// }
// <strong>{children}</strong>
// {onClick && <i className="material-icons">navigate_next</i>}
// </Button>
// </ButtonGroup>
// <div role="item-prop" className="item-prop flex align-center">
// {
// icon &&
// <div>
// <i className="material-icons">{icon}</i>
// </div>
// }
// <div>
// {
// label &&
// <div><small>{label}</small></div>
// }
// <div><strong>{children}</strong></div>
// </div>
// </div>
//# sourceMappingURL=worksheet.js.map