UNPKG

react-application-core

Version:

A react-based application core for the business applications.

147 lines 8.18 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultLayoutContainer = void 0; var React = require("react"); var R = require("ramda"); var navigation_list_1 = require("../../navigation-list"); var di_1 = require("../../../di"); var util_1 = require("../../../util"); var generic_container_1 = require("../../base/generic.container"); var navigation_1 = require("../../../navigation"); var layout_interface_1 = require("../layout.interface"); var definition_1 = require("../../../definition"); var plugin_1 = require("../../plugin"); var default_layout_component_1 = require("./default-layout.component"); var notification_1 = require("../../notification"); var DefaultLayoutContainer = /** @class */ (function (_super) { __extends(DefaultLayoutContainer, _super); /** * @stable [18.09.2018] * @param {IDefaultLayoutContainerProps} props */ function DefaultLayoutContainer(props) { var _this = _super.call(this, props) || this; _this.onChangeLayoutMode = _this.onChangeLayoutMode.bind(_this); _this.onHeaderMenuSelectItem = _this.onHeaderMenuSelectItem.bind(_this); _this.onDrawerHeaderClick = _this.onDrawerHeaderClick.bind(_this); _this.onNavigationListClick = _this.onNavigationListClick.bind(_this); _this.onNavigationListGroupClick = _this.onNavigationListGroupClick.bind(_this); _this.onNavigationListScroll = _this.onNavigationListScroll.bind(_this); return _this; } DefaultLayoutContainer.prototype.render = function () { var _a = this.mergedProps.defaultLayoutConfiguration, defaultLayoutConfiguration = _a === void 0 ? {} : _a; var props = this.props; var _b = props.headerConfiguration, headerConfiguration = _b === void 0 ? {} : _b, _c = props.subHeaderConfiguration, subHeaderConfiguration = _c === void 0 ? {} : _c; var title = util_1.NvlUtils.coalesce(headerConfiguration.title, subHeaderConfiguration.title, util_1.ConditionUtils.ifNotNilThanValue(this.menuItems.find(function (item) { return item.active; }), function (activeItem) { return activeItem && util_1.CalcUtils.calc(activeItem.label); })); return (React.createElement(notification_1.NotificationContainer, __assign({}, props), React.createElement(default_layout_component_1.DefaultLayout, __assign({}, props, defaultLayoutConfiguration, { headerConfiguration: __assign(__assign({ onSelect: this.onHeaderMenuSelectItem, navigationActionConfiguration: __assign({ onClick: this.routerStoreProxy.navigateBack }, headerConfiguration.navigationActionConfiguration) }, headerConfiguration), { title: title }), subHeaderConfiguration: __assign(__assign({ navigationActionConfiguration: __assign({ onClick: this.routerStoreProxy.navigateBack }, subHeaderConfiguration.navigationActionConfiguration) }, subHeaderConfiguration), { title: title }), onDrawerHeaderClick: this.onDrawerHeaderClick, onChangeLayoutMode: this.onChangeLayoutMode, navigationListElement: this.navigationListElement }), this.originalChildren))); }; /** * @stable [06.02.2020] * @param {IPresetsMenuItemEntity} item */ DefaultLayoutContainer.prototype.onHeaderMenuSelectItem = function (item) { switch (item.value) { case definition_1.HeaderUserMenuActionsEnum.EXIT: this.routerStoreProxy.navigate(this.settings.routes.logout); break; case definition_1.HeaderUserMenuActionsEnum.PROFILE: this.routerStoreProxy.navigate(this.settings.routes.profile); break; } }; /** * @stable [27.05.2020] */ DefaultLayoutContainer.prototype.onDrawerHeaderClick = function () { this.routerStoreProxy.navigate(this.settings.routes.home); }; /** * @stable [23.12.2019] * @param {IPresetsXYEntity} xy */ DefaultLayoutContainer.prototype.onNavigationListScroll = function (xy) { this.dispatchActionByType(layout_interface_1.LAYOUT_XY_UPDATE_ACTION_TYPE, { payload: xy }); }; Object.defineProperty(DefaultLayoutContainer.prototype, "menuItems", { /** * @stable [18.09.2018] * @returns {INavigationListItemEntity[]} */ get: function () { return this.navigationMenuBuilder.provide(this.props); }, enumerable: false, configurable: true }); /** * @stable [04.12.2019] */ DefaultLayoutContainer.prototype.onChangeLayoutMode = function (layoutMode) { this.dispatchActionByType(layout_interface_1.LAYOUT_MODE_UPDATE_ACTION_TYPE, { payload: layoutMode }); }; Object.defineProperty(DefaultLayoutContainer.prototype, "navigationListElement", { get: function () { return (React.createElement(navigation_list_1.NavigationList, __assign({}, this.props.layout, { items: this.menuItems, onScroll: this.onNavigationListScroll, onClick: this.onNavigationListClick, onGroupClick: this.onNavigationListGroupClick, plugins: [plugin_1.PersistentScrollPlugin, plugin_1.PerfectScrollPlugin] }))); }, enumerable: false, configurable: true }); /** * @stable [24.03.2020] * @param {INavigationListItemEntity} item */ DefaultLayoutContainer.prototype.onNavigationListClick = function (item) { var _this = this; util_1.ConditionUtils.ifNotEmptyThanValue(item.link, function (link) { return _this.routerStoreProxy.navigate(link); }); }; DefaultLayoutContainer.prototype.onNavigationListGroupClick = function (item) { var itemValue = item.value; if (R.isNil(itemValue)) { return; } var payloadWrapper = { payload: itemValue }; this.dispatchActionByType(layout_interface_1.LAYOUT_EXPANDED_GROUPS_UPDATE_ACTION_TYPE, payloadWrapper); }; __decorate([ di_1.lazyInject(navigation_1.NavigationMenuBuilder), __metadata("design:type", navigation_1.NavigationMenuBuilder) ], DefaultLayoutContainer.prototype, "navigationMenuBuilder", void 0); return DefaultLayoutContainer; }(generic_container_1.GenericContainer)); exports.DefaultLayoutContainer = DefaultLayoutContainer; //# sourceMappingURL=default-layout.container.js.map