{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/emoji-regex/index.js","src/Button.js","src/CheckBox.js","src/Container.js","src/DynamicText/DynamicChar.js","src/DynamicText/DynamicText.js","src/DynamicText/DynamicTextStyle.js","src/Ease/Ease.js","src/Ease/EaseBase.js","src/Ease/ExponentialEase.js","src/Helpers.js","src/InputBase.js","src/Interaction/ClickEvent.js","src/Interaction/DragDropController.js","src/Interaction/DragEvent.js","src/Interaction/InputController.js","src/Interaction/Interaction.js","src/Interaction/MouseScrollEvent.js","src/ScrollBar.js","src/ScrollingContainer.js","src/SliceSprite.js","src/Slider.js","src/SortableList.js","src/Sprite.js","src/Stage.js","src/Text.js","src/TextInput.js","src/Ticker.js","src/TilingSprite.js","src/Tween.js","src/UI.js","src/UIBase.js","src/UISettings.js","src"],"names":["f","exports","module","define","amd","g","window","global","self","this","pixiUi","min","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","Button","options","InputBase","width","background","height","tabIndex","tabGroup","pivot","verticalAlign","horizontalAlign","addChild","isHover","uiText","text","container","buttonMode","keyDownEvent","which","click","clickEvent","ClickEvent","onHover","over","emit","onPress","isPressed","focus","data","originalEvent","preventDefault","onClick","_focused","prototype","document","addEventListener","blur","removeEventListener","initialize","interactiveChildren","setTimeout","bounds","getLocalBounds","hitArea","PIXI","Rectangle","x","y","Math","max","_width","_height","Object","create","constructor","defineProperties","value","get","set","val","CheckBox","_checked","undefined","checked","_value","checkGroup","checkgroup","checkmark","alpha","InputController","registrerCheckGroup","change","updateCheckGroupSelected","selectedValue","getCheckGroupSelectedValue","setCheckGroupSelectedValue","Container","UIBase","update","DynamicChar","style","space","newline","emoji","charcode","wordIndex","lineIndex","DynamicText","atlas","DynamicAtlas","autoWidth","autoHeight","defaultStyle","_style","DynamicTextStyle","merge","chars","renderChars","spriteCache","charContainer","_inputText","lastWidth","lastHeight","dirtyText","dirtyStyle","dirtyRender","lineWidthData","lineHeightData","lineFontSizeData","lineAlignmentData","renderCount","charCount","lineEllipsisData","lineHasEllipsis","render","yOffset","xOffset","currentLine","removeSprite","visible","char","lineWidth","lineHeight","maxLineWidth","texture","tex","sprite","Sprite","anchor","tint","hexToInt","rotation","float","skew","parent","prepareForRender","pos","Point","lineFontSize","lineAlignment","align","lastSpaceIndex","lastSpaceLineWidth","textHeight","forceNewline","renderIndex","ellipsis","lineFull","lastChar","overflowY","fontSize","size","round","letterSpacing","wrap","breakWords","overflowX","ellipsisData","d","dot","getCharObject","parseFloat","closeTags","processInputText","styleTree","charIndex","inputTextIndex","inputArray","Array","from","c","charCodeAt","test","allowTags","tag","substring","slice","indexOf","FoundTag","clone","fontStyle","push","fontWeight","splice","startsWith","regex","match","exec","emojiMatch","emojiRegex","fontFamily","settings","defaultEmojiFont","lazyUpdate","dirtySize","def","isNaN","int","parseInt","string","str","result","replace","hexToRgba","hex","debugSpriteSheet","metricsCanvas","createElement","metricsContext","getContext","padding","canvas","context","objects","baseTexture","lazyTimeout","rootNode","atlasdim","newObjects","devicePixelRatio","canvasList","AtlasNode","w","h","children","rect","insert","obj","newNode","frame","addCanvas","BaseTexture","fromCanvas","mipmap","resolution","className","body","appendChild","fontFamilyCache","drawObjects","arr","resized","drawObject","drawImage","_cache","font","ctxFont","familyCache","key","ctxKey","metrics","generateCharData","minx","descent","Texture","addNewObjects","compareFunction","b","sort","_resized","_newcanvas","resizeCanvas","dim","measureText","paddingY","paddingX","ceil","baseline","clearRect","save","shadowData","trim","split","color","fillData","position","rgba","getFillStyle","fills","filter","gradEnd","gradient","createLinearGradient","addColorStop","drawShadows","shadowString","stroke","shadows","globalAlpha","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeText","fillText","restore","shadow","strokeShadow","fillStyle","fill","strokeStyle","strokeFill","pixelData","getImageData","line","len","ascent","step","maxx","miny","maxy","respectDirty","_parent","_scale","_align","_fontFamily","_fontSize","_fontWeight","_fontStyle","_letterSpacing","_lineHeight","_verticalAlign","_rotation","_skew","_tint","_fill","_shadow","_stroke","_strokeFill","_strokeShadow","_wrap","_breakWords","_overflowX","_overflowY","_ellipsis","_cachedEllipsisSize","ellipsisSize","param","_dirty","join","scale","fn","EaseBase","getPosition","wrapEase","easeInFunction","easeOutFunction","easeInOutFunction","easeIn","easeOut","easeInOut","Ease","ExponentialEase","HALF_PI","PI","Linear","Power0","easeNone","Power1","Quad","Power2","Cubic","Power3","Quart","Power4","Quint","Bounce","BounceIn","p","BounceOut","BounceInOut","invert","Circ","CircIn","sqrt","CircOut","CircInOut","Expo","ExpoIn","pow","ExpoOut","ExpoInOut","Sine","SineIn","cos","SineOut","sin","SineInOut","power","Helpers","Lerp","start","stop","amt","Round","number","decimals","componentToHex","toString","rgbToHex","rgbToNumber","numberToRgb","floor","hexToRgb","shorthandRegex","m","_useTab","_usePrev","_useNext","interactive","registrer","fireTab","firePrev","fireNext","documentMouseDown","__down","on","_bindEvents","stage","_clearEvents","off","clear","includeHover","rightMouseButton","bound","id","ishover","mouse","offset","movementX","movementY","right","hover","eventname_mousedown","eventname_mouseup","eventname_mouseupoutside","_onMouseDown","event","copy","identifier","_onMouseUp","_onMouseUpOutside","_mouseUpAll","removeListener","dragThreshold","abs","_onMouseOver","_onMouseMove","_onMouseOut","onMove","stopEvent","startEvent","_items","DragDropController","add","item","_dragDropEventId","getItem","object","index","getEventItem","group","dragGroup","DragEvent","cancel","dragging","_onDragStart","_onDragMove","_onDragEnd","dragRestrictAxis","onDragStart","onDragMove","onDragEnd","_currentItem","tabGroups","checkGroups","checkGroupValues","groupName","items","_tabIndex","_tabGroup","cb","name","Interaction","MouseScrollEvent","delta","_onMouseScroll","deltaX","deltaY","axis","detail","onMouseScroll","_onHover","ScrollBar","Slider","track","handle","vertical","scrollingContainer","autohide","_hidden","Tween","_onValueChanging","innerContainer","forcePctPosition","_amt","_scrollBars","alignToContainer","newPos","x_y","width_height","top_left","_posAmt","sizeAmt","toggleHidden","hidden","to","ScrollingContainer","mask","Graphics","innerBounds","scrollX","scrollY","dragScrolling","softness","radius","expandMask","animating","scrolling","boundCached","performance","now","Ticker","apply","initScrolling","_lastWidth","_lastHeight","of","lineStyle","beginFill","drawRect","drawRoundedRect","endFill","setScrollPosition","UIObject","argumentsLength","arguments","getInnerBounds","updateScrollBars","force","containerStart","targetPosition","lastPosition","Position","Speed","direction","pct","focusPosition","dif","speed","updateScrollPosition","updateDirection","target","exp","drag","scrollSpeed","SliceSprite","borderWidth","horizontalSlice","verticalSlice","tile","ftl","ftr","fbl","fbr","ft","fb","fl","fr","ff","stl","sbl","sbr","st","sb","sl","sr","sf","bw","vs","hs","setting","minWidth","minHeight","extras","TilingSprite","addChildAt","initialized","blendMode","_disabled","_minValue","minValue","_maxValue","maxValue","_onValueChange","onValueChange","onValueChanging","soft","handleSize","top","left","startValue","handleDrag","stopPropagation","maxPosition","triggerValueChanging","triggerValueChange","localMousePosition","trackDrag","updatePositionToMouse","mousePosition","toLocal","maxPos","_lastChange","_lastChanging","disabled","SortableList","desc","tweenTime","tweenEase","fnValue","fnThenBy","_sortListValue","_sortListThenByValue","_sortListRnd","random","removeChild","instant","clearTimeout","_sortTimeout","_sort","_this","alt","res","fromTo","altering","updatesettings","fromFrame","frameId","fromImage","imageUrl","Stage","__width","__height","UIChildren","resize","argumentLenght","rx","ry","Text","PIXITextStyle","_text","baseupdate","_anchorLeft","_anchorRight","widthPct","_anchorTop","_anchorBottom","heightPct","TextInput","_pui_tempInput","setAttribute","_dirtyText","maxLength","_lastValue","multiLine","selectedColor","selectedBackgroundColor","tempText","destroy","selection","_startIndex","_endIndex","caret","_index","caretWidth","moveTo","lineTo","paddingLeft","paddingRight","paddingBottom","paddingTop","textContainer","UI","anchorTop","anchorBottom","anchorLeft","anchorRight","cacheAsBitmap","updateText","setCaretIndex","hasSelection","updateSelectionGraphics","caretInterval","si","sie","ei","eie","sp","ds","de","rdd","vrdd","selectionStart","selectionEnd","cc","textLengthPX","textHeightPX","lineIndexMax","ctrlDown","shiftDown","whitespace","lastWordIndex","charText","wrapped","updateClosestIndex","point","currentDistX","currentIndex","atEnd","closestLineIndex","distX","deleteSelection","updateSelectionColors","_sp","scrollToPosition","resetScrollPosition","hideCaret","clearInterval","showCaret","clearSelection","setInterval","insertTextAtCaret","_atEnd","valueEvent","defaultPrevented","select","caretAtStart","_forward","startindex","selectRange","endIndex","_i","selectIndex","_down","keyUpEvent","copyEvent","clipboardData","setData","cutEvent","pasteEvent","getData","inputEvent","inputBlurEvent","mouseDown","timeSinceLast","selectWord","worldTransform","tx","ty","startIndex","drawSelectionRect","c1","cx","cy","cl","end","autoStart","utils","EventEmitter","_now","DeltaTime","Time","Ms","shared","time","_update","requestAnimationFrame","once","tilePosition","tileScale","getFromValue","widthKeys","heightKeys","getSurfix","getToValue","getObject","_tweenObjectId","_currentId","_tweenObjects","TweenObject","getTweenItem","_tweenItemCache","_ready","tween","TweenItem","getCallbackItem","_callbackItemCache","CallbackItem","_activeTweenObjects","tweens","active","callback","currentTime","remove","keys","_currentCallbackID","ease","isColor","surfix","currentColor","params","paramsFrom","paramsTo","Base","UISettings","dragInitialized","dropInitialized","dirty","_oldWidth","_oldHeight","pixelPerfect","_minWidth","_minHeight","_maxWidth","_maxHeight","_left","_right","_top","_bottom","_dragPosition","updateChildren","updateParent","parentHeight","parentWidth","actual_width","actual_height","actual_minWidth","actual_minHeight","actual_maxWidth","actual_maxHeight","actual_anchorLeft","actual_anchorRight","actual_anchorTop","actual_anchorBottom","actual_left","actual_right","actual_top","actual_bottom","_parentWidth","_parentHeight","pivotXOffset","pivotX","pivotYOffset","pivotY","useHorizontalAnchor","useVerticalAnchor","dragRestricted","scaleX","scaleY","oldUIParent","draggable","initDraggable","droppable","initDroppable","clearDraggable","stageOffset","added","dragContainer","clearDroppable","onDrop","dropGroup","droppableReparent","minWidthPct","minHeightPct","maxWidth","maxWidthPct","maxHeight","maxHeightPct","anchorLeftPct","anchorRightPct","anchorTopPct","anchorBottomPct","leftPct","rightPct","topPct","bottom","bottomPct","renderable","parentLayer","Library","assign"],"mappings":"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","file":"pixi-ui.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o renderCount) {\r\n for (i = renderCount; i < spriteCache.length; i++) {\r\n var removeSprite = spriteCache[i];\r\n if (removeSprite)\r\n removeSprite.visible = false;\r\n }\r\n }\r\n\r\n var char, lineWidth = 0, lineHeight = 0, maxLineWidth = 0;\r\n\r\n for (i = 0; i < renderCount; i++) {\r\n char = renderChars[i];\r\n\r\n //get line data\r\n if (currentLine !== char.lineIndex) {\r\n currentLine = char.lineIndex;\r\n lineWidth = lineWidthData[currentLine];\r\n lineHeight = lineHeightData[currentLine];\r\n yOffset += lineHeight;\r\n\r\n\r\n\r\n switch (lineAlignmentData[currentLine]) {\r\n case 'right': xOffset = this._width - lineWidth; break;\r\n case 'center': xOffset = (this._width - lineWidth) * 0.5; break;\r\n default: xOffset = 0;\r\n }\r\n\r\n\r\n maxLineWidth = Math.max(lineWidth, maxLineWidth);\r\n }\r\n\r\n //no reason to render a blank space or 0x0 letters (no texture created)\r\n if (!char.data.texture || char.space || char.newline) {\r\n if (spriteCache[i])\r\n spriteCache[i].visible = false;\r\n continue;\r\n }\r\n\r\n\r\n //add new sprite\r\n var tex = char.data.texture, sprite = spriteCache[i];\r\n\r\n\r\n\r\n if (!sprite) {\r\n sprite = spriteCache[i] = new PIXI.Sprite(tex);\r\n sprite.anchor.set(0.5);\r\n }\r\n else\r\n sprite.texture = tex;\r\n\r\n\r\n\r\n sprite.visible = true;\r\n sprite.x = char.x + xOffset + tex.width * 0.5;\r\n sprite.y = char.y + yOffset - tex.height * 0.5 - (lineHeight - lineFontSizeData[currentLine]);\r\n\r\n\r\n sprite.tint = char.emoji ? 0xffffff : hexToInt(char.style.tint, 0xffffff);\r\n sprite.rotation = float(char.style.rotation, 0);\r\n sprite.skew.x = float(char.style.skew, 0);\r\n\r\n if (!sprite.parent)\r\n charContainer.addChild(sprite);\r\n }\r\n\r\n if (autoWidth) this.width = maxLineWidth;\r\n if (autoHeight) this.height = yOffset;\r\n };\r\n\r\n //updates the renderChar array and position chars for render\r\n this.prepareForRender = function () {\r\n var pos = new PIXI.Point(),\r\n wordIndex = 0,\r\n lineHeight = 0,\r\n lineFontSize = 0,\r\n lineIndex = 0,\r\n lineAlignment = defaultStyle.align,\r\n lastSpaceIndex = -1,\r\n lastSpaceLineWidth = 0,\r\n textHeight = 0,\r\n forceNewline = false,\r\n style,\r\n renderIndex = 0,\r\n ellipsis = false,\r\n lineFull = false,\r\n i;\r\n\r\n\r\n\r\n\r\n for (i = 0; i < charCount; i++) {\r\n var char = chars[i], lastChar = chars[i - 1];\r\n style = char.style;\r\n\r\n\r\n //lineheight\r\n lineHeight = Math.max(lineHeight, defaultStyle.lineHeight || style.lineHeight || char.data.lineHeight);\r\n\r\n if (style.overflowY !== 'visible' && lineHeight + textHeight > this._height) {\r\n if (style.overflowY === 'hidden')\r\n break;\r\n\r\n }\r\n\r\n if (char.newline)\r\n lineFull = false;\r\n\r\n\r\n //set word index\r\n if (char.space || char.newline) wordIndex++;\r\n else char.wordIndex = wordIndex;\r\n\r\n //textheight\r\n lineFontSize = Math.max(lineFontSize, style.fontSize);\r\n\r\n //lineindex\r\n char.lineIndex = lineIndex;\r\n\r\n //lineAlignment\r\n if (style.align !== defaultStyle.align) lineAlignment = style.align;\r\n\r\n\r\n if (char.space) {\r\n lastSpaceIndex = i;\r\n lastSpaceLineWidth = pos.x;\r\n }\r\n\r\n\r\n var size = Math.round(char.data.width) + float(style.letterSpacing, 0);\r\n if (!autoWidth && !forceNewline && !char.newline && pos.x + size > this._width) {\r\n if (style.wrap) {\r\n if (char.space) {\r\n forceNewline = true;\r\n }\r\n else if (lastSpaceIndex !== -1) {\r\n renderIndex -= i - lastSpaceIndex;\r\n i = lastSpaceIndex - 1;\r\n lastSpaceIndex = -1;\r\n pos.x = lastSpaceLineWidth;\r\n forceNewline = true;\r\n continue;\r\n\r\n }\r\n else if (style.breakWords) {\r\n if (lastChar) {\r\n pos.x -= lastChar.style.letterSpacing;\r\n pos.x -= lastChar.data.width;\r\n }\r\n i -= 2;\r\n renderIndex--;\r\n forceNewline = true;\r\n continue;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n if (style.overflowX == 'hidden' && !forceNewline) {\r\n lineFull = true;\r\n if (style.ellipsis && !ellipsis) {\r\n ellipsis = true;\r\n var ellipsisData = lineEllipsisData[lineIndex];\r\n if (!ellipsisData) ellipsisData = lineEllipsisData[lineIndex] = [new DynamicChar(), new DynamicChar(), new DynamicChar()];\r\n for (var d = 0; d < 3; d++) {\r\n var dot = ellipsisData[d];\r\n dot.value = \".\";\r\n dot.data = atlas.getCharObject(dot.value, style);\r\n dot.style = style;\r\n dot.x = pos.x + char.data.xOffset;\r\n dot.y = parseFloat(style.verticalAlign) + dot.data.yOffset;\r\n dot.lineIndex = lineIndex;\r\n pos.x += Math.round(dot.data.width) + float(style.letterSpacing, 0);\r\n renderChars[renderIndex] = dot;\r\n renderIndex++;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //Update position and add to renderchars\r\n if (!lineFull) {\r\n //position\r\n char.x = pos.x + char.data.xOffset;\r\n char.y = parseFloat(style.verticalAlign) + char.data.yOffset;\r\n pos.x += size;\r\n renderChars[renderIndex] = char;\r\n renderIndex++;\r\n }\r\n\r\n\r\n\r\n //new line\r\n if (forceNewline || char.newline || i === charCount - 1) {\r\n if (lastChar) {\r\n pos.x -= lastChar.style.letterSpacing;\r\n }\r\n\r\n if (char.space) {\r\n pos.x -= char.data.width;\r\n pos.x -= float(style.letterSpacing, 0);\r\n }\r\n\r\n textHeight += lineHeight;\r\n lineHasEllipsis[lineIndex] = ellipsis;\r\n lineWidthData[lineIndex] = pos.x;\r\n lineHeightData[lineIndex] = lineHeight;\r\n lineFontSizeData[lineIndex] = lineFontSize;\r\n lineAlignmentData[lineIndex] = lineAlignment;\r\n\r\n\r\n //reset line vaules\r\n lineHeight = pos.x = lastSpaceLineWidth = lineFontSize = 0;\r\n lineAlignment = defaultStyle.align;\r\n lastSpaceIndex = -1;\r\n lineIndex++;\r\n forceNewline = lineFull = ellipsis = false;\r\n\r\n }\r\n\r\n }\r\n\r\n renderCount = renderIndex;\r\n };\r\n\r\n //phrases the input text and prepares the char array\r\n var closeTags = ['', '', '', ''];\r\n this.processInputText = function () {\r\n var styleTree = [defaultStyle],\r\n charIndex = 0,\r\n inputTextIndex = 0,\r\n inputArray = Array.from(this._inputText);\r\n\r\n for (var i = 0; i < inputArray.length; i++) {\r\n style = styleTree[styleTree.length - 1];\r\n var c = inputArray[i],\r\n charcode = c.charCodeAt(0),\r\n newline = false,\r\n space = false,\r\n emoji = false;\r\n\r\n\r\n //Extract Tags\r\n if (/(?:\\r\\n|\\r|\\n)/.test(c))\r\n newline = true;\r\n else if (/(\\s)/.test(c))\r\n space = true;\r\n else if (options.allowTags && c === \"<\") {\r\n var tag = this._inputText.substring(inputTextIndex);\r\n tag = tag.slice(0, tag.indexOf(\">\") + 1);\r\n var FoundTag = true;\r\n if (tag.length) {\r\n if (tag === \"\") {\r\n style = style.clone();\r\n style.fontStyle = 'italic';\r\n styleTree.push(style);\r\n }\r\n else if (tag === \"\") {\r\n style = style.clone();\r\n style.fontWeight = 'bold';\r\n styleTree.push(style);\r\n }\r\n else if (tag === \"
\") {\r\n style = style.clone();\r\n style.align = 'center';\r\n styleTree.push(style);\r\n }\r\n else if (closeTags.indexOf(tag) !== -1) {\r\n if (styleTree.length > 1) styleTree.splice(styleTree.length - 1, 1);\r\n }\r\n else if (tag.startsWith(\"\\s]*)(?=\\s|\\/>))(?=[^<]*>)/g,\r\n match = regex.exec(tag);\r\n\r\n if (match !== null) {\r\n style = style.clone();\r\n while (match !== null) {\r\n switch (match[1]) {\r\n case 'family': match[1] = 'fontFamily'; break;\r\n case 'size': match[1] = 'fontSize'; break;\r\n case 'weight': match[1] = 'fontWeight'; break;\r\n case 'style': match[1] = 'fontStyle'; break;\r\n case 'valign': match[1] = 'verticalAlign'; break;\r\n case 'spacing': match[1] = 'letterSpacing'; break;\r\n case 'color': match[1] = 'tint'; break;\r\n\r\n }\r\n style[match[1]] = match[4];\r\n match = regex.exec(tag);\r\n }\r\n styleTree.push(style);\r\n }\r\n }\r\n else {\r\n FoundTag = false;\r\n }\r\n\r\n if (FoundTag) {\r\n inputTextIndex += tag.length;\r\n i += tag.length - 1;\r\n continue;\r\n }\r\n }\r\n }\r\n else {\r\n //detect emoji\r\n var emojiMatch = emojiRegex().exec(c);\r\n if (emojiMatch !== null) {\r\n i--; c = '';\r\n while (emojiMatch !== null && c !== emojiMatch[0]) {\r\n i++;\r\n c = emojiMatch[0];\r\n emojiMatch = emojiRegex().exec(c + inputArray[i + 1]);\r\n }\r\n emoji = true;\r\n }\r\n }\r\n\r\n\r\n //Prepare DynamicChar object\r\n var char = chars[charIndex];\r\n if (!char) {\r\n char = new DynamicChar();\r\n chars[charIndex] = char;\r\n }\r\n char.style = style;\r\n\r\n\r\n if (emoji) {\r\n char.style = char.style.clone();\r\n char.style.fontFamily = DynamicText.settings.defaultEmojiFont;\r\n }\r\n\r\n char.data = atlas.getCharObject(c, char.style);\r\n char.value = c;\r\n char.space = space;\r\n char.newline = newline;\r\n char.emoji = emoji;\r\n\r\n charIndex++;\r\n inputTextIndex += c.length;\r\n }\r\n charCount = charIndex;\r\n };\r\n\r\n //PIXIUI update, lazy update (bad solution needs rewrite when converted to pixi plugin)\r\n this.lazyUpdate = null;\r\n var self = this;\r\n this.update = function () {\r\n if (self.lazyUpdate !== null) return;\r\n self.lazyUpdate = setTimeout(function () {\r\n \r\n //console.log(\"UPDATING TEXT\");\r\n var dirtySize = !autoWidth && (self._width != lastWidth || self._height != lastHeight || self.dirtyText);\r\n\r\n if (self.dirtyText || self.dirtyStyle) {\r\n self.dirtyText = self.dirtyStyle = false;\r\n self.dirtyRender = true; //force render after textchange\r\n self.processInputText();\r\n }\r\n\r\n if (dirtySize || self.dirtyRender) {\r\n self.dirtyRender = false;\r\n lastWidth = self._width;\r\n lastHeight = self.height;\r\n self.prepareForRender();\r\n self.render();\r\n }\r\n self.lazyUpdate = null;\r\n }, 0);\r\n\r\n };\r\n}\r\n\r\n\r\nDynamicText.prototype = Object.create(UIBase.prototype);\r\nDynamicText.prototype.constructor = DynamicText;\r\nmodule.exports = DynamicText;\r\nDynamicText.settings = {\r\n debugSpriteSheet: false,\r\n defaultEmojiFont: \"Segoe UI Emoji\" //force one font family for emojis so we dont rerender them multiple times\r\n};\r\n\r\nObject.defineProperties(DynamicText.prototype, {\r\n value: {\r\n get: function () {\r\n return this._inputText;\r\n },\r\n set: function (val) {\r\n if (val !== this._inputText) {\r\n this._inputText = val;\r\n this.dirtyText = true;\r\n this.update();\r\n //console.log(\"Updating Text to: \" + val);\r\n }\r\n }\r\n },\r\n text: {\r\n get: function () {\r\n return this.value;\r\n },\r\n set: function (val) {\r\n \r\n this.value = val;\r\n }\r\n },\r\n style: {\r\n get: function () {\r\n return this._style;\r\n },\r\n set: function (val) {\r\n //get a clean default style\r\n var style = new DynamicTextStyle(this);\r\n\r\n //merge it with new style\r\n style.merge(val);\r\n\r\n //merge it onto this default style\r\n this._style.merge(style);\r\n\r\n this.dirtyStyle = true;\r\n this.update();\r\n }\r\n }\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\r\n//Atlas\r\nvar metricsCanvas = document.createElement(\"canvas\");\r\nvar metricsContext = metricsCanvas.getContext(\"2d\");\r\nmetricsCanvas.width = 100;\r\nmetricsCanvas.height = 100;\r\n\r\n\r\nvar DynamicAtlas = function (padding) {\r\n var res = devicePixelRatio || 1,\r\n canvas,\r\n context,\r\n objects,\r\n newObjects = [],\r\n baseTexture,\r\n lazyTimeout,\r\n rootNode,\r\n canvasList = [],\r\n atlasdim,\r\n startdim = 256,\r\n maxdim = 2048;\r\n\r\n\r\n var AtlasNode = function (w, h) {\r\n var children = this.children = [];\r\n this.rect = new PIXI.Rectangle(0, 0, w || 0, h || 0);\r\n this.data = null;\r\n\r\n this.insert = function (width, height, obj) {\r\n if (children.length > 0) {\r\n var newNode = children[0].insert(width, height, obj);\r\n if (newNode !== null) return newNode;\r\n\r\n return children[1].insert(width, height, obj);\r\n } else {\r\n if (this.data !== null) return null;\r\n if (width > this.rect.width || height > this.rect.height) return null;\r\n if (width == this.rect.width && height == this.rect.height) {\r\n this.data = obj;\r\n obj.frame.x = this.rect.x;\r\n obj.frame.y = this.rect.y;\r\n return this;\r\n }\r\n\r\n children.push(new AtlasNode());\r\n children.push(new AtlasNode());\r\n\r\n var dw = this.rect.width - width;\r\n var dh = this.rect.height - height;\r\n\r\n if (dw > dh) {\r\n children[0].rect = new PIXI.Rectangle(this.rect.x, this.rect.y, width, this.rect.height);\r\n children[1].rect = new PIXI.Rectangle(this.rect.x + width, this.rect.y, this.rect.width - width, this.rect.height);\r\n } else {\r\n children[0].rect = new PIXI.Rectangle(this.rect.x, this.rect.y, this.rect.width, height);\r\n children[1].rect = new PIXI.Rectangle(this.rect.x, this.rect.y + height, this.rect.width, this.rect.height - height);\r\n }\r\n\r\n return children[0].insert(width, height, obj);\r\n }\r\n };\r\n };\r\n\r\n var addCanvas = function () {\r\n //create new canvas\r\n canvas = document.createElement(\"canvas\");\r\n context = canvas.getContext(\"2d\");\r\n canvasList.push(canvas);\r\n\r\n //reset dimentions\r\n atlasdim = startdim;\r\n canvas.width = canvas.height = atlasdim;\r\n rootNode = new AtlasNode(atlasdim, atlasdim);\r\n\r\n //reset array with canvas objects and create new atlas\r\n objects = [];\r\n\r\n //set new basetexture\r\n baseTexture = PIXI.BaseTexture.fromCanvas(canvas);\r\n baseTexture.mipmap = false; //if not, pixi bug resizing POW2\r\n baseTexture.resolution = 1; //todo: support all resolutions\r\n baseTexture.update();\r\n\r\n //Debug Spritesheet\r\n if (DynamicText.settings.debugSpriteSheet) {\r\n canvas.className = \"DynamicText_SpriteSheet\";\r\n document.body.appendChild(canvas);\r\n }\r\n\r\n };\r\n\r\n this.fontFamilyCache = {};\r\n\r\n var drawObjects = function (arr, resized) {\r\n if (resized) baseTexture.update();\r\n for (var i = 0; i < arr.length; i++)\r\n drawObject(arr[i]);\r\n };\r\n\r\n var drawObject = function (obj) {\r\n context.drawImage(obj._cache, obj.frame.x, obj.frame.y);\r\n obj.texture.frame = obj.frame;\r\n obj.texture.update();\r\n };\r\n\r\n this.getCharObject = function (char, style) {\r\n var font = style.ctxFont();\r\n\r\n //create new cache for fontFamily\r\n var familyCache = this.fontFamilyCache[font];\r\n if (!familyCache) {\r\n familyCache = {};\r\n this.fontFamilyCache[font] = familyCache;\r\n }\r\n\r\n\r\n\r\n //get char data\r\n var key = style.ctxKey(char);\r\n var obj = familyCache[key];\r\n if (!obj) {\r\n //create char object\r\n var metrics = generateCharData(char, style);\r\n\r\n\r\n\r\n //temp resize if doesnt fit (not nesseary when we dont need to generate textures)\r\n if (metrics.rect) {\r\n if (canvas.width < metrics.rect.width || canvas.height < metrics.rect.height) {\r\n canvas.width = canvas.height = Math.max(metrics.rect.width, metrics.rect.height);\r\n baseTexture.update();\r\n }\r\n }\r\n\r\n\r\n //todo: cleanup when we know whats needed\r\n obj = {\r\n metrics: metrics,\r\n font: font,\r\n value: char,\r\n frame: metrics.rect,\r\n baseTexture: metrics.rect ? baseTexture : null,\r\n xOffset: metrics.bounds ? metrics.bounds.minx : 0,\r\n yOffset: metrics.descent || 0,\r\n width: metrics.width || 0,\r\n lineHeight: metrics.lineHeight || 0,\r\n _cache: metrics.canvas,\r\n texture: metrics.rect ? new PIXI.Texture(baseTexture, metrics.rect) : null //temp texture\r\n };\r\n\r\n //add to collections\r\n familyCache[key] = obj;\r\n\r\n\r\n //add to atlas if visible char\r\n if (metrics.rect) {\r\n newObjects.push(obj);\r\n\r\n\r\n\r\n if (lazyTimeout === undefined)\r\n lazyTimeout = setTimeout(function () {\r\n addNewObjects();\r\n lazyTimeout = undefined;\r\n }, 0);\r\n\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n var compareFunction = function (a, b) {\r\n if (a.frame.height < b.frame.height)\r\n return 1;\r\n\r\n if (a.frame.height > b.frame.height)\r\n return -1;\r\n\r\n\r\n if (a.frame.width < b.frame.width)\r\n return 1;\r\n\r\n if (a.frame.width > b.frame.width)\r\n return -1;\r\n\r\n\r\n return 0;\r\n };\r\n\r\n var addNewObjects = function () {\r\n newObjects.sort(compareFunction);\r\n var _resized = false;\r\n var _newcanvas = false;\r\n\r\n for (var i = 0; i < newObjects.length; i++) {\r\n var obj = newObjects[i];\r\n var node = rootNode.insert(obj.frame.width + padding, obj.frame.height + padding, obj);\r\n\r\n if (node !== null) {\r\n if (_newcanvas) obj.texture.baseTexture = baseTexture; //update basetexture if new canvas was created (temp)\r\n objects.push(obj);\r\n continue;\r\n }\r\n\r\n //step one back (so it will be added after resize/new canvas)\r\n i--;\r\n\r\n if (atlasdim < maxdim) {\r\n _resized = true;\r\n resizeCanvas(atlasdim * 2);\r\n continue;\r\n }\r\n\r\n //close current spritesheet and make a new one\r\n drawObjects(objects, _resized);\r\n addCanvas();\r\n _newcanvas = true;\r\n _resized = false;\r\n }\r\n\r\n drawObjects(_resized || _newcanvas ? objects : newObjects, _resized);\r\n newObjects = [];\r\n };\r\n\r\n var resizeCanvas = function (dim) {\r\n canvas.width = canvas.height = atlasdim = dim;\r\n\r\n rootNode = new AtlasNode(dim, dim);\r\n objects.sort(compareFunction);\r\n\r\n for (var i = 0; i < objects.length; i++) {\r\n var obj = objects[i];\r\n rootNode.insert(obj.frame.width + padding, obj.frame.height + padding, obj);\r\n }\r\n };\r\n\r\n var generateCharData = function (char, style) {\r\n\r\n var fontSize = Math.max(1, int(style.fontSize, 26)),\r\n lineHeight = fontSize * 1.25;\r\n\r\n\r\n //Start our returnobject\r\n var data = {\r\n fontSize: fontSize,\r\n lineHeight: lineHeight,\r\n width: 0\r\n };\r\n\r\n //Return if newline\r\n if (!char || /(?:\\r\\n|\\r|\\n)/.test(char))\r\n return data;\r\n\r\n //Ctx font string\r\n var font = style.ctxFont();\r\n metricsContext.font = font;\r\n\r\n //Get char width\r\n data.width = Math.round(metricsContext.measureText(char).width);\r\n\r\n //Return if char = space\r\n if (/(\\s)/.test(char)) return data;\r\n\r\n //set canvas size (with padding so we can messure)\r\n var paddingY = Math.round(fontSize * 0.7), paddingX = Math.max(5, Math.round(fontSize * 0.7));\r\n metricsCanvas.width = Math.ceil(data.width) + paddingX * 2;\r\n metricsCanvas.height = 1.5 * fontSize;\r\n var w = metricsCanvas.width, h = metricsCanvas.height, baseline = (h / 2) + (paddingY * 0.5);\r\n\r\n //set font again after resize\r\n metricsContext.font = font;\r\n\r\n //make sure canvas is clean\r\n metricsContext.clearRect(0, 0, w, h);\r\n\r\n //save clean state with font\r\n metricsContext.save();\r\n\r\n //convert shadow string to shadow data\r\n var shadowData = function (str) {\r\n var data = str.trim().split(' ');\r\n return {\r\n color: string(data[0], \"#000000\"),\r\n alpha: float(data[1], 0.5),\r\n xOffset: float(data[2], 3),\r\n yOffset: float(data[3], 3),\r\n blur: float(data[4], 5)\r\n };\r\n };\r\n\r\n //convert fill string to fill data\r\n var fillData = function (str) {\r\n var data = str.trim().split(' ');\r\n var c = string(data[0], \"#FFFFFF\");\r\n var a = float(data[1], 1);\r\n return {\r\n color: c,\r\n alpha: a,\r\n position: float(data[2], -1),\r\n rgba: hexToRgba(c, a)\r\n };\r\n };\r\n\r\n //create fill style from fill string\r\n var getFillStyle = function (str) {\r\n var fills = str.split(',').filter(function (s) { return s !== ''; }), i;\r\n\r\n //convert to fill data\r\n for (i = 0; i < fills.length; i++) fills[i] = fillData(fills[i]);\r\n\r\n switch (fills.length) {\r\n case 0: return \"white\";\r\n case 1: return fills[0].rgba ? fills[0].rgba : fills[0].color || \"#FFFFFF\";\r\n default:\r\n //make gradient\r\n try {\r\n var gradEnd = baseline + lineHeight - fontSize,\r\n gradient = metricsContext.createLinearGradient(0, gradEnd - fontSize, 0, gradEnd);\r\n\r\n for (i = 0; i < fills.length; i++)\r\n gradient.addColorStop(fills[i].position !== -1 ? fills[i].position : i / (fills.length - 1), fills[i].rgba || fills[i].color);\r\n\r\n return gradient;\r\n }\r\n catch (e) {\r\n return \"#FFFFFF\";\r\n }\r\n }\r\n };\r\n\r\n\r\n //function to draw shadows\r\n var drawShadows = function (shadowString, stroke) {\r\n var shadows = shadowString.trim().split(',').filter(function (s) { return s !== ''; });\r\n if (shadows.length) {\r\n for (var i = 0; i < shadows.length; i++) {\r\n var s = shadowData(shadows[i]);\r\n metricsContext.globalAlpha = s.alpha;\r\n metricsContext.shadowColor = s.color;\r\n metricsContext.shadowOffsetX = s.xOffset + w;\r\n metricsContext.shadowOffsetY = s.yOffset;\r\n metricsContext.shadowBlur = s.blur;\r\n\r\n if (stroke) {\r\n metricsContext.lineWidth = style.stroke;\r\n metricsContext.strokeText(char, paddingX - w, baseline);\r\n }\r\n else metricsContext.fillText(char, paddingX - w, baseline);\r\n }\r\n metricsContext.restore();\r\n }\r\n };\r\n\r\n //draw text shadows\r\n if (style.shadow.length)\r\n drawShadows(style.shadow, false);\r\n\r\n //draw stroke shadows\r\n if (style.stroke && style.strokeShadow.length) {\r\n drawShadows(style.strokeShadow, true);\r\n }\r\n\r\n //draw text\r\n metricsContext.fillStyle = getFillStyle(string(style.fill, \"#000000\"));\r\n metricsContext.fillText(char, paddingX, baseline);\r\n metricsContext.restore();\r\n\r\n //draw stroke\r\n if (style.stroke) {\r\n metricsContext.strokeStyle = getFillStyle(string(style.strokeFill, \"#000000\"));\r\n metricsContext.lineWidth = style.stroke;\r\n metricsContext.strokeText(char, paddingX, baseline);\r\n metricsContext.restore();\r\n }\r\n\r\n\r\n //begin messuring\r\n var pixelData = metricsContext.getImageData(0, 0, w, h).data;\r\n\r\n var i = 3,\r\n line = w * 4,\r\n len = pixelData.length;\r\n\r\n\r\n\r\n //scanline on alpha\r\n while (i < len && !pixelData[i]) { i += 4; }\r\n var ascent = (i / line) | 0;\r\n\r\n\r\n if (i < len) {\r\n //rev scanline on alpha\r\n i = len - 1;\r\n while (i > 0 && !pixelData[i]) { i -= 4; }\r\n var descent = (i / line) | 0;\r\n\r\n\r\n //left to right scanline on alpha\r\n for (i = 3; i < len && !pixelData[i];) {\r\n i += line;\r\n if (i >= len) { i = (i - len) + 4; }\r\n }\r\n var minx = ((i % line) / 4) | 0;\r\n\r\n //right to left scanline on alpha\r\n var step = 1;\r\n for (i = len - 1; i >= 0 && !pixelData[i];) {\r\n i -= line;\r\n if (i < 0) { i = (len - 1) - (step++) * 4; }\r\n }\r\n var maxx = ((i % line) / 4) + 1 | 0;\r\n\r\n\r\n // set font metrics\r\n data.ascent = Math.round(baseline - ascent);\r\n data.descent = Math.round(descent - baseline);\r\n data.height = 1 + Math.round(descent - ascent);\r\n data.bounds = {\r\n minx: minx - paddingX,\r\n maxx: maxx - paddingX,\r\n miny: 0,\r\n maxy: descent - ascent\r\n };\r\n data.rect = {\r\n x: data.bounds.minx,\r\n y: -data.ascent - 2,\r\n width: data.bounds.maxx - data.bounds.minx + 2,\r\n height: data.ascent + data.descent + 4\r\n };\r\n\r\n\r\n //cache (for fast rearrange later)\r\n data.canvas = document.createElement(\"canvas\");\r\n data.canvas.width = data.rect.width;\r\n data.canvas.height = data.rect.height;\r\n var c = data.canvas.getContext(\"2d\");\r\n c.drawImage(metricsCanvas, -paddingX - data.rect.x, -baseline - data.rect.y);\r\n\r\n //reset rect position\r\n data.rect.x = data.rect.y = 0;\r\n\r\n\r\n }\r\n return data;\r\n };\r\n\r\n addCanvas();\r\n};\r\n\r\n\r\n\r\n//helper function for float or default\r\nfunction float(val, def) {\r\n if (isNaN(val)) return def;\r\n return parseFloat(val);\r\n}\r\n\r\n//helper function for int or default\r\nfunction int(val, def) {\r\n if (isNaN(val)) return def;\r\n return parseInt(val);\r\n}\r\n\r\n//helper function for string or default\r\nfunction string(val, def) {\r\n if (typeof val === 'string' && val.length) return val;\r\n return def;\r\n}\r\n\r\n//helper function to convert string hex to int or default\r\nfunction hexToInt(str, def) {\r\n if (typeof str === 'number')\r\n return str;\r\n\r\n var result = parseInt(str.replace('#', '0x'));\r\n\r\n if (isNaN(result)) return def;\r\n return result;\r\n}\r\n\r\n//helper function to convert hex to rgba\r\nfunction hexToRgba(hex, alpha) {\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n alpha = float(alpha, 1);\r\n return result ? \"rgba(\" + parseInt(result[1], 16) + \",\" + parseInt(result[2], 16) + \",\" + parseInt(result[3], 16) + \",\" + alpha + \")\" : false;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","function DynamicTextStyle(parent) {\r\n this.respectDirty = true;\r\n this._parent = parent || null;\r\n this._scale = 1;\r\n this._align = 'left';\r\n this._fontFamily = 'Arial';\r\n this._fontSize = 26;\r\n this._fontWeight = 'normal';\r\n this._fontStyle = 'normal';\r\n this._letterSpacing = 0;\r\n this._lineHeight = 0;\r\n this._verticalAlign = 0;\r\n this._rotation = 0;\r\n this._skew = 0;\r\n this._tint = \"#FFFFFF\";\r\n this._fill = '#FFFFFF';\r\n this._shadow = '';\r\n this._stroke = 0;\r\n this._strokeFill = '';\r\n this._strokeShadow = '';\r\n this._wrap = true;\r\n this._breakWords = false;\r\n this._overflowX = 'visible'; //visible|hidden\r\n this._overflowY = 'visible'; //visible|hidden\r\n this._ellipsis = false;\r\n\r\n\r\n var _cachedEllipsisSize = null;\r\n this.ellipsisSize = function (atlas) {\r\n if (!this.ellipsis) return 0;\r\n if (_cachedEllipsisSize === null)\r\n _cachedEllipsisSize = (atlas.getCharObject(\".\", this).width + this.letterSpacing) * 3;\r\n return _cachedEllipsisSize;\r\n };\r\n}\r\n\r\n\r\nDynamicTextStyle.prototype.clone = function () {\r\n var style = new DynamicTextStyle();\r\n style.merge(this);\r\n return style;\r\n};\r\n\r\nDynamicTextStyle.prototype.merge = function (style) {\r\n\r\n if (typeof style === 'object') {\r\n this.respectDirty = false;\r\n for (var param in style) {\r\n var val = style[param];\r\n if (typeof val === 'function' || param === 'respectDirty' || param === '_parent') continue;\r\n this[param] = style[param];\r\n }\r\n this.respectDirty = true;\r\n this._dirty = true;\r\n }\r\n};\r\n\r\nDynamicTextStyle.prototype.ctxKey = function (char) {\r\n return [char, this.fill, this.shadow, this.stroke, this.strokeFill, this.strokeShadow].join('|');\r\n};\r\n\r\nDynamicTextStyle.prototype.ctxFont = function () {\r\n var fontSize = Math.min(200, Math.max(1, this.fontSize || 26)) + \"px \";\r\n var fontWeight = this.fontWeight === \"bold\" ? this.fontWeight + \" \" : \"\";\r\n var fontStyle = this.fontStyle === \"italic\" || this.fontStyle === \"oblique\" ? this.fontStyle + \" \" : \"\";\r\n return fontWeight + fontStyle + fontSize + this.fontFamily;\r\n};\r\n\r\nDynamicTextStyle.prototype.constructor = DynamicTextStyle;\r\nmodule.exports = DynamicTextStyle;\r\n\r\nObject.defineProperties(DynamicTextStyle.prototype, {\r\n _dirty: {\r\n set: function (val) {\r\n if (this.respectDirty) {\r\n if (this._parent !== null) {\r\n this._parent.dirtyStyle = val;\r\n this._parent.update();\r\n }\r\n }\r\n }\r\n },\r\n scale: {\r\n get: function () {\r\n return this._scale;\r\n },\r\n set: function (val) {\r\n if (val !== this._scale) {\r\n this._scale = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n align: {\r\n get: function () {\r\n return this._align;\r\n },\r\n set: function (val) {\r\n if (val !== this._align) {\r\n this._align = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n fontFamily: {\r\n get: function () {\r\n return this._fontFamily;\r\n },\r\n set: function (val) {\r\n if (val !== this._fontFamily) {\r\n this._fontFamily = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n fontSize: {\r\n get: function () {\r\n return this._fontSize;\r\n },\r\n set: function (val) {\r\n if (val !== this._fontSize) {\r\n this._fontSize = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n fontWeight: {\r\n get: function () {\r\n return this._fontWeight;\r\n },\r\n set: function (val) {\r\n if (val !== this._fontWeight) {\r\n this._fontWeight = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n fontStyle: {\r\n get: function () {\r\n return this._fontStyle;\r\n },\r\n set: function (val) {\r\n if (val !== this._fontStyle) {\r\n this._fontStyle = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n letterSpacing: {\r\n get: function () {\r\n return this._letterSpacing;\r\n },\r\n set: function (val) {\r\n if (val !== this._letterSpacing) {\r\n this._letterSpacing = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n lineHeight: {\r\n get: function () {\r\n return this._lineHeight;\r\n },\r\n set: function (val) {\r\n if (val !== this._lineHeight) {\r\n this._lineHeight = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n verticalAlign: {\r\n get: function () {\r\n return this._verticalAlign;\r\n },\r\n set: function (val) {\r\n if (val !== this._verticalAlign) {\r\n this._verticalAlign = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n rotation: {\r\n get: function () {\r\n return this._rotation;\r\n },\r\n set: function (val) {\r\n if (val !== this._rotation) {\r\n this._rotation = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n skew: {\r\n get: function () {\r\n return this._skew;\r\n },\r\n set: function (val) {\r\n if (val !== this._skew) {\r\n this._skew = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n tint: {\r\n get: function () {\r\n return this._tint;\r\n },\r\n set: function (val) {\r\n if (val !== this._tint) {\r\n this._tint = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n fill: {\r\n get: function () {\r\n return this._fill;\r\n },\r\n set: function (val) {\r\n if (val !== this._fill) {\r\n this._fill = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n shadow: {\r\n get: function () {\r\n return this._shadow;\r\n },\r\n set: function (val) {\r\n if (val !== this._shadow) {\r\n this._shadow = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n stroke: {\r\n get: function () {\r\n return this._stroke;\r\n },\r\n set: function (val) {\r\n if (val !== this._stroke) {\r\n this._stroke = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n strokeFill: {\r\n get: function () {\r\n return this._strokeFill;\r\n },\r\n set: function (val) {\r\n if (val !== this._strokeFill) {\r\n this._strokeFill = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n strokeShadow: {\r\n get: function () {\r\n return this._strokeShadow;\r\n },\r\n set: function (val) {\r\n if (val !== this._strokeShadow) {\r\n this._strokeShadow = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n wrap: {\r\n get: function () {\r\n return this._wrap;\r\n },\r\n set: function (val) {\r\n if (val !== this._wrap) {\r\n this._wrap = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n breakWords: {\r\n get: function () {\r\n return this._breakWords;\r\n },\r\n set: function (val) {\r\n if (val !== this._breakWords) {\r\n this._breakWords = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n overflowX: {\r\n get: function () {\r\n return this._overflowX;\r\n },\r\n set: function (val) {\r\n if (val !== this._overflowX) {\r\n this._overflowX = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n overflowY: {\r\n get: function () {\r\n return this._overflowY;\r\n },\r\n set: function (val) {\r\n if (val !== this._overflowY) {\r\n this._overflowY = val;\r\n this._dirty = true;\r\n }\r\n }\r\n },\r\n ellipsis: {\r\n get: function () {\r\n return this._ellipsis;\r\n },\r\n set: function (val) {\r\n if (val !== this._ellipsis) {\r\n this._ellipsis = val;\r\n this._dirty = true;\r\n }\r\n }\r\n }\r\n});","var Ease = {},\r\n EaseBase = require('./EaseBase'),\r\n ExponentialEase = require('./ExponentialEase'),\r\n HALF_PI = Math.PI * 0.5;\r\n\r\nfunction create(fn) {\r\n var e = Object.create(EaseBase.prototype);\r\n e.getPosition = fn;\r\n return e;\r\n}\r\n\r\n\r\n//Liear\r\nEase.Linear = new EaseBase();\r\n\r\n//Exponetial Eases\r\nfunction wrapEase(easeInFunction, easeOutFunction, easeInOutFunction) {\r\n return {\r\n easeIn: easeInFunction,\r\n easeOut: easeOutFunction,\r\n easeInOut: easeInOutFunction\r\n };\r\n}\r\n\r\nEase.Power0 = {\r\n \"easeNone\" : Ease.Linear,\r\n};\r\n\r\nEase.Power1 = Ease.Quad = wrapEase(\r\n new ExponentialEase(1, 1, 0),\r\n new ExponentialEase(1, 0, 1),\r\n new ExponentialEase(1, 1, 1));\r\n\r\nEase.Power2 = Ease.Cubic = wrapEase(\r\n new ExponentialEase(2, 1, 0),\r\n new ExponentialEase(2, 0, 1),\r\n new ExponentialEase(2, 1, 1));\r\n\r\nEase.Power3 = Ease.Quart = wrapEase(\r\n new ExponentialEase(3, 1, 0),\r\n new ExponentialEase(3, 0, 1),\r\n new ExponentialEase(3, 1, 1));\r\n\r\nEase.Power4 = Ease.Quint = wrapEase(\r\n new ExponentialEase(4, 1, 0),\r\n new ExponentialEase(4, 0, 1),\r\n new ExponentialEase(4, 1, 1));\r\n\r\n\r\n//Bounce\r\nEase.Bounce = {\r\n \"BounceIn\": create(function (p) {\r\n if ((p = 1 - p) < 1 / 2.75) {\r\n return 1 - (7.5625 * p * p);\r\n } else if (p < 2 / 2.75) {\r\n return 1 - (7.5625 * (p -= 1.5 / 2.75) * p + 0.75);\r\n } else if (p < 2.5 / 2.75) {\r\n return 1 - (7.5625 * (p -= 2.25 / 2.75) * p + 0.9375);\r\n }\r\n return 1 - (7.5625 * (p -= 2.625 / 2.75) * p + 0.984375);\r\n }),\r\n \"BounceOut\": create(function (p) {\r\n if (p < 1 / 2.75) {\r\n return 7.5625 * p * p;\r\n } else if (p < 2 / 2.75) {\r\n return 7.5625 * (p -= 1.5 / 2.75) * p + 0.75;\r\n } else if (p < 2.5 / 2.75) {\r\n return 7.5625 * (p -= 2.25 / 2.75) * p + 0.9375;\r\n }\r\n return 7.5625 * (p -= 2.625 / 2.75) * p + 0.984375;\r\n }),\r\n \"BounceInOut\": create(function (p) {\r\n var invert = (p < 0.5);\r\n if (invert) {\r\n p = 1 - (p * 2);\r\n } else {\r\n p = (p * 2) - 1;\r\n }\r\n if (p < 1 / 2.75) {\r\n p = 7.5625 * p * p;\r\n } else if (p < 2 / 2.75) {\r\n p = 7.5625 * (p -= 1.5 / 2.75) * p + 0.75;\r\n } else if (p < 2.5 / 2.75) {\r\n p = 7.5625 * (p -= 2.25 / 2.75) * p + 0.9375;\r\n } else {\r\n p = 7.5625 * (p -= 2.625 / 2.75) * p + 0.984375;\r\n }\r\n return invert ? (1 - p) * 0.5 : p * 0.5 + 0.5;\r\n })\r\n};\r\n\r\n//Circ\r\nEase.Circ = {\r\n \"CircIn\": create(function (p) {\r\n return -(Math.sqrt(1 - (p * p)) - 1);\r\n }),\r\n \"CircOut\": create(function (p) {\r\n return Math.sqrt(1 - (p = p - 1) * p);\r\n }),\r\n \"CircInOut\": create(function (p) {\r\n return ((p *= 2) < 1) ? -0.5 * (Math.sqrt(1 - p * p) - 1) : 0.5 * (Math.sqrt(1 - (p -= 2) * p) + 1);\r\n })\r\n};\r\n\r\n\r\n//Expo\r\nEase.Expo = {\r\n \"ExpoIn\": create(function (p) {\r\n return Math.pow(2, 10 * (p - 1)) - 0.001;\r\n }),\r\n \"ExpoOut\": create(function (p) {\r\n return 1 - Math.pow(2, -10 * p);\r\n }),\r\n \"ExpoInOut\": create(function (p) {\r\n return ((p *= 2) < 1) ? 0.5 * Math.pow(2, 10 * (p - 1)) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\r\n })\r\n};\r\n\r\n\r\n//Sine\r\nEase.Sine = {\r\n \"SineIn\": create(function (p) {\r\n return -Math.cos(p * HALF_PI) + 1;\r\n }),\r\n \"SineOut\": create(function (p) {\r\n return Math.sin(p * HALF_PI);\r\n }),\r\n \"SineInOut\": create(function (p) {\r\n return -0.5 * (Math.cos(Math.PI * p) - 1);\r\n })\r\n};\r\n\r\n\r\nmodule.exports = Ease;\r\n\r\n\r\n","function EaseBase() {\r\n this.getPosition = function (p) {\r\n return p;\r\n };\r\n}\r\n\r\nEaseBase.prototype.constructor = EaseBase;\r\nmodule.exports = EaseBase;\r\n\r\n\r\n\r\n","var EaseBase = require('./EaseBase');\r\n\r\nfunction ExponentialEase(power, easeIn, easeOut) {\r\n var pow = power;\r\n var t = easeIn && easeOut ? 3 : easeOut ? 1 : 2;\r\n this.getPosition = function (p) {\r\n var r = (t === 1) ? 1 - p : (t === 2) ? p : (p < 0.5) ? p * 2 : (1 - p) * 2;\n if (pow === 1) {\r\n r *= r;\r\n } else if (pow === 2) {\r\n r *= r * r;\r\n } else if (pow === 3) {\r\n r *= r * r * r;\r\n } else if (pow === 4) {\r\n r *= r * r * r * r;\r\n }\n return (t === 1) ? 1 - r : (t === 2) ? r : (p < 0.5) ? r / 2 : 1 - (r / 2);\r\n };\r\n}\r\n\r\nExponentialEase.prototype = Object.create(EaseBase.prototype);\r\nExponentialEase.prototype.constructor = ExponentialEase;\r\nmodule.exports = ExponentialEase;\r\n\r\n\r\n\r\n","var Helpers = {\r\n Lerp: function (start, stop, amt) {\r\n if (amt > 1) amt = 1;\r\n else if (amt < 0) amt = 0;\r\n return start + (stop - start) * amt;\r\n },\r\n Round: function(number, decimals) {\r\n var pow = Math.pow(10, decimals);\r\n return Math.round(number * pow) / pow;\r\n },\r\n componentToHex: function(c) {\r\n var hex = c.toString(16);\r\n return hex.length == 1 ? \"0\" + hex : hex;\r\n },\r\n rgbToHex: function(r, g, b) {\r\n return \"#\" + componentToHex(r) + componentToHex(g) + componentToHex(b);\r\n },\r\n rgbToNumber: function (r, g, b) {\r\n return r * 65536 + g * 256 + b;\r\n },\r\n numberToRgb: function (c) {\r\n return {\r\n r: Math.floor(c / (256 * 256)),\r\n g: Math.floor(c / 256) % 256,\r\n b: c % 256,\r\n };\r\n },\r\n hexToRgb: function (hex) {\r\n if (hex === null)\r\n hex = 0xffffff;\r\n\r\n if (!isNaN(hex)) return this.numberToRgb(hex);\r\n\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n }\r\n};\r\n\r\nmodule.exports = Helpers;","var UIBase = require('./UIBase'),\r\n InputController = require('./Interaction/InputController'),\r\n ClickEvent = require('./Interaction/ClickEvent');\r\n/**\r\n * base object for all Input type objects\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param width {number} passed to uibase\r\n * @param height {number} passed to uibase\r\n * @param tabIndex {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} will be used as background for input\r\n */\r\nfunction InputBase(width, height, tabIndex, tabGroup) {\r\n UIBase.call(this, width, height);\r\n var self = this;\r\n this._focused = false;\r\n this._useTab = this._usePrev = this._useNext = true;\r\n this.container.interactive = true;\r\n InputController.registrer(this, tabIndex, tabGroup);\r\n\r\n\r\n var keyDownEvent = function (e) {\r\n if (e.which === 9) {\r\n if (self._useTab) {\r\n InputController.fireTab();\r\n e.preventDefault();\r\n }\r\n }\r\n else if (e.which === 38) {\r\n if (self._usePrev) {\r\n InputController.firePrev();\r\n e.preventDefault();\r\n }\r\n }\r\n else if (e.which === 40) {\r\n if (self._useNext) {\r\n InputController.fireNext();\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n var documentMouseDown = function (e) {\r\n if (!self.__down)\r\n self.blur();\r\n };\r\n\r\n this.container.on(\"pointerdown\", function (e) {\r\n self.focus();\r\n self.__down = true;\r\n });\r\n\r\n this.container.on(\"pointerup\", function (e) {\r\n self.__down = false;\r\n });\r\n\r\n this.container.on(\"pointerupoutside\", function (e) {\r\n self.__down = false;\r\n });\r\n\r\n //var cancelFocusEvent = new ClickEvent(this.stage)\r\n\r\n this._bindEvents = function () {\r\n if (this.stage !== null) {\r\n this.stage.on(\"pointerdown\", documentMouseDown);\r\n document.addEventListener(\"keydown\", keyDownEvent);\r\n }\r\n };\r\n\r\n this._clearEvents = function () {\r\n if (this.stage !== null) {\r\n this.stage.off(\"pointerdown\", documentMouseDown);\r\n document.removeEventListener(\"keydown\", keyDownEvent);\r\n }\r\n };\r\n}\r\n\r\nInputBase.prototype = Object.create(UIBase.prototype);\r\nInputBase.prototype.constructor = InputBase;\r\nmodule.exports = InputBase;\r\n\r\nInputBase.prototype.focus = function () {\r\n if (!this._focused) {\r\n this._focused = true;\r\n this._bindEvents();\r\n InputController.set(this);\r\n this.emit(\"focusChanged\", true);\r\n this.emit(\"focus\");\r\n\r\n }\r\n};\r\n\r\nInputBase.prototype.blur = function () {\r\n if (this._focused) {\r\n InputController.clear();\r\n this._focused = false;\r\n this._clearEvents();\r\n this.emit(\"focusChanged\", false);\r\n this.emit(\"blur\");\r\n\r\n }\r\n};","var ClickEvent = function (obj, includeHover, rightMouseButton) {\r\n\r\n\r\n\r\n var bound = false,\r\n self = this,\r\n id = 0,\r\n ishover = false,\r\n mouse = new PIXI.Point(),\r\n offset = new PIXI.Point(),\r\n movementX = 0,\r\n movementY = 0,\r\n right = typeof rightMouseButton === 'undefined' ? false : rightMouseButton,\r\n hover = typeof includeHover === 'undefined' ? true : includeHover;\r\n\r\n var eventname_mousedown = right ? \"rightdown\" : \"mousedown\";\r\n var eventname_mouseup = right ? \"rightup\" : \"mouseup\";\r\n var eventname_mouseupoutside = right ? \"rightupoutside\" : \"mouseupoutside\";\r\n\r\n obj.container.interactive = true;\r\n\r\n var _onMouseDown = function (event) {\r\n mouse.copy(event.data.global);\r\n id = event.data.identifier;\r\n self.onPress.call(obj, event, true);\r\n if (!bound) {\r\n obj.container.on(eventname_mouseup, _onMouseUp);\r\n obj.container.on(eventname_mouseupoutside, _onMouseUpOutside);\r\n if (!right) {\r\n obj.container.on('touchend', _onMouseUp);\r\n obj.container.on('touchendoutside', _onMouseUpOutside);\r\n }\r\n bound = true;\r\n }\r\n event.data.originalEvent.preventDefault();\r\n };\r\n\r\n var _mouseUpAll = function (event) {\r\n if (event.data.identifier !== id) return;\r\n offset.set(event.data.global.x - mouse.x, event.data.global.y - mouse.y);\r\n if (bound) {\r\n obj.container.removeListener(eventname_mouseup, _onMouseUp);\r\n obj.container.removeListener(eventname_mouseupoutside, _onMouseUpOutside);\r\n if (!right) {\r\n obj.container.removeListener('touchend', _onMouseUp);\r\n obj.container.removeListener('touchendoutside', _onMouseUpOutside);\r\n }\r\n bound = false;\r\n }\r\n self.onPress.call(obj, event, false);\r\n };\r\n\r\n var _onMouseUp = function (event) {\r\n if (event.data.identifier !== id) return;\r\n _mouseUpAll(event);\r\n\r\n //prevent clicks with scrolling/dragging objects\r\n if (obj.dragThreshold) {\r\n movementX = Math.abs(offset.x);\r\n movementY = Math.abs(offset.y);\r\n if (Math.max(movementX, movementY) > obj.dragThreshold) return;\r\n }\r\n\r\n\r\n self.onClick.call(obj, event);\r\n };\r\n\r\n var _onMouseUpOutside = function (event) {\r\n if (event.data.identifier !== id) return;\r\n _mouseUpAll(event);\r\n };\r\n\r\n var _onMouseOver = function (event) {\r\n if (!ishover) {\r\n ishover = true;\r\n obj.container.on('mousemove', _onMouseMove);\r\n obj.container.on('touchmove', _onMouseMove);\r\n self.onHover.call(obj, event, true);\r\n }\r\n };\r\n\r\n var _onMouseOut = function (event) {\r\n if (ishover) {\r\n ishover = false;\r\n obj.container.removeListener('mousemove', _onMouseMove);\r\n obj.container.removeListener('touchmove', _onMouseMove);\r\n self.onHover.call(obj, event, false);\r\n }\r\n };\r\n\r\n var _onMouseMove = function (event) {\r\n self.onMove.call(obj, event);\r\n };\r\n\r\n this.stopEvent = function () {\r\n if (bound) {\r\n obj.container.removeListener(eventname_mouseup, _onMouseUp);\r\n obj.container.removeListener(eventname_mouseupoutside, _onMouseUpOutside);\r\n\r\n if (!right) {\r\n obj.container.removeListener('touchend', _onMouseUp);\r\n obj.container.removeListener('touchendoutside', _onMouseUpOutside);\r\n }\r\n bound = false;\r\n }\r\n obj.container.removeListener(eventname_mousedown, _onMouseDown);\r\n if (!right) obj.container.removeListener('touchstart', _onMouseDown);\r\n\r\n if (hover) {\r\n obj.container.removeListener('mouseover', _onMouseOver);\r\n obj.container.removeListener('mouseout', _onMouseOut);\r\n obj.container.removeListener('mousemove', _onMouseMove);\r\n obj.container.removeListener('touchmove', _onMouseMove);\r\n }\r\n };\r\n\r\n this.startEvent = function () {\r\n obj.container.on(eventname_mousedown, _onMouseDown);\r\n if (!right) obj.container.on('touchstart', _onMouseDown);\r\n\r\n if (hover) {\r\n obj.container.on('mouseover', _onMouseOver);\r\n obj.container.on('mouseout', _onMouseOut);\r\n \r\n }\r\n };\r\n\r\n this.startEvent();\r\n};\r\n\r\nClickEvent.prototype.constructor = ClickEvent;\r\nmodule.exports = ClickEvent;\r\n\r\nClickEvent.prototype.onHover = function (event, over) { };\r\nClickEvent.prototype.onPress = function (event, isPressed) { };\r\nClickEvent.prototype.onClick = function (event) { };\r\nClickEvent.prototype.onMove = function (event) { };","var _items = [];\r\nvar DragDropController = {\r\n add: function (item, event) {\r\n item._dragDropEventId = event.data.identifier;\r\n if (_items.indexOf(item) === -1) {\r\n _items.push(item);\r\n return true;\r\n }\r\n return false;\r\n },\r\n getItem: function (object) {\r\n var item = null, index;\r\n for (var i = 0; i < _items.length; i++) {\r\n if (_items[i] === object) {\r\n item = _items[i];\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n if (item !== null) {\r\n _items.splice(index, 1);\r\n return item;\r\n }\r\n else {\r\n return false;\r\n }\r\n },\r\n getEventItem: function (event, group) {\r\n var item = null, index, id = event.data.identifier;\r\n for (var i = 0; i < _items.length; i++) {\r\n if (_items[i]._dragDropEventId === id) {\r\n if (group !== _items[i].dragGroup) {\r\n return false;\r\n }\r\n item = _items[i];\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n if (item !== null) {\r\n _items.splice(index, 1);\r\n return item;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n};\r\n\r\nmodule.exports = DragDropController;","var DragEvent = function (obj) {\r\n var bound = false,\r\n start = new PIXI.Point(),\r\n offset = new PIXI.Point(),\r\n mouse = new PIXI.Point(),\r\n movementX = 0,\r\n movementY = 0,\r\n cancel = false,\r\n dragging = false,\r\n self = this,\r\n id = 0;\r\n\r\n obj.container.interactive = true;\r\n\r\n var _onDragStart = function (e) {\r\n id = e.data.identifier;\r\n self.onPress.call(obj, e, true);\r\n if (!bound) {\r\n start.copy(e.data.global);\r\n obj.stage.on('mousemove', _onDragMove);\r\n obj.stage.on('touchmove', _onDragMove);\r\n obj.stage.on('mouseup', _onDragEnd);\r\n obj.stage.on('mouseupoutside', _onDragEnd);\r\n obj.stage.on('touchend', _onDragEnd);\r\n obj.stage.on('touchendoutside', _onDragEnd);\r\n obj.stage.on('touchcancel', _onDragEnd);\r\n bound = true;\r\n }\r\n\r\n e.data.originalEvent.preventDefault();\r\n };\r\n\r\n var _onDragMove = function (event) {\r\n if (event.data.identifier !== id) return;\r\n mouse.copy(event.data.global);\r\n offset.set(mouse.x - start.x, mouse.y - start.y);\r\n if (!dragging) {\r\n movementX = Math.abs(offset.x);\r\n movementY = Math.abs(offset.y);\r\n if (movementX === 0 && movementY === 0 || Math.max(movementX, movementY) < obj.dragThreshold) return; //thresshold\r\n if (obj.dragRestrictAxis !== null) {\r\n cancel = false;\r\n if (obj.dragRestrictAxis == \"x\" && movementY > movementX) cancel = true;\r\n else if (obj.dragRestrictAxis == \"y\" && movementY <= movementX) cancel = true;\r\n if (cancel) {\r\n _onDragEnd(event);\r\n return;\r\n }\r\n }\r\n self.onDragStart.call(obj, event);\r\n dragging = true;\r\n }\r\n self.onDragMove.call(obj, event, offset);\r\n };\r\n\r\n var _onDragEnd = function (event) {\r\n if (event.data.identifier !== id) return;\r\n if (bound) {\r\n obj.stage.removeListener('mousemove', _onDragMove);\r\n obj.stage.removeListener('touchmove', _onDragMove);\r\n obj.stage.removeListener('mouseup', _onDragEnd);\r\n obj.stage.removeListener('mouseupoutside', _onDragEnd);\r\n obj.stage.removeListener('touchend', _onDragEnd);\r\n obj.stage.removeListener('touchendoutside', _onDragEnd);\r\n obj.stage.removeListener('touchcancel', _onDragEnd);\r\n dragging = false;\r\n bound = false;\r\n self.onDragEnd.call(obj, event);\r\n self.onPress.call(obj, event, false);\r\n\r\n }\r\n };\r\n\r\n this.stopEvent = function () {\r\n if (bound) {\r\n obj.stage.removeListener('mousemove', _onDragMove);\r\n obj.stage.removeListener('touchmove', _onDragMove);\r\n obj.stage.removeListener('mouseup', _onDragEnd);\r\n obj.stage.removeListener('mouseupoutside', _onDragEnd);\r\n obj.stage.removeListener('touchend', _onDragEnd);\r\n obj.stage.removeListener('touchendoutside', _onDragEnd);\r\n bound = false;\r\n }\r\n obj.container.removeListener('mousedown', _onDragStart);\r\n obj.container.removeListener('touchstart', _onDragStart);\r\n };\r\n\r\n this.startEvent = function () {\r\n obj.container.on('mousedown', _onDragStart);\r\n obj.container.on('touchstart', _onDragStart);\r\n };\r\n\r\n this.startEvent();\r\n};\r\n\r\nDragEvent.prototype.constructor = DragEvent;\r\nmodule.exports = DragEvent;\r\n\r\nDragEvent.prototype.onPress = function (event, isPressed) { };\r\nDragEvent.prototype.onDragEnd = function (event) { };\r\nDragEvent.prototype.onDragMove = function (event, offset) { };\r\nDragEvent.prototype.onDragStart = function (event) { };","var _currentItem;\r\nvar tabGroups = {};\r\nvar checkGroups = {};\r\nvar checkGroupValues = {};\r\n\r\nvar InputController = {\r\n registrer: function (item, tabIndex, tabGroup) {\r\n var groupName = tabGroup || \"default\";\r\n\r\n var items = tabGroups[groupName];\r\n if (!items)\r\n items = tabGroups[groupName] = [];\r\n\r\n var i = items.indexOf(item);\r\n if (i === -1) {\r\n item._tabIndex = tabIndex !== undefined ? tabIndex : -1;\r\n item._tabGroup = items;\r\n items.push(item);\r\n items.sort(function (a, b) {\r\n if (a._tabIndex < b._tabIndex)\r\n return -1;\r\n if (a._tabIndex > b._tabIndex)\r\n return 1;\r\n return 0;\r\n });\r\n }\r\n },\r\n set: function (item) {\r\n this.blur();\r\n _currentItem = item;\r\n },\r\n clear: function () {\r\n _currentItem = undefined;\r\n },\r\n blur: function () {\r\n if (_currentItem && typeof _currentItem.blur === \"function\")\r\n _currentItem.blur();\r\n },\r\n fireTab: function () {\r\n if (_currentItem) {\r\n var i = _currentItem._tabGroup.indexOf(_currentItem) + 1;\r\n if (i >= _currentItem._tabGroup.length) i = 0;\r\n _currentItem._tabGroup[i].focus();\r\n }\r\n },\r\n fireNext: function () {\r\n if (_currentItem) {\r\n var i = _currentItem._tabGroup.indexOf(_currentItem) + 1;\r\n if (i >= _currentItem._tabGroup.length) i = _currentItem._tabGroup.length - 1;\r\n _currentItem._tabGroup[i].focus();\r\n }\r\n },\r\n firePrev: function () {\r\n if (_currentItem) {\r\n var i = _currentItem._tabGroup.indexOf(_currentItem) - 1;\r\n if (i < 0) i = 0;\r\n _currentItem._tabGroup[i].focus();\r\n }\r\n },\r\n registrerCheckGroup: function (cb) {\r\n var name = cb.checkGroup;\r\n var group = checkGroups[name];\r\n if (!group) group = checkGroups[name] = {};\r\n group[cb.value] = cb;\r\n\r\n if (cb.checked)\r\n checkGroupValues[name] = cb.value;\r\n },\r\n updateCheckGroupSelected: function (cb) {\r\n var group = checkGroups[cb.checkGroup];\r\n for (var val in group) {\r\n var b = group[val];\r\n if (b !== cb)\r\n b.checked = false;\r\n }\r\n checkGroupValues[cb.checkGroup] = cb.value;\r\n },\r\n getCheckGroupSelectedValue: function (name) {\r\n if (checkGroupValues[name])\r\n return checkGroupValues[name];\r\n return \"\";\r\n },\r\n setCheckGroupSelectedValue: function (name, val) {\r\n var group = checkGroups[name];\r\n if (group) {\r\n var cb = group[val];\r\n if (cb) {\r\n cb.checked = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nmodule.exports = InputController;","var Interaction = {\r\n ClickEvent: require('./ClickEvent'),\r\n DragEvent: require('./DragEvent'),\r\n MouseScrollEvent: require('./MouseScrollEvent'),\r\n InputController: require('./InputController')\r\n};\r\n\r\n\r\nmodule.exports = Interaction;","var MouseScrollEvent = function (obj, preventDefault) {\r\n var bound = false, delta = new PIXI.Point(), self = this;\r\n obj.container.interactive = true;\r\n\r\n var _onMouseScroll = function (event) {\r\n if (preventDefault)\r\n event.preventDefault();\r\n\r\n if (typeof event.deltaX !== \"undefined\")\r\n delta.set(event.deltaX, event.deltaY);\r\n else //Firefox\r\n delta.set(event.axis == 1 ? event.detail * 60 : 0, event.axis == 2 ? event.detail * 60 : 0);\r\n\r\n self.onMouseScroll.call(obj, event, delta);\r\n };\r\n\r\n var _onHover = function (event) {\r\n if (!bound) {\r\n document.addEventListener(\"mousewheel\", _onMouseScroll, false);\r\n document.addEventListener(\"DOMMouseScroll\", _onMouseScroll, false);\r\n bound = true;\r\n }\r\n };\r\n\r\n var _onMouseOut = function (event) {\r\n if (bound) {\r\n document.removeEventListener(\"mousewheel\", _onMouseScroll);\r\n document.removeEventListener(\"DOMMouseScroll\", _onMouseScroll);\r\n bound = false;\r\n }\r\n };\r\n\r\n this.stopEvent = function () {\r\n if (bound) {\r\n document.removeEventListener(\"mousewheel\", _onMouseScroll);\r\n document.removeEventListener(\"DOMMouseScroll\", _onMouseScroll);\r\n bound = false;\r\n }\r\n obj.container.removeListener('mouseover', _onHover);\r\n obj.container.removeListener('mouseout', _onMouseOut);\r\n };\r\n\r\n this.startEvent = function () {\r\n obj.container.on('mouseover', _onHover);\r\n obj.container.on('mouseout', _onMouseOut);\r\n };\r\n\r\n this.startEvent();\r\n\r\n \r\n};\r\n\r\nMouseScrollEvent.prototype.constructor = MouseScrollEvent;\r\nmodule.exports = MouseScrollEvent;\r\n\r\nMouseScrollEvent.prototype.onMouseScroll = function (event, delta) { };","var Slider = require('./Slider'),\r\n Tween = require('./Tween'),\r\n Ease = require('./Ease/Ease');\r\n\r\n/**\r\n* An UI scrollbar to control a ScrollingContainer\r\n* \r\n* @class\r\n* @extends PIXI.UI.Slider\r\n* @memberof PIXI.UI\r\n* @param options {Object} ScrollBar settings\r\n* @param options.track {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} Any type of UIOBject, will be used for the scrollbar track\r\n* @param options.handle {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} will be used as scrollbar handle\r\n* @param options.scrollingContainer {PIXI.UI.ScrollingContainer} The container to control\r\n* @param [options.vertical=false] {boolean} Direction of the scrollbar\r\n* @param [options.autohide=false] {boolean} Hides the scrollbar when not needed\r\n*\r\n*/\r\nfunction ScrollBar(options) {\r\n Slider.call(this, { track: options.track, handle: options.handle, fill: null, vertical: options.vertical });\r\n this.scrollingContainer = options.scrollingContainer;\r\n this.autohide = options.autohide;\r\n this._hidden = false;\r\n\r\n}\r\n\r\nScrollBar.prototype = Object.create(Slider.prototype);\r\nScrollBar.prototype.constructor = ScrollBar;\r\nmodule.exports = ScrollBar;\r\n\r\n\r\nScrollBar.prototype.initialize = function () {\r\n Slider.prototype.initialize.call(this);\r\n this.decimals = 3; //up decimals to trigger ValueChanging more often\r\n\r\n this._onValueChanging = function (val) {\r\n var sizeAmt = this.scrollingContainer._height / this.scrollingContainer.innerContainer.height || 0.001;\r\n if (sizeAmt < 1)\r\n this.scrollingContainer.forcePctPosition(this.vertical ? \"y\" : \"x\", this._amt);\r\n };\r\n\r\n this.scrollingContainer._scrollBars.push(this);\r\n\r\n};\r\n\r\nScrollBar.prototype.alignToContainer = function () {\r\n var newPos,\r\n size,\r\n x_y = this.vertical ? \"y\" : \"x\",\r\n width_height = this.vertical ? \"height\" : \"width\",\r\n top_left = this.vertical ? \"top\" : \"left\",\r\n _posAmt = !this.scrollingContainer.innerContainer[width_height] ? 0 : -(this.scrollingContainer.innerContainer[x_y] / this.scrollingContainer.innerContainer[width_height]),\r\n sizeAmt = !this.scrollingContainer.innerContainer[width_height] ? 1 : this.scrollingContainer[\"_\" + width_height] / this.scrollingContainer.innerContainer[width_height];\r\n\r\n //update amt\r\n this._amt = !this.scrollingContainer[\"_\" + width_height] ? 0 : -(this.scrollingContainer.innerContainer[x_y] / (this.scrollingContainer.innerContainer[width_height] - this.scrollingContainer[\"_\" + width_height]));\r\n\r\n if (sizeAmt >= 1) {\r\n size = this[\"_\" + width_height];\r\n this.handle[top_left] = size * 0.5;\r\n this.toggleHidden(true);\r\n }\r\n else {\r\n size = this[\"_\" + width_height] * sizeAmt;\r\n if (this._amt > 1) size -= (this[\"_\" + width_height] - size) * (this._amt - 1);\r\n else if (this._amt < 0) size -= (this[\"_\" + width_height] - size) * -this._amt;\r\n if (this._amt < 0) newPos = size * 0.5;\r\n else if (this._amt > 1) newPos = this[\"_\" + width_height] - size * 0.5;\r\n else newPos = (_posAmt * this.scrollingContainer[\"_\" + width_height]) + (size * 0.5);\r\n this.handle[top_left] = newPos;\r\n this.toggleHidden(false);\r\n }\r\n this.handle[width_height] = size;\r\n};\r\n\r\n\r\nScrollBar.prototype.toggleHidden = function (hidden) {\r\n if (this.autohide) {\r\n if (hidden && !this._hidden) {\r\n Tween.to(this, 0.2, { alpha: 0 });\r\n this._hidden = true;\r\n }\r\n else if (!hidden && this._hidden) {\r\n Tween.to(this, 0.2, { alpha: 1 });\r\n this._hidden = false;\r\n }\r\n }\r\n};\r\n\r\n\r\n\r\n\r\n","var UIBase = require('./UIBase'),\r\n Container = require('./Container'),\r\n Helpers = require('./Helpers'),\r\n Ticker = require('./Ticker'),\r\n DragEvent = require('./Interaction/DragEvent'),\r\n MouseScrollEvent = require('./Interaction/MouseScrollEvent');\r\n\r\n\r\n/**\r\n * An UI Container object with expandMask hidden and possibility to enable scrolling\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param [options.scrollX=false] {Boolean} Enable horizontal scrolling\r\n * @param [options.scrollY=false] {Boolean} Enable vertical scrolling\r\n * @param [options.dragScrolling=true] {Boolean} Enable mousedrag scrolling\r\n * @param [options.softness=0.5] {Number} (0-1) softness of scrolling\r\n * @param [options.width=0] {Number|String} container width \r\n * @param [options.height=0] {Number} container height \r\n * @param [options.radius=0] {Number} corner radius of clipping mask\r\n * @param [options.expandMask=0] {Number} mask expand (px)\r\n * @param [options.overflowY=0] {Number} how much can be scrolled past content dimensions\r\n * @param [options.overflowX=0] {Number} how much can be scrolled past content dimensions\r\n */\r\nfunction ScrollingContainer(options) {\r\n options = options || {};\r\n Container.call(this, options.width, options.height);\r\n this.mask = new PIXI.Graphics();\r\n this.innerContainer = new PIXI.Container();\r\n this.innerBounds = new PIXI.Rectangle();\r\n this.container.addChild(this.mask);\r\n this.container.addChild(this.innerContainer);\r\n this.container.mask = this.mask;\r\n this.scrollX = options.scrollX !== undefined ? options.scrollX : false;\r\n this.scrollY = options.scrollY !== undefined ? options.scrollY : true;\r\n this.dragScrolling = options.dragScrolling !== undefined ? options.dragScrolling : true;\r\n this.softness = options.softness !== undefined ? Math.max(Math.min(options.softness || 0, 1), 0) : 0.5;\r\n this.radius = options.radius || 0;\r\n this.expandMask = options.expandMask || 0;\r\n this.overflowY = options.overflowY || 0;\r\n this.overflowX = options.overflowX || 0;\r\n\r\n this.animating = false;\r\n this.scrolling = false;\r\n this._scrollBars = [];\r\n\r\n this.boundCached = performance.now() - 1000;\r\n}\r\n\r\n\r\nScrollingContainer.prototype = Object.create(Container.prototype);\r\nScrollingContainer.prototype.constructor = ScrollingContainer;\r\nmodule.exports = ScrollingContainer;\r\n\r\n\r\nScrollingContainer.prototype.initialize = function () {\r\n Container.prototype.initialize.apply(this);\r\n if (this.scrollX || this.scrollY) {\r\n this.initScrolling();\r\n }\r\n};\r\n\r\nScrollingContainer.prototype.update = function () {\r\n Container.prototype.update.apply(this);\r\n if (this._lastWidth != this._width || this._lastHeight != this._height) {\r\n var of = this.expandMask;\r\n this.mask.clear();\r\n this.mask.lineStyle(0);\r\n this.mask.beginFill(0xFFFFFF, 1);\r\n if (this.radius === 0) {\r\n\r\n //this.mask.drawRect(0, 0, this._width, this._height);\r\n //this.mask.drawRect(-of, -of, this._width + of, this.height + of);\r\n //this.mask.moveTo(-of, -of);\r\n //this.mask.lineTo(this._width + of, -of);\r\n //this.mask.lineTo(this._width + of, this._height + of);\r\n //this.mask.lineTo(-of, this._height + of);\r\n this.mask.drawRect(-of, -of, this._width + of, this._height + of);\r\n }\r\n else {\r\n this.mask.drawRoundedRect(-of, -of, this._width + of, this.height + of, this.radius);\r\n }\r\n this.mask.endFill();\r\n this._lastWidth = this._width;\r\n this._lastHeight = this._height;\r\n }\r\n\r\n\r\n if (this.setScrollPosition) {\r\n this.setScrollPosition();\r\n }\r\n};\r\n\r\nScrollingContainer.prototype.addChild = function (UIObject) {\r\n var argumentsLength = arguments.length;\r\n if (argumentsLength > 1) {\r\n for (var i = 0; i < argumentsLength; i++) {\r\n this.addChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n Container.prototype.addChild.call(this, UIObject);\r\n this.innerContainer.addChild(UIObject.container);\r\n this.getInnerBounds(true); //make sure bounds is updated instantly when a child is added\r\n }\r\n return UIObject;\r\n};\r\n\r\n\r\nScrollingContainer.prototype.updateScrollBars = function () {\r\n for (var i = 0; i < this._scrollBars.length; i++) {\r\n this._scrollBars[i].alignToContainer();\r\n }\r\n};\r\n\r\n\r\nScrollingContainer.prototype.getInnerBounds = function (force) {\r\n //this is a temporary fix, because we cant rely on innercontainer height if the children is positioned > 0 y.\r\n if (force || performance.now() - this.boundCached > 1000) {\r\n this.innerContainer.getLocalBounds(this.innerBounds);\r\n this.innerContainer.getLocalBounds(this.innerBounds);\r\n this.innerBounds.height = this.innerBounds.y + this.innerContainer.height;\r\n this.innerBounds.width = this.innerBounds.x + this.innerContainer.width;\r\n this.boundCached = performance.now();\r\n }\r\n\r\n return this.innerBounds;\r\n};\r\n\r\nScrollingContainer.prototype.initScrolling = function () {\r\n var container = this.innerContainer,\r\n containerStart = new PIXI.Point(),\r\n targetPosition = new PIXI.Point(),\r\n lastPosition = new PIXI.Point(),\r\n Position = new PIXI.Point(),\r\n Speed = new PIXI.Point(),\r\n stop,\r\n self = this;\r\n\r\n this.forcePctPosition = function (direction, pct) {\r\n var bounds = this.getInnerBounds();\r\n\r\n if (this.scrollX && direction == \"x\") {\r\n container.position[direction] = -((bounds.width - this._width) * pct);\r\n }\r\n if (this.scrollY && direction == \"y\") {\r\n container.position[direction] = -((bounds.height - this._height) * pct);\r\n }\r\n Position[direction] = targetPosition[direction] = container.position[direction];\r\n };\r\n\r\n this.focusPosition = function (pos) {\r\n var bounds = this.getInnerBounds();\r\n\r\n var dif;\r\n if (this.scrollX) {\r\n var x = Math.max(0, (Math.min(bounds.width, pos.x)));\r\n if (x + container.x > this._width) {\r\n dif = x - this._width;\r\n container.x = -dif;\r\n }\r\n else if (x + container.x < 0) {\r\n dif = x + container.x;\r\n container.x -= dif;\r\n }\r\n }\r\n\r\n if (this.scrollY) {\r\n var y = Math.max(0, (Math.min(bounds.height, pos.y)));\r\n\r\n if (y + container.y > this._height) {\r\n dif = y - this._height;\r\n container.y = -dif;\r\n }\r\n else if (y + container.y < 0) {\r\n dif = y + container.y;\r\n container.y -= dif;\r\n }\r\n }\r\n\r\n lastPosition.copy(container.position);\r\n targetPosition.copy(container.position);\r\n Position.copy(container.position);\r\n this.updateScrollBars();\r\n\r\n };\r\n\r\n this.setScrollPosition = function (speed) {\r\n if (speed) {\r\n Speed = speed;\r\n }\r\n\r\n if (!this.animating) {\r\n this.animating = true;\r\n lastPosition.copy(container.position);\r\n targetPosition.copy(container.position);\r\n Ticker.on(\"update\", this.updateScrollPosition, this);\r\n }\r\n };\r\n\r\n this.updateScrollPosition = function (delta) {\r\n stop = true;\r\n if (this.scrollX) this.updateDirection(\"x\", delta);\r\n if (this.scrollY) this.updateDirection(\"y\", delta);\r\n if (stop) {\r\n Ticker.removeListener(\"update\", this.updateScrollPosition);\r\n this.animating = false;\r\n }\r\n };\r\n\r\n\r\n\r\n this.updateDirection = function (direction, delta) {\r\n var bounds = this.getInnerBounds();\r\n\r\n var min;\r\n if (direction == \"y\")\r\n min = Math.round(Math.min(0, this._height - bounds.height));\r\n else\r\n min = Math.round(Math.min(0, this._width - bounds.width));\r\n\r\n if (!this.scrolling && Math.round(Speed[direction]) !== 0) {\r\n targetPosition[direction] += Speed[direction];\r\n Speed[direction] = Helpers.Lerp(Speed[direction], 0, (5 + 2.5 / Math.max(this.softness, 0.01)) * delta);\r\n\r\n if (targetPosition[direction] > 0) {\r\n targetPosition[direction] = 0;\r\n\r\n }\r\n else if (targetPosition[direction] < min) {\r\n targetPosition[direction] = min;\r\n\r\n }\r\n }\r\n\r\n if (!this.scrolling && Math.round(Speed[direction]) === 0 && (container[direction] > 0 || container[direction] < min)) {\r\n var target = Position[direction] > 0 ? 0 : min;\r\n Position[direction] = Helpers.Lerp(Position[direction], target, (40 - (30 * this.softness)) * delta);\r\n stop = false;\r\n }\r\n else if (this.scrolling || Math.round(Speed[direction]) !== 0) {\r\n\r\n if (this.scrolling) {\r\n Speed[direction] = Position[direction] - lastPosition[direction];\r\n lastPosition.copy(Position);\r\n }\r\n if (targetPosition[direction] > 0) {\r\n Speed[direction] = 0;\r\n Position[direction] = 100 * this.softness * (1 - Math.exp(targetPosition[direction] / -200));\r\n }\r\n else if (targetPosition[direction] < min) {\r\n Speed[direction] = 0;\r\n Position[direction] = min - (100 * this.softness * (1 - Math.exp((min - targetPosition[direction]) / -200)));\r\n }\r\n else {\r\n Position[direction] = targetPosition[direction];\r\n }\r\n stop = false;\r\n }\r\n\r\n container.position[direction] = Math.round(Position[direction]);\r\n\r\n self.updateScrollBars();\r\n\r\n };\r\n\r\n\r\n //Drag scroll\r\n if (this.dragScrolling) {\r\n var drag = new DragEvent(this);\r\n drag.onDragStart = function (e) {\r\n if (!this.scrolling) {\r\n containerStart.copy(container.position);\r\n Position.copy(container.position);\r\n this.scrolling = true;\r\n this.setScrollPosition();\r\n self.emit(\"dragStart\", e);\r\n }\r\n };\r\n\r\n drag.onDragMove = function (e, offset) {\r\n if (this.scrollX)\r\n targetPosition.x = containerStart.x + offset.x;\r\n if (this.scrollY)\r\n targetPosition.y = containerStart.y + offset.y;\r\n };\r\n\r\n drag.onDragEnd = function (e) {\r\n if (this.scrolling) {\r\n this.scrolling = false;\r\n self.emit(\"dragEnd\", e);\r\n }\r\n };\r\n }\r\n\r\n //Mouse scroll\r\n var scrollSpeed = new PIXI.Point();\r\n var scroll = new MouseScrollEvent(this, true);\r\n scroll.onMouseScroll = function (e, delta) {\r\n scrollSpeed.set(-delta.x * 0.2, -delta.y * 0.2);\r\n this.setScrollPosition(scrollSpeed);\r\n };\r\n\r\n\r\n self.updateScrollBars();\r\n\r\n\r\n};\r\n\r\n\r\n\r\n\r\n","var UIBase = require('./UIBase');\r\n\r\n/**\r\n * A sliced sprite with dynamic width and height.\r\n *\r\n * @class\r\n * @memberof PIXI.UI\r\n * @param Texture {PIXI.Texture} the texture for this SliceSprite\r\n * @param BorderWidth {Number} Width of the sprite borders\r\n * @param horizontalSlice {Boolean} Slice the sprite horizontically\r\n * @param verticalSlice {Boolean} Slice the sprite vertically\r\n * @param [tile=false] {Boolean} tile or streach\r\n */\r\nfunction SliceSprite(texture, borderWidth, horizontalSlice, verticalSlice, tile) {\r\n UIBase.call(this, texture.width, texture.height);\r\n\r\n var ftl, ftr, fbl, fbr, ft, fb, fl, fr, ff, stl, str, sbl, sbr, st, sb, sl, sr, sf,\r\n bw = borderWidth || 5,\r\n vs = typeof verticalSlice !== \"undefined\" ? verticalSlice : true,\r\n hs = typeof horizontalSlice !== \"undefined\" ? horizontalSlice : true,\r\n t = texture.baseTexture,\r\n f = texture.frame;\r\n\r\n\r\n if (hs) this.setting.minWidth = borderWidth * 2;\r\n if (vs) this.setting.minHeight = borderWidth * 2;\r\n\r\n this.initialize = function () {\r\n UIBase.prototype.initialize.apply(this);\r\n\r\n //get frames\r\n if (vs && hs) {\r\n ftl = new PIXI.Rectangle(f.x, f.y, bw, bw);\r\n ftr = new PIXI.Rectangle(f.x + f.width - bw, f.y, bw, bw);\r\n fbl = new PIXI.Rectangle(f.x, f.y + f.height - bw, bw, bw);\r\n fbr = new PIXI.Rectangle(f.x + f.width - bw, f.y + f.height - bw, bw, bw);\r\n ft = new PIXI.Rectangle(f.x + bw, f.y, f.width - bw * 2, bw);\r\n fb = new PIXI.Rectangle(f.x + bw, f.y + f.height - bw, f.width - bw * 2, bw);\r\n fl = new PIXI.Rectangle(f.x, f.y + bw, bw, f.height - bw * 2);\r\n fr = new PIXI.Rectangle(f.x + f.width - bw, f.y + bw, bw, f.height - bw * 2);\r\n ff = new PIXI.Rectangle(f.x + bw, f.y + bw, f.width - bw * 2, f.height - bw * 2);\r\n }\r\n else if (hs) {\r\n fl = new PIXI.Rectangle(f.x, f.y, bw, f.height);\r\n fr = new PIXI.Rectangle(f.x + f.width - bw, f.y, bw, f.height);\r\n ff = new PIXI.Rectangle(f.x + bw, f.y, f.width - bw * 2, f.height);\r\n }\r\n else { //vs\r\n ft = new PIXI.Rectangle(f.x, f.y, f.width, bw);\r\n fb = new PIXI.Rectangle(f.x, f.y + f.height - bw, f.width, bw);\r\n ff = new PIXI.Rectangle(f.x, f.y + bw, f.width, f.height - bw * 2);\r\n }\r\n\r\n //TODO: swap frames if rotation\r\n\r\n\r\n\r\n //make sprites\r\n sf = tile ? new PIXI.extras.TilingSprite(new PIXI.Texture(t, ff)) : new PIXI.Sprite(new PIXI.Texture(t, ff));\r\n this.container.addChildAt(sf, 0);\r\n if (vs && hs) {\r\n stl = new PIXI.Sprite(new PIXI.Texture(t, ftl));\r\n str = new PIXI.Sprite(new PIXI.Texture(t, ftr));\r\n sbl = new PIXI.Sprite(new PIXI.Texture(t, fbl));\r\n sbr = new PIXI.Sprite(new PIXI.Texture(t, fbr));\r\n this.container.addChildAt(stl, 0);\r\n this.container.addChildAt(str, 0);\r\n this.container.addChildAt(sbl, 0);\r\n this.container.addChildAt(sbr, 0);\r\n\r\n }\r\n if (hs) {\r\n sl = tile ? new PIXI.extras.TilingSprite(new PIXI.Texture(t, fl)) : new PIXI.Sprite(new PIXI.Texture(t, fl));\r\n sr = tile ? new PIXI.extras.TilingSprite(new PIXI.Texture(t, fr)) : new PIXI.Sprite(new PIXI.Texture(t, fr));\r\n this.container.addChildAt(sl, 0);\r\n this.container.addChildAt(sr, 0);\r\n }\r\n if (vs) {\r\n st = tile ? new PIXI.extras.TilingSprite(new PIXI.Texture(t, ft)) : new PIXI.Sprite(new PIXI.Texture(t, ft));\r\n sb = tile ? new PIXI.extras.TilingSprite(new PIXI.Texture(t, fb)) : new PIXI.Sprite(new PIXI.Texture(t, fb));\r\n this.container.addChildAt(st, 0);\r\n this.container.addChildAt(sb, 0);\r\n }\r\n\r\n //set constant position and sizes\r\n if (vs && hs) st.x = sb.x = sl.y = sr.y = stl.width = str.width = sbl.width = sbr.width = stl.height = str.height = sbl.height = sbr.height = bw;\r\n if (hs) sf.x = sl.width = sr.width = bw;\r\n if (vs) sf.y = st.height = sb.height = bw;\r\n };\r\n\r\n /**\r\n * Updates the sliced sprites position and size\r\n *\r\n * @private\r\n */\r\n this.update = function () {\r\n if (!this.initialized) return;\r\n if (vs && hs) {\r\n str.x = sbr.x = sr.x = this._width - bw;\r\n sbl.y = sbr.y = sb.y = this._height - bw;\r\n sf.width = st.width = sb.width = this._width - bw * 2;\r\n sf.height = sl.height = sr.height = this._height - bw * 2;\r\n }\r\n else if (hs) {\r\n sr.x = this._width - bw;\r\n sl.height = sr.height = sf.height = this._height;\r\n sf.width = this._width - bw * 2;\r\n }\r\n else { //vs\r\n sb.y = this._height - bw;\r\n st.width = sb.width = sf.width = this._width;\r\n sf.height = this._height - bw * 2;\r\n }\r\n\r\n if (this.tint !== null) {\r\n sf.tint = this.tint;\r\n if (vs && hs) stl.tint = str.tint = sbl.tint = sbr.tint = this.tint;\r\n if (hs) sl.tint = sr.tint = this.tint;\r\n if (vs) st.tint = sb.tint = this.tint;\r\n }\r\n\r\n if (this.blendMode !== null) {\r\n sf.blendMode = this.blendMode;\r\n if (vs && hs) stl.blendMode = str.blendMode = sbl.blendMode = sbr.blendMode = this.blendMode;\r\n if (hs) sl.blendMode = sr.blendMode = this.blendMode;\r\n if (vs) st.blendMode = sb.blendMode = this.blendMode;\r\n }\r\n };\r\n}\r\n\r\nSliceSprite.prototype = Object.create(UIBase.prototype);\r\nSliceSprite.prototype.constructor = SliceSprite;\r\nmodule.exports = SliceSprite;\r\n\r\n\r\n\r\n","var UIBase = require('./UIBase'),\r\n DragEvent = require('./Interaction/DragEvent'),\r\n ClickEvent = require('./Interaction/ClickEvent'),\r\n Tween = require('./Tween'),\r\n Ease = require('./Ease/Ease'),\r\n Helpers = require('./Helpers');\r\n\r\n/**\r\n* An UI Slider, the default width/height is 90%\r\n* \r\n* @class\r\n* @extends UIBase\r\n* @memberof PIXI.UI\r\n* @param options {Object} Slider settings\r\n* @param options.track {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} Any type of UIOBject, will be used for the slider track\r\n* @param options.handle {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} will be used as slider handle\r\n* @param [options.fill=null] {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} will be used for slider fill\r\n* @param [options.vertical=false] {boolean} Direction of the slider\r\n* @param [options.value=0] {number} value of the slider\r\n* @param [options.minValue=0] {number} minimum value\r\n* @param [options.maxValue=100] {number} max value\r\n* @param [options.decimals=0] {boolean} the decimal precision (use negative to round tens and hundreds)\r\n* @param [options.onValueChange=null] {callback} Callback when the value has changed\r\n* @param [options.onValueChanging=null] {callback} Callback while the value is changing\r\n* \r\n* \r\n*/\r\nfunction Slider(options) {\r\n UIBase.call(this);\r\n this._amt = 0;\r\n this._disabled = false;\r\n\r\n //set options\r\n this.track = options.track;\r\n this.handle = options.handle;\r\n this.fill = options.fill || null;\r\n this._minValue = options.minValue || 0;\r\n this._maxValue = options.maxValue || 100;\r\n this.decimals = options.decimals || 0;\r\n this.vertical = options.vertical || false;\r\n this._onValueChange = options.onValueChange || null;\r\n this._onValueChanging = options.onValueChanging || null;\r\n this.value = options.value || 50;\r\n this.handle.pivot = 0.5;\r\n\r\n\r\n\r\n this.addChild(this.track);\r\n if (this.fill) this.track.addChild(this.fill);\r\n this.addChild(this.handle);\r\n this.handle.container.buttonMode = true;\r\n\r\n if (this.vertical) {\r\n this.height = \"100%\";\r\n this.width = this.track.width;\r\n this.track.height = \"100%\";\r\n this.handle.horizontalAlign = \"center\";\r\n if (this.fill) this.fill.horizontalAlign = \"center\";\r\n }\r\n else {\r\n this.width = \"100%\";\r\n this.height = this.track.height;\r\n this.track.width = \"100%\";\r\n this.handle.verticalAlign = \"middle\";\r\n if (this.fill) this.fill.verticalAlign = \"middle\";\r\n }\r\n\r\n}\r\n\r\nSlider.prototype = Object.create(UIBase.prototype);\r\nSlider.prototype.constructor = Slider;\r\nmodule.exports = Slider;\r\n\r\nSlider.prototype.update = function (soft) {\r\n var handleSize, val;\r\n\r\n if (this.vertical) {\r\n handleSize = this.handle._height || this.handle.container.height;\r\n val = ((this._height - handleSize) * this._amt) + (handleSize * 0.5);\r\n if (soft) {\r\n Tween.to(this.handle, 0.3, { top: val }, Ease.Power2.easeOut);\r\n if (this.fill) Tween.to(this.fill, 0.3, { height: val }, Ease.Power2.easeOut);\r\n }\r\n else {\r\n Tween.set(this.handle, { top: val });\r\n if (this.fill) Tween.set(this.fill, { height: val });\r\n }\r\n }\r\n else {\r\n handleSize = this.handle._width || this.handle.container.width;\r\n val = ((this._width - handleSize) * this._amt) + (handleSize * 0.5);\r\n if (soft) {\r\n Tween.to(this.handle, 0.3, { left: val }, Ease.Power2.easeOut);\r\n if (this.fill) Tween.to(this.fill, 0.3, { width: val }, Ease.Power2.easeOut);\r\n }\r\n else {\r\n Tween.set(this.handle, { left: val });\r\n if (this.fill) Tween.set(this.fill, { width: val });\r\n }\r\n }\r\n};\r\n\r\nSlider.prototype.initialize = function () {\r\n UIBase.prototype.initialize.call(this);\r\n\r\n\r\n\r\n var self = this;\r\n var startValue = 0;\r\n\r\n\r\n\r\n ////Handle dragging\r\n var handleDrag = new DragEvent(this.handle);\r\n handleDrag.onPress = function (event, isPressed) {\r\n event.stopPropagation();\r\n };\r\n\r\n handleDrag.onDragStart = function (event) {\r\n startValue = self._amt;\r\n maxPosition = self.vertical ? self._height - self.handle._height : self._width - self.handle._width;\r\n };\r\n\r\n handleDrag.onDragMove = function (event, offset) {\r\n\r\n self._amt = !maxPosition ? 0 : Math.max(0, Math.min(1, startValue + ((self.vertical ? offset.y : offset.x) / maxPosition)));\r\n\r\n triggerValueChanging();\r\n self.update();\r\n };\r\n\r\n handleDrag.onDragEnd = function () {\r\n triggerValueChange();\r\n self.update();\r\n };\r\n\r\n //Bar pressing/dragging\r\n var localMousePosition = new PIXI.Point();\r\n var trackDrag = new DragEvent(this.track);\r\n\r\n trackDrag.onPress = function (event, isPressed) {\r\n if (isPressed)\r\n updatePositionToMouse(event.data.global, true);\r\n event.stopPropagation();\r\n };\r\n\r\n trackDrag.onDragMove = function (event) {\r\n updatePositionToMouse(event.data.global, false);\r\n };\r\n\r\n trackDrag.onDragEnd = function () {\r\n triggerValueChange();\r\n };\r\n\r\n var updatePositionToMouse = function (mousePosition, soft) {\r\n self.track.container.toLocal(mousePosition, null, localMousePosition, true);\r\n\r\n var newPos = self.vertical ? localMousePosition.y - self.handle._height * 0.5 : localMousePosition.x - self.handle._width * 0.5;\r\n var maxPos = self.vertical ? self._height - self.handle._height : self._width - self.handle._width;\r\n self._amt = !maxPos ? 0 : Math.max(0, Math.min(1, newPos / maxPos));\r\n self.update(soft);\r\n triggerValueChanging();\r\n };\r\n\r\n var triggerValueChange = function () {\r\n self.emit(\"change\", self.value);\r\n if (self._lastChange != self.value) {\r\n self._lastChange = self.value;\r\n if (typeof self.onValueChange === \"function\")\r\n self.onValueChange(self.value);\r\n }\r\n };\r\n\r\n var triggerValueChanging = function () {\r\n self.emit(\"changeing\", self.value);\r\n if (self._lastChanging != self.value) {\r\n self._lastChanging = self.value;\r\n if (typeof self._onValueChanging === \"function\")\r\n self._onValueChanging(self.value);\r\n }\r\n };\r\n};\r\n\r\n\r\nObject.defineProperties(Slider.prototype, {\r\n value: {\r\n get: function () {\r\n return Helpers.Round(Helpers.Lerp(this._minValue, this._maxValue, this._amt), this.decimals);\r\n },\r\n set: function (val) {\r\n this._amt = (Math.max(this._minValue, Math.min(this._maxValue, val)) - this._minValue) / (this._maxValue - this._minValue);\r\n if (typeof this.onValueChange === \"function\")\r\n self.onValueChange(this.value);\r\n if (typeof this._onValueChanging === \"function\")\r\n this._onValueChanging(this.value);\r\n this.update();\r\n }\r\n },\r\n\r\n onValueChange: {\r\n get: function () {\r\n return this._onValueChange;\r\n },\r\n set: function (val) {\r\n this._onValueChange = val;\r\n }\r\n },\r\n onValueChanging: {\r\n get: function () {\r\n return this._onValueChanging;\r\n },\r\n set: function (val) {\r\n this._onValueChanging = val;\r\n }\r\n },\r\n minValue: {\r\n get: function () {\r\n return this._minValue;\r\n },\r\n set: function (val) {\r\n this._minValue = val;\r\n this.update();\r\n }\r\n },\r\n maxValue: {\r\n get: function () {\r\n return this._maxValue;\r\n },\r\n set: function (val) {\r\n this._maxValue = val;\r\n this.update();\r\n }\r\n },\r\n disabled: {\r\n get: function () {\r\n return this._disabled;\r\n },\r\n set: function (val) {\r\n if (val !== this._disabled) {\r\n this._disabled = val;\r\n this.handle.container.buttonMode = !val;\r\n this.handle.container.interactive = !val;\r\n this.track.container.interactive = !val;\r\n }\r\n }\r\n }\r\n});","var Container = require('./Container');\r\nvar Tween = require('./Tween');\r\n/**\r\n * An UI Container object\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param desc {Boolean} Sort the list descending\r\n * @param tweenTime {Number} if above 0 the sort will be animated\r\n * @param tweenEase {PIXI.UI.Ease} ease method used for animation\r\n */\r\nfunction SortableList(desc, tweenTime, tweenEase) {\r\n Container.call(this);\r\n this.desc = typeof desc !== \"undefined\" ? desc : false;\r\n this.tweenTime = tweenTime || 0;\r\n this.tweenEase = tweenEase;\r\n this.items = [];\r\n\r\n}\r\n\r\nSortableList.prototype = Object.create(Container.prototype);\r\nSortableList.prototype.constructor = SortableList;\r\nmodule.exports = SortableList;\r\n\r\nSortableList.prototype.addChild = function (UIObject, fnValue, fnThenBy) {\r\n Container.prototype.addChild.call(this, UIObject);\r\n if (this.items.indexOf(UIObject) == -1) {\r\n this.items.push(UIObject);\r\n }\r\n\r\n if (typeof fnValue === \"function\")\r\n UIObject._sortListValue = fnValue;\r\n\r\n if (typeof fnThenBy === \"function\")\r\n UIObject._sortListThenByValue = fnThenBy;\r\n\r\n if (!UIObject._sortListRnd)\r\n UIObject._sortListRnd = Math.random();\r\n\r\n\r\n\r\n this.sort();\r\n};\r\n\r\nSortableList.prototype.removeChild = function (UIObject) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.removeChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n Container.prototype.removeChild.call(this, UIObject);\r\n var index = this.items.indexOf(UIObject);\r\n if (index != -1) {\r\n this.items.splice(index, 1);\r\n }\r\n this.sort();\r\n }\r\n};\r\n\r\nSortableList.prototype.sort = function (instant) {\r\n clearTimeout(this._sortTimeout);\r\n\r\n if (instant) {\r\n this._sort();\r\n return;\r\n }\r\n\r\n var _this = this;\r\n this._sortTimeout = setTimeout(function () { _this._sort(); }, 0);\r\n};\r\n\r\nSortableList.prototype._sort = function () {\r\n var self = this,\r\n desc = this.desc,\r\n y = 0,\r\n alt = true;\r\n\r\n this.items.sort(function (a, b) {\r\n var res = a._sortListValue() < b._sortListValue() ? desc ? 1 : -1 :\r\n a._sortListValue() > b._sortListValue() ? desc ? -1 : 1 : 0;\r\n\r\n if (res === 0 && a._sortListThenByValue && b._sortListThenByValue) {\r\n res = a._sortListThenByValue() < b._sortListThenByValue() ? desc ? 1 : -1 :\r\n a._sortListThenByValue() > b._sortListThenByValue() ? desc ? -1 : 1 : 0;\r\n }\r\n if (res === 0) {\r\n res = a._sortListRnd > b._sortListRnd ? 1 :\r\n a._sortListRnd < b._sortListRnd ? -1 : 0;\r\n }\r\n return res;\r\n });\r\n\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n\r\n alt = !alt;\r\n\r\n if (this.tweenTime > 0) {\r\n Tween.fromTo(item, this.tweenTime, { x: item.x, y: item.y }, { x: 0, y: y }, this.tweenEase);\r\n }\r\n else {\r\n item.x = 0;\r\n item.y = y;\r\n }\r\n y += item.height;\r\n if (typeof item.altering === \"function\")\r\n item.altering(alt);\r\n }\r\n\r\n //force it to update parents when sort animation is done (prevent scrolling container bug)\r\n if (this.tweenTime > 0) {\r\n setTimeout(function () {\r\n self.updatesettings(false, true);\r\n }, this.tweenTime * 1000);\r\n }\r\n};\r\n\r\n\r\n","var UIBase = require('./UIBase');\r\n\r\n/**\r\n * An UI sprite object\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param Texture {PIXI.Texture} The texture for the sprite\r\n */\r\nfunction Sprite(t) {\r\n this.sprite = new PIXI.Sprite(t);\r\n UIBase.call(this, this.sprite.width, this.sprite.height);\r\n this.container.addChild(this.sprite);\r\n}\r\n\r\nSprite.prototype = Object.create(UIBase.prototype);\r\nSprite.prototype.constructor = Sprite;\r\nmodule.exports = Sprite;\r\n\r\n\r\nSprite.fromFrame = function (frameId) {\r\n return new Sprite(new PIXI.Texture.fromFrame(frameId));\r\n};\r\n\r\nSprite.fromImage = function (imageUrl) {\r\n return new Sprite(new PIXI.Texture.fromImage(imageUrl));\r\n};\r\n\r\n/**\r\n * Updates the text\r\n *\r\n * @private\r\n */\r\nSprite.prototype.update = function () {\r\n if (this.tint !== null)\r\n this.sprite.tint = this.tint;\r\n\r\n if (this.blendMode !== null)\r\n this.sprite.blendMode = this.blendMode;\r\n\r\n this.sprite.width = this._width;\r\n this.sprite.height = this._height;\r\n};\r\n\r\n","var UIBase = require('./UIBase');\r\n\r\n/**\r\n * A Stage for UIObjects\r\n *\r\n * @class\r\n * @extends PIXI.UI.Container\r\n * @memberof PIXI.UI\r\n * @param width {Number} Width of the Stage\r\n * @param height {Number} Height of the Stage\r\n */\r\nfunction Stage(width, height) {\r\n PIXI.Container.call(this);\r\n this.__width = width;\r\n this.__height = height;\r\n this.minWidth = 0;\r\n this.minHeight = 0;\r\n\r\n this.UIChildren = [];\r\n this.stage = this;\r\n this.interactive = true;\r\n this.hitArea = new PIXI.Rectangle(0, 0, 0, 0);\r\n this.initialized = true;\r\n this.resize(width, height);\r\n}\r\n\r\nStage.prototype = Object.create(PIXI.Container.prototype);\r\nStage.prototype.constructor = Stage;\r\nmodule.exports = Stage;\r\n\r\nStage.prototype.addChild = function (UIObject) {\r\n var argumentLenght = arguments.length;\r\n if (argumentLenght > 1) {\r\n for (var i = 0; i < argumentLenght; i++) {\r\n this.addChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n if (UIObject.parent !== null)\r\n UIObject.parent.removeChild(UIObject);\r\n\r\n UIObject.parent = this;\r\n this.UIChildren.push(UIObject);\r\n PIXI.Container.prototype.addChild.call(this, UIObject.container);\r\n UIObject.updatesettings(true);\r\n }\r\n};\r\n\r\nStage.prototype.removeChild = function (UIObject) {\r\n var argumentLenght = arguments.length;\r\n if (argumentLenght > 1) {\r\n for (var i = 0; i < argumentLenght; i++) {\r\n this.removeChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n PIXI.Container.prototype.removeChild.call(this, UIObject.container);\r\n var index = this.UIChildren.indexOf(UIObject);\r\n if (index != -1) {\r\n this.UIChildren.splice(index, 1);\r\n UIObject.parent = null;\r\n }\r\n\r\n }\r\n};\r\n\r\nStage.prototype.resize = function (width, height) {\r\n if (!isNaN(height)) this.__height = height;\r\n if (!isNaN(width)) this.__width = width;\r\n\r\n if (this.minWidth || this.minHeight) {\r\n var rx = 1,\r\n ry = 1;\r\n\r\n if (width && width < this.minWidth) {\r\n rx = this.minWidth / width;\r\n }\r\n\r\n if (height && height < this.minHeight) {\r\n ry = this.minHeight / height;\r\n }\r\n\r\n if (rx > ry && rx > 1) {\r\n this.scale.set(1 / rx);\r\n this.__height *= rx;\r\n this.__width *= rx;\r\n }\r\n else if (ry > 1) {\r\n this.scale.set(1 / ry);\r\n this.__width *= ry;\r\n this.__height *= ry;\r\n }\r\n else if (this.scale.x !== 1) {\r\n this.scale.set(1);\r\n }\r\n }\r\n\r\n this.hitArea.width = this.__width;\r\n this.hitArea.height = this.__height;\r\n\r\n for (var i = 0; i < this.UIChildren.length; i++)\r\n this.UIChildren[i].updatesettings(true, false);\r\n};\r\n\r\nObject.defineProperties(Stage.prototype, {\r\n _width: {\r\n get: function () {\r\n return this.__width;\r\n },\r\n set: function (val) {\r\n if (!isNaN(val)) {\r\n this.__width = val;\r\n this.resize();\r\n }\r\n }\r\n },\r\n _height: {\r\n get: function () {\r\n return this.__height;\r\n },\r\n set: function (val) {\r\n if (!isNaN(val)) {\r\n this.__height = val;\r\n this.resize();\r\n }\r\n }\r\n }\r\n});","var UIBase = require('./UIBase');\r\n\r\n/**\r\n * An UI text object\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param Text {String} Text content\r\n * @param TextStyle {PIXI.TextStyle} Style used for the Text\r\n */\r\nfunction Text(text, PIXITextStyle) {\r\n this._text = new PIXI.Text(text, PIXITextStyle);\r\n UIBase.call(this, this._text.width, this._text.height);\r\n this.container.addChild(this._text);\r\n\r\n this.baseupdate = function () {\r\n //force original text width unless using anchors\r\n if (this._anchorLeft === null || this._anchorRight === null) {\r\n this.setting.width = this._text.width;\r\n this.setting.widthPct = null;\r\n }\r\n else {\r\n this._text.width = this._width;\r\n }\r\n\r\n //force original text height unless using anchors\r\n if (this._anchorTop === null || this._anchorBottom === null) {\r\n this.setting.height = this._text.height;\r\n this.setting.heightPct = null;\r\n }\r\n else {\r\n this._text.width = this._width;\r\n }\r\n\r\n\r\n UIBase.prototype.baseupdate.call(this);\r\n };\r\n\r\n this.update = function () {\r\n //set tint\r\n if (this.tint !== null)\r\n this._text.tint = this.tint;\r\n\r\n //set blendmode\r\n if (this.blendMode !== null)\r\n this._text.blendMode = this.blendMode;\r\n };\r\n}\r\n\r\nText.prototype = Object.create(UIBase.prototype);\r\nText.prototype.constructor = Text;\r\nmodule.exports = Text;\r\n\r\n\r\nObject.defineProperties(Text.prototype, {\r\n value: {\r\n get: function () {\r\n return this._text.text;\r\n },\r\n set: function (val) {\r\n this._text.text = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n text: {\r\n get: function () {\r\n return this.value;\r\n },\r\n set: function (val) {\r\n this.value = val;\r\n }\r\n }\r\n});","var InputBase = require('./InputBase'),\r\n Container = require('./Container'),\r\n DragEvent = require('./Interaction/DragEvent');\r\n\r\n/**\r\n * An UI text object\r\n *\r\n * @class\r\n * @extends PIXI.UI.InputBase\r\n * @memberof PIXI.UI\r\n * @param options.value {String} Text content\r\n * @param [options.multiLine=false] {Boolean} Multiline input\r\n * @param options.style {PIXI.TextStyle} Style used for the Text\r\n * @param options.background {(PIXI.UI.SliceSprite|PIXI.UI.Sprite)} will be used as background for input\r\n * @param [options.selectedColor='#ffffff'] {String|Array} Fill color of selected text\r\n * @param [options.selectedBackgroundColor='#318cfa'] {String} BackgroundColor of selected text\r\n * @param [options.width=150] {Number} width of input\r\n * @param [options.height=20] {Number} height of input\r\n * @param [options.padding=3] {Number} input padding\r\n * @param [options.paddingTop=0] {Number} input padding\r\n * @param [options.paddingBottom=0] {Number} input padding\r\n * @param [options.paddingLeft=0] {Number} input padding\r\n * @param [options.paddingRight=0] {Number} input padding\r\n * @param [options.tabIndex=0] {Number} input tab index\r\n * @param [options.tabGroup=0] {Number|String} input tab group\r\n * @param [options.maxLength=0] {Number} 0 = unlimited\r\n * @param [options.caretWidth=1] {Number} width of the caret\r\n * @param [options.lineHeight=0] {Number} 0 = inherit from text\r\n */\r\nfunction TextInput(options) {\r\n //create temp input (for mobile keyboard)\r\n if (typeof _pui_tempInput === \"undefined\") {\r\n _pui_tempInput = document.createElement(\"INPUT\");\r\n _pui_tempInput.setAttribute(\"type\", \"text\");\r\n _pui_tempInput.setAttribute(\"id\", \"_pui_tempInput\");\r\n _pui_tempInput.setAttribute(\"style\", \"position:fixed; left:-10px; top:-10px; width:0px; height: 0px;\");\r\n document.body.appendChild(_pui_tempInput);\r\n }\r\n var width = typeof options.width !== 'undefined' ? options.width : options.background ? options.background.width : 150;\r\n var height = typeof options.height !== 'undefined' ? options.height : options.background ? options.background.height : 150;\r\n InputBase.call(this, width, height, options.tabIndex || 0, options.tabGroup || 0);\r\n\r\n this._dirtyText = true;\r\n this.maxLength = options.maxLength || 0;\r\n this._value = this._lastValue = options.value || \"\";\r\n\r\n if (this.maxLength) this._value = this._value.slice(0, this.maxLength);\r\n\r\n var self = this;\r\n var chars = [];\r\n var multiLine = options.multiLine !== undefined ? options.multiLine : false;\r\n var color = options.style && options.style.fill ? options.style.fill : \"#000000\";\r\n var selectedColor = options.selectedColor || \"#ffffff\";\r\n var selectedBackgroundColor = options.selectedBackgroundColor || \"#318cfa\";\r\n var tempText = new PIXI.Text(\"1\", options.style);\r\n var textHeight = tempText.height;\r\n var lineHeight = options.lineHeight || textHeight || self._height;\r\n tempText.destroy();\r\n\r\n\r\n //set cursor\r\n //this.container.cursor = \"text\";\r\n\r\n //selection graphics\r\n var selection = self.selection = new PIXI.Graphics();\r\n selection.visible = false;\r\n selection._startIndex = 0;\r\n selection._endIndex = 0;\r\n\r\n //caret graphics\r\n var caret = self.caret = new PIXI.Graphics();\r\n caret.visible = false;\r\n caret._index = 0;\r\n caret.lineStyle(options.caretWidth || 1, \"#ffffff\", 1);\r\n caret.moveTo(0, 0);\r\n caret.lineTo(0, textHeight);\r\n\r\n\r\n //insert bg\r\n if (options.background) {\r\n this.background = options.background;\r\n this.background.width = \"100%\";\r\n this.background.height = \"100%\";\r\n this.addChild(this.background);\r\n }\r\n\r\n //var padding\r\n var paddingLeft = options.paddingLeft !== undefined ? options.paddingLeft : options.padding !== undefined ? options.padding : 3;\r\n var paddingRight = options.paddingRight !== undefined ? options.paddingRight : options.padding !== undefined ? options.padding : 3;\r\n var paddingBottom = options.paddingBottom !== undefined ? options.paddingBottom : options.padding !== undefined ? options.padding : 3;\r\n var paddingTop = options.paddingTop !== undefined ? options.paddingTop : options.padding !== undefined ? options.padding : 3;\r\n\r\n //insert text container (scrolling container)\r\n var textContainer = this.textContainer = new PIXI.UI.ScrollingContainer({\r\n scrollX: !multiLine,\r\n scrollY: multiLine,\r\n dragScrolling: multiLine,\r\n expandMask: 2,\r\n softness: 0.2,\r\n overflowX: 40,\r\n overflowY: 40\r\n });\r\n textContainer.anchorTop = paddingTop;\r\n textContainer.anchorBottom = paddingBottom;\r\n textContainer.anchorLeft = paddingLeft;\r\n textContainer.anchorRight = paddingRight;\r\n this.addChild(textContainer);\r\n\r\n if (multiLine) {\r\n this._useNext = this._usePrev = false;\r\n textContainer.dragRestrictAxis = \"y\";\r\n textContainer.dragThreshold = 5;\r\n this.dragRestrictAxis = \"x\";\r\n this.dragThreshold = 5;\r\n\r\n }\r\n\r\n\r\n var innerContainer = textContainer.innerContainer;\r\n innerContainer.cacheAsBitmap = true;\r\n //textContainer.container.addChild(innerContainer);\r\n\r\n\r\n this.update = function () {\r\n if (this._width != this._lastWidth) {\r\n this._lastWidth = this._width;\r\n if (multiLine) {\r\n updateText();\r\n if (caret.visible) self.setCaretIndex(caret._index);\r\n if (hasSelection) updateSelectionGraphics();\r\n }\r\n\r\n }\r\n\r\n //update text \r\n if (this._dirtyText) {\r\n updateText();\r\n this._dirtyText = false;\r\n }\r\n };\r\n\r\n //selection Vars\r\n var caretInterval, //interval for flash\r\n si, //startIndex\r\n sie, //startIndexEnd\r\n ei, //endIndex\r\n eie, //endIndexEnd\r\n sp = new PIXI.Point(), //startposition\r\n ds = new PIXI.Point(), //dragStart\r\n de = new PIXI.Point(), //dragend\r\n rdd = false, //Reverse drag direction\r\n vrdd = false, //vertical Reverse drag direction\r\n selectionStart = -1,\r\n selectionEnd = -1,\r\n hasSelection = false,\r\n t = performance.now(), //timestamp\r\n cc = 0, //click counter\r\n textLengthPX = 0,\r\n textHeightPX = 0,\r\n lineIndexMax = 0,\r\n ctrlDown = false,\r\n shiftDown = false,\r\n shiftKey = 16,\r\n ctrlKey = 17,\r\n cmdKey = 91;\r\n\r\n\r\n\r\n var updateText = function () {\r\n textLengthPX = 0;\r\n textHeightPX = 0;\r\n lineIndexMax = 0;\r\n\r\n var lineIndex = 0,\r\n length = self._value.length,\r\n x = 0,\r\n y = (lineHeight - textHeight) * 0.5,\r\n i = 0;\r\n\r\n //destroy excess chars\r\n if (chars.length > length) {\r\n for (i = chars.length - 1; i >= length; i--) {\r\n innerContainer.removeChild(chars[i]);\r\n chars[i].destroy();\r\n }\r\n chars.splice(length, chars.length - length);\r\n }\r\n\r\n //update and add chars\r\n var whitespace = false;\r\n var newline = false;\r\n var wordIndex = 0;\r\n var lastWordIndex = -1;\r\n var wrap = false;\r\n for (i = 0; i < self._value.length; i++) {\r\n if (whitespace || newline) {\r\n lastWordIndex = i;\r\n wordIndex++;\r\n }\r\n\r\n var c = self._value[i];\r\n whitespace = c === \" \";\r\n newline = c === \"\\n\";\r\n\r\n\r\n if (newline) { //newline \"hack\". webgl render errors if \\n is passed to text\r\n c = \"\";\r\n }\r\n\r\n\r\n\r\n var charText = chars[i];\r\n if (!charText) {\r\n charText = new PIXI.Text(c, options.style);\r\n innerContainer.addChild(charText);\r\n chars.push(charText);\r\n }\r\n else {\r\n charText.text = c;\r\n }\r\n\r\n charText.scale.x = newline ? 0 : 1;\r\n charText.wrapped = wrap;\r\n wrap = false;\r\n\r\n if (newline || (multiLine && x + charText.width >= self._width - paddingLeft - paddingRight)) {\r\n lineIndex++;\r\n x = 0;\r\n y += lineHeight;\r\n\r\n if (lastWordIndex != -1 && !newline) {\r\n i = lastWordIndex - 1;\r\n lastWordIndex = -1;\r\n wrap = true;\r\n continue;\r\n }\r\n }\r\n\r\n\r\n charText.lineIndex = lineIndex;\r\n charText.x = x;\r\n charText.y = y;\r\n charText.wordIndex = whitespace || newline ? -1 : wordIndex;\r\n x += charText.width;\r\n\r\n\r\n if (x > textLengthPX)\r\n textLengthPX = x;\r\n if (y > textHeightPX)\r\n textHeightPX = y;\r\n }\r\n\r\n lineIndexMax = lineIndex;\r\n\r\n //put caret on top\r\n innerContainer.addChild(caret);\r\n\r\n //recache\r\n if (innerContainer.cacheAsBitmap) {\r\n innerContainer.cacheAsBitmap = false;\r\n innerContainer.cacheAsBitmap = true;\r\n }\r\n\r\n textContainer.update();\r\n\r\n };\r\n\r\n var updateClosestIndex = function (point, start) {\r\n var currentDistX = 99999;\r\n var currentClosest;\r\n var currentIndex = -1;\r\n var atEnd = false;\r\n\r\n var closestLineIndex = 0;\r\n if (lineIndexMax > 0)\r\n closestLineIndex = Math.max(0, Math.min(lineIndexMax, Math.floor(point.y / lineHeight)));\r\n\r\n\r\n\r\n\r\n\r\n for (var i = 0; i < chars.length; i++) {\r\n var char = chars[i];\r\n if (char.lineIndex != closestLineIndex) continue;\r\n\r\n var distX = Math.abs(point.x - (char.x + (char.width * 0.5)));\r\n if (distX < currentDistX) {\r\n currentDistX = distX;\r\n currentClosest = char;\r\n currentIndex = i;\r\n atEnd = point.x > char.x + (char.width * 0.5);\r\n }\r\n }\r\n\r\n\r\n if (start) {\r\n si = currentIndex;\r\n sie = atEnd;\r\n }\r\n else {\r\n ei = currentIndex;\r\n eie = atEnd;\r\n }\r\n };\r\n\r\n var deleteSelection = function () {\r\n if (hasSelection) {\r\n self.value = self.value.slice(0, selectionStart) + self.value.slice(selectionEnd + 1);\r\n self.setCaretIndex(selectionStart);\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n var updateSelectionColors = function () {\r\n //Color charecters\r\n for (var i = 0; i < chars.length; i++) {\r\n if (i >= selectionStart && i <= selectionEnd)\r\n chars[i].style.fill = selectedColor;\r\n else\r\n chars[i].style.fill = color;\r\n }\r\n };\r\n\r\n var _sp = new PIXI.Point();\r\n var scrollToPosition = function (pos) {\r\n _sp.copy(pos);\r\n if (multiLine && _sp.y >= lineHeight)\r\n _sp.y += lineHeight;\r\n textContainer.focusPosition(_sp);\r\n };\r\n\r\n var resetScrollPosition = function () {\r\n _sp.set(0, 0);\r\n textContainer.focusPosition(_sp);\r\n };\r\n\r\n //caret\r\n var hideCaret = function () {\r\n caret.visible = false;\r\n clearInterval(caretInterval);\r\n };\r\n\r\n var showCaret = function () {\r\n self.clearSelection();\r\n clearInterval(caretInterval);\r\n caret.alpha = 1;\r\n caret.visible = true;\r\n caretInterval = setInterval(function () {\r\n caret.alpha = caret.alpha === 0 ? 1 : 0;\r\n }, 500);\r\n\r\n };\r\n\r\n var insertTextAtCaret = function (c) {\r\n if (hasSelection)\r\n deleteSelection();\r\n if (!self.maxLength || chars.length < self.maxLength) {\r\n\r\n if (caret._atEnd) {\r\n self.valueEvent += c;\r\n self.setCaretIndex(chars.length);\r\n }\r\n else {\r\n var index = Math.min(chars.length - 1, caret._index);\r\n self.valueEvent = self.value.slice(0, index) + c + self.value.slice(index);\r\n self.setCaretIndex(index + c.length);\r\n }\r\n }\r\n };\r\n\r\n //events\r\n var keyDownEvent = function (e) {\r\n\r\n\r\n\r\n if (e.which === ctrlKey || e.which === cmdKey) ctrlDown = true;\r\n if (e.which === shiftKey) shiftDown = true;\r\n\r\n self.emit(\"keydown\", e);\r\n\r\n if (e.defaultPrevented)\r\n return;\r\n\r\n if (e.which === 13) { //enter\r\n insertTextAtCaret('\\n');\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (ctrlDown) {\r\n\r\n //ctrl + ?\r\n if (e.which === 65) { //ctrl + a\r\n self.select();\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (e.which === 90) { //ctrl + z (undo)\r\n if (self.value != self._lastValue)\r\n self.valueEvent = self._lastValue;\r\n self.setCaretIndex(self._lastValue.length + 1);\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n }\r\n if (e.which === 8) {\r\n //backspace\r\n if (!deleteSelection()) {\r\n if (caret._index > 0 || (chars.length === 1 && caret._atEnd)) {\r\n if (caret._atEnd) {\r\n self.valueEvent = self.value.slice(0, chars.length - 1);\r\n self.setCaretIndex(caret._index);\r\n }\r\n else {\r\n self.valueEvent = self.value.slice(0, caret._index - 1) + self.value.slice(caret._index);\r\n self.setCaretIndex(caret._index - 1);\r\n }\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (e.which === 46) {\r\n //delete\r\n if (!deleteSelection()) {\r\n if (!caret._atEnd) {\r\n self.valueEvent = self.value.slice(0, caret._index) + self.value.slice(caret._index + 1);\r\n self.setCaretIndex(caret._index);\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (e.which === 37 || e.which === 39) {\r\n rdd = e.which === 37;\r\n if (shiftDown) {\r\n if (hasSelection) {\r\n var caretAtStart = selectionStart === caret._index;\r\n if (caretAtStart) {\r\n if (selectionStart === selectionEnd && rdd === caret._forward) {\r\n self.setCaretIndex(caret._forward ? caret._index : caret._index + 1);\r\n }\r\n else {\r\n var startindex = rdd ? caret._index - 1 : caret._index + 1;\r\n self.selectRange(startindex, selectionEnd);\r\n caret._index = Math.min(chars.length - 1, Math.max(0, startindex));\r\n }\r\n }\r\n else {\r\n var endIndex = rdd ? caret._index - 1 : caret._index + 1;\r\n self.selectRange(selectionStart, endIndex);\r\n caret._index = Math.min(chars.length - 1, Math.max(0, endIndex));\r\n }\r\n }\r\n else {\r\n var _i = caret._atEnd ? caret._index + 1 : caret._index;\r\n var selectIndex = rdd ? _i - 1 : _i;\r\n self.selectRange(selectIndex, selectIndex);\r\n caret._index = selectIndex;\r\n caret._forward = !rdd;\r\n }\r\n }\r\n else {\r\n //Navigation\r\n if (hasSelection)\r\n self.setCaretIndex(rdd ? selectionStart : selectionEnd + 1);\r\n else\r\n self.setCaretIndex(caret._index + (rdd ? caret._atEnd ? 0 : -1 : 1));\r\n }\r\n e.preventDefault();\r\n return;\r\n\r\n }\r\n else if (multiLine && (e.which === 38 || e.which === 40)) {\r\n vrdd = e.which === 38;\r\n if (shiftDown) {\r\n if (hasSelection) {\r\n de.y = Math.max(0, Math.min(textHeightPX, de.y + (vrdd ? -lineHeight : lineHeight)));\r\n updateClosestIndex(de, false);\r\n //console.log(si, ei);\r\n if (Math.abs(si - ei) <= 1) {\r\n //console.log(si, ei);\r\n self.setCaretIndex(sie ? si + 1 : si);\r\n } else {\r\n caret._index = (eie ? ei + 1 : ei) + (caret._down ? -1 : 0);\r\n self.selectRange(caret._down ? si : si - 1, caret._index);\r\n }\r\n\r\n }\r\n else {\r\n si = caret._index;\r\n sie = false;\r\n de.copy(caret);\r\n de.y = Math.max(0, Math.min(textHeightPX, de.y + (vrdd ? -lineHeight : lineHeight)));\r\n updateClosestIndex(de, false);\r\n caret._index = (eie ? ei + 1 : ei) - (vrdd ? 0 : 1);\r\n self.selectRange(vrdd ? si - 1 : si, caret._index);\r\n caret._down = !vrdd;\r\n }\r\n }\r\n else {\r\n if (hasSelection) {\r\n self.setCaretIndex(vrdd ? selectionStart : selectionEnd + 1);\r\n }\r\n else {\r\n ds.copy(caret);\r\n ds.y += vrdd ? -lineHeight : lineHeight;\r\n ds.x += 1;\r\n updateClosestIndex(ds, true);\r\n self.setCaretIndex(sie ? si + 1 : si);\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n };\r\n\r\n var keyUpEvent = function (e) {\r\n if (e.which == ctrlKey || e.which == cmdKey) ctrlDown = false;\r\n if (e.which === shiftKey) shiftDown = false;\r\n\r\n self.emit(\"keyup\", e);\r\n\r\n if (e.defaultPrevented)\r\n return;\r\n };\r\n\r\n var copyEvent = function (e) {\r\n self.emit(\"copy\", e);\r\n\r\n if (e.defaultPrevented)\r\n return;\r\n\r\n if (hasSelection) {\r\n var clipboardData = e.clipboardData || window.clipboardData;\r\n clipboardData.setData('Text', self.value.slice(selectionStart, selectionEnd + 1));\r\n }\r\n e.preventDefault();\r\n };\r\n\r\n var cutEvent = function (e) {\r\n self.emit(\"cut\", e);\r\n\r\n if (e.defaultPrevented)\r\n return;\r\n\r\n if (hasSelection) {\r\n copyEvent(e);\r\n deleteSelection();\r\n }\r\n e.preventDefault();\r\n };\r\n\r\n var pasteEvent = function (e) {\r\n self.emit(\"paste\", e);\r\n\r\n if (e.defaultPrevented)\r\n return;\r\n\r\n var clipboardData = e.clipboardData || window.clipboardData;\r\n insertTextAtCaret(clipboardData.getData('Text'));\r\n e.preventDefault();\r\n };\r\n\r\n var inputEvent = function (e) {\r\n insertTextAtCaret(e.data);\r\n e.preventDefault();\r\n };\r\n\r\n var inputBlurEvent = function (e) {\r\n self.blur();\r\n };\r\n\r\n var event = new DragEvent(this);\r\n\r\n event.onPress = function (e, mouseDown) {\r\n\r\n if (mouseDown) {\r\n var timeSinceLast = performance.now() - t;\r\n t = performance.now();\r\n if (timeSinceLast < 250) {\r\n cc++;\r\n if (cc > 1)\r\n this.select();\r\n else {\r\n innerContainer.toLocal(sp, undefined, ds, true);\r\n updateClosestIndex(ds, true);\r\n var c = chars[si];\r\n if (c) {\r\n if (c.wordIndex != -1)\r\n this.selectWord(c.wordIndex);\r\n else\r\n this.selectRange(si, si);\r\n }\r\n }\r\n }\r\n else {\r\n cc = 0;\r\n sp.copy(e.data.global);\r\n innerContainer.toLocal(sp, undefined, ds, true);\r\n if (chars.length) {\r\n updateClosestIndex(ds, true);\r\n self.setCaretIndex(sie ? si + 1 : si);\r\n }\r\n }\r\n }\r\n e.data.originalEvent.preventDefault();\r\n };\r\n\r\n event.onDragMove = function (e, offset) {\r\n if (!chars.length || !this._focused) return;\r\n\r\n de.x = sp.x + offset.x;\r\n de.y = sp.y + offset.y;\r\n innerContainer.toLocal(de, undefined, de, true);\r\n updateClosestIndex(de, false);\r\n\r\n if (si < ei) {\r\n self.selectRange(sie ? si + 1 : si, eie ? ei : ei - 1);\r\n caret._index = eie ? ei : ei - 1;\r\n }\r\n else if (si > ei) {\r\n self.selectRange(ei, sie ? si : si - 1);\r\n caret._index = ei;\r\n }\r\n else {\r\n if (sie === eie) {\r\n self.setCaretIndex(sie ? si + 1 : si);\r\n }\r\n else {\r\n self.selectRange(si, ei);\r\n caret._index = ei;\r\n }\r\n }\r\n\r\n caret._forward = si <= ei;\r\n caret._down = offset.y > 0;\r\n\r\n scrollToPosition(de);\r\n };\r\n\r\n\r\n\r\n\r\n //public methods\r\n this.focus = function () {\r\n if (!this._focused) {\r\n InputBase.prototype.focus.call(this);\r\n\r\n var l = this.container.worldTransform.tx + \"px\";\r\n var t = this.container.worldTransform.ty + \"px\";\r\n var h = this.container.height + \"px\";\r\n var w = this.container.width + \"px\";\r\n\r\n _pui_tempInput.setAttribute(\"style\", \"position:fixed; left:\" + l + \"; top:\" + t + \"; height:\" + h + \"; width:\" + w + \";\");\r\n _pui_tempInput.value = \"\";\r\n _pui_tempInput.focus();\r\n _pui_tempInput.setAttribute(\"style\", \"position:fixed; left:-10px; top:-10px; width:0px; height: 0px;\");\r\n\r\n innerContainer.cacheAsBitmap = false;\r\n _pui_tempInput.addEventListener(\"blur\", inputBlurEvent, false);\r\n document.addEventListener(\"keydown\", keyDownEvent, false);\r\n document.addEventListener(\"keyup\", keyUpEvent, false);\r\n document.addEventListener('paste', pasteEvent, false);\r\n document.addEventListener('copy', copyEvent, false);\r\n document.addEventListener('cut', cutEvent, false);\r\n _pui_tempInput.addEventListener('textInput', inputEvent, false);\r\n\r\n setTimeout(function () {\r\n if (!caret.visible && !self.selection.visible && !multiLine)\r\n self.setCaretIndex(chars.length);\r\n }, 0);\r\n\r\n }\r\n\r\n };\r\n\r\n this.blur = function () {\r\n if (this._focused) {\r\n InputBase.prototype.blur.call(this);\r\n ctrlDown = false;\r\n shiftDown = false;\r\n hideCaret();\r\n this.clearSelection();\r\n if (chars.length > 1) innerContainer.cacheAsBitmap = true;\r\n _pui_tempInput.removeEventListener(\"blur\", inputBlurEvent);\r\n document.removeEventListener(\"keydown\", keyDownEvent);\r\n document.removeEventListener(\"keyup\", keyUpEvent);\r\n document.removeEventListener('paste', pasteEvent);\r\n document.removeEventListener('copy', copyEvent);\r\n document.removeEventListener('cut', cutEvent);\r\n _pui_tempInput.removeEventListener('textInput', inputEvent);\r\n _pui_tempInput.blur();\r\n\r\n }\r\n\r\n if (!multiLine)\r\n resetScrollPosition();\r\n };\r\n\r\n this.setCaretIndex = function (index) {\r\n caret._atEnd = index >= chars.length;\r\n caret._index = Math.max(0, Math.min(chars.length - 1, index));\r\n\r\n if (chars.length && index > 0) {\r\n\r\n var i = Math.max(0, Math.min(index, chars.length - 1));\r\n var c = chars[i];\r\n\r\n if (c && c.wrapped) {\r\n caret.x = c.x;\r\n caret.y = c.y;\r\n }\r\n else {\r\n i = Math.max(0, Math.min(index - 1, chars.length - 1));\r\n c = chars[i];\r\n caret.x = chars[i].x + chars[i].width;\r\n caret.y = (chars[i].lineIndex * lineHeight) + (lineHeight - textHeight) * 0.5;\r\n }\r\n }\r\n else {\r\n caret.x = 0;\r\n caret.y = (lineHeight - textHeight) * 0.5;\r\n }\r\n\r\n scrollToPosition(caret);\r\n showCaret();\r\n\r\n };\r\n\r\n this.select = function () {\r\n this.selectRange(0, chars.length - 1);\r\n };\r\n\r\n this.selectWord = function (wordIndex) {\r\n var startIndex = chars.length;\r\n var endIndex = 0;\r\n for (var i = 0; i < chars.length; i++) {\r\n if (chars[i].wordIndex !== wordIndex) continue;\r\n if (i < startIndex)\r\n startIndex = i;\r\n if (i > endIndex)\r\n endIndex = i;\r\n }\r\n\r\n this.selectRange(startIndex, endIndex);\r\n };\r\n\r\n var drawSelectionRect = function (x, y, w, h) {\r\n self.selection.beginFill(\"0x\" + selectedBackgroundColor.slice(1), 1);\r\n self.selection.moveTo(x, y);\r\n self.selection.lineTo(x + w, y);\r\n self.selection.lineTo(x + w, y + h);\r\n self.selection.lineTo(x, y + h);\r\n self.selection.endFill();\r\n };\r\n\r\n var updateSelectionGraphics = function () {\r\n var c1 = chars[selectionStart];\r\n if (c1 !== undefined) {\r\n var cx = c1.x,\r\n cy = c1.y,\r\n w = 0,\r\n h = textHeight,\r\n cl = c1.lineIndex;\r\n\r\n self.selection.clear();\r\n for (var i = selectionStart; i <= selectionEnd; i++) {\r\n var c = chars[i];\r\n if (c.lineIndex != cl) {\r\n drawSelectionRect(cx, cy, w, h);\r\n cx = c.x;\r\n cy = c.y;\r\n cl = c.lineIndex;\r\n w = 0;\r\n }\r\n w += c.width;\r\n }\r\n drawSelectionRect(cx, cy, w, h);\r\n innerContainer.addChildAt(self.selection, 0);\r\n }\r\n };\r\n\r\n this.selectRange = function (startIndex, endIndex) {\r\n if (startIndex > -1 && endIndex > -1) {\r\n var start = Math.min(startIndex, endIndex, chars.length - 1);\r\n var end = Math.min(Math.max(startIndex, endIndex), chars.length - 1);\r\n if (start != selectionStart || end != selectionEnd) {\r\n hasSelection = true;\r\n this.selection.visible = true;\r\n selectionStart = start;\r\n selectionEnd = end;\r\n hideCaret();\r\n updateSelectionGraphics();\r\n updateSelectionColors();\r\n }\r\n this.focus();\r\n }\r\n else {\r\n self.clearSelection();\r\n }\r\n };\r\n\r\n this.clearSelection = function () {\r\n if (hasSelection) {\r\n //remove color\r\n hasSelection = false;\r\n this.selection.visible = false;\r\n selectionStart = -1;\r\n selectionEnd = -1;\r\n updateSelectionColors();\r\n }\r\n };\r\n}\r\n\r\nTextInput.prototype = Object.create(InputBase.prototype);\r\nTextInput.prototype.constructor = TextInput;\r\nmodule.exports = TextInput;\r\n\r\nObject.defineProperties(TextInput.prototype, {\r\n valueEvent: {\r\n get: function () {\r\n return this._value;\r\n },\r\n set: function (val) {\r\n if (this.maxLength)\r\n val = val.slice(0, this.maxLength);\r\n\r\n if (this._value != val) {\r\n this.value = val;\r\n this.emit(\"change\");\r\n }\r\n }\r\n },\r\n value: {\r\n get: function () {\r\n return this._value;\r\n },\r\n set: function (val) {\r\n if (this.maxLength)\r\n val = val.slice(0, this.maxLength);\r\n\r\n if (this._value != val) {\r\n this._lastValue = this._value;\r\n this._value = val;\r\n this._dirtyText = true;\r\n this.update();\r\n\r\n }\r\n }\r\n },\r\n text: {\r\n get: function () {\r\n return this.value;\r\n },\r\n set: function (val) {\r\n this.value = val;\r\n }\r\n }\r\n});\r\n\r\n\r\n/*\r\n * Features:\r\n * multiLine, shift selection, Mouse Selection, Cut, Copy, Paste, Delete, Backspace, Arrow navigation, tabIndex\r\n * \r\n * Methods:\r\n * blur()\r\n * focus()\r\n * select() - selects all text\r\n * selectRange(startIndex, endIndex)\r\n * clearSelection() \r\n * setCaretIndex(index) moves caret to index\r\n * \r\n * \r\n * Events:\r\n * \"change\"\r\n * \"blur\"\r\n * \"blur\"\r\n * \"focus\"\r\n * \"focusChanged\" param: [bool]focus\r\n * \"keyup\" param: Event\r\n * \"keydown\" param: Event\r\n * \"copy\" param: Event\r\n * \"paste\" param: Event\r\n * \"cut\" param: Event\r\n * \"keyup\" param: Event\r\n */","var Tween = require('./Tween');\r\n\r\nfunction Ticker(autoStart) {\r\n PIXI.utils.EventEmitter.call(this);\r\n this._disabled = true;\r\n this._now = 0;\r\n\r\n this.DeltaTime = 0;\r\n this.Time = performance.now();\r\n this.Ms = 0;\r\n if (autoStart) {\r\n this.disabled = false;\r\n }\r\n Ticker.shared = this;\r\n}\r\n\r\nTicker.prototype = Object.create(PIXI.utils.EventEmitter.prototype);\r\nTicker.prototype.constructor = Ticker;\r\n\r\nmodule.exports = Ticker;\r\n\r\n\r\n\r\nObject.defineProperties(Ticker.prototype, {\r\n disabled: {\r\n get: function () {\r\n return this._disabled;\r\n },\r\n set: function (val) {\r\n if (!this._disabled) {\r\n this._disabled = true;\r\n }\r\n else {\r\n this._disabled = false;\r\n Ticker.shared = this;\r\n this.update(performance.now(), true);\r\n }\r\n }\r\n },\r\n});\r\n\r\n\r\n\r\n/**\r\n * Updates the text\r\n *\r\n * @private\r\n */\r\nTicker.prototype.update = function (time) {\r\n Ticker.shared._now = time;\r\n Ticker.shared.Ms = Ticker.shared._now - Ticker.shared.Time;\r\n Ticker.shared.Time = Ticker.shared._now;\r\n Ticker.shared.DeltaTime = Ticker.shared.Ms * 0.001;\r\n Ticker.shared.emit(\"update\", Ticker.shared.DeltaTime);\r\n Tween._update(Ticker.shared.DeltaTime);\r\n if (!Ticker.shared._disabled)\r\n requestAnimationFrame(Ticker.shared.update);\r\n};\r\n\r\n\r\n\r\n\r\nTicker.on = function (event, fn, context) {\r\n Ticker.prototype.on.apply(this.shared, arguments);\r\n};\r\n\r\nTicker.once = function (event, fn, context) {\r\n Ticker.prototype.once.apply(this.shared, arguments);\r\n};\r\n\r\nTicker.removeListener = function (event, fn) {\r\n Ticker.prototype.removeListener.apply(this.shared, arguments);\r\n};\r\n\r\n\r\nTicker.shared = new Ticker(true);","var UIBase = require('./UIBase');\r\n\r\n/**\r\n * An UI sprite object\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @memberof PIXI.UI\r\n * @param Texture {PIXI.Texture} The texture for the sprite\r\n * @param [Width=Texture.width] {number} Width of tilingsprite\r\n * @param [Height=Texture.height] {number} Height of tiling sprite\r\n */\r\nfunction TilingSprite(t, width, height) {\r\n this.sprite = new PIXI.extras.TilingSprite(t);\r\n UIBase.call(this, width || this.sprite.width, height || this.sprite.height);\r\n this.container.addChild(this.sprite);\r\n}\r\n\r\nTilingSprite.prototype = Object.create(UIBase.prototype);\r\nTilingSprite.prototype.constructor = TilingSprite;\r\nmodule.exports = TilingSprite;\r\n\r\n/**\r\n * Updates the text\r\n *\r\n * @private\r\n */\r\nTilingSprite.prototype.update = function () {\r\n if (this.tint !== null)\r\n this.sprite.tint = this.tint;\r\n\r\n if (this.blendMode !== null)\r\n this.sprite.blendMode = this.blendMode;\r\n\r\n this.sprite.width = this._width;\r\n this.sprite.height = this._height;\r\n};\r\n\r\nObject.defineProperties(TilingSprite.prototype, {\r\n tilePosition: {\r\n get: function () {\r\n return this.sprite.tilePosition;\r\n },\r\n set: function (val) {\r\n this.sprite.tilePosition = val;\r\n }\r\n },\r\n tileScale: {\r\n get: function () {\r\n return this.sprite.tileScale;\r\n },\r\n set: function (val) {\r\n this.sprite.tileScale = val;\r\n }\r\n }\r\n});","var Helpers = require('./Helpers');\r\nvar Ease = require('./Ease/Ease');\r\nvar _tweenItemCache = [];\r\nvar _callbackItemCache = [];\r\nvar _tweenObjects = {};\r\nvar _activeTweenObjects = {};\r\nvar _currentId = 1;\r\n\r\nvar TweenObject = function (object) {\r\n this.object = object;\r\n this.tweens = {};\r\n this.active = false;\r\n};\r\n\r\nvar CallbackItem = function () {\r\n this._ready = false;\r\n this.obj = null;\r\n this.parent = null;\r\n this.key = \"\";\r\n this.time = 0;\r\n this.callback = null;\r\n this.currentTime = 0;\r\n};\r\n\r\nCallbackItem.prototype.remove = function () {\r\n this._ready = true;\r\n delete this.parent.tweens[this.key];\r\n if (!Object.keys(this.parent.tweens).length) {\r\n this.parent.active = false;\r\n delete _activeTweenObjects[this.obj._tweenObjectId];\r\n }\r\n};\r\n\r\nCallbackItem.prototype.set = function (obj, callback, time) {\r\n this.obj = obj.object;\r\n\r\n if (!this.obj._currentCallbackID)\r\n this.obj._currentCallbackID = 1;\r\n else\r\n this.obj._currentCallbackID++;\r\n\r\n this.time = time;\r\n this.parent = obj;\r\n this.callback = callback;\r\n this._ready = false;\r\n this.key = \"cb_\" + this.obj._currentCallbackID;\r\n this.currentTime = 0;\r\n if (!this.parent.active) {\r\n this.parent.active = true;\r\n _activeTweenObjects[this.obj._tweenObjectId] = this.parent;\r\n }\r\n};\r\n\r\nCallbackItem.prototype.update = function (delta) {\r\n this.currentTime += delta;\r\n if (this.currentTime >= this.time) {\r\n this.remove();\r\n this.callback();\r\n }\r\n};\r\n\r\n\r\n\r\nvar TweenItem = function () {\r\n this._ready = false;\r\n this.parent = null;\r\n this.obj = null;\r\n this.key = \"\";\r\n this.from = 0;\r\n this.to = 0;\r\n this.time = 0;\r\n this.ease = 0;\r\n this.currentTime = 0;\r\n this.t = 0;\r\n this.isColor = false;\r\n};\r\n\r\nTweenItem.prototype.remove = function () {\r\n this._ready = true;\r\n delete this.parent.tweens[this.key];\r\n if (!Object.keys(this.parent.tweens).length) {\r\n this.parent.active = false;\r\n delete _activeTweenObjects[this.obj._tweenObjectId];\r\n }\r\n};\r\n\r\nTweenItem.prototype.set = function (obj, key, from, to, time, ease) {\r\n this.isColor = isNaN(from) && from[0] == \"#\" || isNaN(to) && to[0] == \"#\";\r\n this.parent = obj;\r\n this.obj = obj.object;\r\n this.key = key;\r\n this.surfix = getSurfix(to);\r\n\r\n if (this.isColor) {\r\n this.to = Helpers.hexToRgb(to);\r\n this.from = Helpers.hexToRgb(from);\r\n this.currentColor = { r: this.from.r, g: this.from.g, b: this.from.b };\r\n }\r\n else {\r\n this.to = getToValue(to);\r\n this.from = getFromValue(from, to, this.obj, key);\r\n }\r\n\r\n this.time = time;\r\n this.currentTime = 0;\r\n this.ease = ease;\r\n this._ready = false;\r\n\r\n if (!this.parent.active) {\r\n this.parent.active = true;\r\n _activeTweenObjects[this.obj._tweenObjectId] = this.parent;\r\n }\r\n\r\n};\r\n\r\nTweenItem.prototype.update = function (delta) {\r\n this.currentTime += delta;\r\n this.t = Math.min(this.currentTime, this.time) / this.time;\r\n if (this.ease)\r\n this.t = this.ease.getPosition(this.t);\r\n\r\n if (this.isColor) {\r\n this.currentColor.r = Math.round(Helpers.Lerp(this.from.r, this.to.r, this.t));\r\n this.currentColor.g = Math.round(Helpers.Lerp(this.from.g, this.to.g, this.t));\r\n this.currentColor.b = Math.round(Helpers.Lerp(this.from.b, this.to.b, this.t));\r\n this.obj[this.key] = Helpers.rgbToNumber(this.currentColor.r, this.currentColor.g, this.currentColor.b);\r\n }\r\n else {\r\n var val = Helpers.Lerp(this.from, this.to, this.t);\r\n this.obj[this.key] = this.surfix ? val + this.surfix : val;\r\n }\r\n\r\n \r\n\r\n if (this.currentTime >= this.time) {\r\n this.remove();\r\n }\r\n};\r\n\r\n\r\nvar widthKeys = [\"width\", \"minWidth\", \"maxWidth\", \"anchorLeft\", \"anchorRight\", \"left\", \"right\", \"x\"];\r\nvar heightKeys = [\"height\", \"minHeight\", \"maxHeight\", \"anchorTop\", \"anchorBottom\", \"top\", \"bottom\", \"y\"];\r\n\r\n\r\nfunction getFromValue(from, to, obj, key) {\r\n //both number\r\n if (!isNaN(from) && !isNaN(to))\r\n return from;\r\n\r\n //both percentage\r\n if (isNaN(from) && isNaN(to) && from.indexOf('%') !== -1 && to.indexOf('%') !== -1)\r\n return parseFloat(from.replace('%', ''));\r\n\r\n //convert from to px\r\n if (isNaN(from) && !isNaN(to) && from.indexOf('%') !== -1) {\r\n if (widthKeys.indexOf(key) !== -1)\r\n return obj.parent._width * (parseFloat(from.replace('%', '')) * 0.01);\r\n else if (heightKeys.indexOf(key) !== -1)\r\n return obj.parent._height * (parseFloat(from.replace('%', '')) * 0.01);\r\n else\r\n return 0;\r\n }\r\n\r\n //convert from to percentage\r\n if (!isNaN(from) && isNaN(to) && to.indexOf('%') !== -1) {\r\n if (widthKeys.indexOf(key) !== -1)\r\n return from / obj.parent._width * 100;\r\n else if (heightKeys.indexOf(key) !== -1)\r\n return from / obj.parent._height * 100;\r\n else\r\n return 0;\r\n }\r\n return 0;\r\n}\r\n\r\nfunction getSurfix(to) {\r\n if (isNaN(to) && to.indexOf('%') !== -1)\r\n return \"%\";\r\n}\r\n\r\nfunction getToValue(to) {\r\n if (!isNaN(to))\r\n return to;\r\n if (isNaN(to) && to.indexOf('%') !== -1)\r\n return parseFloat(to.replace('%', ''));\r\n}\r\n\r\n\r\nfunction getObject(obj) {\r\n if (!obj._tweenObjectId) {\r\n obj._tweenObjectId = _currentId;\r\n _currentId++;\r\n }\r\n var object = _tweenObjects[obj._tweenObjectId];\r\n if (!object) {\r\n object = _tweenObjects[obj._tweenObjectId] = new TweenObject(obj);\r\n }\r\n return object;\r\n}\r\n\r\nfunction getTweenItem() {\r\n for (var i = 0; i < _tweenItemCache.length; i++) {\r\n if (_tweenItemCache[i]._ready)\r\n return _tweenItemCache[i];\r\n }\r\n\r\n var tween = new TweenItem();\r\n _tweenItemCache.push(tween);\r\n return tween;\r\n}\r\n\r\nfunction getCallbackItem() {\r\n for (var i = 0; i < _callbackItemCache.length; i++) {\r\n if (_callbackItemCache[i]._ready)\r\n return _callbackItemCache[i];\r\n }\r\n\r\n var cb = new CallbackItem();\r\n _callbackItemCache.push(cb);\r\n return cb;\r\n}\r\n\r\nvar Tween = {\r\n to: function (obj, time, params, ease) {\r\n var object = getObject(obj);\r\n for (var key in params) {\r\n if (key === \"onComplete\") {\r\n var cb = getCallbackItem();\r\n cb.set(object, params[key], time);\r\n object.tweens[cb.key] = cb;\r\n continue;\r\n }\r\n\r\n if (time) {\r\n var match = params[key] == obj[key];\r\n if (typeof obj[key] === \"undefined\") continue;\r\n\r\n if (match) {\r\n if (object.tweens[key]) object.tweens[key].remove();\r\n }\r\n else {\r\n if (!object.tweens[key])\r\n object.tweens[key] = getTweenItem();\r\n object.tweens[key].set(object, key, obj[key], params[key], time, ease);\r\n }\r\n }\r\n }\r\n if (!time) this.set(obj, params);\r\n },\r\n from: function (obj, time, params, ease) {\r\n var object = getObject(obj);\r\n for (var key in params) {\r\n if (key === \"onComplete\") {\r\n var cb = getCallbackItem();\r\n cb.set(object, params[key], time);\r\n object.tweens[cb.key] = cb;\r\n continue;\r\n }\r\n\r\n if (time) {\r\n var match = params[key] == obj[key];\r\n if (typeof obj[key] === \"undefined\") continue;\r\n\r\n if (match) {\r\n if (object.tweens[key]) object.tweens[key].remove();\r\n }\r\n else {\r\n if (!object.tweens[key])\r\n object.tweens[key] = getTweenItem();\r\n object.tweens[key].set(object, key, params[key], obj[key], time, ease);\r\n }\r\n }\r\n }\r\n if (!time) this.set(obj, params);\r\n },\r\n fromTo: function (obj, time, paramsFrom, paramsTo, ease) {\r\n var object = getObject(obj);\r\n for (var key in paramsTo) {\r\n if (key === \"onComplete\") {\r\n var cb = getCallbackItem();\r\n cb.set(object, paramsTo[key], time);\r\n object.tweens[cb.key] = cb;\r\n continue;\r\n }\r\n if (time) {\r\n var match = paramsFrom[key] == paramsTo[key];\r\n if (typeof obj[key] === \"undefined\" || typeof paramsFrom[key] === \"undefined\") continue;\r\n\r\n if (match) {\r\n if (object.tweens[key]) object.tweens[key].remove();\r\n obj[key] = paramsTo[key];\r\n }\r\n else {\r\n if (!object.tweens[key]) {\r\n object.tweens[key] = getTweenItem();\r\n }\r\n object.tweens[key].set(object, key, paramsFrom[key], paramsTo[key], time, ease);\r\n }\r\n\r\n }\r\n }\r\n if (!time) this.set(obj, paramsTo);\r\n },\r\n set: function (obj, params) {\r\n var object = getObject(obj);\r\n for (var key in params) {\r\n if (typeof obj[key] === \"undefined\") continue;\r\n if (object.tweens[key]) object.tweens[key].remove();\r\n obj[key] = params[key];\r\n }\r\n },\r\n _update: function (delta) {\r\n for (var id in _activeTweenObjects) {\r\n var object = _activeTweenObjects[id];\r\n for (var key in object.tweens) {\r\n object.tweens[key].update(delta);\r\n }\r\n }\r\n }\r\n};\r\n\r\n\r\nmodule.exports = Tween;","var UI = {\r\n Stage: require('./Stage'),\r\n Container: require('./Container'),\r\n ScrollingContainer: require('./ScrollingContainer'),\r\n SortableList: require('./SortableList'),\r\n Sprite: require('./Sprite'),\r\n TilingSprite: require('./TilingSprite'),\r\n SliceSprite: require('./SliceSprite'),\r\n Slider: require('./Slider'),\r\n ScrollBar: require('./ScrollBar'),\r\n Text: require('./Text'),\r\n DynamicText: require('./DynamicText/DynamicText'),\r\n DynamicTextStyle: require('./DynamicText/DynamicTextStyle'),\r\n TextInput: require('./TextInput'),\r\n Button: require('./Button'),\r\n CheckBox: require('./CheckBox'),\r\n Helpers: require('./Helpers'),\r\n Tween: require('./Tween'),\r\n Ease: require('./Ease/Ease'),\r\n Interaction: require('./Interaction/Interaction'),\r\n Base: require('./UIBase'),\r\n Ticker: require('./Ticker').shared,\r\n};\r\n\r\n\r\nmodule.exports = UI;","var UISettings = require('./UISettings'),\r\n UI = require('./UI'),\r\n DragEvent = require('./Interaction/DragEvent'),\r\n DragDropController = require('./Interaction/DragDropController');\r\n\r\n/**\r\n * Base class of all UIObjects\r\n *\r\n * @class\r\n * @extends PIXI.UI.UIBase\r\n * @param width {Number} Width of the UIObject\r\n * @param height {Number} Height of the UIObject\r\n */\r\nfunction UIBase(width, height) {\r\n PIXI.utils.EventEmitter.call(this);\r\n this.container = new PIXI.Container();\r\n this.setting = new UISettings();\r\n this.children = [];\r\n this.parent = null;\r\n this.stage = null;\r\n this.initialized = false;\r\n this.dragInitialized = false;\r\n this.dropInitialized = false;\r\n this.dirty = true;\r\n this._oldWidth = -1;\r\n this._oldHeight = -1;\r\n this.pixelPerfect = true;\r\n\r\n\r\n if (width && isNaN(width) && width.indexOf('%') != -1) {\r\n this.setting.widthPct = parseFloat(width.replace('%', '')) * 0.01;\r\n }\r\n else {\r\n this.setting.widthPct = null;\r\n }\r\n\r\n if (height && isNaN(height) && height.indexOf('%') != -1)\r\n this.setting.heightPct = parseFloat(height.replace('%', '')) * 0.01;\r\n else {\r\n this.setting.heightPct = null;\r\n }\r\n\r\n this.setting.width = width || 0;\r\n this.setting.height = height || 0;\r\n\r\n //actual values\r\n this._width = 0;\r\n this._height = 0;\r\n this._minWidth = null;\r\n this._minHeight = null;\r\n this._maxWidth = null;\r\n this._maxHeight = null;\r\n this._anchorLeft = null;\r\n this._anchorRight = null;\r\n this._anchorTop = null;\r\n this._anchorBottom = null;\r\n this._left = null;\r\n this._right = null;\r\n this._top = null;\r\n this._bottom = null;\r\n\r\n this._dragPosition = null; //used for overriding positions if tweens is playing\r\n}\r\n\r\nUIBase.prototype = Object.create(PIXI.utils.EventEmitter.prototype);\r\nUIBase.prototype.constructor = UIBase;\r\nmodule.exports = UIBase;\r\n\r\n/**\r\n * Renders the object using the WebGL renderer\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.updatesettings = function (updateChildren, updateParent) {\r\n\r\n if (!this.initialized) {\r\n if (this.parent !== null && this.parent.stage !== null && this.parent.initialized) {\r\n this.initialize();\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n\r\n if (updateParent) this.updateParent();\r\n this.baseupdate();\r\n this.update();\r\n if (updateChildren) this.updateChildren();\r\n};\r\n\r\n/**\r\n * Update method (override from other UIObjects)\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.update = function () {\r\n};\r\n\r\n\r\n/**\r\n * Updates the parent\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.updateParent = function () {\r\n if (this.parent !== null) {\r\n if (this.parent.updatesettings) {\r\n this.parent.updatesettings(false, true);\r\n }\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Updates the UIObject with all base settings\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.baseupdate = function () {\r\n //return if parent size didnt change\r\n if (this.parent !== null) {\r\n var parentHeight, parentWidth;\r\n\r\n\r\n\r\n //transform convertion (% etc)\r\n this.dirty = true; \r\n this._width = this.actual_width;\r\n this._height = this.actual_height;\r\n this._minWidth = this.actual_minWidth;\r\n this._minHeight = this.actual_minHeight;\r\n this._maxWidth = this.actual_maxWidth;\r\n this._maxHeight = this.actual_maxHeight;\r\n this._anchorLeft = this.actual_anchorLeft;\r\n this._anchorRight = this.actual_anchorRight;\r\n this._anchorTop = this.actual_anchorTop;\r\n this._anchorBottom = this.actual_anchorBottom;\r\n this._left = this.actual_left;\r\n this._right = this.actual_right;\r\n this._top = this.actual_top;\r\n this._bottom = this.actual_bottom;\r\n this._parentWidth = parentWidth = this.parent._width;\r\n this._parentHeight = parentHeight = this.parent._height;\r\n this.dirty = false;\r\n\r\n\r\n var pivotXOffset = this.pivotX * this._width;\r\n var pivotYOffset = this.pivotY * this._height;\r\n\r\n if (this.pixelPerfect) {\r\n pivotXOffset = Math.round(pivotXOffset);\r\n pivotYOffset = Math.round(pivotYOffset);\r\n }\r\n\r\n\r\n if (this.horizontalAlign === null) {\r\n //get anchors (use left right if conflict)\r\n if (this._anchorLeft !== null && this._anchorRight === null && this._right !== null)\r\n this._anchorRight = this._right;\r\n else if (this._anchorLeft === null && this._anchorRight !== null && this._left !== null)\r\n this._anchorLeft = this._left;\r\n else if (this._anchorLeft === null && this._anchorRight === null && this._left !== null && this._right !== null) {\r\n this._anchorLeft = this._left;\r\n this._anchorRight = this._right;\r\n }\r\n\r\n\r\n var useHorizontalAnchor = this._anchorLeft !== null || this._anchorRight !== null;\r\n var useLeftRight = !useHorizontalAnchor && (this._left !== null || this._right !== null);\r\n\r\n if (useLeftRight) {\r\n if (this._left !== null)\r\n this.container.position.x = this._left;\r\n else if (this._right !== null)\r\n this.container.position.x = parentWidth - this._right;\r\n }\r\n else if (useHorizontalAnchor) {\r\n\r\n if (this._anchorLeft !== null && this._anchorRight === null)\r\n this.container.position.x = this._anchorLeft;\r\n else if (this._anchorLeft === null && this._anchorRight !== null)\r\n this.container.position.x = parentWidth - this._width - this._anchorRight;\r\n else if (this._anchorLeft !== null && this._anchorRight !== null) {\r\n this.container.position.x = this._anchorLeft;\r\n this._width = parentWidth - this._anchorLeft - this._anchorRight;\r\n }\r\n this.container.position.x += pivotXOffset;\r\n }\r\n else {\r\n this.container.position.x = 0;\r\n }\r\n }\r\n\r\n\r\n\r\n if (this.verticalAlign === null) {\r\n //get anchors (use top bottom if conflict)\r\n if (this._anchorTop !== null && this._anchorBottom === null && this._bottom !== null)\r\n this._anchorBottom = this._bottom;\r\n if (this._anchorTop === null && this._anchorBottom !== null && this._top !== null)\r\n this._anchorTop = this._top;\r\n\r\n var useVerticalAnchor = this._anchorTop !== null || this._anchorBottom !== null;\r\n var useTopBottom = !useVerticalAnchor && (this._top !== null || this._bottom !== null);\r\n\r\n if (useTopBottom) {\r\n if (this._top !== null)\r\n this.container.position.y = this._top;\r\n else if (this._bottom !== null)\r\n this.container.position.y = parentHeight - this._bottom;\r\n }\r\n else if (useVerticalAnchor) {\r\n if (this._anchorTop !== null && this._anchorBottom === null)\r\n this.container.position.y = this._anchorTop;\r\n else if (this._anchorTop === null && this._anchorBottom !== null)\r\n this.container.position.y = parentHeight - this._height - this._anchorBottom;\r\n else if (this._anchorTop !== null && this._anchorBottom !== null) {\r\n this.container.position.y = this._anchorTop;\r\n this._height = parentHeight - this._anchorTop - this._anchorBottom;\r\n }\r\n this.container.position.y += pivotYOffset;\r\n }\r\n else {\r\n this.container.position.y = 0;\r\n }\r\n }\r\n\r\n //min/max sizes\r\n if (this._maxWidth !== null && this._width > this._maxWidth) this._width = this._maxWidth;\r\n if (this._width < this._minWidth) this._width = this._minWidth;\r\n\r\n if (this._maxHeight !== null && this._height > this._maxHeight) this._height = this._maxHeight;\r\n if (this._height < this._minHeight) this._height = this._minHeight;\r\n\r\n\r\n //pure vertical/horizontal align\r\n if (this.horizontalAlign !== null) {\r\n if (this.horizontalAlign == \"center\")\r\n this.container.position.x = parentWidth * 0.5 - this._width * 0.5;\r\n else if (this.horizontalAlign == \"right\")\r\n this.container.position.x = parentWidth - this._width;\r\n else\r\n this.container.position.x = 0;\r\n this.container.position.x += pivotXOffset;\r\n }\r\n if (this.verticalAlign !== null) {\r\n if (this.verticalAlign == \"middle\")\r\n this.container.position.y = parentHeight * 0.5 - this._height * 0.5;\r\n else if (this.verticalAlign == \"bottom\")\r\n this.container.position.y = parentHeight - this._height;\r\n else\r\n this.container.position.y = 0;\r\n this.container.position.y += pivotYOffset;\r\n }\r\n\r\n\r\n //Unrestricted dragging\r\n if (this.dragging && !this.setting.dragRestricted) {\r\n this.container.position.x = this._dragPosition.x;\r\n this.container.position.y = this._dragPosition.y;\r\n }\r\n\r\n\r\n //scale\r\n if (this.setting.scaleX !== null) this.container.scale.x = this.setting.scaleX;\r\n if (this.setting.scaleY !== null) this.container.scale.y = this.setting.scaleY;\r\n\r\n //pivot\r\n if (this.setting.pivotX !== null) this.container.pivot.x = pivotXOffset;\r\n if (this.setting.pivotY !== null) this.container.pivot.y = pivotYOffset;\r\n\r\n if (this.setting.alpha !== null) this.container.alpha = this.setting.alpha;\r\n if (this.setting.rotation !== null) this.container.rotation = this.setting.rotation;\r\n\r\n //make pixel perfect\r\n if (this.pixelPerfect) {\r\n this._width = Math.round(this._width);\r\n this._height = Math.round(this._height);\r\n this.container.position.x = Math.round(this.container.position.x);\r\n this.container.position.y = Math.round(this.container.position.y);\r\n }\r\n\r\n\r\n\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Updates all UI Children\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.updateChildren = function () {\r\n for (var i = 0; i < this.children.length; i++) {\r\n this.children[i].updatesettings(true);\r\n }\r\n};\r\n\r\nUIBase.prototype.addChild = function (UIObject) {\r\n var argumentsLength = arguments.length;\r\n if (argumentsLength > 1) {\r\n for (var i = 0; i < argumentsLength; i++) {\r\n this.addChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n if (UIObject.parent) {\r\n UIObject.parent.removeChild(UIObject);\r\n }\r\n\r\n UIObject.parent = this;\r\n this.container.addChild(UIObject.container);\r\n this.children.push(UIObject);\r\n this.updatesettings(true, true);\r\n }\r\n\r\n return UIObject;\r\n};\r\n\r\nUIBase.prototype.removeChild = function (UIObject) {\r\n var argumentLenght = arguments.length;\r\n if (argumentLenght > 1) {\r\n for (var i = 0; i < argumentLenght; i++) {\r\n this.removeChild(arguments[i]);\r\n }\r\n }\r\n else {\r\n var index = this.children.indexOf(UIObject);\r\n if (index !== -1) {\r\n var oldUIParent = UIObject.parent;\r\n var oldParent = UIObject.container.parent;\r\n UIObject.container.parent.removeChild(UIObject.container);\r\n this.children.splice(index, 1);\r\n UIObject.parent = null;\r\n\r\n //oldParent._recursivePostUpdateTransform();\r\n setTimeout(function () { //hack but cant get the transforms to update propertly otherwice?\r\n if (oldUIParent.updatesettings)\r\n oldUIParent.updatesettings(true, true);\r\n }, 0);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Initializes the object when its added to an UIStage\r\n *\r\n * @private\r\n */\r\nUIBase.prototype.initialize = function () {\r\n this.initialized = true;\r\n this.stage = this.parent.stage;\r\n if (this.draggable) {\r\n this.initDraggable();\r\n }\r\n\r\n if (this.droppable) {\r\n this.initDroppable();\r\n }\r\n};\r\n\r\nUIBase.prototype.clearDraggable = function () {\r\n if (this.dragInitialized) {\r\n this.dragInitialized = false;\r\n this.drag.stopEvent();\r\n }\r\n};\r\n\r\nUIBase.prototype.initDraggable = function () {\r\n if (!this.dragInitialized) {\r\n this.dragInitialized = true;\r\n var containerStart = new PIXI.Point(),\r\n stageOffset = new PIXI.Point(),\r\n self = this;\r\n\r\n this._dragPosition = new PIXI.Point();\r\n this.drag = new DragEvent(this);\r\n this.drag.onDragStart = function (e) {\r\n \r\n var added = DragDropController.add(this, e);\r\n if (!this.dragging && added) {\r\n this.dragging = true;\r\n this.container.interactive = false;\r\n containerStart.copy(this.container.position);\r\n if (this.dragContainer) {\r\n var c = this.dragContainer.container ? this.dragContainer.container : this.dragContainer;\r\n if (c) {\r\n //_this.container._recursivePostUpdateTransform();\r\n stageOffset.set(c.worldTransform.tx - this.parent.container.worldTransform.tx, c.worldTransform.ty - this.parent.container.worldTransform.ty);\r\n c.addChild(this.container);\r\n }\r\n } else {\r\n stageOffset.set(0);\r\n }\r\n this.emit(\"draggablestart\", e);\r\n }\r\n\r\n \r\n };\r\n\r\n\r\n this.drag.onDragMove = function (e, offset) {\r\n if (this.dragging) {\r\n this._dragPosition.set(containerStart.x + offset.x - stageOffset.x, containerStart.y + offset.y - stageOffset.y);\r\n this.x = this._dragPosition.x;\r\n this.y = this._dragPosition.y;\r\n this.emit(\"draggablemove\", e);\r\n }\r\n \r\n };\r\n\r\n this.drag.onDragEnd = function (e) {\r\n if (this.dragging) {\r\n this.dragging = false;\r\n //Return to container after 0ms if not picked up by a droppable\r\n setTimeout(function () {\r\n self.container.interactive = true;\r\n var item = DragDropController.getItem(self);\r\n if (item) {\r\n var container = self.parent === self.stage ? self.stage : self.parent.container;\r\n container.toLocal(self.container.position, self.container.parent, self);\r\n if (container != self.container) {\r\n self.parent.addChild(self);\r\n }\r\n }\r\n self.emit(\"draggableend\", e);\r\n }, 0);\r\n }\r\n \r\n };\r\n }\r\n};\r\n\r\nUIBase.prototype.clearDroppable = function () {\r\n if (this.dropInitialized) {\r\n this.dropInitialized = false;\r\n this.container.removeListener('mouseup', this.onDrop);\r\n this.container.removeListener('touchend', this.onDrop);\r\n }\r\n};\r\n\r\nUIBase.prototype.initDroppable = function () {\r\n if (!this.dropInitialized) {\r\n this.dropInitialized = true;\r\n var container = this.container,\r\n self = this;\r\n\r\n this.container.interactive = true;\r\n this.onDrop = function (event) {\r\n var item = DragDropController.getEventItem(event, self.dropGroup);\r\n if (item && item.dragging) {\r\n item.dragging = false;\r\n item.container.interactive = true;\r\n var parent = self.droppableReparent !== null ? self.droppableReparent : self;\r\n parent.container.toLocal(item.container.position, item.container.parent, item);\r\n if (parent.container != item.container.parent)\r\n parent.addChild(item);\r\n }\r\n };\r\n\r\n container.on('mouseup', this.onDrop);\r\n container.on('touchend', this.onDrop);\r\n }\r\n};\r\n\r\nObject.defineProperties(UIBase.prototype, {\r\n x: {\r\n get: function () {\r\n return this.setting.left;\r\n },\r\n set: function (val) {\r\n this.left = val;\r\n }\r\n },\r\n y: {\r\n get: function () {\r\n return this.setting.top;\r\n },\r\n set: function (val) {\r\n this.top = val;\r\n }\r\n },\r\n width: {\r\n get: function () {\r\n return this.setting.width;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.widthPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.widthPct = null;\r\n \r\n this.setting.width = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_width: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.widthPct !== null) {\r\n this._width = this.parent._width * this.setting.widthPct;\r\n }\r\n else {\r\n this._width = this.setting.width;\r\n }\r\n }\r\n return this._width;\r\n }\r\n },\r\n height: {\r\n get: function () {\r\n return this.setting.height;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.heightPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.heightPct = null;\r\n \r\n this.setting.height = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_height: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.heightPct !== null) {\r\n this._height = this.parent._height * this.setting.heightPct;\r\n }\r\n else {\r\n this._height = this.setting.height;\r\n }\r\n }\r\n return this._height;\r\n }\r\n },\r\n minWidth: {\r\n get: function () {\r\n return this.setting.minWidth;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.minWidthPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.minWidthPct = null;\r\n \r\n this.setting.minWidth = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_minWidth: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.minWidthPct !== null) {\r\n this._minWidth = this.parent._width * this.setting.minWidthPct;\r\n }\r\n else {\r\n this._minWidth = this.setting.minWidth;\r\n }\r\n }\r\n return this._minWidth;\r\n }\r\n },\r\n minHeight: {\r\n get: function () {\r\n return this.setting.minHeight;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.minHeightPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.minHeightPct = null;\r\n \r\n this.setting.minHeight = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_minHeight: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.minHeightPct !== null) {\r\n this._minHeight = this.parent._height * this.setting.minHeightPct;\r\n }\r\n else {\r\n this._minHeight = this.setting.minHeight;\r\n }\r\n }\r\n return this._minHeight;\r\n }\r\n },\r\n maxWidth: {\r\n get: function () {\r\n return this.setting.maxWidth;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.maxWidthPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.maxWidthPct = null;\r\n \r\n\r\n this.setting.maxWidth = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_maxWidth: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.maxWidthPct !== null) {\r\n this._maxWidth = this.parent._width * this.setting.maxWidthPct;\r\n }\r\n else {\r\n this._maxWidth = this.setting.maxWidth;\r\n }\r\n }\r\n return this._maxWidth;\r\n }\r\n },\r\n maxHeight: {\r\n get: function () {\r\n return this.setting.maxHeight;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.maxHeightPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.maxHeightPct = null;\r\n \r\n this.setting.maxHeight = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_maxHeight: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.maxHeightPct !== null) {\r\n this._maxHeight = this.parent._height * this.setting.maxHeightPct;\r\n }\r\n else {\r\n this._maxHeight = this.setting.maxHeight;\r\n }\r\n }\r\n return this._maxHeight;\r\n }\r\n },\r\n anchorLeft: {\r\n get: function () {\r\n return this.setting.anchorLeft;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1) \r\n this.setting.anchorLeftPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else \r\n this.setting.anchorLeftPct = null;\r\n \r\n this.setting.anchorLeft = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_anchorLeft: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.anchorLeftPct !== null) {\r\n this._anchorLeft = this.parent._width * this.setting.anchorLeftPct;\r\n }\r\n else {\r\n this._anchorLeft = this.setting.anchorLeft;\r\n }\r\n }\r\n return this._anchorLeft;\r\n }\r\n },\r\n anchorRight: {\r\n get: function () {\r\n return this.setting.anchorRight;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.anchorRightPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.anchorRightPct = null;\r\n \r\n this.setting.anchorRight = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_anchorRight: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.anchorRightPct !== null) {\r\n this._anchorRight = this.parent._width * this.setting.anchorRightPct;\r\n }\r\n else {\r\n this._anchorRight = this.setting.anchorRight;\r\n }\r\n }\r\n return this._anchorRight;\r\n }\r\n },\r\n anchorTop: {\r\n get: function () {\r\n return this.setting.anchorTop;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.anchorTopPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.anchorTopPct = null;\r\n \r\n this.setting.anchorTop = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_anchorTop: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.anchorTopPct !== null) {\r\n this._anchorTop = this.parent._height * this.setting.anchorTopPct;\r\n }\r\n else {\r\n this._anchorTop = this.setting.anchorTop;\r\n }\r\n }\r\n return this._anchorTop;\r\n }\r\n },\r\n anchorBottom: {\r\n get: function () {\r\n return this.setting.anchorBottom;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.anchorBottomPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else \r\n this.setting.anchorBottomPct = null;\r\n \r\n this.setting.anchorBottom = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_anchorBottom: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.anchorBottomPct !== null) {\r\n this._anchorBottom = this.parent._height * this.setting.anchorBottomPct;\r\n }\r\n else {\r\n this._anchorBottom = this.setting.anchorBottom;\r\n }\r\n }\r\n return this._anchorBottom;\r\n }\r\n },\r\n left: {\r\n get: function () {\r\n return this.setting.left;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.leftPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.leftPct = null;\r\n \r\n this.setting.left = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_left: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.leftPct !== null) {\r\n this._left = this.parent._width * this.setting.leftPct;\r\n }\r\n else {\r\n this._left = this.setting.left;\r\n }\r\n }\r\n return this._left;\r\n }\r\n },\r\n right: {\r\n get: function () {\r\n return this.setting.right;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.rightPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.rightPct = null;\r\n\r\n this.setting.right = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_right: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.rightPct !== null) {\r\n this._right = this.parent._width * this.setting.rightPct;\r\n }\r\n else {\r\n this._right = this.setting.right;\r\n }\r\n }\r\n return this._right;\r\n }\r\n },\r\n top: {\r\n get: function () {\r\n return this.setting.top;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.topPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.topPct = null;\r\n\r\n this.setting.top = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_top: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.topPct !== null) {\r\n this._top = this.parent._height * this.setting.topPct;\r\n }\r\n else {\r\n this._top = this.setting.top;\r\n }\r\n }\r\n return this._top;\r\n }\r\n },\r\n bottom: {\r\n get: function () {\r\n return this.setting.bottom;\r\n },\r\n set: function (val) {\r\n if (isNaN(val) && val.indexOf('%') !== -1)\r\n this.setting.bottomPct = parseFloat(val.replace('%', '')) * 0.01;\r\n else\r\n this.setting.bottomPct = null;\r\n\r\n this.setting.bottom = val;\r\n this.updatesettings(true);\r\n }\r\n },\r\n actual_bottom: {\r\n get: function () {\r\n if (this.dirty) {\r\n if (this.setting.bottomPct !== null) {\r\n this._bottom = this.parent._height * this.setting.bottomPct;\r\n }\r\n else {\r\n this._bottom = this.setting.bottom;\r\n }\r\n }\r\n return this._bottom;\r\n }\r\n },\r\n verticalAlign: {\r\n get: function () {\r\n return this.setting.verticalAlign;\r\n },\r\n set: function (val) {\r\n this.setting.verticalAlign = val;\r\n this.baseupdate();\r\n }\r\n },\r\n horizontalAlign: {\r\n get: function () {\r\n return this.setting.horizontalAlign;\r\n },\r\n set: function (val) {\r\n this.setting.horizontalAlign = val;\r\n this.baseupdate();\r\n }\r\n },\r\n tint: {\r\n get: function () {\r\n return this.setting.tint;\r\n },\r\n set: function (val) {\r\n this.setting.tint = val;\r\n this.update();\r\n }\r\n },\r\n alpha: {\r\n get: function () {\r\n return this.setting.alpha;\r\n },\r\n set: function (val) {\r\n this.setting.alpha = val;\r\n this.container.alpha = val;\r\n }\r\n },\r\n rotation: {\r\n get: function () {\r\n return this.setting.rotation;\r\n },\r\n set: function (val) {\r\n this.setting.rotation = val;\r\n this.container.rotation = val;\r\n }\r\n },\r\n blendMode: {\r\n get: function () {\r\n return this.setting.blendMode;\r\n },\r\n set: function (val) {\r\n this.setting.blendMode = val;\r\n this.update();\r\n }\r\n },\r\n pivotX: {\r\n get: function () {\r\n return this.setting.pivotX;\r\n },\r\n set: function (val) {\r\n this.setting.pivotX = val;\r\n this.baseupdate();\r\n this.update();\r\n }\r\n },\r\n pivotY: {\r\n get: function () {\r\n return this.setting.pivotY;\r\n },\r\n set: function (val) {\r\n this.setting.pivotY = val;\r\n this.baseupdate();\r\n this.update();\r\n }\r\n },\r\n pivot: {\r\n set: function (val) {\r\n this.setting.pivotX = val;\r\n this.setting.pivotY = val;\r\n this.baseupdate();\r\n this.update();\r\n }\r\n },\r\n scaleX: {\r\n get: function () {\r\n return this.setting.scaleX;\r\n },\r\n set: function (val) {\r\n this.setting.scaleX = val;\r\n this.container.scale.x = val;\r\n }\r\n },\r\n scaleY: {\r\n get: function () {\r\n return this.setting.scaleY;\r\n },\r\n set: function (val) {\r\n this.setting.scaleY = val;\r\n this.container.scale.y = val;\r\n }\r\n },\r\n scale: {\r\n get: function () {\r\n return this.setting.scaleX;\r\n },\r\n set: function (val) {\r\n this.setting.scaleX = val;\r\n this.setting.scaleY = val;\r\n this.container.scale.x = val;\r\n this.container.scale.y = val;\r\n }\r\n },\r\n\r\n draggable: {\r\n get: function () {\r\n return this.setting.draggable;\r\n },\r\n set: function (val) {\r\n this.setting.draggable = val;\r\n if (this.initialized) {\r\n if (val)\r\n this.initDraggable();\r\n else\r\n this.clearDraggable();\r\n }\r\n }\r\n },\r\n dragRestricted: {\r\n get: function () {\r\n return this.setting.dragRestricted;\r\n },\r\n set: function (val) {\r\n this.setting.dragRestricted = val;\r\n }\r\n },\r\n dragRestrictAxis: {\r\n get: function () {\r\n return this.setting.dragRestrictAxis;\r\n },\r\n set: function (val) {\r\n this.setting.dragRestrictAxis = val;\r\n }\r\n },\r\n dragThreshold: {\r\n get: function () {\r\n return this.setting.dragThreshold;\r\n },\r\n set: function (val) {\r\n this.setting.dragThreshold = val;\r\n }\r\n },\r\n dragGroup: {\r\n get: function () {\r\n return this.setting.dragGroup;\r\n },\r\n set: function (val) {\r\n this.setting.dragGroup = val;\r\n }\r\n },\r\n dragContainer: {\r\n get: function () {\r\n return this.setting.dragContainer;\r\n },\r\n set: function (val) {\r\n this.setting.dragContainer = val;\r\n }\r\n },\r\n droppable: {\r\n get: function () {\r\n return this.setting.droppable;\r\n },\r\n set: function (val) {\r\n this.setting.droppable = true;\r\n if (this.initialized) {\r\n if (val)\r\n this.initDroppable();\r\n else\r\n this.clearDroppable();\r\n }\r\n }\r\n },\r\n droppableReparent: {\r\n get: function () {\r\n return this.setting.droppableReparent;\r\n },\r\n set: function (val) {\r\n this.setting.droppableReparent = val;\r\n }\r\n },\r\n dropGroup: {\r\n get: function () {\r\n return this.setting.dropGroup;\r\n },\r\n set: function (val) {\r\n this.setting.dropGroup = val;\r\n }\r\n },\r\n renderable: {\r\n get: function () {\r\n return this.container.renderable;\r\n },\r\n set: function (val) {\r\n this.container.renderable = val;\r\n }\r\n },\r\n visible: {\r\n get: function () {\r\n return this.container.visible;\r\n },\r\n set: function (val) {\r\n this.container.visible = val;\r\n }\r\n },\r\n cacheAsBitmap: {\r\n get: function () {\r\n return this.container.cacheAsBitmap;\r\n },\r\n set: function (val) {\r\n this.container.cacheAsBitmap = val;\r\n }\r\n },\r\n onClick: {\r\n get: function () {\r\n return this.container.click;\r\n },\r\n set: function (val) {\r\n this.container.click = val;\r\n }\r\n },\r\n interactive: {\r\n get: function () {\r\n return this.container.interactive;\r\n },\r\n set: function (val) {\r\n this.container.interactive = val;\r\n }\r\n },\r\n interactiveChildren: {\r\n get: function () {\r\n return this.container.interactiveChildren;\r\n },\r\n set: function (val) {\r\n this.container.interactiveChildren = val;\r\n }\r\n },\r\n parentLayer: {\r\n get: function () {\r\n return this.container.parentLayer;\r\n },\r\n set: function (val) {\r\n this.container.parentLayer = val;\r\n }\r\n }\r\n});","/**\r\n * Settings object for all UIObjects\r\n *\r\n * @class\r\n * @memberof PIXI.UI\r\n */\r\nfunction UISettings() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.minHeight = 0;\r\n this.maxWidth = null;\r\n this.maxHeight = null;\r\n this.left = null;\r\n this.right = null;\r\n this.top = null;\r\n this.bottom = null;\r\n this.anchorLeft = null;\r\n this.anchorRight = null;\r\n this.anchorTop = null;\r\n this.anchorBottom = null;\r\n\r\n this.widthPct = null;\r\n this.heightPct = null;\r\n this.minWidthPct = null;\r\n this.minHeightPct = null;\r\n this.maxWidthPct = null;\r\n this.maxHeightPct = null;\r\n this.minWidth = 0;\r\n this.leftPct = null;\r\n this.rightPct = null;\r\n this.topPct = null;\r\n this.bottomPct = null;\r\n this.anchorLeftPct = null;\r\n this.anchorRightPct = null;\r\n this.anchorTopPct = null;\r\n this.anchorBottomPct = null;\r\n\r\n this.pivotX = 0;\r\n this.pivotY = 0;\r\n this.scaleX = 1;\r\n this.scaleY = 1;\r\n this.verticalAlign = null;\r\n this.horizontalAlign = null;\r\n this.rotation = null;\r\n this.blendMode = null;\r\n this.tint = null;\r\n this.alpha = 1;\r\n\r\n\r\n this.draggable = null;\r\n this.dragRestricted = false;\r\n this.dragRestrictAxis = null; //x, y\r\n this.dragThreshold = 0;\r\n this.dragGroup = null;\r\n this.dragContainer = null;\r\n this.droppable = null;\r\n this.droppableReparent = null;\r\n this.dropGroup = null;\r\n}\r\n\r\n\r\nmodule.exports = UISettings;\r\n\r\n\r\n","\r\nvar Library = {\r\n UI: require('./UI')\r\n};\r\n\r\n//dump everything into extras\r\n\r\nObject.assign(PIXI, Library);\r\n\r\nmodule.exports = Library;\r\n"],"sourceRoot":"."}