@lskjs/page
Version:
LSK ux subrepo: page
82 lines (63 loc) • 7.05 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _mobxReact = require("mobx-react");
var _get = _interopRequireDefault(require("lodash/get"));
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
var _omit = _interopRequireDefault(require("lodash/omit"));
var _Breadcrumbs = _interopRequireDefault(require("@lskjs/ui/Breadcrumbs"));
var _link = _interopRequireDefault(require("@lskjs/link"));
var PageBreadcrumbs = function PageBreadcrumbs(_ref) {
var children = _ref.children,
page = _ref.page,
reverse = _ref.reverse,
omitFirst = _ref.omitFirst,
omitLast = _ref.omitLast,
rawItems = _ref.items,
props = (0, _objectWithoutProperties2["default"])(_ref, ["children", "page", "reverse", "omitFirst", "omitLast", "items"]);
var breadcrumbs = (0, _get["default"])(page, 'state.show.breadcrumbs', true);
if (!breadcrumbs) return null;
var metas = (0, _cloneDeep["default"])((0, _get["default"])(page, 'state.metas')) || [];
if (reverse) {
metas = metas.reverse();
}
var items = rawItems ? (0, _cloneDeep["default"])(rawItems) : metas.map(function (meta, key) {
return {
key: key,
title: meta.title,
href: meta.url
};
});
items = items.filter(function (item, i) {
if (i === 0 && omitFirst) return false;
if (i === items.length - 1 && omitLast) return false;
return true;
});
if (items.length) {
items[items.length - 1] = (0, _omit["default"])(items[items.length - 1], ['href']);
}
if (children) {
return /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], null, children);
}
return /*#__PURE__*/_react["default"].createElement(_Breadcrumbs["default"], (0, _extends2["default"])({}, props, {
render: function render(item) {
var title = item.title,
href = item.href;
if (!href) return title;
return /*#__PURE__*/_react["default"].createElement(_link["default"], {
href: href
}, title);
},
items: items
}));
};
var _default = (0, _mobxReact.inject)('page')((0, _mobxReact.observer)(PageBreadcrumbs));
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QYWdlQnJlYWRjcnVtYnMuanN4Il0sIm5hbWVzIjpbIlBhZ2VCcmVhZGNydW1icyIsImNoaWxkcmVuIiwicGFnZSIsInJldmVyc2UiLCJvbWl0Rmlyc3QiLCJvbWl0TGFzdCIsInJhd0l0ZW1zIiwiaXRlbXMiLCJwcm9wcyIsImJyZWFkY3J1bWJzIiwibWV0YXMiLCJtYXAiLCJtZXRhIiwia2V5IiwidGl0bGUiLCJocmVmIiwidXJsIiwiZmlsdGVyIiwiaXRlbSIsImkiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLE9BQWlGO0FBQUEsTUFBOUVDLFFBQThFLFFBQTlFQSxRQUE4RTtBQUFBLE1BQXBFQyxJQUFvRSxRQUFwRUEsSUFBb0U7QUFBQSxNQUE5REMsT0FBOEQsUUFBOURBLE9BQThEO0FBQUEsTUFBckRDLFNBQXFELFFBQXJEQSxTQUFxRDtBQUFBLE1BQTFDQyxRQUEwQyxRQUExQ0EsUUFBMEM7QUFBQSxNQUF6QkMsUUFBeUIsUUFBaENDLEtBQWdDO0FBQUEsTUFBWkMsS0FBWTtBQUN2RyxNQUFNQyxXQUFXLEdBQUcscUJBQUlQLElBQUosRUFBVSx3QkFBVixFQUFvQyxJQUFwQyxDQUFwQjtBQUNBLE1BQUksQ0FBQ08sV0FBTCxFQUFrQixPQUFPLElBQVA7QUFDbEIsTUFBSUMsS0FBSyxHQUFHLDJCQUFVLHFCQUFJUixJQUFKLEVBQVUsYUFBVixDQUFWLEtBQXVDLEVBQW5EOztBQUVBLE1BQUlDLE9BQUosRUFBYTtBQUNYTyxJQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ1AsT0FBTixFQUFSO0FBQ0Q7O0FBQ0QsTUFBSUksS0FBSyxHQUFHRCxRQUFRLEdBQ2hCLDJCQUFVQSxRQUFWLENBRGdCLEdBRWhCSSxLQUFLLENBQUNDLEdBQU4sQ0FBVSxVQUFDQyxJQUFELEVBQU9DLEdBQVA7QUFBQSxXQUFnQjtBQUN4QkEsTUFBQUEsR0FBRyxFQUFIQSxHQUR3QjtBQUV4QkMsTUFBQUEsS0FBSyxFQUFFRixJQUFJLENBQUNFLEtBRlk7QUFHeEJDLE1BQUFBLElBQUksRUFBRUgsSUFBSSxDQUFDSTtBQUhhLEtBQWhCO0FBQUEsR0FBVixDQUZKO0FBT0FULEVBQUFBLEtBQUssR0FBR0EsS0FBSyxDQUFDVSxNQUFOLENBQWEsVUFBQ0MsSUFBRCxFQUFPQyxDQUFQLEVBQWE7QUFDaEMsUUFBSUEsQ0FBQyxLQUFLLENBQU4sSUFBV2YsU0FBZixFQUEwQixPQUFPLEtBQVA7QUFDMUIsUUFBSWUsQ0FBQyxLQUFLWixLQUFLLENBQUNhLE1BQU4sR0FBZSxDQUFyQixJQUEwQmYsUUFBOUIsRUFBd0MsT0FBTyxLQUFQO0FBQ3hDLFdBQU8sSUFBUDtBQUNELEdBSk8sQ0FBUjs7QUFLQSxNQUFJRSxLQUFLLENBQUNhLE1BQVYsRUFBa0I7QUFDaEJiLElBQUFBLEtBQUssQ0FBQ0EsS0FBSyxDQUFDYSxNQUFOLEdBQWUsQ0FBaEIsQ0FBTCxHQUEwQixzQkFBS2IsS0FBSyxDQUFDQSxLQUFLLENBQUNhLE1BQU4sR0FBZSxDQUFoQixDQUFWLEVBQThCLENBQUMsTUFBRCxDQUE5QixDQUExQjtBQUNEOztBQUNELE1BQUluQixRQUFKLEVBQWM7QUFDWix3QkFBTyxnQ0FBQyx1QkFBRCxRQUFjQSxRQUFkLENBQVA7QUFDRDs7QUFDRCxzQkFDRSxnQ0FBQyx1QkFBRCxnQ0FDTU8sS0FETjtBQUVFLElBQUEsTUFBTSxFQUFFLGdCQUFBVSxJQUFJLEVBQUk7QUFBQSxVQUNOSixLQURNLEdBQ1VJLElBRFYsQ0FDTkosS0FETTtBQUFBLFVBQ0NDLElBREQsR0FDVUcsSUFEVixDQUNDSCxJQUREO0FBRWQsVUFBSSxDQUFDQSxJQUFMLEVBQVcsT0FBT0QsS0FBUDtBQUNYLDBCQUFPLGdDQUFDLGdCQUFEO0FBQU0sUUFBQSxJQUFJLEVBQUVDO0FBQVosU0FBbUJELEtBQW5CLENBQVA7QUFDRCxLQU5IO0FBT0UsSUFBQSxLQUFLLEVBQUVQO0FBUFQsS0FERjtBQVdELENBckNEOztlQXVDZSx1QkFBTyxNQUFQLEVBQWUseUJBQVNQLGVBQVQsQ0FBZixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluamVjdCwgb2JzZXJ2ZXIgfSBmcm9tICdtb2J4LXJlYWN0JztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IEJyZWFkY3J1bWJzIGZyb20gJ0Bsc2tqcy91aS9CcmVhZGNydW1icyc7XG5pbXBvcnQgTGluayBmcm9tICdAbHNranMvbGluayc7XG5cbmNvbnN0IFBhZ2VCcmVhZGNydW1icyA9ICh7IGNoaWxkcmVuLCBwYWdlLCByZXZlcnNlLCBvbWl0Rmlyc3QsIG9taXRMYXN0LCBpdGVtczogcmF3SXRlbXMsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgYnJlYWRjcnVtYnMgPSBnZXQocGFnZSwgJ3N0YXRlLnNob3cuYnJlYWRjcnVtYnMnLCB0cnVlKTtcbiAgaWYgKCFicmVhZGNydW1icykgcmV0dXJuIG51bGw7XG4gIGxldCBtZXRhcyA9IGNsb25lRGVlcChnZXQocGFnZSwgJ3N0YXRlLm1ldGFzJykpIHx8IFtdO1xuXG4gIGlmIChyZXZlcnNlKSB7XG4gICAgbWV0YXMgPSBtZXRhcy5yZXZlcnNlKCk7XG4gIH1cbiAgbGV0IGl0ZW1zID0gcmF3SXRlbXNcbiAgICA/IGNsb25lRGVlcChyYXdJdGVtcylcbiAgICA6IG1ldGFzLm1hcCgobWV0YSwga2V5KSA9PiAoe1xuICAgICAgICBrZXksXG4gICAgICAgIHRpdGxlOiBtZXRhLnRpdGxlLFxuICAgICAgICBocmVmOiBtZXRhLnVybCxcbiAgICAgIH0pKTtcbiAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0sIGkpID0+IHtcbiAgICBpZiAoaSA9PT0gMCAmJiBvbWl0Rmlyc3QpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoaSA9PT0gaXRlbXMubGVuZ3RoIC0gMSAmJiBvbWl0TGFzdCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbiAgaWYgKGl0ZW1zLmxlbmd0aCkge1xuICAgIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdID0gb21pdChpdGVtc1tpdGVtcy5sZW5ndGggLSAxXSwgWydocmVmJ10pO1xuICB9XG4gIGlmIChjaGlsZHJlbikge1xuICAgIHJldHVybiA8QnJlYWRjcnVtYnM+e2NoaWxkcmVufTwvQnJlYWRjcnVtYnM+O1xuICB9XG4gIHJldHVybiAoXG4gICAgPEJyZWFkY3J1bWJzXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICByZW5kZXI9e2l0ZW0gPT4ge1xuICAgICAgICBjb25zdCB7IHRpdGxlLCBocmVmIH0gPSBpdGVtO1xuICAgICAgICBpZiAoIWhyZWYpIHJldHVybiB0aXRsZTtcbiAgICAgICAgcmV0dXJuIDxMaW5rIGhyZWY9e2hyZWZ9Pnt0aXRsZX08L0xpbms+O1xuICAgICAgfX1cbiAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5qZWN0KCdwYWdlJykob2JzZXJ2ZXIoUGFnZUJyZWFkY3J1bWJzKSk7XG4iXX0=
//# sourceMappingURL=PageBreadcrumbs.js.map