{"version":3,"file":"Tooltips.chunk-107928.js","mappings":"0MAWIA,EAAU,CACbC,KAAM,WACLD,EAAQE,aACRF,EAAQG,mBACT,EAEAD,WAAY,WACXE,IAAEC,UACAC,GAAG,eAAeC,EAAAA,EAAAA,GAASP,EAAQQ,uBACnCF,GAAG,cAAe,4CAA4CC,EAAAA,EAAAA,GAASP,EAAQS,eAClF,EAEAN,kBAAmB,YAClBO,EAAAA,EAAAA,IAAU,eAAgBV,EAAQW,QAClCD,EAAAA,EAAAA,IAAU,gBAAiBV,EAAQY,SACnCF,EAAAA,EAAAA,IAAU,mBAAoBV,EAAQa,UACvC,EAEAL,qBAAsB,SAAUM,GACnBV,IAAEU,EAAEC,QAELC,QAAQ,eAAeC,SACjCC,EAAAA,EAAAA,IAAQ,mBAEV,EAEAT,cAAe,SAAUK,GACxB,IAAIK,EAAWf,IAAEU,EAAEC,QAAQC,QAAQ,eAYnC,OAVIG,EAASC,SAAS,YACrBF,EAAAA,EAAAA,IAAQ,gBAAiB,CACxBG,QAASF,KAGVD,EAAAA,EAAAA,IAAQ,eAAgB,CACvBG,QAASF,KAIJ,CACR,EAEAG,aAAc,SAAUH,GAEvB,IAICI,EACAC,EACAC,EANGC,GADJP,EAAWA,EAASH,QAAQ,gBACPW,KAAK,qBACzBC,EAjDK,EAkDLC,EAAUV,EAASC,SAAS,WAkD7B,OA5CKS,GACJV,EAASW,SAAS,WAEnBX,EAASY,YAAY,mBAEjBL,EAAMM,KAAK,sBACdN,EAAMO,IAAI,YAAaP,EAAMM,KAAK,sBAG9BN,EAAMQ,SAASC,KAAOT,EAAMU,aAAgBhC,IAAEiC,QAAQC,UAK1Df,EAAMgB,SAASb,EAAMO,IAAI,eAAgB,IAErCP,EAAMQ,SAASC,KAAOT,EAAMU,aAAejB,EAASQ,KAAK,wBAAwBS,aAAe,EAAIb,EAEvGK,EAzEG,GA6EEF,EAAMM,KAAK,sBACfN,EAAMM,KAAK,oBAAqBN,EAAMO,IAAI,eAI3CT,EAAgBE,EAAMU,cAAgBV,EAAMQ,SAASC,KAAOT,EAAMU,aAAehC,IAAEiC,QAAQC,WAE3Fb,EAAeC,EAAMU,cAAgBV,EAAMU,aAAejB,EAASQ,KAAK,wBAAwBS,aAAe,EAAIb,EAAMG,EAAMQ,SAASC,OAGvIT,EAAMO,IAAI,YAAaT,EAAgB,OAEvCE,EAAMO,IAAI,YAAaR,EAAe,MACtCG,EA1FE,KA+FAC,GACJV,EAASY,YAAY,WAGfH,CACR,EAEAjB,MAAO,SAAUqB,GAChB,IAAIb,EAAWf,IAAE4B,EAAKX,SAASL,QAAQ,eACtCY,EAAW5B,EAAQsB,aAAaH,GAEjCA,EAASW,SAAS,WA1Gb,IA4GDF,EACHT,EAASW,SAAS,mBAElBX,EAASY,YAAY,kBAEvB,EAEAnB,OAAQ,SAAUoB,GACF5B,IAAE4B,EAAKX,SAASL,QAAQ,eAE9Be,YAAY,UACtB,EAEAlB,UAAW,SAAUmB,GACpB,IAAIQ,EAAapC,IAAE4B,GAAQA,EAAKS,WAE5BD,GAAcA,EAAWvB,OAE5BuB,EAAWb,KAAK,uBAAuBI,YAAY,WAGnD3B,IAAE,uBAAuB2B,YAAY,UAEvC,E","sources":["webpack://top10/./wwwroot/Content/scripts/src/app/ui/tooltip/tooltip.js"],"sourcesContent":["/* app/ui/tooltip/tooltip */\r\n\r\nimport $ from 'jquery';\r\nimport { activate } from 'Util/activate';\r\nimport { publish, subscribe } from 'Util/pubsub';\r\n\r\nconst Positions = {\r\n\tRIGHT: 0,\r\n\tLEFT: 1\r\n};\r\n\r\nvar Tooltip = {\r\n\tinit: function () {\r\n\t\tTooltip.initEvents();\r\n\t\tTooltip.initSubscriptions();\r\n\t},\r\n\r\n\tinitEvents: function () {\r\n\t\t$(document)\r\n\t\t\t.on('click keyup', activate(Tooltip._processOutsideClick))\r\n\t\t\t.on('click keyup', '.js-tooltip__trigger, .js-tooltip__close', activate(Tooltip._processClick));\r\n\t},\r\n\r\n\tinitSubscriptions: function () {\r\n\t\tsubscribe('tooltip/open', Tooltip._open);\r\n\t\tsubscribe('tooltip/close', Tooltip._close);\r\n\t\tsubscribe('tooltip/closeAll', Tooltip._closeAll);\r\n\t},\r\n\r\n\t_processOutsideClick: function (e) {\r\n\t\tvar $this = $(e.target);\r\n\r\n\t\tif (!$this.closest('.js-tooltip').length) {\r\n\t\t\tpublish('tooltip/closeAll');\r\n\t\t}\r\n\t},\r\n\r\n\t_processClick: function (e) {\r\n\t\tvar $tooltip = $(e.target).closest('.js-tooltip');\r\n\r\n\t\tif ($tooltip.hasClass('is-open')) {\r\n\t\t\tpublish('tooltip/close', {\r\n\t\t\t\ttooltip: $tooltip\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tpublish('tooltip/open', {\r\n\t\t\t\ttooltip: $tooltip\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_getPosition: function ($tooltip) {\r\n\t\t$tooltip = $tooltip.closest('.js-tooltip');\r\n\t\tvar $body = $tooltip.find('.js-tooltip__body'),\r\n\t\t\tposition = Positions.RIGHT,\r\n\t\t\tisShown = $tooltip.hasClass('is-open'),\r\n\r\n\t\t\tgap,\r\n\t\t\trightMaxWidth,\r\n\t\t\tleftMaxWidth;\r\n\r\n\t\tif (!isShown) {\r\n\t\t\t$tooltip.addClass('is-open');\r\n\t\t}\r\n\t\t$tooltip.removeClass('c-tooltip--left');\r\n\r\n\t\tif ($body.data('tooltip-max-width')) {\r\n\t\t\t$body.css('max-width', $body.data('tooltip-max-width'));\r\n\t\t}\r\n\r\n\t\tif (($body.offset().left + $body.outerWidth()) > $(window).width()) {\r\n\t\t\t// Would go off the right side of the screen\r\n\r\n\t\t\t// Distance between tooltip and trigger\r\n\t\t\t// Check margin-left because left class is always removed before this\r\n\t\t\tgap = parseInt($body.css('margin-left'), 10);\r\n\r\n\t\t\tif ($body.offset().left > $body.outerWidth() + $tooltip.find('.js-tooltip__trigger').outerWidth() + 2 * gap) {\r\n\t\t\t\t// Won't go off the left side of the screen\r\n\t\t\t\tposition = Positions.LEFT;\r\n\t\t\t} else {\r\n\t\t\t\t// Would go off either side of the screen, so restrict the width\r\n\r\n\t\t\t\tif (!$body.data('tooltip-max-width')) {\r\n\t\t\t\t\t$body.data('tooltip-max-width', $body.css('max-width'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Current width, minus the amount it would stick out the right side\r\n\t\t\t\trightMaxWidth = $body.outerWidth() - ($body.offset().left + $body.outerWidth() - $(window).width());\r\n\r\n\t\t\t\tleftMaxWidth = $body.outerWidth() - ($body.outerWidth() + $tooltip.find('.js-tooltip__trigger').outerWidth() + 2 * gap - $body.offset().left);\r\n\r\n\t\t\t\tif (rightMaxWidth > leftMaxWidth) {\r\n\t\t\t\t\t$body.css('max-width', rightMaxWidth + 'px');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$body.css('max-width', leftMaxWidth + 'px');\r\n\t\t\t\t\tposition = Positions.LEFT;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!isShown) {\r\n\t\t\t$tooltip.removeClass('is-open');\r\n\t\t}\r\n\r\n\t\treturn position;\r\n\t},\r\n\r\n\t_open: function (data) {\r\n\t\tvar $tooltip = $(data.tooltip).closest('.js-tooltip'),\r\n\t\t\tposition = Tooltip._getPosition($tooltip);\r\n\r\n\t\t$tooltip.addClass('is-open');\r\n\r\n\t\tif (position === Positions.LEFT) {\r\n\t\t\t$tooltip.addClass('c-tooltip--left');\r\n\t\t} else {\r\n\t\t\t$tooltip.removeClass('c-tooltip--left');\r\n\t\t}\r\n\t},\r\n\r\n\t_close: function (data) {\r\n\t\tvar $tooltip = $(data.tooltip).closest('.js-tooltip');\r\n\r\n\t\t$tooltip.removeClass('is-open');\r\n\t},\r\n\r\n\t_closeAll: function (data) {\r\n\t\tvar $container = $(data && data.container);\r\n\r\n\t\tif ($container && $container.length) {\r\n\t\t\t// Close all tooltips within this container\r\n\t\t\t$container.find('.js-tooltip.is-open').removeClass('is-open');\r\n\t\t} else {\r\n\t\t\t// Close all tooltips everywhere\r\n\t\t\t$('.js-tooltip.is-open').removeClass('is-open');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport { Tooltip };"],"names":["Tooltip","init","initEvents","initSubscriptions","$","document","on","activate","_processOutsideClick","_processClick","subscribe","_open","_close","_closeAll","e","target","closest","length","publish","$tooltip","hasClass","tooltip","_getPosition","gap","rightMaxWidth","leftMaxWidth","$body","find","position","isShown","addClass","removeClass","data","css","offset","left","outerWidth","window","width","parseInt","$container","container"],"sourceRoot":""}