{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/spritespin.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/spritespin.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","document","ready","Api","data","this","extendApi","methods","api","Error","canvas","context","img","$$1","window","jQuery","getCursorPosition","event","touches","source","undefined","originalEvent","length","x","clientX","y","clientY","detectSubsampling","width","height","createElement","getContext","fillStyle","fillRect","drawImage","dat","getImageData","err","getOuterSize","Math","floor","frameWidth","target","innerWidth","frameHeight","innerHeight","aspect","getComputedSize","size","getComputedStyle","style","Number","replace","getInnerSize","getInnerLayout","inner","outer","isFit","isFill","layout","top","left","bottom","right","position","overflow","aspectIsGreater","naturalSize","image","naturalWidth","naturalHeight","Image","src","measure","images","options","measureSheet","framesX","framesY","result","id","sheet","frames","push","measureMutipleSheets","measureFrames","sprites","isSubsampled","sampledWidth","sampledHeight","measureImage","ceil","divisor","sampledX","sampledY","findSpecs","metrics","frame","lane","spriteId","sheetId","sprite","indexOf","element","arr","noop","preload","opts","input","targetCount","preloadCount","onInitiated","initiated","onProgress","progress","onComplete","complete","count","completed","firstLoaded","tick","index","loaded","total","percent","round","_i","src_1","url","onload","onabort","onerror","padNumber","num","pad","String","sourceArray","template","digits","lPlacer","lanePlacer","fPlacer","framePlacer","fStart","fEnd","lStart","lEnd","namespace","eventNames","callbackNames","eventsToPrevent","defaults","lanes","sizeMode","renderer","frameTime","animate","retainAnimate","reverse","loop","stopFrame","wrap","wrapLane","sense","senseLane","orientation","touchScrollTimer","responsive","plugins","noop$1","wrapConsole","type","console","args","arguments","log","apply","warn","error","toArray","Array","isArray","clamp","min","max","prevent","e","preventDefault","func","spritespin","unbind","pixelRatio","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","_Utils","freeze","isFunction","fn","applyLayout","attr","css","stage","hide","canvasRatio","scale","getState","state","getPluginState","is","flag","getPlaybackState","updateAnimation","handler","updateBefore","stopAnimation","updateAnimationFrame","updateAfter","lastFrame","lastLane","trigger","updateFrame","updateInputFrame","updateLane","clearInterval","applyAnimation","setInterval","startAnimation","registerPlugin","plugin","getPlugin","applyPlugins","mods","behavior","fixPlugins","name_1","$$2","counter","instances","eachInstance","cb","lazyinit","onResize","boot","_loop_1","eventName","_a","module_1","onEvent","eventNames_1","resizeTimeout","on","clearTimeout","setTimeout","applyEvents","eventsToPrevent_1","eName","_b","_c","eventNames_2","_d","callbackNames_1","_e","callbackNames_2","loading","addClass","spec","applyMetrics","show","removeClass","_this","extend","find","each","empty","append","pushInstance","createOrUpdate","destroy","popInstance","html","removeData","getInputState","updateInput","cursor","oldX","currentX","oldY","currentY","startX","startY","clickframe","clicklane","dX","dY","ddX","ddY","ndX","ndY","nddX","nddY","resetInput","pick","names","names_1","option","$target","isPlaying","isLooping","toggleAnimation","currentFrame","skipFrames","step","nextFrame","prevFrame","playTo","force","nearest","a","b","abs","browser","documentElement","changeEvent","unbindChangeEvent","unbindOrientationEvent","fullscreenElement","isFullscreen","requestFullscreen","oWidth","oHeight","oSource","oSize","oResponsive","enter","screen","callback","bindChangeEvent","fullscreenEnabled","exitFullscreen","toggleFullscreen","apiRequestFullscreen","click","half","pos","offset","mouseup","touchend","getState$$1","onInit","minTime","maxTime","dragStart","zoomPinFrame","now","Date","getTime","endAt","startAt","wasPlaying","dragEnd","drag","rad","PI","getAxis","sn","sin","cs","cos","mousedown","mousemove","documentmousemove","documentmouseup","touchstart","touchmove","touchcancel","mouseleave","start","rememberOptions","stop","restoreOptions","update","delta","onFrame","getOption","fallback","end","dS","dF","snap","fling","onLoad","wheel","we","signX","deltaX","signY","deltaY","NAME","appendTo","text","fadeIn","fadeOut","onDestroy","remove","detach","onDraw","specs","w","h","clearRect","scaleX","scaleY","toRemove","timeout","killLoop","clearFrame","steps","live","alpha","drawFrame","cssBlur","blur","filter","applyCssBlur","toRemove_1","item","splice","removeOldFrames","globalAlpha","fadeTime","trackTime","onFrameChanged","ani","unshift","trackFrame","samples","time","maxSamples","shift","sampleInput","last","samples_1","sample","dt","abortTime","laneStep","updateTime","frameStep","damping","offsets","speed","opacity","prependTo","naturalSize$$1","innerSize","outerSize","duration","isDragging","px","py","updateInput$$1","pinFrame","dx","dy","match","onClick","useClick","clickTime","doubleClickTime","toggleZoom","onMove","showZoom","hideZoom","useWheel","top_1","Utils","registerModule","factory"],"mappings":"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","file":"default/js/spritespin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 155);\n","'use strict';\n\n\n$(document).ready(function () {\n require('./components/spritespin');\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.SpriteSpin = {})));\n}(this, (function (exports) {\n 'use strict';\n\n /**\n * @internal\n */\n var Api = /** @class */ (function () {\n function Api(data) {\n this.data = data;\n }\n return Api;\n }());\n /**\n * Adds methods to the SpriteSpin api\n *\n * @public\n */\n function extendApi(methods) {\n var api = Api.prototype;\n for (var key in methods) {\n if (methods.hasOwnProperty(key)) {\n if (api[key]) {\n throw new Error('API method is already defined: ' + key);\n } else {\n api[key] = methods[key];\n }\n }\n }\n return api;\n }\n\n var $$1 = window.jQuery || window.$;\n\n function getCursorPosition(event) {\n var touches = event.touches;\n var source = event;\n // jQuery Event normalization does not preserve the 'event.touches'\n // try to grab touches from the original event\n if (event.touches === undefined && event.originalEvent !== undefined) {\n touches = event.originalEvent.touches;\n }\n // get current touch or mouse position\n if (touches !== undefined && touches.length > 0) {\n source = touches[0];\n }\n return {\n x: source.clientX || 0,\n y: source.clientY || 0\n };\n }\n\n var canvas;\n var context;\n function detectionContext() {\n if (context) {\n return context;\n }\n if (!canvas) {\n canvas = document.createElement('canvas');\n }\n if (!canvas || !canvas.getContext) {\n return null;\n }\n context = canvas.getContext('2d');\n return context;\n }\n /**\n * Idea taken from https://github.com/stomita/ios-imagefile-megapixel\n * Detects whether the image has been sub sampled by the browser and does not have its original dimensions.\n * This method unfortunately does not work for images that have transparent background.\n */\n function detectSubsampling(img, width, height) {\n if (!detectionContext()) {\n return false;\n }\n // sub sampling happens on images above 1 megapixel\n if (width * height <= 1024 * 1024) {\n return false;\n }\n // set canvas to 1x1 pixel size and fill it with magenta color\n canvas.width = canvas.height = 1;\n context.fillStyle = '#FF00FF';\n context.fillRect(0, 0, 1, 1);\n // render the image with a negative offset to the left so that it would\n // fill the canvas pixel with the top right pixel of the image.\n context.drawImage(img, -width + 1, 0);\n // check color value to confirm image is covering edge pixel or not.\n // if color still magenta, the image is assumed to be sub sampled.\n try {\n var dat = context.getImageData(0, 0, 1, 1).data;\n return (dat[0] === 255) && (dat[1] === 0) && (dat[2] === 255);\n } catch (err) {\n // avoids cross origin exception for chrome when code runs without a server\n return false;\n }\n }\n\n /**\n *\n */\n function getOuterSize(data) {\n var width = Math.floor(data.width || data.frameWidth || data.target.innerWidth());\n var height = Math.floor(data.height || data.frameHeight || data.target.innerHeight());\n return {\n aspect: width / height,\n height: height,\n width: width\n };\n }\n function getComputedSize(data) {\n var size = getOuterSize(data);\n if (typeof window.getComputedStyle !== 'function') {\n return size;\n }\n var style = window.getComputedStyle(data.target[0]);\n if (!style.width) {\n return size;\n }\n size.width = Math.floor(Number(style.width.replace('px', '')));\n size.height = Math.floor(size.width / size.aspect);\n return size;\n }\n /**\n *\n */\n function getInnerSize(data) {\n var width = Math.floor(data.frameWidth || data.width || data.target.innerWidth());\n var height = Math.floor(data.frameHeight || data.height || data.target.innerHeight());\n return {\n aspect: width / height,\n height: height,\n width: width\n };\n }\n /**\n *\n */\n function getInnerLayout(mode, inner, outer) {\n // get mode\n var isFit = mode === 'fit';\n var isFill = mode === 'fill';\n var isMatch = mode === 'stretch';\n // resulting layout\n var layout = {\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n overflow: 'hidden'\n };\n // no calculation here\n if (!mode || isMatch) {\n return layout;\n }\n // get size and aspect\n var aspectIsGreater = inner.aspect >= outer.aspect;\n // mode == original\n var width = inner.width;\n var height = inner.height;\n // keep aspect ratio but fit/fill into container\n if (isFit && aspectIsGreater || isFill && !aspectIsGreater) {\n width = outer.width;\n height = outer.width / inner.aspect;\n }\n if (isFill && aspectIsGreater || isFit && !aspectIsGreater) {\n height = outer.height;\n width = outer.height * inner.aspect;\n }\n // floor the numbers\n width = Math.floor(width);\n height = Math.floor(height);\n // position in center\n layout.width = width;\n layout.height = height;\n layout.top = Math.floor((outer.height - height) / 2);\n layout.left = Math.floor((outer.width - width) / 2);\n layout.right = layout.left;\n layout.bottom = layout.top;\n return layout;\n }\n\n var img;\n /**\n * gets the original width and height of an image element\n */\n function naturalSize(image) {\n // for browsers that support naturalWidth and naturalHeight properties\n if (image.naturalWidth) {\n return {\n height: image.naturalHeight,\n width: image.naturalWidth\n };\n }\n // browsers that do not support naturalWidth and naturalHeight properties have to fall back to the width and\n // height properties. However, the image might have a css style applied so width and height would return the\n // css size. To avoid thet create a new Image object that is free of css rules and grab width and height\n // properties\n //\n // assume that the src has already been downloaded, so no onload callback is needed.\n img = img || new Image();\n img.src = image.src;\n return {\n height: img.height,\n width: img.width\n };\n }\n\n /**\n * Measures the image frames that are used in the given data object\n */\n function measure(images, options) {\n if (images.length === 1) {\n return [measureSheet(images[0], options)];\n } else if (options.framesX && options.framesY) {\n return measureMutipleSheets(images, options);\n }\n\n return measureFrames(images, options);\n }\n function measureSheet(image, options) {\n var result = { id: 0, sprites: [] };\n measureImage(image, options, result);\n var frames = options.frames;\n var framesX = Number(options.framesX) || frames;\n var framesY = Math.ceil(frames / framesX);\n var frameWidth = Math.floor(result.width / framesX);\n var frameHeight = Math.floor(result.height / framesY);\n var divisor = result.isSubsampled ? 2 : 1;\n for (var i = 0; i < frames; i++) {\n var x = (i % framesX) * frameWidth;\n var y = Math.floor(i / framesX) * frameHeight;\n result.sprites.push({\n id: i,\n x: x,\n y: y,\n width: frameWidth,\n height: frameHeight,\n sampledX: x / divisor,\n sampledY: y / divisor,\n sampledWidth: frameWidth / divisor,\n sampledHeight: frameHeight / divisor\n });\n }\n return result;\n }\n function measureFrames(images, options) {\n var result = [];\n for (var id = 0; id < images.length; id++) {\n // TODO: optimize\n // dont measure images with same size twice\n var sheet = measureSheet(images[id], { frames: 1, framesX: 1, detectSubsampling: options.detectSubsampling });\n sheet.id = id;\n result.push(sheet);\n }\n return result;\n }\n function measureMutipleSheets(images, options) {\n var result = [];\n for (var id = 0; id < images.length; id++) {\n // TODO: optimize\n // dont measure images with same size twice\n var sheet = measureSheet(images[id], {\n frames: undefined,\n framesX: options.framesX,\n framesY: options.framesY,\n detectSubsampling: options.detectSubsampling\n });\n sheet.id = id;\n result.push(sheet);\n }\n return result;\n }\n function measureImage(image, options, result) {\n var size = naturalSize(image);\n result.isSubsampled = options.detectSubsampling && detectSubsampling(image, size.width, size.height);\n result.width = size.width;\n result.height = size.height;\n result.sampledWidth = size.width / (result.isSubsampled ? 2 : 1);\n result.sampledHeight = size.height / (result.isSubsampled ? 2 : 1);\n return result;\n }\n function findSpecs(metrics, frames, frame, lane) {\n var spriteId = lane * frames + frame;\n var sheetId = 0;\n var sprite = null;\n var sheet = null;\n while (true) {\n sheet = metrics[sheetId];\n if (!sheet) {\n break;\n }\n if (spriteId >= sheet.sprites.length) {\n spriteId -= sheet.sprites.length;\n sheetId++;\n continue;\n }\n sprite = sheet.sprites[spriteId];\n break;\n }\n return { sprite: sprite, sheet: sheet };\n }\n\n function indexOf(element, arr) {\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === element) {\n return i;\n }\n }\n }\n function noop() {\n //\n }\n function preload(opts) {\n var src;\n var input = opts.source;\n src = typeof input === 'string' ? [input] : input;\n // const src: string[] = ? [opts.source] : opts.source\n var images = [];\n var targetCount = (opts.preloadCount || src.length);\n var onInitiated = opts.initiated || noop;\n var onProgress = opts.progress || noop;\n var onComplete = opts.complete || noop;\n var count = 0;\n var completed = false;\n var firstLoaded = false;\n var tick = function () {\n count += 1;\n onProgress({\n index: indexOf(this, images),\n loaded: count,\n total: src.length,\n percent: Math.round((count / src.length) * 100)\n });\n firstLoaded = firstLoaded || (this === images[0]);\n if (firstLoaded && !completed && (count >= targetCount)) {\n completed = true;\n onComplete(images);\n }\n };\n for (var _i = 0, src_1 = src; _i < src_1.length; _i++) {\n var url = src_1[_i];\n var img = new Image();\n // push result\n images.push(img);\n // bind logic, dont care about abort/errors\n img.onload = img.onabort = img.onerror = tick;\n // begin load\n img.src = url;\n }\n onInitiated(images);\n }\n\n function padNumber(num, length, pad) {\n var result = String(num);\n while (result.length < length) {\n result = String(pad) + result;\n }\n return result;\n }\n /**\n * Generates an array of source strings\n *\n * @remarks\n * Takes a template string and generates an array of strings by interpolating {lane} and {frame} placeholders.\n *\n * ```\n * sourceArray('http://example.com/image_{frame}.jpg, { frame: [1, 3], digits: 2 })\n * // gives:\n * // [ 'http://example.com/image_01.jpg', 'http://example.com/image_02.jpg', 'http://example.com/image_03.jpg' ]\n *\n * sourceArray('http://example.com/image_FRAME.jpg, { frame: [1, 3], digits: 2, framePlacer: 'FRAME' })\n * // gives:\n * // [ 'http://example.com/image_01.jpg', 'http://example.com/image_02.jpg', 'http://example.com/image_03.jpg' ]\n * ```\n *\n * @param template - The template string\n * @param opts - Interpolation options\n *\n * @public\n */\n function sourceArray(template, opts) {\n var digits = opts.digits || 2;\n var lPlacer = opts.lanePlacer || '{lane}';\n var fPlacer = opts.framePlacer || '{frame}';\n var fStart = 0;\n var fEnd = 0;\n if (opts.frame) {\n fStart = opts.frame[0];\n fEnd = opts.frame[1];\n }\n var lStart = 0;\n var lEnd = 0;\n if (opts.lane) {\n lStart = opts.lane[0];\n lEnd = opts.lane[1];\n }\n var result = [];\n for (var lane = lStart; lane <= lEnd; lane += 1) {\n for (var frame = fStart; frame <= fEnd; frame += 1) {\n result.push(template\n .replace(lPlacer, padNumber(lane, digits, '0'))\n .replace(fPlacer, padNumber(frame, digits, '0')));\n }\n }\n return result;\n }\n\n /**\n * The namespace that is used to bind functions to DOM events and store the data object\n */\n var namespace = 'spritespin';\n /**\n * Event names that are recognized by SpriteSpin. A module can implement any of these and they will be bound\n * to the target element on which the plugin is called.\n */\n var eventNames = [\n 'mousedown',\n 'mousemove',\n 'mouseup',\n 'mouseenter',\n 'mouseover',\n 'mouseleave',\n 'mousewheel',\n 'wheel',\n 'click',\n 'dblclick',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'selectstart',\n 'gesturestart',\n 'gesturechange',\n 'gestureend'\n ];\n /**\n *\n */\n var callbackNames = [\n 'onInit',\n 'onProgress',\n 'onLoad',\n 'onFrameChanged',\n 'onFrame',\n 'onDraw',\n 'onComplete',\n 'onDestroy'\n ];\n /**\n * Names of events for that the default behavior should be prevented.\n */\n var eventsToPrevent = [\n 'dragstart'\n ];\n /**\n * Default set of SpriteSpin options. This also represents the majority of data attributes that are used during the\n * lifetime of a SpriteSpin instance. The data is stored inside the target DOM element on which the plugin is called.\n */\n var defaults = {\n source: undefined,\n width: undefined,\n height: undefined,\n frames: undefined,\n framesX: undefined,\n lanes: 1,\n sizeMode: undefined,\n renderer: 'canvas',\n lane: 0,\n frame: 0,\n frameTime: 40,\n animate: true,\n retainAnimate: false,\n reverse: false,\n loop: true,\n stopFrame: 0,\n wrap: true,\n wrapLane: false,\n sense: 1,\n senseLane: undefined,\n orientation: 'horizontal',\n detectSubsampling: true,\n preloadCount: undefined,\n touchScrollTimer: [200, 1500],\n responsive: undefined,\n plugins: undefined\n };\n\n function noop$1() {\n // noop\n }\n function wrapConsole(type) {\n return console && console[type] ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return console.log.apply(console, args);\n } : noop$1;\n }\n var log = wrapConsole('log');\n var warn = wrapConsole('warn');\n var error = wrapConsole('error');\n function toArray(value) {\n return Array.isArray(value) ? value : [value];\n }\n /**\n * clamps the given value by the given min and max values\n */\n function clamp(value, min, max) {\n return (value > max ? max : (value < min ? min : value));\n }\n /**\n *\n */\n function wrap(value, min, max, size) {\n while (value > max) {\n value -= size;\n }\n while (value < min) {\n value += size;\n }\n return value;\n }\n /**\n * prevents default action on the given event\n */\n function prevent(e) {\n e.preventDefault();\n return false;\n }\n /**\n * Binds on the given target and event the given function.\n * The SpriteSpin namespace is attached to the event name\n */\n function bind(target, event, func) {\n if (func) {\n target.bind(event + '.' + namespace, function (e) {\n func.apply(target, [e, target.spritespin('data')]);\n });\n }\n }\n /**\n * Unbinds all SpriteSpin events from given target element\n */\n function unbind(target) {\n target.unbind('.' + namespace);\n }\n /**\n * Checks if given object is a function\n */\n function isFunction(fn) {\n return typeof fn === 'function';\n }\n function pixelRatio(context) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio || 1;\n return devicePixelRatio / backingStoreRatio;\n }\n\n\n var _Utils = Object.freeze({\n $: $$1,\n getCursorPosition: getCursorPosition,\n detectSubsampling: detectSubsampling,\n getOuterSize: getOuterSize,\n getComputedSize: getComputedSize,\n getInnerSize: getInnerSize,\n getInnerLayout: getInnerLayout,\n measure: measure,\n findSpecs: findSpecs,\n naturalSize: naturalSize,\n preload: preload,\n sourceArray: sourceArray,\n noop: noop$1,\n log: log,\n warn: warn,\n error: error,\n toArray: toArray,\n clamp: clamp,\n wrap: wrap,\n prevent: prevent,\n bind: bind,\n unbind: unbind,\n isFunction: isFunction,\n pixelRatio: pixelRatio\n });\n\n /**\n * Applies css attributes to layout the SpriteSpin containers.\n *\n * @internal\n */\n function applyLayout(data) {\n // disable selection\n data.target\n .attr('unselectable', 'on')\n .css({\n width: '',\n height: '',\n '-ms-user-select': 'none',\n '-moz-user-select': 'none',\n '-khtml-user-select': 'none',\n '-webkit-user-select': 'none',\n 'user-select': 'none'\n });\n var size = data.responsive ? getComputedSize(data) : getOuterSize(data);\n var layout = getInnerLayout(data.sizeMode, getInnerSize(data), size);\n // apply layout on target\n data.target.css({\n width: size.width,\n height: size.height,\n position: 'relative',\n overflow: 'hidden'\n });\n // apply layout on stage\n data.stage\n .css(layout)\n .hide();\n if (!data.canvas) {\n return;\n }\n // apply layout on canvas\n data.canvas.css(layout).hide();\n // apply pixel ratio on canvas\n data.canvasRatio = data.canvasRatio || pixelRatio(data.context);\n if (typeof layout.width === 'number' && typeof layout.height === 'number') {\n data.canvas[0].width = (layout.width * data.canvasRatio) || size.width;\n data.canvas[0].height = (layout.height * data.canvasRatio) || size.height;\n } else {\n data.canvas[0].width = (size.width * data.canvasRatio);\n data.canvas[0].height = (size.height * data.canvasRatio);\n }\n // width and height must be set before calling scale\n data.context.scale(data.canvasRatio, data.canvasRatio);\n }\n\n /**\n * Gets a state object by name.\n * @internal\n * @param data - The SpriteSpin instance data\n * @param name - The name of the state object\n */\n function getState(data, name) {\n data.state = data.state || {};\n data.state[name] = data.state[name] || {};\n return data.state[name];\n }\n /**\n * Gets a plugin state object by name.\n *\n * @remarks\n * Plugins should use this method to get or create a state object where they can\n * store any instance variables.\n *\n * @public\n * @param data - The SpriteSpin instance data\n * @param name - The name of the plugin\n */\n function getPluginState(data, name) {\n var state = getState(data, 'plugin');\n state[name] = state[name] || {};\n return state[name];\n }\n /**\n * Checks whether a flag is set. See {@link flag}.\n *\n * @public\n * @param data - The SpriteSpin instance data\n * @param key - The name of the flag\n */\n function is(data, key) {\n return !!getState(data, 'flags')[key];\n }\n /**\n * Sets a flag value. See {@link is}.\n *\n * @public\n * @param data - The SpriteSpin instance data\n * @param key - The name of the flag\n * @param value - The value to set\n */\n function flag(data, key, value) {\n getState(data, 'flags')[key] = !!value;\n }\n\n /**\n * Gets the playback state\n *\n * @public\n * @param data - The SpriteSpin instance data\n */\n function getPlaybackState(data) {\n return getState(data, 'playback');\n }\n function updateLane(data, lane) {\n data.lane = data.wrapLane\n ? wrap(lane, 0, data.lanes - 1, data.lanes)\n : clamp(lane, 0, data.lanes - 1);\n }\n function updateAnimationFrame(data) {\n data.frame += (data.reverse ? -1 : 1);\n // wrap the frame value to fit in range [0, data.frames)\n data.frame = wrap(data.frame, 0, data.frames - 1, data.frames);\n // stop animation if loop is disabled and the stopFrame is reached\n if (!data.loop && (data.frame === data.stopFrame)) {\n stopAnimation(data);\n }\n }\n function updateInputFrame(data, frame) {\n data.frame = Number(frame);\n data.frame = data.wrap\n ? wrap(data.frame, 0, data.frames - 1, data.frames)\n : clamp(data.frame, 0, data.frames - 1);\n }\n function updateAnimation(data) {\n var state = getPlaybackState(data);\n if (state.handler) {\n updateBefore(data);\n updateAnimationFrame(data);\n updateAfter(data);\n }\n }\n function updateBefore(data) {\n var state = getPlaybackState(data);\n state.lastFrame = data.frame;\n state.lastLane = data.lane;\n }\n function updateAfter(data) {\n var state = getPlaybackState(data);\n if (state.lastFrame !== data.frame || state.lastLane !== data.lane) {\n data.target.trigger('onFrameChanged.' + namespace, data);\n }\n data.target.trigger('onFrame.' + namespace, data);\n data.target.trigger('onDraw.' + namespace, data);\n }\n /**\n * Updates the frame or lane number of the SpriteSpin data.\n *\n * @public\n * @param data - The SpriteSpin instance data\n * @param frame - The frame number to set\n * @param lane - The lane number to set\n */\n function updateFrame(data, frame, lane) {\n updateBefore(data);\n if (frame != null) {\n updateInputFrame(data, frame);\n }\n if (lane != null) {\n updateLane(data, lane);\n }\n updateAfter(data);\n }\n /**\n * Stops the running animation.\n *\n * @public\n * @param data - The SpriteSpin instance data\n */\n function stopAnimation(data) {\n data.animate = false;\n var state = getPlaybackState(data);\n if (state.handler != null) {\n window.clearInterval(state.handler);\n state.handler = null;\n }\n }\n /**\n * Starts animation playback if needed.\n *\n * @remarks\n * Starts animation playback if `animate` property is `true` and the animation is not yet running.\n *\n * @public\n * @param data - The SpriteSpin instance data\n */\n function applyAnimation(data) {\n var state = getPlaybackState(data);\n if (state.handler && (!data.animate || state.frameTime !== data.frameTime)) {\n stopAnimation(data);\n }\n if (data.animate && !state.handler) {\n state.frameTime = data.frameTime;\n state.handler = window.setInterval(function () { return updateAnimation(data); }, state.frameTime);\n }\n }\n /**\n * Starts the animation playback\n *\n * @remarks\n * Starts the animation playback and also sets the `animate` property to `true`\n *\n * @public\n * @param data - The SpriteSpin instance data\n */\n function startAnimation(data) {\n data.animate = true;\n applyAnimation(data);\n }\n\n var plugins = {};\n /**\n * Registers a plugin.\n *\n * @remarks\n * Use this to add custom Rendering or Updating modules that can be addressed with the 'module' option.\n *\n * @public\n * @param name - The name of the plugin\n * @param plugin - The plugin implementation\n */\n function registerPlugin(name, plugin) {\n if (plugins[name]) {\n error('Plugin name \"' + name + '\" is already taken');\n return;\n }\n plugin = plugin || {};\n plugins[name] = plugin;\n return plugin;\n }\n /**\n * Registers a plugin.\n *\n * @public\n * @deprecated Use {@link registerPlugin} instead\n * @param name - The name of the plugin\n * @param plugin - The plugin implementation\n */\n function registerModule(name, plugin) {\n warn('\"registerModule\" is deprecated, use \"registerPlugin\" instead');\n registerPlugin(name, plugin);\n }\n /**\n * Gets an active plugin by name\n *\n * @internal\n * @param name - The name of the plugin\n */\n function getPlugin(name) {\n return plugins[name];\n }\n /**\n * Replaces module names on given SpriteSpin data and replaces them with actual implementations.\n * @internal\n */\n function applyPlugins(data) {\n fixPlugins(data);\n for (var i = 0; i < data.plugins.length; i += 1) {\n var name_1 = data.plugins[i];\n if (typeof name_1 !== 'string') {\n continue;\n }\n var plugin = getPlugin(name_1);\n if (!plugin) {\n error('No plugin found with name ' + name_1);\n continue;\n }\n data.plugins[i] = plugin;\n }\n }\n function fixPlugins(data) {\n // tslint:disable no-string-literal\n if (data.mods) {\n warn('\"mods\" option is deprecated, use \"plugins\" instead');\n data.plugins = data.mods;\n delete data.mods;\n }\n if (data.behavior) {\n warn('\"behavior\" option is deprecated, use \"plugins\" instead');\n data.plugins.push(data.behavior);\n delete data.behavior;\n }\n if (data.module) {\n warn('\"module\" option is deprecated, use \"plugins\" instead');\n data.plugins.push(data.module);\n delete data.module;\n }\n }\n\n var $$2 = $$1;\n var counter = 0;\n /**\n * Collection of all SpriteSpin instances\n */\n var instances = {};\n function pushInstance(data) {\n counter += 1;\n data.id = String(counter);\n instances[data.id] = data;\n }\n function popInstance(data) {\n delete instances[data.id];\n }\n function eachInstance(cb) {\n for (var id in instances) {\n if (instances.hasOwnProperty(id)) {\n cb(instances[id]);\n }\n }\n }\n var lazyinit = function () {\n // replace function with a noop\n // this logic must run only once\n lazyinit = function () { };\n function onEvent(eventName, e) {\n eachInstance(function (data) {\n for (var _i = 0, _a = data.plugins; _i < _a.length; _i++) {\n var module_1 = _a[_i];\n if (typeof module_1[eventName] === 'function') {\n module_1[eventName].apply(data.target, [e, data]);\n }\n }\n });\n }\n function onResize() {\n eachInstance(function (data) {\n if (data.responsive) {\n boot(data);\n }\n });\n }\n var _loop_1 = function (eventName) {\n $$2(window.document).bind(eventName + '.' + namespace, function (e) {\n onEvent('document' + eventName, e);\n });\n };\n for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {\n var eventName = eventNames_1[_i];\n _loop_1(eventName);\n }\n var resizeTimeout = null;\n $$2(window).on('resize', function () {\n window.clearTimeout(resizeTimeout);\n resizeTimeout = window.setTimeout(onResize, 100);\n });\n };\n /**\n * (re)binds all spritespin events on the target element\n *\n * @internal\n */\n function applyEvents(data) {\n var target = data.target;\n // Clear all SpriteSpin events on the target element\n unbind(target);\n // disable all default browser behavior on the following events\n // mainly prevents image drag operation\n for (var _i = 0, eventsToPrevent_1 = eventsToPrevent; _i < eventsToPrevent_1.length; _i++) {\n var eName = eventsToPrevent_1[_i];\n bind(target, eName, prevent);\n }\n // Bind module functions to SpriteSpin events\n for (var _a = 0, _b = data.plugins; _a < _b.length; _a++) {\n var plugin = _b[_a];\n for (var _c = 0, eventNames_2 = eventNames; _c < eventNames_2.length; _c++) {\n var eName = eventNames_2[_c];\n bind(target, eName, plugin[eName]);\n }\n for (var _d = 0, callbackNames_1 = callbackNames; _d < callbackNames_1.length; _d++) {\n var eName = callbackNames_1[_d];\n bind(target, eName, plugin[eName]);\n }\n }\n // bind auto start function to load event.\n bind(target, 'onLoad', function (e, d) {\n applyAnimation(d);\n });\n // bind all user events that have been passed on initialization\n for (var _e = 0, callbackNames_2 = callbackNames; _e < callbackNames_2.length; _e++) {\n var eName = callbackNames_2[_e];\n bind(target, eName, data[eName]);\n }\n }\n function applyMetrics(data) {\n if (!data.images) {\n data.metrics = [];\n }\n data.metrics = measure(data.images, data);\n var spec = findSpecs(data.metrics, data.frames, 0, 0);\n if (spec.sprite) {\n // TODO: try to remove frameWidth/frameHeight\n data.frameWidth = spec.sprite.width;\n data.frameHeight = spec.sprite.height;\n }\n }\n /**\n * Runs the boot process.\n *\n * @remarks\n * (re)initializes plugins, (re)initializes the layout, (re)binds events and loads source images.\n *\n * @internal\n */\n function boot(data) {\n applyPlugins(data);\n applyEvents(data);\n applyLayout(data);\n data.source = toArray(data.source);\n data.loading = true;\n data.target\n .addClass('loading')\n .trigger('onInit.' + namespace, data);\n preload({\n source: data.source,\n preloadCount: data.preloadCount,\n progress: function (progress) {\n data.progress = progress;\n data.target.trigger('onProgress.' + namespace, data);\n },\n complete: function (images) {\n data.images = images;\n data.loading = false;\n data.frames = data.frames || images.length;\n applyMetrics(data);\n applyLayout(data);\n data.stage.show();\n data.target\n .removeClass('loading')\n .trigger('onLoad.' + namespace, data)\n .trigger('onFrame.' + namespace, data)\n .trigger('onDraw.' + namespace, data)\n .trigger('onComplete.' + namespace, data);\n }\n });\n }\n /**\n * Creates a new SpriteSpin instance\n *\n * @public\n */\n function create(options) {\n var _this = this;\n var target = options.target;\n // SpriteSpin is not initialized\n // Create default settings object and extend with given options\n var data = $$2.extend(true, {}, defaults, options);\n // ensure source is set\n data.source = data.source || [];\n // ensure plugins are set\n data.plugins = data.plugins || [\n '360',\n 'drag'\n ];\n // if image tags are contained inside this DOM element\n // use these images as the source files\n target.find('img').each(function () {\n if (!Array.isArray(data.source)) {\n data.source = [];\n }\n data.source.push($$2(_this).attr('src'));\n });\n // build inner html\n //