UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

98 lines (97 loc) 4.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AnchorNavRenderer = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var factory_1 = require("../factory"); var AnchorNav_1 = require("../components/AnchorNav"); var helper_1 = require("../utils/helper"); var tpl_1 = require("../utils/tpl"); var find_1 = (0, tslib_1.__importDefault)(require("lodash/find")); var AnchorNav = /** @class */ (function (_super) { (0, tslib_1.__extends)(AnchorNav, _super); function AnchorNav(props) { var _this = _super.call(this, props) || this; // 设置默认激活项 var links = props.links; var active = 0; if (typeof props.active !== 'undefined') { active = props.active; } else { var section = (0, find_1.default)(links, function (section) { return section.href === props.active; }); active = section && section.href ? section.href : (links[0] && links[0].href) || 0; } _this.state = { active: active }; return _this; } AnchorNav.prototype.handleSelect = function (key) { this.setState({ active: key }); }; AnchorNav.prototype.locateTo = function (index) { var links = this.props.links; Array.isArray(links) && links[index] && this.setState({ active: links[index].href || index }); }; AnchorNav.prototype.render = function () { var _this = this; var _a = this.props, cx = _a.classnames, ns = _a.classPrefix, className = _a.className, linkClassName = _a.linkClassName, sectionClassName = _a.sectionClassName, direction = _a.direction, sectionRender = _a.sectionRender, render = _a.render, data = _a.data; var links = this.props.links; if (!links) { return null; } links = Array.isArray(links) ? links : [links]; var children = []; children = links.map(function (section, index) { return (0, helper_1.isVisible)(section, data) ? (react_1.default.createElement(AnchorNav_1.AnchorNavSection, (0, tslib_1.__assign)({}, section, { title: (0, tpl_1.filter)(section.title, data), key: index, name: section.href || index }), _this.renderSection ? _this.renderSection(section, _this.props, index) : sectionRender ? sectionRender(section, _this.props, index) : render("section/" + index, section.body || ''))) : null; }); return (react_1.default.createElement(AnchorNav_1.AnchorNav, { classPrefix: ns, classnames: cx, className: className, linkClassName: linkClassName, sectionClassName: sectionClassName, onSelect: this.handleSelect, active: this.state.active, direction: direction }, children)); }; AnchorNav.defaultProps = { className: '', linkClassName: '', sectionClassName: '' }; (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [Object]), (0, tslib_1.__metadata)("design:returntype", void 0) ], AnchorNav.prototype, "handleSelect", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [Number]), (0, tslib_1.__metadata)("design:returntype", void 0) ], AnchorNav.prototype, "locateTo", null); return AnchorNav; }(react_1.default.Component)); exports.default = AnchorNav; var AnchorNavRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(AnchorNavRenderer, _super); function AnchorNavRenderer() { return _super !== null && _super.apply(this, arguments) || this; } AnchorNavRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'anchor-nav' }) ], AnchorNavRenderer); return AnchorNavRenderer; }(AnchorNav)); exports.AnchorNavRenderer = AnchorNavRenderer; //# sourceMappingURL=./renderers/AnchorNav.js.map