{"version":3,"sources":["webpack:///./node_modules/easyscroller/lib/Scroller.js","webpack:///./node_modules/easyscroller/lib/index.js","webpack:///./src/components/tools/ImageView.vue?445a","webpack:///src/components/tools/ImageView.vue","webpack:///./src/components/tools/ImageView.vue?ce83","webpack:///./src/components/tools/ImageView.vue","webpack:///./node_modules/easyscroller/lib/Animate.js","webpack:///./src/components/tools/ImageView.vue?2e43","webpack:///./node_modules/easyscroller/lib/EasyScroller.js","webpack:///./src/api/classRoom.js"],"names":["__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","exports","value","Animate_1","__webpack_require__","Scroller","callback","options","__isSingleTouch","__isTracking","__didDecelerationComplete","__isGesturing","__isDragging","__isDecelerating","__isAnimating","__interruptedAnimation","__initialTouchLeft","__initialTouchTop","__initialTouches","__lastScale","__enableScrollX","__enableScrollY","__clientLeft","__clientTop","__clientWidth","__clientHeight","__contentWidth","__contentHeight","__snapWidth","__snapHeight","__refreshHeight","__refreshActive","__refreshActivate","__refreshDeactivate","__refreshStart","__zoomLevel","__zoomLevelStart","__scrollLeft","__scrollTop","__maxScrollLeft","__maxScrollTop","__scheduledLeft","__scheduledTop","__scheduledZoom","__lastTouchLeft","__lastTouchTop","__lastTouchMove","__positions","__minDecelerationScrollLeft","__minDecelerationScrollTop","__maxDecelerationScrollLeft","__maxDecelerationScrollTop","__decelerationVelocityX","__decelerationVelocityY","__callback","scrollLeft","scrollTop","zoomLevel","__zoomComplete","scrollingX","scrollingY","animating","animationDuration","bouncing","locking","paging","snapping","zooming","minZoom","maxZoom","speedMultiplier","scrollingComplete","penetrationDeceleration","penetrationAcceleration","easeOutCubic","pos","Math","pow","easeInOutCubic","setDimensions","clientWidth","clientHeight","contentWidth","contentHeight","__computeScrollMax","scrollTo","setPosition","left","top","setSnapSize","width","height","activatePullToRefresh","activateCallback","deactivateCallback","startCallback","triggerPullToRefresh","__publish","finishPullToRefresh","getValues","zoom","getScrollMax","zoomTo","level","animate","originLeft","originTop","Error","core","effect","Animate","stop","oldLevel","max","min","zoomBy","factor","round","scrollBy","startLeft","startTop","doMouseZoom","wheelDelta","timeStamp","pageX","pageY","change","doTouchStart","touches","Date","valueOf","currentTouchLeft","currentTouchTop","isSingleTouch","abs","doTouchMove","scale","__getScale","positions","moveX","moveY","currentTouchLeftRel","currentTouchTopRel","maxScrollLeft","maxScrollTop","splice","push","minimumTrackingForScroll","minimumTrackingForDrag","distanceX","distanceY","doTouchEnd","endPos","startPos","timeOffset","movedLeft","movedTop","minVelocityToStartDeceleration","__startDeceleration","_this","wasAnimating","oldLeft","oldTop","oldZoom","diffLeft","diffTop","diffZoom","step","percent","now","render","verify","id","completed","renderedFramesPerSecond","animationId","wasFinished","start","floor","ceil","__stepThroughDeceleration","minVelocityToKeepDecelerating","shouldContinue","scrollLeftFixed","scrollTopFixed","frictionFactor","scrollOutsideX","scrollOutsideY","__getDistance","touch1","touch2","x","y","sqrt","end","__export","m","_vm","_h","$createElement","_c","_self","staticClass","attrs","domId","src","staticRenderFns","ImageViewvue_type_script_lang_js_","name","components","props","type","String","default","data","show","images","random","mounted","element","document","querySelector","concat","lib","methods","tools_ImageViewvue_type_script_lang_js_","component","componentNormalizer","__webpack_exports__","time","desiredFrames","millisecondsPerSecond","running","counter","requestAnimationFrame","requestFrame","window","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","isNative","test","toString","root","TARGET_FPS","requests","rafHandle","intervalHandle","lastActive","callbackHandle","requestCount","setInterval","currentRequests","key","clearInterval","cleared","isRunning","stepCallback","verifyCallback","completedCallback","duration","easingMethod","lastFrame","dropCounter","body","newRunning","usedId","virtual","droppedFrames","j","Scroller_1","EasyScroller","content","browserHasPerspectiveProperty","browserHasTransformProperty","eventHandlers","container","parentNode","scroller","helperElem","createElement","vendorPrefix","getVendorPrefix","style","transformProperty","undefined","perspectiveProperty","bindEvents","reflow","engine","docStyle","documentElement","opera","navigator","cpuClass","vendorMap","trident","gecko","webkit","presto","marginLeft","marginTop","offsetWidth","offsetHeight","rect","getBoundingClientRect","clientLeft","clientTop","resizeHandler","event","handler","forElem","touchstartHandler","e","target","tagName","match","touchmoveHandler","preventDefault","touchendHandler","touchcancelHandler","mousedown","mousedownHandler","mousemoveHandler","mouseupHandler","mousewheelHandler","forEach","eventHandler","addEventListener","getScroller","destroy","removeEventListener","_utils_request__WEBPACK_IMPORTED_MODULE_0__","URLS","QueryMeetingRoomOccupancyStatistics","QueryMeetingRoomOccupancyDetail","QueryMeetingRoomApplies","QueryMeetingRoomBuildings","QueryMeetingRoomFloors","QueryMeetingRoomFloorMapImages","QueryMeetingRooms","apis","url","params","option","sendRequest","_loop"],"mappings":"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","file":"js/classroomMap~classroomUsage.1703577108441.js","sourcesContent":["\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Animate_1 = require(\"./Animate\");\n/**\n * A pure logic 'component' for 'virtual' scrolling/zooming.\n */\nvar Scroller = /** @class */ (function () {\n function Scroller(callback, options) {\n /*\n ---------------------------------------------------------------------------\n INTERNAL FIELDS :: STATUS\n ---------------------------------------------------------------------------\n */\n /** {Boolean} Whether only a single finger is used in touch handling */\n this.__isSingleTouch = false;\n /** {Boolean} Whether a touch event sequence is in progress */\n this.__isTracking = false;\n /** {Boolean} Whether a deceleration animation went to completion. */\n this.__didDecelerationComplete = false;\n /**\n * {Boolean} Whether a gesture zoom/rotate event is in progress. Activates when\n * a gesturestart event happens. This has higher priority than dragging.\n */\n this.__isGesturing = false;\n /**\n * {Boolean} Whether the user has moved by such a distance that we have enabled\n * dragging mode. Hint: It's only enabled after some pixels of movement to\n * not interrupt with clicks etc.\n */\n this.__isDragging = false;\n /**\n * {Boolean} Not touching and dragging anymore, and smoothly animating the\n * touch sequence using deceleration.\n */\n this.__isDecelerating = false;\n /**\n * {Boolean} Smoothly animating the currently configured change\n */\n this.__isAnimating = false;\n this.__interruptedAnimation = false;\n this.__initialTouchLeft = null;\n this.__initialTouchTop = null;\n this.__initialTouches = null;\n this.__lastScale = 1;\n this.__enableScrollX = true;\n this.__enableScrollY = true;\n /*\n ---------------------------------------------------------------------------\n INTERNAL FIELDS :: DIMENSIONS\n ---------------------------------------------------------------------------\n */\n /** {Integer} Available outer left position (from document perspective) */\n this.__clientLeft = 0;\n /** {Integer} Available outer top position (from document perspective) */\n this.__clientTop = 0;\n /** {Integer} Available outer width */\n this.__clientWidth = 0;\n /** {Integer} Available outer height */\n this.__clientHeight = 0;\n /** {Integer} Outer width of content */\n this.__contentWidth = 0;\n /** {Integer} Outer height of content */\n this.__contentHeight = 0;\n /** {Integer} Snapping width for content */\n this.__snapWidth = 100;\n /** {Integer} Snapping height for content */\n this.__snapHeight = 100;\n /** {Integer} Height to assign to refresh area */\n this.__refreshHeight = null;\n /** {Boolean} Whether the refresh process is enabled when the event is released now */\n this.__refreshActive = false;\n /** {Function} Callback to execute on activation. This is for signalling the user about a refresh is about to happen when he release */\n this.__refreshActivate = null;\n /** {Function} Callback to execute on deactivation. This is for signalling the user about the refresh being cancelled */\n this.__refreshDeactivate = null;\n /** {Function} Callback to execute to start the actual refresh. Call {@link #refreshFinish} when done */\n this.__refreshStart = null;\n /** {Number} Zoom level */\n this.__zoomLevel = 1;\n this.__zoomLevelStart = this.__zoomLevel;\n /** {Number} Scroll position on x-axis */\n this.__scrollLeft = 0;\n /** {Number} Scroll position on y-axis */\n this.__scrollTop = 0;\n /** {Integer} Maximum allowed scroll position on x-axis */\n this.__maxScrollLeft = 0;\n /** {Integer} Maximum allowed scroll position on y-axis */\n this.__maxScrollTop = 0;\n /* {Number} Scheduled left position (final position when animating) */\n this.__scheduledLeft = 0;\n /* {Number} Scheduled top position (final position when animating) */\n this.__scheduledTop = 0;\n /* {Number} Scheduled zoom level (final scale when animating) */\n this.__scheduledZoom = 0;\n /*\n ---------------------------------------------------------------------------\n INTERNAL FIELDS :: LAST POSITIONS\n ---------------------------------------------------------------------------\n */\n /** {Number} Left position of finger at start */\n this.__lastTouchLeft = null;\n /** {Number} Top position of finger at start */\n this.__lastTouchTop = null;\n /** {Date} Timestamp of last move of finger. Used to limit tracking range for deceleration speed. */\n this.__lastTouchMove = null;\n /** {Array} List of positions, uses three indexes for each state: left, top, timestamp */\n this.__positions = null;\n /*\n ---------------------------------------------------------------------------\n INTERNAL FIELDS :: DECELERATION SUPPORT\n ---------------------------------------------------------------------------\n */\n /** {Integer} Minimum left scroll position during deceleration */\n this.__minDecelerationScrollLeft = null;\n /** {Integer} Minimum top scroll position during deceleration */\n this.__minDecelerationScrollTop = null;\n /** {Integer} Maximum left scroll position during deceleration */\n this.__maxDecelerationScrollLeft = null;\n /** {Integer} Maximum top scroll position during deceleration */\n this.__maxDecelerationScrollTop = null;\n /** {Number} Current factor to modify horizontal scroll position with on every step */\n this.__decelerationVelocityX = null;\n /** {Number} Current factor to modify vertical scroll position with on every step */\n this.__decelerationVelocityY = null;\n this.__callback = function (scrollLeft, scrollTop, zoomLevel) { };\n this.__zoomComplete = function () { };\n this.options = {\n scrollingX: true,\n scrollingY: true,\n animating: true,\n animationDuration: 250,\n bouncing: true,\n locking: true,\n paging: false,\n snapping: false,\n zooming: false,\n zoomLevel: 1,\n minZoom: 0.5,\n maxZoom: 3,\n speedMultiplier: 1,\n scrollingComplete: function () { },\n penetrationDeceleration: 0.03,\n penetrationAcceleration: 0.08,\n };\n this.__callback = callback;\n this.options = __assign({}, this.options, options);\n if (options.zoomLevel && options.zoomLevel >= this.options.minZoom && options.zoomLevel <= this.options.maxZoom) {\n this.__zoomLevel = options.zoomLevel;\n this.__zoomLevelStart = this.__zoomLevel;\n }\n }\n // Easing Equations (c) 2003 Robert Penner, all rights reserved.\n // Open source under the BSD License.\n /**\n * @param pos {Number} position between 0 (start of effect) and 1 (end of effect)\n **/\n Scroller.prototype.easeOutCubic = function (pos) {\n return Math.pow(pos - 1, 3) + 1;\n };\n /**\n * @param pos {Number} position between 0 (start of effect) and 1 (end of effect)\n **/\n Scroller.prototype.easeInOutCubic = function (pos) {\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(pos, 3);\n }\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\n };\n /*\n ---------------------------------------------------------------------------\n PUBLIC API\n ---------------------------------------------------------------------------\n */\n /**\n * Configures the dimensions of the client (outer) and content (inner) elements.\n * Requires the available space for the outer element and the outer size of the inner element.\n * All values which are falsy (null or zero etc.) are ignored and the old value is kept.\n *\n * @param clientWidth {Integer ? null} Inner width of outer element\n * @param clientHeight {Integer ? null} Inner height of outer element\n * @param contentWidth {Integer ? null} Outer width of inner element\n * @param contentHeight {Integer ? null} Outer height of inner element\n */\n Scroller.prototype.setDimensions = function (clientWidth, clientHeight, contentWidth, contentHeight) {\n // Only update values which are defined\n if (clientWidth === +clientWidth) {\n this.__clientWidth = clientWidth;\n }\n if (clientHeight === +clientHeight) {\n this.__clientHeight = clientHeight;\n }\n if (contentWidth === +contentWidth) {\n this.__contentWidth = contentWidth;\n }\n if (contentHeight === +contentHeight) {\n this.__contentHeight = contentHeight;\n }\n // Refresh maximums\n this.__computeScrollMax();\n // Refresh scroll position\n this.scrollTo(this.__scrollLeft, this.__scrollTop, true);\n };\n /**\n * Sets the client coordinates in relation to the document.\n *\n * @param left {Integer ? 0} Left position of outer element\n * @param top {Integer ? 0} Top position of outer element\n */\n Scroller.prototype.setPosition = function (left, top) {\n this.__clientLeft = left || 0;\n this.__clientTop = top || 0;\n };\n /**\n * Configures the snapping (when snapping is active)\n *\n * @param width {Integer} Snapping width\n * @param height {Integer} Snapping height\n */\n Scroller.prototype.setSnapSize = function (width, height) {\n this.__snapWidth = width;\n this.__snapHeight = height;\n };\n /**\n * Activates pull-to-refresh. A special zone on the top of the list to start a list refresh whenever\n * the user event is released during visibility of this zone. This was introduced by some apps on iOS like\n * the official Twitter client.\n *\n * @param height {Integer} Height of pull-to-refresh zone on top of rendered list\n * @param activateCallback {Function} Callback to execute on activation. This is for signalling the user about a refresh is about to happen when he release.\n * @param deactivateCallback {Function} Callback to execute on deactivation. This is for signalling the user about the refresh being cancelled.\n * @param startCallback {Function} Callback to execute to start the real async refresh action. Call {@link #finishPullToRefresh} after finish of refresh.\n */\n Scroller.prototype.activatePullToRefresh = function (height, activateCallback, deactivateCallback, startCallback) {\n this.__refreshHeight = height;\n this.__refreshActivate = activateCallback;\n this.__refreshDeactivate = deactivateCallback;\n this.__refreshStart = startCallback;\n };\n /**\n * Starts pull-to-refresh manually.\n */\n Scroller.prototype.triggerPullToRefresh = function () {\n // Use publish instead of scrollTo to allow scrolling to out of boundary position\n // We don't need to normalize scrollLeft, zoomLevel, etc. here because we only y-scrolling when pull-to-refresh is enabled\n this.__publish(this.__scrollLeft, -this.__refreshHeight, this.__zoomLevel, true);\n if (this.__refreshStart) {\n this.__refreshStart();\n }\n };\n /**\n * Signalizes that pull-to-refresh is finished.\n */\n Scroller.prototype.finishPullToRefresh = function () {\n this.__refreshActive = false;\n if (this.__refreshDeactivate) {\n this.__refreshDeactivate();\n }\n this.scrollTo(this.__scrollLeft, this.__scrollTop, true);\n };\n /**\n * Returns the scroll position and zooming values\n *\n * @return {Map} `left` and `top` scroll position and `zoom` level\n */\n Scroller.prototype.getValues = function () {\n return {\n left: this.__scrollLeft,\n top: this.__scrollTop,\n zoom: this.__zoomLevel,\n };\n };\n /**\n * Returns the maximum scroll values\n *\n * @return {Map} `left` and `top` maximum scroll values\n */\n Scroller.prototype.getScrollMax = function () {\n return {\n left: this.__maxScrollLeft,\n top: this.__maxScrollTop,\n };\n };\n /**\n * Zooms to the given level. Supports optional animation. Zooms\n * the center when no coordinates are given.\n *\n * @param level {Number} Level to zoom to\n * @param animate {Boolean ? false} Whether to use animation\n * @param originLeft {Number ? null} Zoom in at given left coordinate\n * @param originTop {Number ? null} Zoom in at given top coordinate\n * @param callback {Function ? null} A callback that gets fired when the zoom is complete.\n */\n Scroller.prototype.zoomTo = function (level, animate, originLeft, originTop, callback) {\n if (!this.options.zooming) {\n throw new Error('Zooming is not enabled!');\n }\n // Add callback if exists\n if (callback) {\n this.__zoomComplete = callback;\n }\n // Stop deceleration\n if (this.__isDecelerating) {\n Animate_1.core.effect.Animate.stop(this.__isDecelerating);\n this.__isDecelerating = false;\n }\n var oldLevel = this.__zoomLevel;\n // Normalize input origin to center of viewport if not defined\n if (originLeft == null) {\n originLeft = this.__clientWidth / 2;\n }\n if (originTop == null) {\n originTop = this.__clientHeight / 2;\n }\n // Limit level according to configuration\n level = Math.max(Math.min(level, this.options.maxZoom), this.options.minZoom);\n // Recompute maximum values while temporary tweaking maximum scroll ranges\n this.__computeScrollMax(level);\n // Recompute left and top coordinates based on new zoom level\n var left = ((originLeft + this.__scrollLeft) * level) / oldLevel - originLeft;\n var top = ((originTop + this.__scrollTop) * level) / oldLevel - originTop;\n // Limit x-axis\n if (left > this.__maxScrollLeft) {\n left = this.__maxScrollLeft;\n }\n else if (left < 0) {\n left = 0;\n }\n // Limit y-axis\n if (top > this.__maxScrollTop) {\n top = this.__maxScrollTop;\n }\n else if (top < 0) {\n top = 0;\n }\n // Push values out\n this.__publish(left, top, level, animate);\n };\n /**\n * Zooms the content by the given factor.\n *\n * @param factor {Number} Zoom by given factor\n * @param animate {Boolean ? false} Whether to use animation\n * @param originLeft {Number ? 0} Zoom in at given left coordinate\n * @param originTop {Number ? 0} Zoom in at given top coordinate\n * @param callback {Function ? null} A callback that gets fired when the zoom is complete.\n */\n Scroller.prototype.zoomBy = function (factor, animate, originLeft, originTop, callback) {\n this.zoomTo(this.__zoomLevel * factor, animate, originLeft, originTop, callback);\n };\n /**\n * Scrolls to the given position. Respect limitations and snapping automatically.\n *\n * @param left {Number?null} Horizontal scroll position, keeps current if value is null
\n * @param top {Number?null} Vertical scroll position, keeps current if value is null
\n * @param animate {Boolean?false} Whether the scrolling should happen using an animation\n * @param zoom {Number?null} Zoom level to go to\n */\n Scroller.prototype.scrollTo = function (left, top, animate, zoom) {\n // Stop deceleration\n if (this.__isDecelerating) {\n Animate_1.core.effect.Animate.stop(this.__isDecelerating);\n this.__isDecelerating = false;\n }\n // Correct coordinates based on new zoom level\n if (zoom != null && zoom !== this.__zoomLevel) {\n if (!this.options.zooming) {\n throw new Error('Zooming is not enabled!');\n }\n left *= zoom;\n top *= zoom;\n // Recompute maximum values while temporary tweaking maximum scroll ranges\n this.__computeScrollMax(zoom);\n }\n else {\n // Keep zoom when not defined\n zoom = this.__zoomLevel;\n }\n if (!this.options.scrollingX) {\n left = this.__scrollLeft;\n }\n else {\n if (this.options.paging) {\n left = Math.round(left / this.__clientWidth) * this.__clientWidth;\n }\n else if (this.options.snapping) {\n left = Math.round(left / this.__snapWidth) * this.__snapWidth;\n }\n }\n if (!this.options.scrollingY) {\n top = this.__scrollTop;\n }\n else {\n if (this.options.paging) {\n top = Math.round(top / this.__clientHeight) * this.__clientHeight;\n }\n else if (this.options.snapping) {\n top = Math.round(top / this.__snapHeight) * this.__snapHeight;\n }\n }\n // Limit for allowed ranges\n left = Math.max(Math.min(this.__maxScrollLeft, left), 0);\n top = Math.max(Math.min(this.__maxScrollTop, top), 0);\n // Don't animate when no change detected, still call publish to make sure\n // that rendered position is really in-sync with internal data\n if (left === this.__scrollLeft && top === this.__scrollTop) {\n animate = false;\n }\n // Publish new values\n if (!this.__isTracking) {\n this.__publish(left, top, zoom, animate);\n }\n };\n /**\n * Scroll by the given offset\n *\n * @param left {Number ? 0} Scroll x-axis by given offset\n * @param top {Number ? 0} Scroll x-axis by given offset\n * @param animate {Boolean ? false} Whether to animate the given change\n */\n Scroller.prototype.scrollBy = function (left, top, animate) {\n var startLeft = this.__isAnimating ? this.__scheduledLeft : this.__scrollLeft;\n var startTop = this.__isAnimating ? this.__scheduledTop : this.__scrollTop;\n this.scrollTo(startLeft + (left || 0), startTop + (top || 0), animate);\n };\n /*\n ---------------------------------------------------------------------------\n EVENT CALLBACKS\n ---------------------------------------------------------------------------\n */\n /**\n * Mouse wheel handler for zooming support\n */\n Scroller.prototype.doMouseZoom = function (wheelDelta, timeStamp, pageX, pageY) {\n var change = wheelDelta > 0 ? 0.97 : 1.03;\n return this.zoomTo(this.__zoomLevel * change, false, pageX - this.__clientLeft, pageY - this.__clientTop);\n };\n /**\n * Touch start handler for scrolling support\n */\n Scroller.prototype.doTouchStart = function (touches, timeStamp) {\n // Array-like check is enough here\n if (touches.length == null) {\n throw new Error('Invalid touch list: ' + touches);\n }\n if (timeStamp instanceof Date) {\n timeStamp = timeStamp.valueOf();\n }\n if (typeof timeStamp !== 'number') {\n throw new Error('Invalid timestamp value: ' + timeStamp);\n }\n // Reset interruptedAnimation flag\n this.__interruptedAnimation = true;\n // Stop deceleration\n if (this.__isDecelerating) {\n Animate_1.core.effect.Animate.stop(this.__isDecelerating);\n this.__isDecelerating = false;\n this.__interruptedAnimation = true;\n }\n // Stop animation\n if (this.__isAnimating) {\n Animate_1.core.effect.Animate.stop(this.__isAnimating);\n this.__isAnimating = false;\n this.__interruptedAnimation = true;\n }\n // Use center point when dealing with two fingers\n var currentTouchLeft, currentTouchTop;\n var isSingleTouch = touches.length === 1;\n if (isSingleTouch) {\n currentTouchLeft = touches[0].pageX;\n currentTouchTop = touches[0].pageY;\n }\n else {\n currentTouchLeft = Math.abs(touches[0].pageX + touches[1].pageX) / 2;\n currentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2;\n }\n // Store initial positions\n this.__initialTouchLeft = currentTouchLeft;\n this.__initialTouchTop = currentTouchTop;\n // Store initial touchList for scale calculation\n this.__initialTouches = touches;\n // Store current zoom level\n this.__zoomLevelStart = this.__zoomLevel;\n // Store initial touch positions\n this.__lastTouchLeft = currentTouchLeft;\n this.__lastTouchTop = currentTouchTop;\n // Store initial move time stamp\n this.__lastTouchMove = timeStamp;\n // Reset initial scale\n this.__lastScale = 1;\n // Reset locking flags\n this.__enableScrollX = !isSingleTouch && this.options.scrollingX;\n this.__enableScrollY = !isSingleTouch && this.options.scrollingY;\n // Reset tracking flag\n this.__isTracking = true;\n // Reset deceleration complete flag\n this.__didDecelerationComplete = false;\n // Dragging starts directly with two fingers, otherwise lazy with an offset\n this.__isDragging = !isSingleTouch;\n // Some features are disabled in multi touch scenarios\n this.__isSingleTouch = isSingleTouch;\n // Clearing data structure\n this.__positions = [];\n };\n /**\n * Touch move handler for scrolling support\n */\n Scroller.prototype.doTouchMove = function (touches, timeStamp, scale) {\n // Array-like check is enough here\n if (touches.length == null) {\n throw new Error('Invalid touch list: ' + touches);\n }\n if (timeStamp instanceof Date) {\n timeStamp = timeStamp.valueOf();\n }\n if (typeof timeStamp !== 'number') {\n throw new Error('Invalid timestamp value: ' + timeStamp);\n }\n // Ignore event when tracking is not enabled (event might be outside of element)\n if (!this.__isTracking) {\n return;\n }\n var currentTouchLeft, currentTouchTop;\n // Compute move based around of center of fingers\n if (touches.length === 2) {\n currentTouchLeft = Math.abs(touches[0].pageX + touches[1].pageX) / 2;\n currentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2;\n // Calculate scale when not present and only when touches are used\n if (!scale && this.options.zooming) {\n scale = this.__getScale(this.__initialTouches, touches);\n }\n }\n else {\n currentTouchLeft = touches[0].pageX;\n currentTouchTop = touches[0].pageY;\n }\n var positions = this.__positions;\n // Are we already is dragging mode?\n if (this.__isDragging) {\n // Compute move distance\n var moveX = currentTouchLeft - this.__lastTouchLeft;\n var moveY = currentTouchTop - this.__lastTouchTop;\n // Read previous scroll position and zooming\n var scrollLeft = this.__scrollLeft;\n var scrollTop = this.__scrollTop;\n var level = this.__zoomLevel;\n // Work with scaling\n if (scale != null && this.options.zooming) {\n var oldLevel = level;\n // Recompute level based on previous scale and new scale\n level = (level / this.__lastScale) * scale;\n // Limit level according to configuration\n level = Math.max(Math.min(level, this.options.maxZoom), this.options.minZoom);\n // Only do further compution when change happened\n if (oldLevel !== level) {\n // Compute relative event position to container\n var currentTouchLeftRel = currentTouchLeft - this.__clientLeft;\n var currentTouchTopRel = currentTouchTop - this.__clientTop;\n // Recompute left and top coordinates based on new zoom level\n scrollLeft = ((currentTouchLeftRel + scrollLeft) * level) / oldLevel - currentTouchLeftRel;\n scrollTop = ((currentTouchTopRel + scrollTop) * level) / oldLevel - currentTouchTopRel;\n // Recompute max scroll values\n this.__computeScrollMax(level);\n }\n }\n if (this.__enableScrollX) {\n scrollLeft -= moveX * this.options.speedMultiplier;\n var maxScrollLeft = this.__maxScrollLeft;\n if (scrollLeft > maxScrollLeft || scrollLeft < 0) {\n // Slow down on the edges\n if (this.options.bouncing) {\n scrollLeft += (moveX / 2) * this.options.speedMultiplier;\n }\n else if (scrollLeft > maxScrollLeft) {\n scrollLeft = maxScrollLeft;\n }\n else {\n scrollLeft = 0;\n }\n }\n }\n // Compute new vertical scroll position\n if (this.__enableScrollY) {\n scrollTop -= moveY * this.options.speedMultiplier;\n var maxScrollTop = this.__maxScrollTop;\n if (scrollTop > maxScrollTop || scrollTop < 0) {\n // Slow down on the edges\n if (this.options.bouncing) {\n scrollTop += (moveY / 2) * this.options.speedMultiplier;\n // Support pull-to-refresh (only when only y is scrollable)\n if (!this.__enableScrollX && this.__refreshHeight != null) {\n if (!this.__refreshActive && scrollTop <= -this.__refreshHeight) {\n this.__refreshActive = true;\n if (this.__refreshActivate) {\n this.__refreshActivate();\n }\n }\n else if (this.__refreshActive && scrollTop > -this.__refreshHeight) {\n this.__refreshActive = false;\n if (this.__refreshDeactivate) {\n this.__refreshDeactivate();\n }\n }\n }\n }\n else if (scrollTop > maxScrollTop) {\n scrollTop = maxScrollTop;\n }\n else {\n scrollTop = 0;\n }\n }\n }\n // Keep list from growing infinitely (holding min 10, max 20 measure points)\n if (positions.length > 60) {\n positions.splice(0, 30);\n }\n // Track scroll movement for decleration\n positions.push(scrollLeft, scrollTop, timeStamp);\n // Sync scroll position\n this.__publish(scrollLeft, scrollTop, level);\n // Otherwise figure out whether we are switching into dragging mode now.\n }\n else {\n var minimumTrackingForScroll = this.options.locking ? 3 : 0;\n var minimumTrackingForDrag = 5;\n var distanceX = Math.abs(currentTouchLeft - this.__initialTouchLeft);\n var distanceY = Math.abs(currentTouchTop - this.__initialTouchTop);\n this.__enableScrollX = this.options.scrollingX && distanceX >= minimumTrackingForScroll;\n this.__enableScrollY = this.options.scrollingY && distanceY >= minimumTrackingForScroll;\n positions.push(this.__scrollLeft, this.__scrollTop, timeStamp);\n this.__isDragging =\n (this.__enableScrollX || this.__enableScrollY) &&\n (distanceX >= minimumTrackingForDrag || distanceY >= minimumTrackingForDrag);\n if (this.__isDragging) {\n this.__interruptedAnimation = false;\n }\n }\n // Update last touch positions and time stamp for next event\n this.__lastTouchLeft = currentTouchLeft;\n this.__lastTouchTop = currentTouchTop;\n this.__lastTouchMove = timeStamp;\n this.__lastScale = scale;\n };\n /**\n * Touch end handler for scrolling support\n */\n Scroller.prototype.doTouchEnd = function (timeStamp) {\n if (timeStamp instanceof Date) {\n timeStamp = timeStamp.valueOf();\n }\n if (typeof timeStamp !== 'number') {\n throw new Error('Invalid timestamp value: ' + timeStamp);\n }\n // Ignore event when tracking is not enabled (no touchstart event on element)\n // This is required as this listener ('touchmove') sits on the document and not on the element itthis.\n if (!this.__isTracking) {\n return;\n }\n // Not touching anymore (when two finger hit the screen there are two touch end events)\n this.__isTracking = false;\n // Be sure to reset the dragging flag now. Here we also detect whether\n // the finger has moved fast enough to switch into a deceleration animation.\n if (this.__isDragging) {\n // Reset dragging flag\n this.__isDragging = false;\n // Start deceleration\n // Verify that the last move detected was in some relevant time frame\n if (this.__isSingleTouch && this.options.animating && timeStamp - this.__lastTouchMove <= 100) {\n // Then figure out what the scroll position was about 100ms ago\n var positions = this.__positions;\n var endPos = positions.length - 1;\n var startPos = endPos;\n // Move pointer to position measured 100ms ago\n for (var i = endPos; i > 0 && positions[i] > this.__lastTouchMove - 100; i -= 3) {\n startPos = i;\n }\n // If start and stop position is identical in a 100ms timeframe,\n // we cannot compute any useful deceleration.\n if (startPos !== endPos) {\n // Compute relative movement between these two points\n var timeOffset = positions[endPos] - positions[startPos];\n var movedLeft = this.__scrollLeft - positions[startPos - 2];\n var movedTop = this.__scrollTop - positions[startPos - 1];\n // Based on 50ms compute the movement to apply for each render step\n this.__decelerationVelocityX = (movedLeft / timeOffset) * (1000 / 60);\n this.__decelerationVelocityY = (movedTop / timeOffset) * (1000 / 60);\n // How much velocity is required to start the deceleration\n var minVelocityToStartDeceleration = this.options.paging || this.options.snapping ? 4 : 1;\n // Verify that we have enough velocity to start deceleration\n if (Math.abs(this.__decelerationVelocityX) > minVelocityToStartDeceleration ||\n Math.abs(this.__decelerationVelocityY) > minVelocityToStartDeceleration) {\n // Deactivate pull-to-refresh when decelerating\n if (!this.__refreshActive) {\n this.__startDeceleration(timeStamp);\n }\n }\n else {\n this.options.scrollingComplete();\n }\n }\n else {\n this.options.scrollingComplete();\n }\n }\n else if (timeStamp - this.__lastTouchMove > 100) {\n this.options.scrollingComplete();\n }\n }\n // If this was a slower move it is per default non decelerated, but this\n // still means that we want snap back to the bounds which is done here.\n // This is placed outside the condition above to improve edge case stability\n // e.g. touchend fired without enabled dragging. This should normally do not\n // have modified the scroll positions or even showed the scrollbars though.\n if (!this.__isDecelerating) {\n if (this.__refreshActive && this.__refreshStart) {\n // Use publish instead of scrollTo to allow scrolling to out of boundary position\n // We don't need to normalize scrollLeft, zoomLevel, etc. here because we only y-scrolling when pull-to-refresh is enabled\n this.__publish(this.__scrollLeft, -this.__refreshHeight, this.__zoomLevel, true);\n if (this.__refreshStart) {\n this.__refreshStart();\n }\n }\n else {\n if (this.__interruptedAnimation || this.__isDragging) {\n this.options.scrollingComplete();\n }\n this.scrollTo(this.__scrollLeft, this.__scrollTop, true, this.__zoomLevel);\n // Directly signalize deactivation (nothing todo on refresh?)\n if (this.__refreshActive) {\n this.__refreshActive = false;\n if (this.__refreshDeactivate) {\n this.__refreshDeactivate();\n }\n }\n }\n }\n // Fully cleanup list\n this.__positions.length = 0;\n };\n /*\n ---------------------------------------------------------------------------\n PRIVATE API\n ---------------------------------------------------------------------------\n */\n /**\n * Applies the scroll position to the content element\n *\n * @param left {Number} Left scroll position\n * @param top {Number} Top scroll position\n * @param animate {Boolean?false} Whether animation should be used to move to the new coordinates\n */\n Scroller.prototype.__publish = function (left, top, zoom, animate) {\n var _this = this;\n // Remember whether we had an animation, then we try to continue based on the current \"drive\" of the animation\n var wasAnimating = this.__isAnimating;\n if (wasAnimating) {\n Animate_1.core.effect.Animate.stop(wasAnimating);\n this.__isAnimating = false;\n }\n if (animate && this.options.animating) {\n // Keep scheduled positions for scrollBy/zoomBy functionality\n this.__scheduledLeft = left;\n this.__scheduledTop = top;\n this.__scheduledZoom = zoom;\n var oldLeft = this.__scrollLeft;\n var oldTop = this.__scrollTop;\n var oldZoom = this.__zoomLevel;\n var diffLeft = left - oldLeft;\n var diffTop = top - oldTop;\n var diffZoom = zoom - oldZoom;\n var step = function (percent, now, render) {\n if (render) {\n _this.__scrollLeft = oldLeft + diffLeft * percent;\n _this.__scrollTop = oldTop + diffTop * percent;\n _this.__zoomLevel = oldZoom + diffZoom * percent;\n // Push values out\n if (_this.__callback) {\n _this.__callback(_this.__scrollLeft, _this.__scrollTop, _this.__zoomLevel);\n }\n }\n };\n var verify = function (id) {\n return _this.__isAnimating === id;\n };\n var completed = function (renderedFramesPerSecond, animationId, wasFinished) {\n if (animationId === _this.__isAnimating) {\n _this.__isAnimating = false;\n }\n if (_this.__didDecelerationComplete || wasFinished) {\n _this.options.scrollingComplete();\n }\n if (_this.options.zooming) {\n _this.__computeScrollMax();\n if (_this.__zoomComplete) {\n _this.__zoomComplete();\n _this.__zoomComplete = null;\n }\n }\n };\n // When continuing based on previous animation we choose an ease-out animation instead of ease-in-out\n this.__isAnimating = Animate_1.core.effect.Animate.start(step, verify, completed, this.options.animationDuration, wasAnimating ? this.easeOutCubic : this.easeInOutCubic);\n }\n else {\n this.__scheduledLeft = this.__scrollLeft = left;\n this.__scheduledTop = this.__scrollTop = top;\n this.__scheduledZoom = this.__zoomLevel = zoom;\n // Push values out\n if (this.__callback) {\n this.__callback(left, top, zoom);\n }\n // Fix max scroll ranges\n if (this.options.zooming) {\n this.__computeScrollMax();\n if (this.__zoomComplete) {\n this.__zoomComplete();\n this.__zoomComplete = null;\n }\n }\n }\n };\n /**\n * Recomputes scroll minimum values based on client dimensions and content dimensions.\n */\n Scroller.prototype.__computeScrollMax = function (zoomLevel) {\n if (zoomLevel === void 0) { zoomLevel = this.__zoomLevel; }\n this.__maxScrollLeft = Math.max(this.__contentWidth * zoomLevel - this.__clientWidth, 0);\n this.__maxScrollTop = Math.max(this.__contentHeight * zoomLevel - this.__clientHeight, 0);\n };\n /*\n ---------------------------------------------------------------------------\n ANIMATION (DECELERATION) SUPPORT\n ---------------------------------------------------------------------------\n */\n /**\n * Called when a touch sequence end and the speed of the finger was high enough\n * to switch into deceleration mode.\n */\n Scroller.prototype.__startDeceleration = function (timeStamp) {\n var _this = this;\n if (this.options.paging) {\n var scrollLeft = Math.max(Math.min(this.__scrollLeft, this.__maxScrollLeft), 0);\n var scrollTop = Math.max(Math.min(this.__scrollTop, this.__maxScrollTop), 0);\n var clientWidth = this.__clientWidth;\n var clientHeight = this.__clientHeight;\n // We limit deceleration not to the min/max values of the allowed range, but to the size of the visible client area.\n // Each page should have exactly the size of the client area.\n this.__minDecelerationScrollLeft = Math.floor(scrollLeft / clientWidth) * clientWidth;\n this.__minDecelerationScrollTop = Math.floor(scrollTop / clientHeight) * clientHeight;\n this.__maxDecelerationScrollLeft = Math.ceil(scrollLeft / clientWidth) * clientWidth;\n this.__maxDecelerationScrollTop = Math.ceil(scrollTop / clientHeight) * clientHeight;\n }\n else {\n this.__minDecelerationScrollLeft = 0;\n this.__minDecelerationScrollTop = 0;\n this.__maxDecelerationScrollLeft = this.__maxScrollLeft;\n this.__maxDecelerationScrollTop = this.__maxScrollTop;\n }\n // Wrap class method\n var step = function (percent, now, render) {\n _this.__stepThroughDeceleration(render);\n };\n // How much velocity is required to keep the deceleration running\n var minVelocityToKeepDecelerating = this.options.snapping ? 4 : 0.001;\n // Detect whether it's still worth to continue animating steps\n // If we are already slow enough to not being user perceivable anymore, we stop the whole process here.\n var verify = function () {\n var shouldContinue = Math.abs(_this.__decelerationVelocityX) >= minVelocityToKeepDecelerating ||\n Math.abs(_this.__decelerationVelocityY) >= minVelocityToKeepDecelerating;\n if (!shouldContinue) {\n _this.__didDecelerationComplete = true;\n }\n return shouldContinue;\n };\n var completed = function (renderedFramesPerSecond, animationId, wasFinished) {\n _this.__isDecelerating = false;\n if (_this.__didDecelerationComplete) {\n _this.options.scrollingComplete();\n }\n // Animate to grid when snapping is active, otherwise just fix out-of-boundary positions\n _this.scrollTo(_this.__scrollLeft, _this.__scrollTop, _this.options.snapping);\n };\n // Start animation and switch on flag\n this.__isDecelerating = Animate_1.core.effect.Animate.start(step, verify, completed);\n };\n /**\n * Called on every step of the animation\n *\n * @param inMemory {Boolean?false} Whether to not render the current step, but keep it in memory only. Used internally only!\n */\n Scroller.prototype.__stepThroughDeceleration = function (render) {\n //\n // COMPUTE NEXT SCROLL POSITION\n //\n // Add deceleration to scroll position\n var scrollLeft = this.__scrollLeft + this.__decelerationVelocityX;\n var scrollTop = this.__scrollTop + this.__decelerationVelocityY;\n //\n // HARD LIMIT SCROLL POSITION FOR NON BOUNCING MODE\n //\n if (!this.options.bouncing) {\n var scrollLeftFixed = Math.max(Math.min(this.__maxDecelerationScrollLeft, scrollLeft), this.__minDecelerationScrollLeft);\n if (scrollLeftFixed !== scrollLeft) {\n scrollLeft = scrollLeftFixed;\n this.__decelerationVelocityX = 0;\n }\n var scrollTopFixed = Math.max(Math.min(this.__maxDecelerationScrollTop, scrollTop), this.__minDecelerationScrollTop);\n if (scrollTopFixed !== scrollTop) {\n scrollTop = scrollTopFixed;\n this.__decelerationVelocityY = 0;\n }\n }\n //\n // UPDATE SCROLL POSITION\n //\n if (render) {\n this.__publish(scrollLeft, scrollTop, this.__zoomLevel);\n }\n else {\n this.__scrollLeft = scrollLeft;\n this.__scrollTop = scrollTop;\n }\n //\n // SLOW DOWN\n //\n // Slow down velocity on every iteration\n if (!this.options.paging) {\n // This is the factor applied to every iteration of the animation\n // to slow down the process. This should emulate natural behavior where\n // objects slow down when the initiator of the movement is removed\n var frictionFactor = 0.95;\n this.__decelerationVelocityX *= frictionFactor;\n this.__decelerationVelocityY *= frictionFactor;\n }\n //\n // BOUNCING SUPPORT\n //\n if (this.options.bouncing) {\n var scrollOutsideX = 0;\n var scrollOutsideY = 0;\n // This configures the amount of change applied to deceleration/acceleration when reaching boundaries\n var penetrationDeceleration = this.options.penetrationDeceleration;\n var penetrationAcceleration = this.options.penetrationAcceleration;\n // Check limits\n if (scrollLeft < this.__minDecelerationScrollLeft) {\n scrollOutsideX = this.__minDecelerationScrollLeft - scrollLeft;\n }\n else if (scrollLeft > this.__maxDecelerationScrollLeft) {\n scrollOutsideX = this.__maxDecelerationScrollLeft - scrollLeft;\n }\n if (scrollTop < this.__minDecelerationScrollTop) {\n scrollOutsideY = this.__minDecelerationScrollTop - scrollTop;\n }\n else if (scrollTop > this.__maxDecelerationScrollTop) {\n scrollOutsideY = this.__maxDecelerationScrollTop - scrollTop;\n }\n // Slow down until slow enough, then flip back to snap position\n if (scrollOutsideX !== 0) {\n if (scrollOutsideX * this.__decelerationVelocityX <= 0) {\n this.__decelerationVelocityX += scrollOutsideX * penetrationDeceleration;\n }\n else {\n this.__decelerationVelocityX = scrollOutsideX * penetrationAcceleration;\n }\n }\n if (scrollOutsideY !== 0) {\n if (scrollOutsideY * this.__decelerationVelocityY <= 0) {\n this.__decelerationVelocityY += scrollOutsideY * penetrationDeceleration;\n }\n else {\n this.__decelerationVelocityY = scrollOutsideY * penetrationAcceleration;\n }\n }\n }\n };\n /**\n * calculate the distance between two touches\n * @param {Touch} touch1\n * @param {Touch} touch2\n * @returns {Number} distance\n */\n Scroller.prototype.__getDistance = function (touch1, touch2) {\n var x = touch2.pageX - touch1.pageX, y = touch2.pageY - touch1.pageY;\n return Math.sqrt(x * x + y * y);\n };\n /**\n * calculate the scale factor between two touchLists (fingers)\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start\n * @param {Array} end\n * @returns {Number} scale\n */\n Scroller.prototype.__getScale = function (start, end) {\n // need two fingers...\n if (start.length >= 2 && end.length >= 2) {\n return this.__getDistance(end[0], end[1]) / this.__getDistance(start[0], start[1]);\n }\n return 1;\n };\n return Scroller;\n}());\nexports.Scroller = Scroller;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./EasyScroller\"));\n__export(require(\"./Scroller\"));\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image-wraper\"},[_c('div',{staticClass:\"image-wiew\",attrs:{\"id\":_vm.domId}},[_c('img',{attrs:{\"src\":_vm.src}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n \n
![]()
\n
\n
\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageView.vue?vue&type=template&id=b5fa167a&scoped=true&\"\nimport script from \"./ImageView.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageView.vue?vue&type=style&index=0&id=b5fa167a&prod&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5fa167a\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\n/*\n * Scroller\n * http://github.com/zynga/scroller\n *\n * Copyright 2011, Zynga Inc.\n * Licensed under the MIT License.\n * https://raw.github.com/zynga/scroller/master/MIT-LICENSE.txt\n *\n * Based on the work of: Unify Project (unify-project.org)\n * http://unify-project.org\n * Copyright 2011, Deutsche Telekom AG\n * License: MIT + Apache (V2)\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Generic animation class with support for dropped frames both optional easing and duration.\n *\n * Optional duration is useful when the lifetime is defined by another condition than time\n * e.g. speed of an animating object, etc.\n *\n * Dropped frame logic allows to keep using the same updater logic independent from the actual\n * rendering. This eases a lot of cases where it might be pretty complex to break down a state\n * based on the pure time difference.\n */\nvar time = Date.now ||\n function () {\n return +new Date();\n };\nvar desiredFrames = 60;\nvar millisecondsPerSecond = 1000;\nvar running = {};\nvar counter = 1;\nexports.core = {\n effect: {\n Animate: {\n /**\n * A requestAnimationFrame wrapper / polyfill.\n *\n * @param callback {Function} The callback to be invoked before the next repaint.\n * @param root {HTMLElement} The root element for the repaint\n */\n requestAnimationFrame: (function () {\n // Check for request animation Frame support\n var requestFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame;\n var isNative = !!requestFrame;\n if (requestFrame && !/requestAnimationFrame\\(\\)\\s*\\{\\s*\\[native code\\]\\s*\\}/i.test(requestFrame.toString())) {\n isNative = false;\n }\n if (isNative) {\n return function (callback, root) {\n requestFrame(callback, root);\n };\n }\n var TARGET_FPS = 60;\n var requests = {};\n var requestCount = 0;\n var rafHandle = 1;\n var intervalHandle = null;\n var lastActive = +new Date();\n return function (callback, root) {\n var callbackHandle = rafHandle++;\n // Store callback\n requests[callbackHandle] = callback;\n requestCount++;\n // Create timeout at first request\n if (intervalHandle === null) {\n intervalHandle = setInterval(function () {\n var time = +new Date();\n var currentRequests = requests;\n // Reset data structure before executing callbacks\n requests = {};\n requestCount = 0;\n for (var key in currentRequests) {\n if (currentRequests.hasOwnProperty(key)) {\n currentRequests[key](time);\n lastActive = time;\n }\n }\n // Disable the timeout when nothing happens for a certain\n // period of time\n if (time - lastActive > 2500) {\n clearInterval(intervalHandle);\n intervalHandle = null;\n }\n }, 1000 / TARGET_FPS);\n }\n return callbackHandle;\n };\n })(),\n /**\n * Stops the given animation.\n *\n * @param id {Integer} Unique animation ID\n * @return {Boolean} Whether the animation was stopped (aka, was running before)\n */\n stop: function (id) {\n var cleared = running[id] != null;\n if (cleared) {\n running[id] = null;\n }\n return cleared;\n },\n /**\n * Whether the given animation is still running.\n *\n * @param id {Integer} Unique animation ID\n * @return {Boolean} Whether the animation is still running\n */\n isRunning: function (id) {\n return running[id] != null;\n },\n /**\n * Start the animation.\n *\n * @param stepCallback {Function} Pointer to function which is executed on every step.\n * Signature of the method should be `function(percent, now, virtual) { return continueWithAnimation; }`\n * @param verifyCallback {Function} Executed before every animation step.\n * Signature of the method should be `function() { return continueWithAnimation; }`\n * @param completedCallback {Function}\n * Signature of the method should be `function(droppedFrames, finishedAnimation) {}`\n * @param duration {Integer} Milliseconds to run the animation\n * @param easingMethod {Function} Pointer to easing function\n * Signature of the method should be `function(percent) { return modifiedValue; }`\n * @param root {Element ? document.body} Render root, when available. Used for internal\n * usage of requestAnimationFrame.\n * @return {Integer} Identifier of animation. Can be used to stop it any time.\n */\n start: function (stepCallback, verifyCallback, completedCallback, duration, easingMethod, root) {\n var start = time();\n var lastFrame = start;\n var percent = 0;\n var dropCounter = 0;\n var id = counter++;\n if (!root) {\n root = document.body;\n }\n // Compacting running db automatically every few new animations\n if (id % 20 === 0) {\n var newRunning = {};\n for (var usedId in running) {\n newRunning[usedId] = true;\n }\n running = newRunning;\n }\n // This is the internal step method which is called every few milliseconds\n var step = function (virtual) {\n // Normalize virtual value\n var render = virtual !== true;\n // Get current time\n var now = time();\n // Verification is executed before next animation step\n if (!running[id] || (verifyCallback && !verifyCallback(id))) {\n running[id] = null;\n completedCallback &&\n completedCallback(desiredFrames - dropCounter / ((now - start) / millisecondsPerSecond), id, false);\n return;\n }\n // For the current rendering to apply let's update omitted steps in memory.\n // This is important to bring internal state variables up-to-date with progress in time.\n if (render) {\n var droppedFrames = Math.round((now - lastFrame) / (millisecondsPerSecond / desiredFrames)) - 1;\n for (var j = 0; j < Math.min(droppedFrames, 4); j++) {\n step(true);\n dropCounter++;\n }\n }\n // Compute percent value\n if (duration) {\n percent = (now - start) / duration;\n if (percent > 1) {\n percent = 1;\n }\n }\n // Execute step callback, then...\n var value = easingMethod ? easingMethod(percent) : percent;\n if ((stepCallback(value, now, render) === false || percent === 1) && render) {\n running[id] = null;\n completedCallback &&\n completedCallback(desiredFrames - dropCounter / ((now - start) / millisecondsPerSecond), id, percent === 1 || duration == null);\n }\n else if (render) {\n lastFrame = now;\n exports.core.effect.Animate.requestAnimationFrame(step, root);\n }\n };\n // Mark as running\n running[id] = true;\n // Init first step\n exports.core.effect.Animate.requestAnimationFrame(step, root);\n // Return unique animation ID\n return id;\n },\n },\n },\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--10-oneOf-1-4!../../../node_modules/style-resources-loader/lib/index.js??ref--10-oneOf-1-5!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=b5fa167a&prod&lang=less&scoped=true&\"","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Scroller_1 = require(\"./Scroller\");\nvar EasyScroller = /** @class */ (function () {\n function EasyScroller(content, options) {\n var _this = this;\n this.options = {};\n this.browserHasPerspectiveProperty = false;\n this.browserHasTransformProperty = true;\n this.eventHandlers = [];\n if (!content) {\n throw new Error('No Content Element specified!');\n }\n this.content = content;\n this.container = content.parentNode;\n if (!this.container) {\n throw new Error('No Parent Container for Content! Please wrap Content Element in a Container.');\n }\n this.options = __assign({}, this.options, options);\n this.scroller = new Scroller_1.Scroller(function (left, top, zoom) {\n _this.render(left, top, zoom);\n }, options);\n var helperElem = document.createElement('div');\n var vendorPrefix = this.getVendorPrefix();\n // the content element needs a correct transform origin for zooming\n this.content.style[vendorPrefix + \"TransformOrigin\"] = 'left top';\n this.transformProperty = vendorPrefix + \"Transform\";\n this.browserHasTransformProperty = helperElem.style[this.transformProperty] !== undefined;\n var perspectiveProperty = vendorPrefix + \"Perspective\";\n this.browserHasPerspectiveProperty = helperElem.style[perspectiveProperty] !== undefined;\n this.bindEvents();\n // reflow for the first time\n this.reflow();\n }\n EasyScroller.prototype.getVendorPrefix = function () {\n var docStyle = document.documentElement.style;\n var engine;\n if (window.opera && Object.prototype.toString.call(window.opera) === '[object Opera]') {\n engine = 'presto';\n }\n else if ('MozAppearance' in docStyle) {\n engine = 'gecko';\n }\n else if ('WebkitAppearance' in docStyle) {\n engine = 'webkit';\n }\n else if (typeof navigator.cpuClass === 'string') {\n engine = 'trident';\n }\n var vendorMap = {\n trident: 'ms',\n gecko: 'Moz',\n webkit: 'Webkit',\n presto: 'O',\n };\n return vendorMap[engine];\n };\n EasyScroller.prototype.render = function (left, top, zoom) {\n if (this.browserHasPerspectiveProperty) {\n this.content.style[this.transformProperty] = 'translate3d(' + -left + 'px,' + -top + 'px,0) scale(' + zoom + ')';\n }\n else if (this.browserHasTransformProperty) {\n this.content.style[this.transformProperty] = 'translate(' + -left + 'px,' + -top + 'px) scale(' + zoom + ')';\n }\n else {\n this.content.style.marginLeft = left ? -left / zoom + 'px' : '';\n this.content.style.marginTop = top ? -top / zoom + 'px' : '';\n this.content.style.zoom = zoom || '';\n }\n };\n EasyScroller.prototype.reflow = function () {\n // set the right scroller dimensions\n this.scroller.setDimensions(this.container.clientWidth, this.container.clientHeight, this.content.offsetWidth, this.content.offsetHeight);\n // refresh the position for zooming purposes\n var rect = this.container.getBoundingClientRect();\n this.scroller.setPosition(rect.left + this.container.clientLeft, rect.top + this.container.clientTop);\n };\n EasyScroller.prototype.bindEvents = function () {\n var _this = this;\n var resizeHandler = function () { return _this.reflow(); };\n // reflow handling\n this.eventHandlers.push({ event: 'resize', handler: resizeHandler, forElem: window });\n // touch devices bind touch events\n if ('ontouchstart' in window) {\n var touchstartHandler = function (e) {\n // Don't react if initial down happens on a form element\n if (e.touches[0] && e.touches[0].target && e.touches[0].target.tagName.match(/input|textarea|select/i)) {\n return;\n }\n // reflow since the container may have changed\n _this.reflow();\n _this.scroller.doTouchStart(e.touches, e.timeStamp);\n };\n var touchmoveHandler = function (e) {\n e.preventDefault();\n _this.scroller.doTouchMove(e.touches, e.timeStamp, e.scale);\n };\n var touchendHandler = function (e) { return _this.scroller.doTouchEnd(e.timeStamp); };\n var touchcancelHandler = function (e) { return _this.scroller.doTouchEnd(e.timeStamp); };\n this.eventHandlers.push({ event: 'touchstart', handler: touchstartHandler, forElem: this.container }, { event: 'touchmove', handler: touchmoveHandler, forElem: this.container }, { event: 'touchend', handler: touchendHandler, forElem: this.container }, { event: 'touchcancel', handler: touchcancelHandler, forElem: this.container });\n }\n else {\n // non-touch bind mouse events\n var mousedown = false;\n var mousedownHandler = function (e) {\n if (e.target.tagName.match(/input|textarea|select/i)) {\n return;\n }\n _this.scroller.doTouchStart([\n {\n pageX: e.pageX,\n pageY: e.pageY,\n },\n ], e.timeStamp);\n mousedown = true;\n // reflow since the container may have changed\n _this.reflow();\n e.preventDefault();\n };\n var mousemoveHandler = function (e) {\n if (!mousedown) {\n return;\n }\n _this.scroller.doTouchMove([\n {\n pageX: e.pageX,\n pageY: e.pageY,\n },\n ], e.timeStamp);\n mousedown = true;\n };\n var mouseupHandler = function (e) {\n if (!mousedown) {\n return;\n }\n _this.scroller.doTouchEnd(e.timeStamp);\n mousedown = false;\n };\n var mousewheelHandler = function (e) {\n if (_this.options.zooming) {\n _this.scroller.doMouseZoom(e.wheelDelta, e.timeStamp, e.pageX, e.pageY);\n e.preventDefault();\n }\n };\n this.eventHandlers.push({ event: 'mousedown', handler: mousedownHandler, forElem: this.container }, { event: 'mousemove', handler: mousemoveHandler, forElem: document }, { event: 'mouseup', handler: mouseupHandler, forElem: document }, { event: 'mousewheel', handler: mousewheelHandler, forElem: this.container });\n }\n return this.eventHandlers.forEach(function (eventHandler) {\n eventHandler.forElem.addEventListener(eventHandler.event, eventHandler.handler, false);\n });\n };\n /**\n * Retrieves Scroller instance.\n */\n EasyScroller.prototype.getScroller = function () {\n return this.scroller;\n };\n /**\n * Call on disposal of EasyScroller to clean up Event Handlers.\n */\n EasyScroller.prototype.destroy = function () {\n return this.eventHandlers.forEach(function (eventHandler) {\n eventHandler.forElem.removeEventListener(eventHandler.event, eventHandler.handler, false);\n });\n };\n return EasyScroller;\n}());\nexports.EasyScroller = EasyScroller;\n","import sendRequest from \"@/utils/request\";\n\nexport const URLS = {\n QueryMeetingRoomOccupancyStatistics:\n \"/api/DirectorClient/MeetingRoomOccupancyDirectorQuery/QueryMeetingRoomOccupancyStatistics\",\n QueryMeetingRoomOccupancyDetail:\n \"/api/DirectorClient/MeetingRoomOccupancyDirectorQuery/QueryMeetingRoomOccupancyDetail\",\n QueryMeetingRoomApplies:\n \"/api/DirectorClient/MeetingRoomApplyDirectorQuery/QueryMeetingRoomApplies\",\n\n QueryMeetingRoomBuildings:\n \"/api/DirectorClient/MeetingRoomBuildingDirectorQuery/QueryMeetingRoomBuildings\",\n\n QueryMeetingRoomFloors:\n \"/api/DirectorClient/MeetingRoomBuildingDirectorQuery/QueryMeetingRoomFloors\",\n QueryMeetingRoomFloorMapImages: \"/api/DirectorClient/MeetingRoomBuildingDirectorQuery/QueryMeetingRoomFloorMapImages\",\n\n QueryMeetingRooms:\n \"/api/DirectorClient/MeetingRoomBuildingDirectorQuery/QueryMeetingRooms\"\n};\n\nconst apis = {};\nfor (const key in URLS) {\n const url = URLS[key];\n apis[key] = (params, option = {}) => {\n return sendRequest(url, params, \"post\", option);\n };\n}\nexport default apis;\n"],"sourceRoot":""}