UNPKG

cspace-ui

Version:
124 lines (122 loc) 5.16 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(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /* 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;