{"version":3,"file":"Overlay.js","names":["defineDs","m","activeOverlays","Overlay","template","$container","prop","$wrapper","document","getElementById","classList","add","$overlayElement","clear","deferred","startComputation","removeOverlay","parentNode","removeChild","length","lowerOverlay","index","class","endComputation","resolve","bind","splice","redraw","className","replace","promise","handleClose","render","$component","component","controller","view","mount","show","e","preventDefault","$overlay","createElement","body","appendChild","push","indexOf","otherOverlays","slice","forEach","otherOverlay"],"sources":["Shared/Framework/Mithril/Scripts/Templates/Overlay.js"],"sourcesContent":["defineDs('Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n var activeOverlays = [];\r\n\r\n // Context:\r\n var Overlay = function (template) {\r\n\r\n // Variables:\r\n this.template = template;\r\n this.$container = m.prop();\r\n this.$wrapper = m.prop(document.getElementById('wrapper'));\r\n this.$wrapper().classList.add('modal-wrapper');\r\n\r\n var $overlayElement = m.prop();\r\n\r\n this.$overlayElement = $overlayElement;\r\n\r\n // Functions:\r\n this.clear = function () {\r\n var $container = this.$container();\r\n var $wrapper = this.$wrapper();\r\n var deferred = m.deferred();\r\n m.startComputation();\r\n\r\n var removeOverlay = function () {\r\n if ($container && $container.parentNode) {\r\n $container.parentNode.removeChild($container);\r\n if (activeOverlays.length > 0) {\r\n var lowerOverlay = activeOverlays[this.index - 1];\r\n if (lowerOverlay && lowerOverlay.template) {\r\n lowerOverlay.template.class('');\r\n }\r\n }\r\n }\r\n m.endComputation();\r\n deferred.resolve();\r\n }.bind(this);\r\n\r\n // Remove overlay from collection\r\n activeOverlays.splice(this.index, 1);\r\n\r\n removeOverlay();\r\n m.redraw(true);\r\n\r\n if (activeOverlays.length === 0) {\r\n $wrapper.className = $wrapper.className.replace('overlay-active', '');\r\n }\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n var handleClose = function () {\r\n return this.clear();\r\n }.bind(this);\r\n\r\n this.handleClose = handleClose;\r\n\r\n this.render = function () {\r\n var $component = m.component({\r\n controller: template.controller ? template.controller : function () {\r\n this.handleClose = handleClose;\r\n this.$overlayElement = $overlayElement;\r\n },\r\n view: template.view ? template.view : function () {\r\n return template.render(this.handleClose, this.$overlayElement);\r\n }.bind(this)\r\n }, { handleClose: this.handleClose });\r\n\r\n m.mount(this.$container(), $component);\r\n\r\n }.bind(this);\r\n\r\n this.show = function (e) {\r\n if (e) e.preventDefault();\r\n\r\n var $overlay = document.createElement('div');\r\n this.$container($overlay);\r\n document.body.appendChild(this.$container());\r\n this.render();\r\n\r\n activeOverlays.push(this);\r\n this.index = activeOverlays.length - 1;\r\n\r\n this.$wrapper().classList.add('overlay-active');\r\n /*\r\n This takes all overlays, if there is more than 1,\r\n then take all other overlays in array and add\r\n specific class to it, if the current is the one on top\r\n */\r\n if (activeOverlays.indexOf(this) === activeOverlays[activeOverlays.length - 1].index && activeOverlays.length > 1) {\r\n var otherOverlays = activeOverlays.slice(0, activeOverlays.length - 1);\r\n otherOverlays.forEach(function (otherOverlay) {\r\n otherOverlay.template.class('is--behind-other-modal');\r\n });\r\n m.redraw(true);\r\n }\r\n }.bind(this);\r\n\r\n return this;\r\n };\r\n\r\n // Public functions:\r\n return Overlay;\r\n });\r\n"],"mappings":"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","ignoreList":[]}