{"version":3,"sources":["https:\/\/dl-ice.spbstu.ru\/theme\/mooc\/amd\/src\/jquery-toolbar.js"],"names":["Object","create","obj","F","prototype","define","$","ToolBar","init","options","elem","this","$elem","extend","fn","toolbar","metadata","data","overrideOptions","addClass","position","style","append","appendTo","css","hide","toolbar_arrow","find","initializeToolbar","self","each","$option","populateContent","setTrigger","toolbarWidth","width","event","decideTimeout","hasClass","moveTime","setTimeout","clearTimeout","on","mouseenter","show","parent","mouseleave","preventDefault","hideOnClick","target","has","length","is","hover","_decideTimeout","window","resize","stopPropagation","toolbarCss","getCoordinates","collisionDetection","arrowCss","location","content","clone","html","trigger","calculatePosition","adjustment","zIndex","coordinates","offset","left","outerWidth","top","outerHeight","right","height","opacity","animation","removeClass","animate","getToolbarElement","isPlainObject","toolbarObj","indexOf","apply","makeArray","arguments","slice"],"mappings":"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\/D,KAWK2D,YAAYI,IAXjB\/D,KAW4BC,MAAM+D,cAAgBP,EACvDQ,MAAO,QAGX,IAAK,OACH,MAAO,CACLJ,KAjBK7D,KAiBM2D,YAAYE,KAjBlB7D,KAiB8BI,QAAQoB,QAAU,EAjBhDxB,KAiByDC,MAAM6D,aAAe,EAAIL,EACvFM,IAlBK\/D,KAkBK2D,YAAYI,IAlBjB\/D,KAkB4BI,QAAQ8D,SAAW,EAlB\/ClE,KAkBwDC,MAAM+D,cAAgB,EACnFC,MAAO,QAGX,IAAK,QACH,MAAO,CACLJ,KAxBK7D,KAwBM2D,YAAYE,KAxBlB7D,KAwB8BI,QAAQoB,QAAU,EAxBhDxB,KAwByDC,MAAM6D,aAAe,EAAIL,EACvFM,IAzBK\/D,KAyBK2D,YAAYI,IAzBjB\/D,KAyB4BI,QAAQ8D,SAAW,EAzB\/ClE,KAyBwDC,MAAM+D,cAAgB,EACnFC,MAAO,QAGX,IAAK,SACH,MAAO,CACLJ,KA\/BK7D,KA+BM2D,YAAYE,KA\/BlB7D,KA+B8BI,QAAQoB,QAAU,EA\/BhDxB,KA+ByDC,MAAM6D,aAAe,EACnFC,IAhCK\/D,KAgCK2D,YAAYI,IAhCjB\/D,KAgC4BC,MAAM+D,cAAgBP,EACvDQ,MAAO,UAIfhB,mBAAoB,WAIW,OAHlBjD,KAGFF,QAAQW,UAA8C,UAHpDT,KAGgCF,QAAQW,WAHxCT,KAIJkD,SAAW,CACdW,KAAM,MACNI,MAAO,OANAjE,KASA+C,WAAWc,KARL,IADN7D,KAUF+C,WAAWc,KATH,GADN7D,KAWFkD,SAASW,KAXP7D,KAWmBC,MAAM2D,SAASC,KAXlC7D,KAW8CC,MAAMuB,QAAU,EAVxD,IAWJ7B,EAAEiD,QAAQpB,SAZZxB,KAY4B+C,WAAWc,KAZvC7D,KAYmDuB,cAX7C,KADNvB,KAaF+C,WAAWkB,MAZH,GADNjE,KAcF+C,WAAWc,KAAO,OAdhB7D,KAeFkD,SAASW,KAAO,OAfd7D,KAgBFkD,SAASe,MAAQtE,EAAEiD,QAAQpB,QAhBzBxB,KAgBwCC,MAAM2D,SAASC,KAhBvD7D,KAgBmEC,MAAMuB,QAAU,EAf7E,GAe8F,KAIjHS,KAAM,WACOjC,KACNC,MAAMO,SAAS,WADTR,KAENwD,oBAFMxD,KAGNI,QAAQ6B,OAAOpB,IAAI,CACtBsD,QAAW,IACV3D,SAAS,WALDR,KAKmBF,QAAQsE,WAL3BpE,KAMNC,MAAMsD,QAAQ,iBAErBzC,KAAM,WACJ,IAAII,EAAOlB,KACPoE,EAAY,CACdD,QAAW,GAIb,OAFAjD,EAAKjB,MAAMoE,YAAY,WAEfnD,EAAKpB,QAAQW,UACnB,IAAK,MACH2D,EAAUL,IAAM,OAChB,MAEF,IAAK,OACHK,EAAUP,KAAO,OACjB,MAEF,IAAK,QACHO,EAAUP,KAAO,OACjB,MAEF,IAAK,SACHO,EAAUL,IAAM,OAIpB7C,EAAKd,QAAQkE,QAAQF,EAAW,IAAK,WACnClD,EAAKd,QAAQU,SAEfI,EAAKjB,MAAMsD,QAAQ,kBAErBgB,kBAAmB,WACjB,OAAOvE,KAAKI,QAAQY,KAAK,iBAI7BrB,EAAEQ,GAAGC,QAAU,SAAUN,GACvB,GAAIH,EAAE6E,cAAc1E,GAClB,OAAOE,KAAKmB,KAAK,WACf,IAAIsD,EAAapF,OAAOC,OAAOM,GAC\/B6E,EAAW5E,KAAKC,EAASE,MACzBL,EAAEK,MAAMM,KAAK,aAAcmE,KAExB,GAAuB,iBAAZ3E,GAAiD,IAAzBA,EAAQ4E,QAAQ,KAAY,CACpE,IAAID,EAAa9E,EAAEK,MAAMM,KAAK,cAE9B,OADamE,EAAW3E,GACV6E,MAAMF,EAAY9E,EAAEiF,UAAUC,WAAWC,MAAM,MAIjEnF,EAAEQ,GAAGC,QAAQN,QAAU,CACrBsD,QAAS,aACT3C,SAAU,MACV4B,aAAa,EACbqB,OAAQ,IACRhB,OAAO,EACPhC,MAAO,UACP0D,UAAW,WACXX,WAAY","sourcesContent":["\/**\n * Toolbar.js\n *\n * @fileoverview jQuery plugin that creates tooltip style toolbars.\n * @link http:\/\/paulkinzett.github.com\/toolbar\/\n * @author Paul Kinzett (http:\/\/kinzett.co.nz\/)\n * @version 1.1.0\n * @requires jQuery 1.7+\n *\n * @license jQuery Toolbar Plugin v1.1.0\n * http:\/\/paulkinzett.github.com\/toolbar\/\n * Copyright 2013 - 2015 Paul Kinzett (http:\/\/kinzett.co.nz\/)\n * Released under the MIT license.\n * \n *\/\n\nif ( typeof Object.create !== 'function' ) {\n Object.create = function( obj ) {\n function F() {}\n F.prototype = obj;\n return new F();\n };\n}\ndefine(['jquery'], function($) {\n\tvar ToolBar = {\n init: function( options, elem ) {\n var self = this;\n self.elem = elem;\n self.$elem = $( elem );\n self.options = $.extend( {}, $.fn.toolbar.options, options );\n self.metadata = self.$elem.data();\n self.overrideOptions();\n self.toolbar = $('
')\n .addClass('tool-'+self.options.position)\n .addClass('toolbar-'+self.options.style)\n .append('
')\n .append('
')\n .appendTo('body')\n .css('opacity', 0)\n .hide();\n self.toolbar_arrow = self.toolbar.find('.arrow');\n self.initializeToolbar();\n },\n\n overrideOptions: function() {\n var self = this;\n $.each( self.options, function( $option ) {\n if (typeof(self.$elem.data('toolbar-'+$option)) != \"undefined\") {\n self.options[$option] = self.$elem.data('toolbar-'+$option);\n }\n });\n },\n\n initializeToolbar: function() {\n var self = this;\n self.populateContent();\n self.setTrigger();\n self.toolbarWidth = self.toolbar.width();\n },\n\n setTrigger: function() {\n var self = this;\n\n if (self.options.event != 'click') {\n\n var moveTime;\n function decideTimeout () {\n if (self.$elem.hasClass('pressed')) {\n moveTime = setTimeout(function() {\n self.hide();\n }, 150);\n } else {\n clearTimeout(moveTime);\n };\n };\n\n self.$elem.on({\n mouseenter: function(event) {\n if (self.$elem.hasClass('pressed')) {\n clearTimeout(moveTime);\n } else {\n self.show();\n }\n }\n });\n\n self.$elem.parent().on({\n mouseleave: function(event){ decideTimeout(); }\n });\n\n $('.tool-container').on({\n mouseenter: function(event){ clearTimeout(moveTime); },\n mouseleave: function(event){ decideTimeout(); }\n });\n }\n\n if (self.options.event == 'click') {\n self.$elem.on('click', function(event) {\n event.preventDefault();\n if(self.$elem.hasClass('pressed')) {\n self.hide();\n } else {\n self.show();\n }\n });\n\n if (self.options.hideOnClick) {\n $('html').on(\"click.toolbar\", function ( event ) {\n if (event.target != self.elem &&\n self.$elem.has(event.target).length === 0 &&\n self.toolbar.has(event.target).length === 0 &&\n self.toolbar.is(\":visible\")) {\n self.hide();\n }\n });\n }\n }\n\n if (self.options.hover) {\n var moveTime;\n\n function decideTimeout () {\n if (self.$elem.hasClass('pressed')) {\n moveTime = setTimeout(function() {\n self.hide();\n }, 150);\n } else {\n clearTimeout(moveTime);\n };\n };\n\n self.$elem.on({\n mouseenter: function(event) {\n if (self.$elem.hasClass('pressed')) {\n clearTimeout(moveTime);\n } else {\n self.show();\n }\n }\n });\n\n self.$elem.parent().on({\n mouseleave: function(event){ decideTimeout(); }\n });\n\n $('.tool-container').on({\n mouseenter: function(event){ clearTimeout(moveTime); },\n mouseleave: function(event){ decideTimeout(); }\n });\n }\n\n $(window).resize(function( event ) {\n event.stopPropagation();\n if ( self.toolbar.is(\":visible\") ) {\n self.toolbarCss = self.getCoordinates(self.options.position, 20);\n self.collisionDetection();\n self.toolbar.css( self.toolbarCss );\n self.toolbar_arrow.css( self.arrowCss );\n }\n });\n },\n\n populateContent: function() {\n var self = this;\n var location = self.toolbar.find('.tool-items');\n var content = $(self.options.content).clone( true ).find('a').addClass('tool-item');\n location.html(content);\n location.find('.tool-item').on('click', function(event) {\n event.preventDefault();\n self.$elem.trigger('toolbarItemClick', this);\n });\n },\n\n calculatePosition: function() {\n var self = this;\n self.arrowCss = {};\n self.toolbarCss = self.getCoordinates(self.options.position, self.options.adjustment);\n self.toolbarCss.position = 'absolute';\n self.toolbarCss.zIndex = self.options.zIndex;\n self.collisionDetection();\n self.toolbar.css(self.toolbarCss);\n self.toolbar_arrow.css(self.arrowCss);\n },\n\n getCoordinates: function( position, adjustment ) {\n var self = this;\n self.coordinates = self.$elem.offset();\n\n if (self.options.adjustment && self.options.adjustment[self.options.position]) {\n adjustment = self.options.adjustment[self.options.position] + adjustment;\n }\n\n switch(self.options.position) {\n case 'top':\n return {\n left: self.coordinates.left-(self.toolbar.width()\/2)+(self.$elem.outerWidth()\/2),\n top: self.coordinates.top-self.$elem.outerHeight()-adjustment,\n right: 'auto'\n };\n case 'left':\n return {\n left: self.coordinates.left-(self.toolbar.width()\/2)-(self.$elem.outerWidth()\/2)-adjustment,\n top: self.coordinates.top-(self.toolbar.height()\/2)+(self.$elem.outerHeight()\/2),\n right: 'auto'\n };\n case 'right':\n return {\n left: self.coordinates.left+(self.toolbar.width()\/2)+(self.$elem.outerWidth()\/2)+adjustment,\n top: self.coordinates.top-(self.toolbar.height()\/2)+(self.$elem.outerHeight()\/2),\n right: 'auto'\n };\n case 'bottom':\n return {\n left: self.coordinates.left-(self.toolbar.width()\/2)+(self.$elem.outerWidth()\/2),\n top: self.coordinates.top+self.$elem.outerHeight()+adjustment,\n right: 'auto'\n };\n }\n },\n\n collisionDetection: function() {\n var self = this;\n var edgeOffset = 20;\n if(self.options.position == 'top' || self.options.position == 'bottom') {\n self.arrowCss = {left: '50%', right: '50%'};\n if( self.toolbarCss.left < edgeOffset ) {\n self.toolbarCss.left = edgeOffset;\n self.arrowCss.left = self.$elem.offset().left + self.$elem.width()\/2-(edgeOffset);\n }\n else if(($(window).width() - (self.toolbarCss.left + self.toolbarWidth)) < edgeOffset) {\n self.toolbarCss.right = edgeOffset;\n self.toolbarCss.left = 'auto';\n self.arrowCss.left = 'auto';\n self.arrowCss.right = ($(window).width()-self.$elem.offset().left)-(self.$elem.width()\/2)-(edgeOffset)-5;\n }\n }\n },\n\n show: function() {\n var self = this;\n self.$elem.addClass('pressed');\n self.calculatePosition();\n self.toolbar.show().css({'opacity': 1}).addClass('animate-'+self.options.animation);\n self.$elem.trigger('toolbarShown');\n },\n\n hide: function() {\n var self = this;\n var animation = {'opacity': 0};\n\n self.$elem.removeClass('pressed');\n\n switch(self.options.position) {\n case 'top':\n animation.top = '+=20';\n break;\n case 'left':\n animation.left = '+=20';\n break;\n case 'right':\n animation.left = '-=20';\n break;\n case 'bottom':\n animation.top = '-=20';\n break;\n }\n\n self.toolbar.animate(animation, 200, function() {\n self.toolbar.hide();\n });\n\n self.$elem.trigger('toolbarHidden');\n },\n\n getToolbarElement: function () {\n return this.toolbar.find('.tool-items');\n }\n };\n\n $.fn.toolbar = function( options ) {\n if ($.isPlainObject( options )) {\n return this.each(function() {\n var toolbarObj = Object.create( ToolBar );\n toolbarObj.init( options, this );\n $(this).data('toolbarObj', toolbarObj);\n });\n } else if ( typeof options === 'string' && options.indexOf('_') !== 0 ) {\n var toolbarObj = $(this).data('toolbarObj');\n var method = toolbarObj[options];\n return method.apply(toolbarObj, $.makeArray(arguments).slice(1));\n }\n };\n\n $.fn.toolbar.options = {\n content: '#myContent',\n position: 'top',\n hideOnClick: false,\n zIndex: 120,\n hover: false,\n style: 'default',\n animation: 'standard',\n adjustment: 10\n };\n});\n"],"file":"jquery-toolbar.min.js"}