UNPKG

react-application-core

Version:

A react-based application core for the business applications.

646 lines 22.2 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.Viewer = void 0; var React = require("react"); var R = require("ramda"); var util_1 = require("../../util"); var definition_1 = require("../../definition"); var definitions_interface_1 = require("../../definitions.interface"); var button_component_1 = require("../button/button.component"); var dialog_component_1 = require("../dialog/dialog.component"); var generic_component_1 = require("../base/generic.component"); var info_component_1 = require("../info/info.component"); var Viewer = /** @class */ (function (_super) { __extends(Viewer, _super); /** * @stable [13.12.2020] * @param originalProps */ function Viewer(originalProps) { var _this = _super.call(this, originalProps) || this; _this.previewDialogRef = React.createRef(); _this.onBack = _this.onBack.bind(_this); _this.onDecrementScale = _this.onDecrementScale.bind(_this); _this.onForward = _this.onForward.bind(_this); _this.onIncrementScale = _this.onIncrementScale.bind(_this); _this.onLoadError = _this.onLoadError.bind(_this); _this.onLoadStart = _this.onLoadStart.bind(_this); _this.onLoadSucceed = _this.onLoadSucceed.bind(_this); _this.onPreviewDialogClose = _this.onPreviewDialogClose.bind(_this); _this.onPreviewDialogOpen = _this.onPreviewDialogOpen.bind(_this); _this.showPreviewDialog = _this.showPreviewDialog.bind(_this); _this.state = {}; return _this; } /** * @stable [13.12.2020] * @param prevProps * @param prevState */ Viewer.prototype.componentDidUpdate = function (prevProps, prevState) { if (this.hasInlineDialogBeenClosed(prevProps, prevState) || this.hasSrcChanges(prevProps, prevState)) { this.refreshOnSrcChanges(); } else if (this.hasInternalChanges(prevProps, prevState)) { this.refreshOnInternalChanges(); } }; /** * @stable [16.03.2020] */ Viewer.prototype.componentDidMount = function () { this.refreshOnSrcChanges(); }; /** * @stable [13.12.2020] */ Viewer.prototype.render = function () { var style = this.originalProps.style; return (React.createElement("div", { style: style, className: this.getClassName() }, this.originalChildren, this.isBodyElementRendered && this.bodyElement, this.previewIconElement, this.previewDialogElement)); }; Object.defineProperty(Viewer.prototype, "previewExtraActionsElement", { /** * @stable [14.12.2020] * @protected */ get: function () { return (React.createElement(React.Fragment, null, this.incrementScaleActionElement, this.decrementScaleActionElement, this.previewBackActionElement, this.previewForwardActionElement)); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewForwardActionElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return (React.createElement(button_component_1.Button, { icon: definition_1.IconsEnum.ARROW_RIGHT, disabled: this.isPreviewForwardActionDisabled, onClick: this.onForward })); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewBackActionElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return (React.createElement(button_component_1.Button, { icon: definition_1.IconsEnum.ARROW_LEFT, disabled: this.isPreviewBackActionDisabled, onClick: this.onBack })); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "incrementScaleActionElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return (React.createElement(button_component_1.Button, { icon: definition_1.IconsEnum.SEARCH_PLUS, onClick: this.onIncrementScale })); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "decrementScaleActionElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return (React.createElement(button_component_1.Button, { icon: definition_1.IconsEnum.SEARCH_MINUS, disabled: this.isDecrementScaleActionDisabled, onClick: this.onDecrementScale })); }, enumerable: false, configurable: true }); /** * @stable [18.03.2020] * @param {AnyT} error */ Viewer.prototype.onLoadError = function (error) { this.setState({ error: error, progress: false }); }; /** * @stable [18.03.2020] * @param {(...args) => void} callback */ Viewer.prototype.onLoadSucceed = function (callback) { this.setState({ progress: false }, callback); }; /** * @stable [18.03.2020] */ Viewer.prototype.onLoadStart = function () { this.setState({ error: null, progress: true }); }; Object.defineProperty(Viewer.prototype, "isPreviewForwardActionDisabled", { /** * @stable [13.12.2020] * @protected */ get: function () { return false; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isPreviewBackActionDisabled", { /** * @stable [13.12.2020] * @protected */ get: function () { var previewPage = this.state.previewPage; return !previewPage || previewPage === Viewer.DEFAULT_PAGE; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isDecrementScaleActionDisabled", { /** * @stable [14.12.2020] * @protected */ get: function () { return this.nextDecrementPreviewScale < 0; }, enumerable: false, configurable: true }); /** * @stable [14.12.2020] * @protected */ Viewer.prototype.getClassName = function () { var _a = this.originalProps, className = _a.className, full = _a.full; return util_1.ClsUtils.joinClassName(definition_1.ViewerClassesEnum.VIEWER, full && definition_1.ViewerClassesEnum.FULL_VIEWER, this.isSrcAbsent && definition_1.ViewerClassesEnum.EMPTY_VIEWER, this.isInfoRendered && definition_1.ViewerClassesEnum.INFO_VIEWER, util_1.CalcUtils.calc(className)); }; /** * @stable [16.03.2020] */ Viewer.prototype.refreshOnSrcChanges = function () { // Do nothing }; /** * @stable [16.03.2020] */ Viewer.prototype.refreshOnInternalChanges = function () { // Do nothing }; Object.defineProperty(Viewer.prototype, "contentElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return null; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewElement", { /** * @stable [13.12.2020] * @protected */ get: function () { return null; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "inProgress", { /** * @stable [14.12.2020] */ get: function () { return this.state.progress; }, enumerable: false, configurable: true }); /** * @stable [14.12.2020] * @private */ Viewer.prototype.onPreviewDialogClose = function () { var _this = this; this.setState({ opened: false, previewPage: definitions_interface_1.UNDEF, previewScale: definitions_interface_1.UNDEF, }, function () { return util_1.ConditionUtils.ifNotNilThanValue(_this.originalProps.onClosePreview, function (onClosePreview) { return onClosePreview(); }); }); }; /** * @stable [14.12.2020] * @private */ Viewer.prototype.onPreviewDialogOpen = function () { util_1.ConditionUtils.ifNotNilThanValue(this.originalProps.onShowPreview, function (onShowPreview) { return onShowPreview(); }); }; /** * @stable [13.12.2020] * @param prevProps * @param prevState * @private */ Viewer.prototype.hasInternalChanges = function (prevProps, prevState) { return (this.hasPageChanges(prevProps, prevState) || this.hasScaleChanges(prevProps, prevState)); }; /** * @stable [13.12.2020] * @param prevProps * @param prevState * @private */ Viewer.prototype.hasScaleChanges = function (prevProps, prevState) { return util_1.ObjectUtils.isCurrentValueNotEqualPreviousValue(this.originalProps.scale, prevProps.scale); }; /** * @stable [13.12.2020] * @param prevProps * @param prevState * @private */ Viewer.prototype.hasSrcChanges = function (prevProps, prevState) { return util_1.ObjectUtils.isCurrentValueNotEqualPreviousValue(this.originalProps.src, prevProps.src); }; /** * @stable [13.12.2020] * @param prevProps * @param prevState * @private */ Viewer.prototype.hasInlineDialogBeenClosed = function (prevProps, prevState) { return this.isPreviewDialogInline && prevState.opened && !this.state.opened; }; /** * @stable [13.12.2020] * @param prevProps * @param prevState * @private */ Viewer.prototype.hasPageChanges = function (prevProps, prevState) { return (util_1.ObjectUtils.isCurrentValueNotEqualPreviousValue(this.originalProps.page, prevProps.page) || util_1.ObjectUtils.isCurrentValueNotEqualPreviousValue(this.state.page, prevState.page)); }; /** * @stable [16.03.2020] */ Viewer.prototype.onBack = function () { this.setState({ previewPage: this.actualOrDefaultPreviewPage - 1 }); }; /** * @stable [16.03.2020] */ Viewer.prototype.onForward = function () { this.setState({ previewPage: this.actualOrDefaultPreviewPage + 1 }); }; /** * @stable [16.03.2020] */ Viewer.prototype.onIncrementScale = function () { this.setState({ previewScale: this.actualOrDefaultPreviewScale + this.defaultScaleDiff }); }; /** * @stable [14.12.2020] */ Viewer.prototype.onDecrementScale = function () { this.setState({ previewScale: this.nextDecrementPreviewScale }); }; /** * @stable [16.03.2020] */ Viewer.prototype.showPreviewDialog = function () { var _this = this; this.setState({ opened: true }, function () { return _this.previewDialogRef.current.activate(); }); }; Object.defineProperty(Viewer.prototype, "nextDecrementPreviewScale", { /** * @stable [14.12.2020] * @private */ get: function () { return this.actualOrDefaultPreviewScale - this.defaultScaleDiff; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualOrDefaultPage", { /** * @stable [16.03.2020] * @returns {number} */ get: function () { return util_1.NvlUtils.nvl(this.actualPage, Viewer.DEFAULT_PAGE); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualPage", { /** * @stable [02.10.2020] */ get: function () { return util_1.NvlUtils.nvl(this.state.page, this.originalProps.page); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualOrDefaultPreviewPage", { /** * @stable [16.03.2020] * @returns {number} */ get: function () { return util_1.NvlUtils.nvl(this.actualPreviewPage, Viewer.DEFAULT_PAGE); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualPreviewPage", { /** * @stable [16.03.2020] * @returns {number} */ get: function () { return util_1.NvlUtils.nvl(this.state.previewPage, this.props.previewPage); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualOrDefaultPreviewScale", { /** * @stable [02.10.2020] */ get: function () { return util_1.NvlUtils.coalesce(this.state.previewScale, this.originalProps.previewScale, this.defaultScale); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualOrDefaultScale", { /** * @stable [02.10.2020] */ get: function () { return util_1.NvlUtils.coalesce(this.state.scale, this.originalProps.scale, this.defaultScale); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "actualSrc", { /** * @stable [18.03.2020] * @returns {string} */ get: function () { return this.props.src || this.props.defaultScr; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "defaultScaleDiff", { /** * @stable [23.03.2020] * @returns {number} */ get: function () { return .3; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "defaultScale", { /** * @stable [23.03.2020] * @returns {number} */ get: function () { return 1; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "ctor", { /** * @stable [14.12.2020] * @protected */ get: function () { return null; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "bodyElement", { /** * @stable [14.12.2020] * @private */ get: function () { var AN_ERROR_OCCURRED_WHILE_LOADING_THE_FILE = this.settings.messages.AN_ERROR_OCCURRED_WHILE_LOADING_THE_FILE; var Component = this.viewerLocator.resolve(definition_1.ViewersEnum.PICTURE); return this.isInfoRendered ? (React.createElement(info_component_1.Info, { progress: this.inProgress, error: AN_ERROR_OCCURRED_WHILE_LOADING_THE_FILE })) : (this.isActualSrcAbsent ? React.createElement(Component, null) : this.contentElement); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewDialogElement", { /** * @stable [14.12.2020] * @private */ get: function () { var _a = this.settings.messages, CLOSE = _a.CLOSE, PREVIEW = _a.PREVIEW; var configuration = this.previewDialogConfiguration; return this.isPreviewDialogOpened && (React.createElement(dialog_component_1.Dialog, __assign({ title: PREVIEW, closeText: CLOSE }, configuration, { ref: this.previewDialogRef, className: util_1.ClsUtils.joinClassName(definition_1.DialogClassesEnum.PREVIEW_DIALOG, util_1.CalcUtils.calc(configuration.className)), acceptable: false, extraActions: this.previewExtraActionsElement, onActivate: this.onPreviewDialogOpen, onDeactivate: this.onPreviewDialogClose }), this.previewElement)); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isPreviewDialogOpened", { /** * @stable [13.12.2020] * @private */ get: function () { return this.state.opened && this.canPreview; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isBodyElementRendered", { /** * @stable [13.12.2020] * @private */ get: function () { return !this.isPreviewDialogOpened || !this.isPreviewDialogInline; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isPreviewDialogInline", { /** * @stable [13.12.2020] * @private */ get: function () { return this.previewDialogConfiguration.inline; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewDialogConfiguration", { /** * @stable [13.12.2020] * @private */ get: function () { return this.mergedProps.previewDialogConfiguration || {}; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "previewIconElement", { /** * @stable [13.12.2020] * @private */ get: function () { return (this.canPreview && (this.uiFactory.makeIcon({ type: definition_1.IconsEnum.SEARCH_PLUS, className: util_1.ClsUtils.joinClassName(definition_1.ComponentClassesEnum.ALIGNMENT_CENTER, definition_1.ViewerClassesEnum.VIEWER_PREVIEW_ICON), onClick: this.showPreviewDialog, }))); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isInfoRendered", { /** * @stable [13.12.2020] * @private */ get: function () { return this.inProgress || this.doesErrorExist; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "canPreview", { /** * @stable [13.12.2020] * @private */ get: function () { return this.isPreviewUsed && !this.inProgress && !this.isActualSrcAbsent && !this.doesErrorExist; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "doesErrorExist", { /** * @stable [13.12.2020] * @private */ get: function () { return !R.isNil(this.state.error); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isActualSrcAbsent", { /** * @stable [13.12.2020] * @private */ get: function () { return this.isSrcAbsent && this.isDefaultSrcAbsent; }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isSrcAbsent", { /** * @stable [13.12.2020] * @private */ get: function () { return R.isNil(this.originalProps.src); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isDefaultSrcAbsent", { /** * @stable [13.12.2020] * @private */ get: function () { return R.isNil(this.originalProps.defaultScr); }, enumerable: false, configurable: true }); Object.defineProperty(Viewer.prototype, "isPreviewUsed", { /** * @stable [13.12.2020] * @private */ get: function () { return this.originalProps.usePreview; }, enumerable: false, configurable: true }); Viewer.defaultProps = { full: true, usePreview: true, }; Viewer.DEFAULT_PAGE = 1; return Viewer; }(generic_component_1.GenericComponent)); exports.Viewer = Viewer; //# sourceMappingURL=viewer.component.js.map