{"version":3,"file":"overlay.js","mappings":"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","sources":["webpack://d3r-core/./resources/javascript/v2/src/Overlay/Events.js","webpack://d3r-core/./resources/javascript/v2/src/Overlay/ConfigBuilder.js","webpack://d3r-core/./resources/javascript/v2/src/Overlay/Overlay.js","webpack://d3r-core/./resources/javascript/v2/overlay.js"],"sourcesContent":["/**\n * Event types for changes\n */\nconst Events = {\n    OPEN: 'd3r.overlay.open',\n};\n\nexport default Events;\n","export default class ConfigBuilder\n{\n    constructor(element)\n    {\n        this.element = element;\n    }\n\n    get config()\n    {\n        let config = {\n            \"wait_for_scripts\": true,\n            \"escape_to_close\": true,\n            \"modifiers\": [],\n        };\n\n        if (this.crossTransition) {\n            config.cross_transition = true;\n        }\n\n        if (this.modifiers) {\n            config.modifiers = this.modifiers.split(',');\n        }\n        if (this.method) {\n            config.method = this.method;\n        }\n\n        if (this.callback) {\n            config.callback = this.callback;\n        }\n\n        if (this.moveDom) {\n            config.move_dom = true;\n        }\n\n        return config;\n    }\n\n    get crossTransition()\n    {\n        if (this.element.hasAttribute('data-cross-transition')) {\n            return true;\n        }\n\n        return false;\n    }\n\n    get modifiers()\n    {\n        if (this.element.hasAttribute('data-modifiers')) {\n            return this.element.getAttribute('data-modifiers');\n        }\n\n        return null;\n    }\n\n    get method()\n    {\n        if (this.element.tagName == 'FORM' && this.element.hasAttribute('method')) {\n            return this.element.getAttribute('method').toUpperCase();\n        }\n\n        return null;\n    }\n\n    /**\n     * Should we move the actual DOM nodes into the overlay?\n     *\n     * @return {boolean}\n     */\n    get moveDom()\n    {\n        return this.element.hasAttribute('data-move-dom');\n    }\n}\n","import ConfigBuilder from \"./ConfigBuilder\";\nimport Events from \"./Events\";\n\nexport default class Overlay extends EventTarget\n{\n    constructor()\n    {\n        super();\n        this.bind();\n    }\n\n    bind()\n    {\n        D3R.plugins.delegate(document, 'click', 'a[data-overlay]', (e) => {\n            e.preventDefault();\n\n            let self = this;\n            let target = e.closest;\n            let configBuilder = new ConfigBuilder(target);\n            configBuilder.callback = function(callbackEvent) {\n                self.onOpen(this, e, callbackEvent);\n            };\n\n            if (target.hasAttribute('data-target')) {\n                window.Overlay.render(target.getAttribute('data-target'), configBuilder.config);\n            } else if (target.hasAttribute('href') && target.getAttribute('href') != '#') {\n                window.Overlay.load(target.getAttribute('href'), configBuilder.config);\n            }\n        });\n\n        D3R.plugins.delegate(document, 'submit', 'form[data-overlay]', (e) => {\n            e.preventDefault();\n\n            let self = this;\n            let target = e.closest;\n            let configBuilder = new ConfigBuilder(target);\n            configBuilder.callback = function(callbackEvent) {\n                self.onOpen(this, e, callbackEvent);\n            };\n\n            let config = configBuilder.config;\n            let action = target.getAttribute('action');\n\n            let formData = new FormData(target);\n\n            // FormData does not include the value from the submit button by default\n            if (e.submitter) {\n                formData.append(e.submitter.name, e.submitter.value);\n            }\n\n            let params = new URLSearchParams(formData);\n\n            if (config.method == 'POST') {\n                config.data = params.toString();\n            } else {\n                action += '?' + params.toString();\n            }\n\n            window.Overlay.load(action, config);\n        });\n    }\n\n    onOpen(overlay, originalEvent, callbackEvent)\n    {\n        overlay.content.querySelectorAll('form[data-reset]').forEach(form => form.reset())\n\n        var event = new CustomEvent(Events.OPEN, {\n            bubbles: true,\n            detail: {\n                originalEvent: originalEvent,\n                callbackEvent: callbackEvent,\n                overlay: overlay\n            }\n        });\n\n        this.dispatchEvent(event);\n    }\n}\n","import Events from \"./src/Overlay/Events\";\nimport Overlay from \"./src/Overlay/Overlay\";\n\nwindow.D3R = window.D3R || {};\nwindow.D3R.Overlay = new Overlay();\nwindow.D3R.Overlay.Events = Events;\n"],"names":["OPEN","ConfigBuilder","element","_classCallCheck","this","key","get","config","crossTransition","cross_transition","modifiers","split","method","callback","moveDom","move_dom","hasAttribute","getAttribute","tagName","toUpperCase","Overlay","_EventTarget","_this","_callSuper","bind","_inherits","value","_this2","D3R","plugins","delegate","document","e","preventDefault","self","target","closest","configBuilder","callbackEvent","onOpen","window","render","load","action","formData","FormData","submitter","append","name","params","URLSearchParams","data","toString","overlay","originalEvent","content","querySelectorAll","forEach","form","reset","event","CustomEvent","Events","bubbles","detail","dispatchEvent","_wrapNativeSuper","EventTarget"],"sourceRoot":""}