{"version":3,"sources":["webpack:///D:/a/1/s/frontend/src/views/widgets/wzModal/js/wzModal.js","webpack:///D:/a/1/s/frontend/node_modules/babel-runtime/core-js/json/stringify.js","webpack:///D:/a/1/s/frontend/node_modules/core-js/library/fn/json/stringify.js"],"names":["__webpack_require__","WzModal","_classCallCheck3","default","this","currentPageUrl","encodeURIComponent","window","location","pathname","$template","$","template","html","triggerTypes","data","trigger","closingOptions","closing","modalId","modalKey","localModalOptions","JSON","parse","localStorage","getItem","$modal","_this","shouldShowModal","openHandler","then","open","addEventHandler","_modalOptions","_","isEqual","length","removeClass","append","addClass","_this2","toTimeInSeconds","toTimeInMinutes","resolveFn","clearTimeout","off","_promise2","resolve","reject","forEach","Type","setTimeout","Value","docHeight","document","height","winHeight","on","e","scrollPercent","scrollTop","Math","round","_this3","preventDefault","close","closedHandler","saveModalOptions","_options","merge","_saveOptions","setItem","_stringify2","module","exports","__esModule","core","$JSON","stringify","it","apply","arguments"],"mappings":"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","file":"widget-23.b9f88d4cffa17521b332.js","sourcesContent":["import _ from 'lodash';\n\nexport class WzModal {\n constructor() {\n this.currentPageUrl = encodeURIComponent(window.location.pathname);\n this.$template = $('#WzModal');\n this.template = this.$template.html();\n this.triggerTypes = this.$template.data('triggerTypes');\n this.trigger = this.$template.data('trigger');\n this.closingOptions = this.$template.data('closingOptions');\n this.closing = this.$template.data('closing');\n this.modalId = this.$template.data('guid');\n this.modalKey = `WzModal-${this.currentPageUrl}`;\n this.localModalOptions = JSON.parse(\n localStorage.getItem(this.closing) || localStorage.getItem(this.modalKey)\n );\n this.$modal = null;\n }\n\n init() {\n if (this.shouldShowModal()) {\n this.openHandler().then(() => {\n this.open();\n this.addEventHandler();\n });\n }\n }\n\n shouldShowModal() {\n if (!this.localModalOptions || !this.localModalOptions[this.modalId]) {\n return true;\n }\n if (this.closing === 'ClosePopupForThisPage') return false;\n const _modalOptions = this.localModalOptions[this.modalId];\n if (!_.isEqual(this.trigger, _modalOptions.trigger)) return true;\n if (this.closing !== _modalOptions.closing) return true;\n if (this.closing === 'KeepShowingPopup') return true;\n return false;\n }\n\n open() {\n if (this.$modal && this.$modal.length) {\n this.$modal.removeClass('hidden');\n } else {\n $('body').append(this.template);\n this.$modal = $('[data-role=\"wz-modal\"]');\n }\n\n $('html, body').addClass('wz-fixed');\n }\n\n openHandler() {\n let toTimeInSeconds;\n let toTimeInMinutes;\n\n const resolveFn = () => {\n if (toTimeInSeconds) {\n clearTimeout(toTimeInSeconds);\n toTimeInSeconds = null;\n }\n if (toTimeInMinutes) {\n clearTimeout(toTimeInMinutes);\n toTimeInMinutes = null;\n }\n $(window).off('scroll.ScrollPercentage');\n };\n\n return new Promise((resolve, reject) => {\n if (!this.trigger) reject('Trigger Options are empty');\n this.trigger.forEach((trigger) => {\n if (trigger.Type === 'TimeInSeconds') {\n toTimeInSeconds = setTimeout(() => {\n resolveFn();\n resolve(trigger);\n }, (trigger.Value || 0) * 1000);\n } else if (trigger.Type === 'TimeInMinutes') {\n toTimeInMinutes = setTimeout(() => {\n resolveFn();\n resolve(trigger);\n }, (trigger.Value || 0) * 60 * 1000);\n } else if (trigger.Type === 'ScrollPercentage') {\n const docHeight = $(document).height();\n const winHeight = $(window).height();\n $(window).on('scroll.ScrollPercentage', (e) => {\n const scrollTop = $(window).scrollTop();\n const scrollPercent = scrollTop / (docHeight - winHeight);\n const scrollPercentRounded = Math.round(scrollPercent * 100);\n if (scrollPercentRounded >= trigger.Value) {\n resolveFn();\n resolve(trigger);\n }\n });\n } else {\n resolveFn();\n resolve(trigger);\n }\n });\n });\n }\n\n addEventHandler() {\n if (!this.$modal || !this.$modal.length) return;\n\n this.$modal.off('click.close').on('click.close', '.modal-close', (e) => {\n e.preventDefault();\n this.close();\n this.closedHandler();\n });\n }\n\n close() {\n if (this.$modal && this.$modal.length) {\n this.$modal.addClass('hidden');\n $('html, body').removeClass('wz-fixed');\n }\n }\n\n closedHandler() {\n if (!this.closing) return;\n this.saveModalOptions();\n }\n\n saveModalOptions() {\n let _options;\n if (this.trigger) {\n _options = {\n trigger: this.trigger,\n };\n }\n if (this.closing) {\n _options = _.merge(_options, { closing: this.closing });\n }\n\n let _saveOptions = {};\n _saveOptions[this.modalId] = _options;\n this.localModalOptions = _saveOptions;\n\n if (this.closing === 'ClosePopupForThisPage') {\n localStorage.setItem(this.modalKey, JSON.stringify(_saveOptions));\n } else if (this.closing === 'ClosePopupForThisSite') {\n localStorage.setItem(this.closing, JSON.stringify(_saveOptions));\n } else {\n localStorage.setItem(this.modalKey, JSON.stringify(_saveOptions));\n }\n }\n}\n","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n"],"sourceRoot":""}