{"version":3,"file":"446.eb1b7588464fdcfb65c5.js","mappings":"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","sources":["webpack://front-end-build-system/./src/views/productclasspage/shared/imagehelper.js","webpack://front-end-build-system/./src/views/productclasspage/shared/focustrap.js","webpack://front-end-build-system/./src/views/productclasspage/shared/imagezoom.js","webpack://front-end-build-system/./src/views/productclasspage/supplement/imagecontrollarge.js"],"sourcesContent":["export function build2xResponsiveImage({ url, width, height, alt, lazy }) {\n const $image = document.createElement('img');\n\n if (lazy) {\n $image.loading = 'lazy';\n }\n\n $image.setAttribute('srcset', `${url}?w=${width} 1x, ${url}?w=${width * 2} 2x`);\n $image.setAttribute('alt', alt);\n $image.src = `${url}?w=${width}`;\n $image.width = width;\n $image.height = height;\n\n return $image;\n}","function FocusTrap($container, $trigger) {\n if (!$container) {\n throw new Error('FocusTrap requires an element to be passed to it.');\n }\n\n this.$container = $container;\n this.$activeElement = $trigger;\n this.lastFocus = null;\n this.focusableElements = findFocusable($container);\n this.handleFocus = this.handleFocus.bind(this);\n}\n\nFocusTrap.prototype.handleFocus = function(e) {\n if (this.$container.contains(e.target)) {\n this.lastFocus = e.target;\n } else {\n if (this.lastFocus === this.focusableElements[0]) {\n this.focusableElements[this.focusableElements.length - 1].focus();\n } else {\n this.focusableElements[0].focus();\n }\n\n this.lastFocus = document.activeElement;\n }\n};\n\nFocusTrap.prototype.enable = function() {\n if (this.focusableElements.length) {\n document.addEventListener('focus', this.handleFocus, true);\n this.focusableElements[0].focus();\n }\n};\n\nFocusTrap.prototype.disable = function() {\n if (this.focusableElements.length) {\n document.removeEventListener('focus', this.handleFocus, true);\n this.lastFocus = null;\n\n if (this.$activeElement && this.$activeElement.tagName !== 'BODY') {\n this.$activeElement.focus();\n }\n }\n};\n\nfunction findFocusable(element) {\n return Array.from(element.querySelectorAll('[tabindex], button, a, input, textarea, select')).filter(function(e) {\n return !e.disabled;\n });\n}\n\nexport default FocusTrap;\n","import $ from 'jquery';\nimport FocusTrap from './focustrap';\n\nlet $zoom, $close, $image, $widgets, $body, $window, $panControls, zoomWidth, zoomHeight;\n\nconst keyCodes = {\n UP: 38,\n DOWN: 40,\n LEFT: 37,\n RIGHT: 39,\n ESC: 27\n },\n PANNING_STEP_COUNT = 4,\n imageZoom = {\n _hide: function(e) {\n if (this._isPanControlButton(e.target)) {\n return;\n }\n var FADE_OUT_MILLISECONDS = 800;\n $widgets.fadeOut(FADE_OUT_MILLISECONDS);\n $window.off('keydown', this._handleKeyDown);\n $body.off('keyup', this._handleKeyUp.bind(this));\n },\n _isPanControlButton: function(target) {\n return target && target.className && /pan/gi.test(target.className);\n },\n _handleKeyDown: function(e) {\n switch (e.keyCode) {\n case keyCodes.UP:\n case keyCodes.DOWN:\n case keyCodes.LEFT:\n case keyCodes.RIGHT:\n e.preventDefault();\n break;\n\n default:\n break;\n }\n },\n _handleKeyUp: function(e) {\n switch (e.keyCode) {\n case keyCodes.ESC:\n this._hide(e);\n break;\n\n case keyCodes.UP:\n this._panUp();\n break;\n\n case keyCodes.DOWN:\n this._panDown();\n break;\n\n case keyCodes.LEFT:\n this._panLeft();\n break;\n\n case keyCodes.RIGHT:\n this._panRight();\n break;\n\n default:\n break;\n }\n },\n _show: function(callback) {\n var FADE_IN_MILLISECONDS = 1000;\n $widgets.fadeIn(FADE_IN_MILLISECONDS, callback);\n $window.on('keydown', this._handleKeyDown);\n $body.on('keyup', this._handleKeyUp.bind(this));\n },\n _preload: function(src, callback) {\n if (!src) {\n return;\n }\n\n var img = new Image();\n // eslint-disable-next-line no-empty-function\n img.onload = callback ? callback : function() {};\n img.src = src;\n },\n _move: function(x, y) {\n $image.css({top: y, left: x});\n },\n _xOffset: function(event) {\n return event.offsetX ? event.offsetX : event.originalEvent.layerX;\n },\n _yOffset: function(event) {\n return event.offsetY ? event.offsetY : event.originalEvent.layerY;\n },\n _position: function(position, zoomDimension, imageDimension) {\n return -(position / zoomDimension) * (imageDimension - zoomDimension);\n },\n // eslint-disable-next-line max-params\n _handleMoveEvent: function(xOffset, yOffset, imageWidth, imageHeight, zoomWidth, zoomHeight) {\n var x = this._position(xOffset, zoomWidth, imageWidth),\n y = this._position(yOffset, zoomHeight, imageHeight);\n\n if (y > 0) {\n y = 0;\n }\n\n this._move(x, y);\n },\n _addPanningEventListeners: function($panControls) {\n $panControls\n .off('click')\n .on('click', '.panUp', this._panUp.bind(this))\n .on('click', '.panLeft', this._panLeft.bind(this))\n .on('click', '.panRight', this._panRight.bind(this))\n .on('click', '.panDown', this._panDown.bind(this));\n },\n _panUp: function() {\n var maxTopPosition = $image.height() - zoomHeight,\n topStepIncrement = maxTopPosition / PANNING_STEP_COUNT,\n position = parseFloat($image.css('top')) - topStepIncrement,\n max = -maxTopPosition;\n\n $image.css('top', position > max ? position : max + 'px');\n },\n _panDown: function() {\n var maxTopPosition = $image.height() - zoomHeight,\n topStepIncrement = maxTopPosition / PANNING_STEP_COUNT,\n position = parseFloat($image.css('top')) + topStepIncrement;\n\n $image.css('top', position < 0 ? position : 0 + 'px');\n },\n _panLeft: function() {\n var maxLeftPosition = $image.width() - zoomWidth,\n leftStepIncrement = maxLeftPosition / PANNING_STEP_COUNT,\n position = parseFloat($image.css('left')) + leftStepIncrement;\n\n $image.css('left', position < 0 ? position : 0 + 'px');\n },\n _panRight: function() {\n var maxLeftPosition = $image.width() - zoomWidth,\n leftStepIncrement = maxLeftPosition / PANNING_STEP_COUNT,\n position = parseFloat($image.css('left')) - leftStepIncrement,\n max = -maxLeftPosition;\n\n $image.css('left', position > max ? position : max + 'px');\n },\n init: function($container, options) {\n if (!$container) {\n throw new Error('imageZoom requires a container element');\n }\n\n var focusTrap;\n\n $($container)\n .on(\n 'click',\n '.zoomable',\n function(e) {\n e.preventDefault();\n\n var src = e.currentTarget.querySelector('img')?.dataset?.image;\n\n $zoom = document.getElementById('frame');\n\n if (!$zoom) {\n $zoom = $(\n '