UNPKG

cspace-ui

Version:
125 lines (123 loc) 5.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _openseadragon = _interopRequireDefault(require("openseadragon")); var _blank = _interopRequireDefault(require("../../../images/blank.svg")); var _imageFullscreen = _interopRequireDefault(require("../../../images/imageFullscreen.svg")); var _imageFullscreenActive = _interopRequireDefault(require("../../../images/imageFullscreenActive.svg")); var _imageHome = _interopRequireDefault(require("../../../images/imageHome.svg")); var _imageHomeActive = _interopRequireDefault(require("../../../images/imageHomeActive.svg")); var _imageRotateLeft = _interopRequireDefault(require("../../../images/imageRotateLeft.svg")); var _imageRotateLeftActive = _interopRequireDefault(require("../../../images/imageRotateLeftActive.svg")); var _imageRotateRight = _interopRequireDefault(require("../../../images/imageRotateRight.svg")); var _imageRotateRightActive = _interopRequireDefault(require("../../../images/imageRotateRightActive.svg")); var _imageZoomIn = _interopRequireDefault(require("../../../images/imageZoomIn.svg")); var _imageZoomInActive = _interopRequireDefault(require("../../../images/imageZoomInActive.svg")); var _imageZoomOut = _interopRequireDefault(require("../../../images/imageZoomOut.svg")); var _imageZoomOutActive = _interopRequireDefault(require("../../../images/imageZoomOutActive.svg")); var _ImageViewer = _interopRequireDefault(require("../../../styles/cspace-ui/ImageViewer.css")); var _ImageViewerSaveLink = _interopRequireDefault(require("../../../styles/cspace-ui/ImageViewerSaveLink.css")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /* global document */ const propTypes = { blobUrl: _propTypes.default.string.isRequired, filename: _propTypes.default.string }; const defaultProps = { filename: '' }; class ImageViewer extends _react.Component { constructor() { super(); this.handleContainerRef = this.handleContainerRef.bind(this); } componentDidMount() { const { blobUrl, filename } = this.props; const viewer = (0, _openseadragon.default)({ element: this.containerElement, navImages: { zoomIn: { REST: _imageZoomIn.default, GROUP: _blank.default, HOVER: _imageZoomInActive.default, DOWN: _imageZoomInActive.default }, zoomOut: { REST: _imageZoomOut.default, GROUP: _blank.default, HOVER: _imageZoomOutActive.default, DOWN: _imageZoomOutActive.default }, home: { REST: _imageHome.default, GROUP: _blank.default, HOVER: _imageHomeActive.default, DOWN: _imageHomeActive.default }, fullpage: { REST: _imageFullscreen.default, GROUP: _blank.default, HOVER: _imageFullscreenActive.default, DOWN: _imageFullscreenActive.default }, rotateleft: { REST: _imageRotateLeft.default, GROUP: _blank.default, HOVER: _imageRotateLeftActive.default, DOWN: _imageRotateLeftActive.default }, rotateright: { REST: _imageRotateRight.default, GROUP: _blank.default, HOVER: _imageRotateRightActive.default, DOWN: _imageRotateRightActive.default } }, gestureSettingsTouch: { pinchRotate: true }, prefixUrl: '', showNavigator: true, showRotationControl: true, tileSources: { type: 'image', url: blobUrl } }); const saveLink = document.createElement('a'); saveLink.className = _ImageViewerSaveLink.default.common; saveLink.href = blobUrl; saveLink.download = filename; saveLink.title = 'Save'; viewer.buttons.element.appendChild(saveLink); this.viewer = viewer; } componentWillUnmount() { if (this.viewer) { this.viewer.destroy(); } this.viewer = null; } handleContainerRef(ref) { this.containerElement = ref; } render() { return /*#__PURE__*/_react.default.createElement("div", { className: _ImageViewer.default.common }, /*#__PURE__*/_react.default.createElement("div", { ref: this.handleContainerRef })); } } exports.default = ImageViewer; ImageViewer.propTypes = propTypes; ImageViewer.defaultProps = defaultProps;