UNPKG

react-application-core

Version:

A react-based application core for the business applications.

254 lines 11.3 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); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultLayout = void 0; var React = require("react"); var generic_component_1 = require("../../base/generic.component"); var util_1 = require("../../../util"); var drawer_1 = require("../../drawer"); var definition_1 = require("../../../definition"); var plugin_1 = require("../../plugin"); var dialog_1 = require("../../dialog"); var header_1 = require("../../header"); var main_1 = require("../../main"); var sub_header_1 = require("../../sub-header"); var DefaultLayout = /** @class */ (function (_super) { __extends(DefaultLayout, _super); /** * @stable [09.10.2020] * @param originalProps */ function DefaultLayout(originalProps) { var _this = _super.call(this, originalProps) || this; _this.chatDialogRef = React.createRef(); _this.onChatDialogClose = _this.onChatDialogClose.bind(_this); _this.onDrawerHeaderMenuActionClick = _this.onDrawerHeaderMenuActionClick.bind(_this); return _this; } /** * @stable [09.10.2020] */ DefaultLayout.prototype.render = function () { var className = this.originalProps.className; return (React.createElement("div", { ref: this.actualRef, className: util_1.ClsUtils.joinClassName(definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT, util_1.CalcUtils.calc(className), this.isLayoutFullModeEnabled ? definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_FULL : definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_MINI) }, this.drawerElement, this.bodyElement, this.chatDialogElement)); }; /** * @stable [09.10.2020] */ DefaultLayout.prototype.onChatDialogClose = function () { this.chatDialogRef.current.close(); }; Object.defineProperty(DefaultLayout.prototype, "bodyElement", { /** * @stable [21.05.2020] * @returns {JSX.Element} */ get: function () { var _a = this.settings.elementsMarkers, selectedElement = _a.selectedElement, stickyElement = _a.stickyElement; var mergedProps = this.mergedProps; var footer = mergedProps.footer, footerRendered = mergedProps.footerRendered, header = mergedProps.header, headerRendered = mergedProps.headerRendered, mainConfiguration = mergedProps.mainConfiguration, subHeaderRendered = mergedProps.subHeaderRendered; return (React.createElement("div", { className: definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_BODY }, headerRendered && (header || this.headerElement), React.createElement(main_1.Main, __assign({ stickyElementClassName: stickyElement, selectedElementClassName: selectedElement, subHeaderRendered: subHeaderRendered, plugins: [ plugin_1.PerfectScrollPlugin, plugin_1.SelectedElementPlugin, plugin_1.StickyHeaderPlugin ] }, mainConfiguration), subHeaderRendered && this.subHeaderElement, this.props.children, this.isLayoutInProgress && React.createElement(dialog_1.Dialog, { progress: true, overlay: true })), footerRendered && footer)); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "chatDialogElement", { /** * @stable [09.10.2020] */ get: function () { var chatDialogContent = this.mergedProps.chatDialogContent; return (React.createElement(dialog_1.Dialog, { ref: this.chatDialogRef, acceptable: false, closable: false, default: false, inline: true, className: definition_1.DefaultLayoutClassesEnum.CHAT_DIALOG, onDeactivate: function () { // TODO } }, util_1.CalcUtils.calc(chatDialogContent, { defaultLayoutProps: this.originalProps, onClose: this.onChatDialogClose, }))); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "headerElement", { /** * @stable [12.08.2020] * @private */ get: function () { return (React.createElement(header_1.Header, __assign({}, util_1.Mappers.defaultLayoutPropsAsHeaderProps(this.originalProps), { navigationActionRendered: this.isNavigationActionRendered })) // TODO onCommentClick={this.commentClickHandler} ); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "commentClickHandler", { /** * @stable [09.10.2020] */ get: function () { var _this = this; var chatDialogContent = this.mergedProps.chatDialogContent; return util_1.ConditionUtils.orUndef(util_1.TypeUtils.isDef(chatDialogContent), function () { return function () { return _this.chatDialogRef.current.activate(); }; }); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "subHeaderElement", { /** * @stable [21.05.2020] * @returns {JSX.Element} */ get: function () { var mergedProps = this.mergedProps; var subHeaderConfiguration = mergedProps.subHeaderConfiguration; return (React.createElement(sub_header_1.SubHeader, __assign({ navigationActionRendered: this.isNavigationActionRendered }, subHeaderConfiguration))); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "drawerElement", { /** * @stable [04.02.2020] * @returns {JSX.Element} */ get: function () { var drawerHeaderRendered = this.mergedProps.drawerHeaderRendered; // TODO return (React.createElement(drawer_1.Drawer, { mini: !this.isLayoutFullModeEnabled }, drawerHeaderRendered && this.drawerHeaderElement, this.props.navigationListElement)); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "drawerHeaderElement", { /** * @stable [27.05.2020] * @returns {JSX.Element} */ get: function () { var drawerHeaderLogoRendered = this.mergedProps.drawerHeaderLogoRendered; var onDrawerHeaderClick = this.originalProps.onDrawerHeaderClick; return (React.createElement("div", { className: definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_DRAWER_HEADER, onClick: onDrawerHeaderClick }, util_1.ConditionUtils.ifNotNilThanValue(this.environment.appVersion, function (appVersion) { return (React.createElement("div", { className: definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_DRAWER_HEADER_VERSION }, appVersion)); }), drawerHeaderLogoRendered && this.isLayoutFullModeEnabled && (React.createElement("div", { className: definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_DRAWER_HEADER_LOGO })), this.uiFactory.makeIcon({ type: definition_1.IconsEnum.BARS, className: definition_1.DefaultLayoutClassesEnum.DEFAULT_LAYOUT_DRAWER_HEADER_MENU_ACTION, onClick: this.onDrawerHeaderMenuActionClick, }))); }, enumerable: false, configurable: true }); /** * @stable [27.05.2020] */ DefaultLayout.prototype.onDrawerHeaderMenuActionClick = function () { this.mergedProps.onChangeLayoutMode(this.layoutMode); }; Object.defineProperty(DefaultLayout.prototype, "isNavigationActionRendered", { /** * @stable [21.05.2020] * @returns {boolean} */ get: function () { return util_1.StackUtils.doesHolderStackEntityContainChildren(this.originalProps); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "isLayoutFullModeEnabled", { /** * @stable [21.05.2020] * @returns {boolean} */ get: function () { return this.layoutMode === definition_1.LayoutModesEnum.FULL; }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "isLayoutInProgress", { /** * @stable [21.05.2020] * @returns {boolean} */ get: function () { return util_1.WrapperUtils.inProgress(this.mergedProps); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "layoutMode", { /** * @stable [21.05.2020] * @returns {LayoutModesEnum} */ get: function () { var mergedProps = this.mergedProps; var originalProps = this.originalProps; return util_1.Selectors.mergedLayoutMode(mergedProps, originalProps); }, enumerable: false, configurable: true }); Object.defineProperty(DefaultLayout.prototype, "componentsSettingsProps", { /** * @stable [02.06.2020] * @returns {IDefaultLayoutProps} */ get: function () { return this.componentsSettings.defaultLayout; }, enumerable: false, configurable: true }); DefaultLayout.defaultProps = { drawerHeaderLogoRendered: true, drawerHeaderRendered: true, footerRendered: true, headerRendered: true, subHeaderRendered: true, }; return DefaultLayout; }(generic_component_1.GenericComponent)); exports.DefaultLayout = DefaultLayout; //# sourceMappingURL=default-layout.component.js.map