{"version":3,"file":"js/modularity.4769fc4c71a9ccc7ffc1.js","mappings":"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","sources":["webpack://modularity/./source/js/prompt/modal.ts","webpack://modularity/webpack/bootstrap","webpack://modularity/./source/js/editor/autosave.js","webpack://modularity/./source/js/editor/dragAndDrop.js","webpack://modularity/./source/js/editor/module.js","webpack://modularity/./source/js/editor/thickbox.js","webpack://modularity/./source/js/editor/validate.js","webpack://modularity/./source/js/helpers/helpers.js","webpack://modularity/./source/js/helpers/widget.js","webpack://modularity/./source/js/helpers/ModulesRestAPI.js","webpack://modularity/./source/js/helpers/Module.js","webpack://modularity/./source/js/helpers/ModuleRefresher.js","webpack://modularity/./source/js/modularity.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Modal {\n constructor() {\n Object.defineProperty(this, \"modalContainer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isOpen\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.modalContainer = null;\n this.body = document.body;\n this.isOpen = false;\n this.handleEvents();\n }\n createModalContent(url) {\n return `\n
\n \n
\n \n
\n `;\n }\n open(url) {\n this.modalContainer = document.createElement('div');\n this.modalContainer.id = 'modularity-modal';\n this.modalContainer.innerHTML = this.createModalContent(url);\n this.body.appendChild(this.modalContainer);\n this.body.classList.add('modularity-modal-open');\n this.isOpen = true;\n }\n close() {\n if (this.modalContainer) {\n this.body.removeChild(this.modalContainer);\n this.body.classList.remove('modularity-modal-open');\n this.isOpen = false;\n }\n }\n handleEvents() {\n this.body.addEventListener('click', (e) => {\n const target = e.target;\n if (target && target.getAttribute('data-modularity-modal-action') === 'close') {\n e.preventDefault();\n this.close();\n }\n });\n }\n}\nexports.default = Modal;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","let lModularity = null;\n$ = jQuery;\n\nexport default function Autosave(Modularity) {\n lModularity = Modularity;\n $(function(){\n //this.handleEvents();\n }.bind(this));\n}\n\nAutosave.prototype.save = function (selector) {\n $('#modularity-options #publishing-action .spinner').css('visibility', 'visible');\n var request = $(selector).serializeObject();\n request.id = modularity_post_id;\n request.action = 'save_modules';\n\n $.post(ajaxurl, request, function (response) {\n $('#modularity-options #publishing-action .spinner').css('visibility', 'hidden');\n });\n};\n\njQuery.fn.serializeObject = function()\n{\n var o = {};\n var a = this.serializeArray();\n jQuery.each(a, function() {\n if (o[this.name] !== undefined) {\n if (!o[this.name].push) {\n o[this.name] = [o[this.name]];\n }\n o[this.name].push(this.value || '');\n } else {\n o[this.name] = this.value || '';\n }\n });\n return o;\n};","var sortableIn;\nlet lModularity = null\n$ = jQuery;\n\nexport default function DragAndDrop(Modularity) {\n lModularity = Modularity;\n\n $(function(){\n\n if (typeof pagenow !== 'undefined' && pagenow == 'admin_page_modularity-editor') {\n this.init();\n }\n\n }.bind(this));\n}\n\n/**\n * Initialize\n * @return {void}\n */\nDragAndDrop.prototype.init = function () {\n this.setupDraggable();\n this.setupDroppable();\n this.setupSortable();\n};\n\nDragAndDrop.prototype.setupSortable = function () {\n $('.modularity-js-sortable').sortable({\n handle: '.modularity-sortable-handle',\n connectWith: '.modularity-js-sortable',\n placeholder: 'ui-sortable-placeholder',\n start: function(e, ui) {\n try {\n var validTargetAreas = jQuery(ui.item).attr('data-sidebar-incompability');\n validTargetAreas = JSON.parse(validTargetAreas);\n if (validTargetAreas && typeof validTargetAreas === \"object\") {\n jQuery(\".modularity-sidebar-area\").each(function(index, sidebar) {\n if(!validTargetAreas.includes(jQuery(this).attr('data-area-id'))) {\n jQuery(this).parent().parent().removeClass(\"modularity-incompatible-area\");\n } else {\n jQuery(this).parent().parent().addClass(\"modularity-incompatible-area\");\n }\n });\n }\n }\n catch(error) {\n console.log(\"Incompability information not defined - \" + error);\n }\n },\n stop: function (e, ui) {\n var sidebarId = ui.item.parents('ul').data('area-id');\n ui.item.find('input[name^=\"modularity_modules\"]').each(function (index, element) {\n var newName = $(this).attr('name').replace(/\\[(.*?)\\]/i, '[' + sidebarId + ']');\n $(this).attr('name', newName);\n });\n jQuery(\"[id^=modularity-mb-]\").removeClass(\"modularity-incompatible-area\");\n }\n }).bind(this);\n};\n\n/**\n * Setup draggable functionallity\n * @return {void}\n */\nDragAndDrop.prototype.setupDraggable = function () {\n $('.modularity-js-draggable').draggable({\n appendTo: 'body',\n containment: 'document',\n scroll: false,\n helper: 'clone',\n revert: 'invalid',\n revertDuration: 200,\n start: function( event, ui ) {\n try {\n var validTargetAreas = jQuery(this).attr('data-sidebar-incompability');\n validTargetAreas = JSON.parse(validTargetAreas);\n\n if (validTargetAreas && typeof validTargetAreas === \"object\") {\n jQuery(\".modularity-sidebar-area\").each(function(index, sidebar) {\n if(!validTargetAreas.includes(jQuery(this).attr('data-area-id'))) {\n jQuery(this).parent().parent().removeClass(\"modularity-incompatible-area\");\n } else {\n jQuery(this).parent().parent().addClass(\"modularity-incompatible-area\");\n }\n });\n }\n }\n catch(error) {\n console.log(\"Incompability information not defined - \" + error);\n }\n },\n stop: function( event, ui ) {\n jQuery(\"[id^=modularity-mb-]\").removeClass(\"modularity-incompatible-area\");\n },\n\n });\n};\n\n/**\n * Setup droppable functionallity\n * @return {void}\n */\nDragAndDrop.prototype.setupDroppable = function () {\n $('.modularity-js-droppable').droppable({\n accept: '.modularity-js-draggable',\n hoverClass: 'modularity-state-droppable',\n drop: function (e, ui) {\n this.appendModule(e, ui);\n }.bind(this)\n }).bind(this);\n};\n\n/**\n * Appends a module to the target when dropped\n * @param {object} e Event\n * @param {object} ui UI\n * @return {void}\n */\nDragAndDrop.prototype.appendModule = function (e, ui) {\n var module = ui.draggable;\n var moduleName = module.find('.modularity-module-name').text();\n var moduleId = module.data('module-id');\n var incompability = module.attr('data-sidebar-incompability');\n\n lModularity.Editor.Module.addModule(e.target, moduleId, moduleName, undefined, undefined, undefined, undefined, undefined, incompability);\n};","let lModularity = null\n$ = jQuery;\nvar initCompleted = false;\nlet hasChangedContent = [];\n\n/**\n * Object to create Thickbox querystring from\n * @type {Object}\n */\nvar thickboxOptions = {\n is_thickbox: true,\n};\n\nvar editingModule = false;\n\nexport default function Module(Modularity) {\n lModularity = Modularity;\n\n $(function(){\n if (typeof pagenow !== 'undefined' && pagenow == 'admin_page_modularity-editor') {\n this.handleEvents();\n this.loadModules(modularity_post_id);\n }\n }.bind(this));\n}\n\n/**\n * Loads saved modules and adds them to the page\n * @param {integer} postId The post id to load modules from\n * @return {void}\n */\nModule.prototype.loadModules = function (postId) {\n var pageLoadField = $('[name=\"modularity-option-page-loading\"]');\n var form = pageLoadField.closest('form');\n var submitButton = form.find('[type=\"submit\"]');\n submitButton.prop('disabled', true);\n \n var request = {\n action: 'get_post_modules',\n id: postId\n };\n\n $.post(ajaxurl, request, function (response) {\n $.each(response, function (sidebar, modules) {\n var sidebarElement = $('.modularity-sidebar-area[data-area-id=\"' + sidebar + '\"]');\n \n $.each(modules.modules, function (key, data) {\n if (data.hidden == 'true') {\n data.hidden = true;\n }\n\n var incompability = (typeof data.sidebar_incompability != 'undefined' && !$.isEmptyObject(data.sidebar_incompability)) ? JSON.stringify(data.sidebar_incompability) : '';\n this.addModule(sidebarElement, data.post_type, data.post_type_name, data.post_title, data.ID, data.hidden, data.columnWidth, data.isDeprecated, incompability);\n }.bind(this));\n\n sidebarElement.removeClass('modularity-spinner');\n }.bind(this));\n\n initCompleted = true;\n pageLoadField.remove();\n submitButton.removeAttr('disabled');\n $('.modularity-sidebar-area').removeClass('modularity-spinner');\n }.bind(this), 'json');\n};\n\n/**\n * Check editing module\n * @return {boolean/string}\n */\nModule.prototype.isEditingModule = function() {\n return editingModule;\n};\n\n/**\n * Generates a thickbox url to open a thickbox in correct mode\n * @param {string} action Should be \"add\" or \"edit\"\n * @param {object} data Should contain additional data (for now supports \"postId\" and \"postType\")\n * @return {string} Thickbox url\n */\nModule.prototype.getThickBoxUrl = function (action, data) {\n var base = '';\n var querystring = {};\n\n switch (action) {\n case 'add':\n base = 'post-new.php';\n break;\n\n case 'edit':\n base = 'post.php';\n break;\n }\n\n if (typeof data.postId == 'number') {\n querystring.post = data.postId;\n querystring.action = 'edit';\n }\n\n if (typeof data.postType == 'string') {\n querystring.post_type = data.postType;\n }\n\n return admin_url + base + '?' + $.param(querystring) + '&' + $.param(thickboxOptions);\n};\n\nModule.prototype.getImportUrl = function (data) {\n var base = 'edit.php';\n var querystring = {};\n\n querystring.post_type = data.postType;\n\n return admin_url + base + '?' + $.param(querystring) + '&' + $.param(thickboxOptions);\n};\n\n/**\n * Adds a module \"row\" to the target placeholder\n * @param {selector} target The target selector\n * @param {string} moduleId The module id slug\n * @param {string} moduleName The module name\n */\nModule.prototype.addModule = function (target, moduleId, moduleName, moduleTitle, postId, hidden, columnWidth, isDeprecated, incompability) {\n moduleTitle = (typeof moduleTitle != 'undefined') ? ': ' + moduleTitle : '';\n postId = (typeof postId != 'undefined') ? postId : '';\n columnWidth = (typeof columnWidth != 'undefined') ? columnWidth : '';\n var deprecated = (isDeprecated === true) ? '(' + modularityAdminLanguage.deprecated + ')' : '';\n incompability = (typeof incompability != 'undefined') ? incompability : '';\n\n // Get thickbox url\n var thickboxUrl = this.getThickBoxUrl('add', {\n postType: moduleId\n });\n\n // Set thickbox action\n lModularity.Editor.Thickbox.postAction = 'add';\n\n if (postId) {\n thickboxUrl = this.getThickBoxUrl('edit', {\n postId: postId\n });\n\n lModularity.Editor.Thickbox.postAction = 'edit';\n }\n\n // Get import url\n var importUrl = this.getImportUrl({\n postType: moduleId\n });\n\n // Check/uncheck hidden checkbox\n var isHidden = '';\n if (hidden === true) {\n isHidden = 'checked';\n }\n\n var sidebarId = $(target).data('area-id');\n var itemRowId = Math.random().toString(36).substr(2, 9); // ToDO: Fix uuid helper lModularity.Helpers.uuid();\n\n var html = '
  • \\\n \\\n \\\n \\\n ' + moduleName + '\\\n ' + deprecated + '\\\n ' + moduleTitle + '\\\n \\\n \\\n \\\n \\\n \\\n \\\n \\\n ' + modularityAdminLanguage.langedit + '\\\n ' + modularityAdminLanguage.langimport + '\\\n ' + modularityAdminLanguage.langremove + '\\\n \\\n \\\n \\\n
  • ';\n\n //Store\n $(target).append(html);\n\n this.getAllCurrentModules();\n\n //Update width selector\n $('.modularity-sidebar-area > li').each(function(index, item) {\n $('.modularity-module-columns select', $(item)).val($(item).attr('data-module-stored-width'));\n });\n\n //Refresh\n $('.modularity-js-sortable').sortable('refresh');\n};\n\nModule.prototype.getAllCurrentModules = function () {\n const sliderAreas = document.querySelectorAll('.modularity-sidebar-area');\n let sliderAreasItemsArray = [];\n sliderAreas.forEach(area => {\n area.querySelectorAll('li').forEach(item => {\n if (item.hasAttribute('id')) {\n sliderAreasItemsArray.push(item.getAttribute('id'));\n }\n })\n });\n hasChangedContent = sliderAreasItemsArray;\n}\n\n/**\n * Updates a module \"row\" after editing the module post\n * @param {DOM} module Module dom element\n * @param {object} data The data\n * @return {void}\n */\nModule.prototype.updateModule = function (module, data) {\n // Href\n module.find('a.modularity-js-thickbox-open').attr('href', this.getThickBoxUrl('edit', {\n postId: data.post_id\n }));\n\n // Post id input\n module.find('input.modularity-js-module-id').val(data.post_id).change();\n\n // Post title\n module.find('.modularity-module-title').text(': ' + data.title);\n};\n\n/**\n * Removes a module \"row\" from the placeholder\n * @param {DOM Element} module The (to be removed) module's dom element\n * @return {void}\n */\nModule.prototype.removeModule = function(module) {\n if (confirm(modularityAdminLanguage.actionRemove)) {\n module.remove();\n }\n};\n\n/**\n * Compare two arrays\n * @return array\n */\nModule.prototype.arraysAreEqual = function(a = [], b = []) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Handle events\n * @return {void}\n */\nModule.prototype.handleEvents = function() {\n let saveButtonClicked = false;\n const saveButton = document.getElementById('publish');\n\n if (saveButton) {\n saveButton.addEventListener('click', () => {\n saveButtonClicked = true;\n });\n }\n\n window.addEventListener('beforeunload', (e) => {\n const modules = document.querySelectorAll('.modularity-sidebar-area > li');\n let arr = [];\n modules.forEach(element => {\n if (element.hasAttribute('id')) {\n arr.push(element.getAttribute('id'));\n }\n });\n\n if (!saveButtonClicked && !this.arraysAreEqual(arr, hasChangedContent)) {\n e.returnValue = \"\";\n }\n });\n\n // Trash icon\n $(document).on('click', '.modularity-module-remove', function (e) {\n e.preventDefault();\n var target = $(e.target).closest('li');\n this.removeModule(target);\n }.bind(this));\n\n //Import\n $(document).on('click', '.modularity-js-thickbox-import', function (e) {\n e.preventDefault();\n\n var el = $(e.target).closest('a');\n editingModule = $(e.target).closest('li');\n\n lModularity.Editor.Thickbox.postAction = 'import';\n lModularity.Prompt.Modal.open($(e.target).closest('a').attr('href'));\n });\n\n // Edit\n $(document).on('click', '.modularity-js-thickbox-open', function (e) {\n e.preventDefault();\n\n var el = $(e.target).closest('a');\n if (el.attr('href').indexOf('post.php') > -1) {\n lModularity.Editor.Thickbox.postAction = 'edit';\n }\n\n editingModule = $(e.target).closest('li');\n\n lModularity.Prompt.Modal.open($(e.target).closest('a').attr('href'));\n }.bind(this));\n};","/**\n * Attention: This variable should not be set manually\n *\n * Indicates if we are adding a new post or editing old one\n * @type {String}\n */\nvar postAction = 'add';\nlet lModularity = null\n$ = jQuery;\n\nexport default function Thickbox(Modularity) {\n lModularity = Modularity;\n}\n\nThickbox.prototype.modulePostCreated = function (postId) {\n lModularity.Prompt.Modal.close();\n\n var module = parent.Modularity.Editor.Module.isEditingModule();\n\n var request = {\n action: 'get_post',\n id: postId\n };\n\n $.post(ajaxurl, request, function (response) {\n var data = {\n post_id: response.ID,\n title: response.post_title\n };\n\n lModularity.Editor.Module.updateModule(module, data);\n lModularity.Editor.Autosave.save('form');\n }, 'json');\n};","let lModularity = null\n$ = jQuery;\nvar hasErrors = false;\nvar errorClass = 'validation-error';\n\nexport default function Validate(Modularity) {\n lModularity = Modularity;\n \n this.handleEvents();\n}\n\n/**\n * Run validation methods\n * @return {void}\n */\nValidate.prototype.run = function () {\n hasErrors = false;\n this.checkRequired();\n};\n\n/**\n * Check required fileds is not empty\n * @return void\n */\nValidate.prototype.checkRequired = function () {\n var required = $('[required]');\n required.removeClass(errorClass);\n\n required.each(function (index, element) {\n if ($(element).val().length === 0) {\n $(element).parents('li').addClass(errorClass);\n\n $(element).one('change', function (e) {\n $(e.target).parents('li').removeClass(errorClass);\n });\n\n hasErrors = true;\n }\n }.bind(this));\n};\n\n/**\n * Handle events\n * @return void\n */\nValidate.prototype.handleEvents = function () {\n $(document).on('click', '#modularity-mb-editor-publish #publish', function (e) {\n this.run();\n\n if (hasErrors) {\n $('#modularity-mb-editor-publish .spinner').css('visibility', 'hidden');\n return false;\n }\n\n return true;\n }.bind(this));\n};","let lModularity = null;\n$ = jQuery;\n\nexport default function Helpers(Modularity) {\n lModularity = Modularity;\n $(function(){\n }.bind(this));\n}\n\nHelpers.prototype.uuid = function (separator) {\n return Math.random().toString(36).substr(2, 9);\n};","var editingWidget = false;\nlet lModularity = null;\n$ = jQuery;\n\nexport default function Widget(Modularity) {\n $(function(){\n lModularity = Modularity;\n /* Import */\n $(document).on('click', '.modularity-js-thickbox-widget-import-widget', function (e) {\n e.preventDefault();\n\n editingWidget = $(e.target).parents('.widget-inside');\n\n var importUrl = Modularity.Editor.Module.getImportUrl({\n postType: $(e.target).parents('.widget-inside').find('.modularity-widget-module-type select').val()\n });\n\n Modularity.Editor.Module.editingModule = $(e.target).closest('.widget-inside');\n\n Modularity.Editor.Thickbox.postAction = 'import-widget';\n Modularity.Prompt.Modal.open(importUrl);\n });\n\n\n /* Edit */\n $(document).on('click', '.modularity-js-thickbox-open-widget', function (e) {\n e.preventDefault();\n\n var el = $(e.target).closest('a');\n if (el.attr('href').indexOf('post.php') > -1) {\n Modularity.Editor.Thickbox.postAction = 'edit';\n }\n\n editingModule = $(e.target).closest('li');\n\n Modularity.Prompt.Modal.open($(e.target).closest('a').attr('href'));\n }.bind(this));\n\n\n }.bind(this));\n}\n\nWidget.prototype.isEditingWidget = function () {\n return editingWidget;\n};\n\nWidget.prototype.updateWidget = function (widget, data) {\n $(widget).find('.modularity-widget-module-id-span').html(data.post_id);\n $(widget).find('.modularity-widget-module-id').val(data.post_id);\n $(widget).find('.modularity-widget-module-edit').attr('href','post.php?post=' + data.post_id + '&action=edit&is_thickbox=true').removeClass('hidden');\n $(widget).find('.modularity-widget-module-title-span').html(data.title);\n $(widget).find('.modularity-widget-module-title').val(data.title);\n};","export const ModulesRestAPIEndpoints = (basePath) => ({\n getModule: `${basePath}modularity/v1/modules`,\n})\n\nexport class ModulesRestAPI {\n\n fetcher = {};\n endpoints = {};\n nonce = '';\n cacheBustKey = 0;\n\n constructor(fetcher, endpoints, nonce) {\n this.fetcher = fetcher;\n this.endpoints = endpoints;\n this.nonce = nonce;\n this.cacheBustKey = Math.floor(Date.now() / 15000);\n }\n\n async getModule(moduleID) {\n const url = `${this.endpoints.getModule}/${moduleID}?_wpnonce=${this.nonce}&cacheBust=${this.cacheBustKey}`;\n const response = await this.fetcher(url);\n\n if (!response.ok) {\n throw new Error(`Could not load module from URL: ${url}`);\n }\n\n const htmlString = await response.json();\n const template = document.createElement('template');\n template.innerHTML = htmlString;\n\n return template.content.firstChild;\n }\n}","/**\n * Module class\n * Represents a module on the page.\n * \n * @property {string} id\n * @property {HTMLElement} element\n * @property {ModulesRestAPI} restAPI\n */\nexport class Module {\n\n static selector = '[data-module-refresh-interval]';\n\n constructor(id, element, restAPI) {\n this.id = id;\n this.element = element;\n this.restAPI = restAPI;\n this.setupEventListeners();\n }\n\n setupEventListeners() {\n\n if( !this.element ) {\n throw new Error('Element is not set.');\n }\n\n this.element.addEventListener('refresh', this.handleRefresh.bind(this));\n\n this.element.addEventListener('DOMNodeRemoved', () => {\n this.element.removeEventListener('refresh', this.handleRefresh);\n });\n }\n\n refresh(interval = null) {\n const refreshEvent = new CustomEvent('refresh');\n this.element.dispatchEvent(refreshEvent);\n\n if (interval) {\n setTimeout(() => {\n this.refresh(interval);\n }, interval);\n }\n }\n\n async handleRefresh() {\n const freshModule = await this.restAPI.getModule(this.id);\n this.replace(freshModule);\n }\n\n\n replace(freshModule) {\n this.element.parentNode.replaceChild(freshModule, this.element);\n this.element = freshModule;\n this.setupEventListeners();\n }\n\n getRefreshInterval() {\n const intervalAttributeValue = this.element.getAttribute('data-module-refresh-interval');\n if (!intervalAttributeValue || isNaN(intervalAttributeValue)) return null;\n return parseInt(intervalAttributeValue) * 1000;\n }\n}","import { Module } from './Module.js';\n\n/**\n * Ensure that the wpApiSettings object is present on the window object.\n * \n * @throws {Error} If wpApiSettings or wpApiSettings.root is not present on the window object.\n */\nexport function ensureWPApiSettings() {\n const { wpApiSettings } = window;\n if (!wpApiSettings?.root) {\n throw new Error('wpApiSettings or wpApiSettings.root is not present on the window object.');\n }\n}\n\nexport class ModuleRefresher {\n\n /**\n * \n * @param ModulesRestAPI restAPI \n */\n constructor(restAPI) {\n this.restAPI = restAPI;\n }\n\n refreshModules() {\n const moduleElements = document.querySelectorAll(Module.selector);\n const modules = Array.from(moduleElements).map((element) => new Module(\n element.getAttribute('data-module-id'), element, this.restAPI\n ));\n\n for (const module of modules) {\n const refreshInterval = module.getRefreshInterval();\n module.refresh(refreshInterval);\n }\n }\n}","import Autosave from './editor/autosave';\nimport DragAndDrop from './editor/dragAndDrop';\nimport Module from './editor/module';\nimport Thickbox from './editor/thickbox';\nimport Validate from './editor/validate';\n\nimport Helpers from './helpers/helpers';\nimport Widget from './helpers/widget';\n\nimport Modal from './prompt/modal';\n\nimport { ModulesRestAPI, ModulesRestAPIEndpoints } from './helpers/ModulesRestAPI';\nimport { ModuleRefresher, ensureWPApiSettings } from './helpers/ModuleRefresher';\n\nif (!parent.Modularity) {\n var Modularity = parent.Modularity || {};\n Modularity.Editor = Modularity.Editor || {};\n Modularity.Editor.Autosave = new Autosave(Modularity);\n Modularity.Editor.DragAndDrop = new DragAndDrop(Modularity);\n Modularity.Editor.Module = new Module(Modularity);\n Modularity.Editor.Thickbox = new Thickbox(Modularity);\n Modularity.Editor.Validate = new Validate(Modularity);\n\n Modularity.Helpers = Modularity.Helpers || {};\n Modularity.Helpers.Helpers = new Helpers(Modularity);\n Modularity.Helpers.Widget = new Widget(Modularity);\n\n Modularity.Prompt = Modularity.Prompt || {};\n Modularity.Prompt.Modal = new Modal(Modularity)\n\n parent.Modularity = Modularity;\n\n (function ($) {\n $('input[type=\"checkbox\"].sidebar-area-activator').on('click', function (e) {\n var isChecked = $(this).is(':checked');\n var value = $(this).attr('value');\n\n if (e.shiftKey) {\n if (!isChecked) {\n $('input.sidebar-area-activator[type=\"checkbox\"][value=\"' + value + '\"]').attr('checked', false);\n } else {\n $('input.sidebar-area-activator[type=\"checkbox\"][value=\"' + value + '\"]').attr('checked', true);\n }\n }\n });\n })(jQuery);\n\n (function ($) {\n\n // Show spinner when clicking save on Modularity options page\n $('#modularity-options #publish').on('click', function () {\n $(this).siblings('.spinner').css('visibility', 'visible');\n });\n\n // Remove the first menu item in the Modularity submenu (admin menu)\n $('a.wp-first-item[href=\"admin.php?page=modularity\"]').parent('li').remove();\n\n // Trigger autosave when switching tabs\n $('#modularity-tabs a').on('click', function (e) {\n if (wp.autosave) {\n $(window).unbind();\n\n wp.autosave.server.triggerSave();\n\n $(document).ajaxComplete(function () {\n return true;\n });\n }\n\n return true;\n });\n\n })(jQuery);\n\n\n /* Auto scrolling content */\n jQuery(document).ready(function ($) {\n if ($('#modularity-mb-modules').length) {\n var offset = $('#modularity-mb-modules').offset();\n $(document).scroll(function () {\n if ($(window).scrollTop() + 50 > offset.top && !$('#modularity-mb-modules').hasClass('is-fixed')) {\n $('#modularity-mb-modules').addClass('is-fixed');\n } else if ($(window).scrollTop() + 50 < offset.top && $('#modularity-mb-modules').hasClass('is-fixed')) {\n $('#modularity-mb-modules').removeClass('is-fixed');\n }\n });\n }\n\n $('.modularity-edit-module a').on('click', function (e) {\n e.preventDefault();\n\n Modularity.Editor.Thickbox.postAction = 'edit-inline-not-saved';\n Modularity.Prompt.Modal.open($(e.target).closest('a').attr('href'));\n });\n });\n\n}\n\n(function () {\n try {\n ensureWPApiSettings();\n\n const { root, nonce } = window.wpApiSettings;\n const fetch = window.fetch.bind(window);\n const endpoints = ModulesRestAPIEndpoints(root);\n const restAPI = new ModulesRestAPI(fetch, endpoints, nonce);\n\n new ModuleRefresher(restAPI).refreshModules();\n } catch (error) {\n console.warn(error);\n }\n})();"],"names":["exports","constructor","Object","defineProperty","this","enumerable","configurable","writable","value","modalContainer","body","document","isOpen","handleEvents","createModalContent","url","modularityAdminLanguage","close","open","createElement","id","innerHTML","appendChild","classList","add","removeChild","remove","addEventListener","e","target","getAttribute","preventDefault","__webpack_module_cache__","lModularity","Autosave","Modularity","$","bind","jQuery","prototype","save","selector","css","request","serializeObject","modularity_post_id","action","post","ajaxurl","response","fn","o","a","serializeArray","each","undefined","name","push","DragAndDrop","pagenow","init","setupDraggable","setupDroppable","setupSortable","sortable","handle","connectWith","placeholder","start","ui","validTargetAreas","item","attr","JSON","parse","index","sidebar","includes","parent","addClass","removeClass","error","console","log","stop","sidebarId","parents","data","find","element","newName","replace","draggable","appendTo","containment","scroll","helper","revert","revertDuration","event","droppable","accept","hoverClass","drop","appendModule","module","moduleName","text","moduleId","incompability","Editor","Module","addModule","hasChangedContent","thickboxOptions","is_thickbox","editingModule","loadModules","postId","pageLoadField","submitButton","closest","prop","modules","sidebarElement","key","hidden","sidebar_incompability","isEmptyObject","stringify","post_type","post_type_name","post_title","ID","columnWidth","isDeprecated","removeAttr","isEditingModule","getThickBoxUrl","base","querystring","postType","admin_url","param","getImportUrl","moduleTitle","deprecated","thickboxUrl","Thickbox","postAction","importUrl","isHidden","itemRowId","Math","random","toString","substr","html","langhide","width","widthOptions","langedit","langimport","langremove","append","getAllCurrentModules","val","sliderAreas","querySelectorAll","sliderAreasItemsArray","forEach","area","hasAttribute","updateModule","post_id","change","title","removeModule","confirm","actionRemove","arraysAreEqual","b","length","i","saveButtonClicked","saveButton","getElementById","window","arr","returnValue","on","Prompt","Modal","indexOf","modulePostCreated","hasErrors","errorClass","Validate","run","checkRequired","required","one","Helpers","uuid","separator","editingWidget","Widget","isEditingWidget","updateWidget","widget","__webpack_require__","cachedModule","__webpack_modules__","ModulesRestAPI","fetcher","endpoints","nonce","_defineProperty","cacheBustKey","floor","Date","now","getModule","moduleID","ok","Error","htmlString","json","template","content","firstChild","restAPI","setupEventListeners","handleRefresh","removeEventListener","refresh","interval","refreshEvent","CustomEvent","dispatchEvent","setTimeout","freshModule","parentNode","replaceChild","getRefreshInterval","intervalAttributeValue","isNaN","parseInt","ModuleRefresher","refreshModules","moduleElements","Array","from","map","refreshInterval","isChecked","is","shiftKey","siblings","wp","autosave","unbind","server","triggerSave","ajaxComplete","ready","offset","scrollTop","top","hasClass","wpApiSettings","root","ensureWPApiSettings","fetch","warn"],"sourceRoot":""}