wonder-image 1.5.2 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see head.js.LICENSE.txt */
2
- (()=>{var e={5285:e=>{e.exports="function ajaxRequest(link, onSuccess = reloadPage, params = null) {\n\n loadingSpinner();\n\n $.ajax({\n type: \"POST\",\n url: link,\n data: { \n post: 'true'\n }, \n success: function(data) {\n\n if (onSuccess != null) {\n if (typeof onSuccess === 'function') {\n \n if (params == null) {\n onSuccess();\n } else {\n onSuccess(params);\n }\n \n } else {\n \n try {\n \n var x = JSON.parse(onSuccess.replace('&quot;', '\"'));\n\n var f = x.function;\n var p = x.parameters;\n \n } catch {\n\n var f = onSuccess;\n var p = params;\n\n }\n \n window[f](p);\n \n }\n }\n\n loadingSpinner();\n \n },\n error: function (XMLHttpRequest) {\n ajaxRequestError(XMLHttpRequest);\n loadingSpinner();\n }\n }); \n\n}\n\nfunction reloadPage() {\n\n location.reload();\n \n}\n\nasync function postData(url, data) {\n\n loadingSpinner();\n\n if (data === undefined) {\n\n console.error(\"Non è stato passato alcun dato alla funzione postData()\");\n \n } else {\n\n if (data instanceof FormData === false) {\n var data = createPostData(data)\n }\n \n await fetch(url, {\n method: \"POST\",\n body: data\n })\n .then((response) => { loadingSpinner(); return fetchResponse(response); })\n .then((value) => { return fetchValue(value); })\n .catch((error) => { fetchValue(error); });\n\n }\n\n}\n\nfunction createPostData(array = {}) {\n\n var data = new FormData();\n\n Object.keys(array).forEach(key => {\n data.append(key, array[key]);\n });\n\n return data;\n\n}"},4729:e=>{e.exports="function toastContainer() {\n\n if (document.querySelector('.toast-container')) {\n\n var container = document.querySelector('.toast-container');\n\n }else{\n\n var container = document.createElement('div');\n container.classList.add('toast-container');\n container.classList.add('position-fixed');\n container.classList.add('top-0');\n container.classList.add('end-0');\n container.classList.add('p-3');\n\n document.body.insertBefore(container, document.body.firstChild);\n\n }\n\n return container;\n\n}\n\nfunction alertToast(alert, type = null, title = null, text = null) {\n\n var container = toastContainer();\n\n $(\".toast.show\").toast().hide();\n \n if (alert == 801) {\n\n container.innerHTML = NO_INTERNET_ALERT + container.innerHTML;\n const toast = new bootstrap.Toast(container.firstElementChild);\n toast.show();\n\n } else if (alert != undefined) {\n\n if (alert == 'custom') {\n\n var data = {\n post: 'true',\n backend: 'true',\n alert: alert,\n alertType: type,\n alertTitle: title,\n alertText: text\n }\n\n } else {\n\n var data = {\n post: 'true',\n backend: 'true',\n alert: alert\n };\n\n }\n\n $.ajax({\n type: \"POST\",\n url: pathApp+'/api/alert.php',\n data: data, \n success: function (data) {\n\n container.innerHTML = data + container.innerHTML;\n const toast = new bootstrap.Toast(container.firstElementChild);\n toast.show();\n \n var url = new URL(window.location.href);\n url.searchParams.delete('alert');\n window.history.replaceState(null, null, url);\n \n }\n });\n\n }\n\n}"},8553:e=>{e.exports="function bootstrapToast() {\n\n var toastElList = [].slice.call(document.querySelectorAll('.toast'))\n var toastList = toastElList.map(function(toastEl) {\n return new bootstrap.Toast(toastEl)\n });\n toastList.forEach(toast => toast.show());\n\n}\n\nfunction bootstrapTooltip() { $('[data-bs-toggle=\"tooltip\"]').tooltip(); }\n\nfunction bootstrapTheme(theme) {\n\n document.querySelector(\"html\").setAttribute(\"data-bs-theme\", theme);\n\n localStorage.setItem('theme', theme);\n \n if (theme == 'light') {\n\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.remove('d-none'); }\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.add('d-none'); }\n\n document.querySelector('#be-logo-white').classList.add('d-none');\n document.querySelector('#be-logo-black').classList.remove('d-none');\n\n element = document.querySelector('[data-bs-theme-value=\"light\"]');\n el = document.querySelector('[data-bs-theme-value=\"dark\"]');\n\n } else if (theme == 'dark') {\n\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.add('d-none'); }\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.remove('d-none'); }\n\n document.querySelector('#be-logo-white').classList.remove('d-none');\n document.querySelector('#be-logo-black').classList.add('d-none');\n\n element = document.querySelector('[data-bs-theme-value=\"dark\"]');\n el = document.querySelector('[data-bs-theme-value=\"light\"]');\n\n }\n\n if (el) { el.classList.remove('active'); }\n if (element) { element.classList.add('active'); }\n\n}\n\nfunction setUpBootstrap() {\n \n bootstrapTooltip();\n\n}"},5249:e=>{e.exports='class CustomHyperlink extends Hyperlink {\n iconSvg(name, width = 14, height = 14) {\n const svg = document.createElementNS(\'http://www.w3.org/2000/svg\', \'svg\');\n svg.classList.add(\'icon\', \'icon--\' + name);\n svg.setAttribute(\'width\', \'24\');\n svg.setAttribute(\'height\',\'24\');\n svg.setAttribute(\'viewBox\', \'0 0 24 24\')\n svg.setAttribute(\'fill\', \'none\');\n if (name == \'link\') {\n svg.innerHTML = `\n <path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M7.69998 12.6L7.67896 12.62C6.53993 13.7048 6.52012 15.5155 7.63516 16.625V16.625C8.72293 17.7073 10.4799 17.7102 11.5712 16.6314L13.0263 15.193C14.0703 14.1609 14.2141 12.525 13.3662 11.3266L13.22 11.12"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16.22 11.12L16.3564 10.9805C17.2895 10.0265 17.3478 8.5207 16.4914 7.49733V7.49733C15.5691 6.39509 13.9269 6.25143 12.8271 7.17675L11.3901 8.38588C10.0935 9.47674 9.95706 11.4241 11.0888 12.6852L11.12 12.72"></path>\n `;\n } else {\n svg.innerHTML = `\n <path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M15.7795 11.5C15.7795 11.5 16.053 11.1962 16.5497 10.6722C17.4442 9.72856 17.4701 8.2475 16.5781 7.30145V7.30145C15.6482 6.31522 14.0873 6.29227 13.1288 7.25073L11.8796 8.49999"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8.24517 12.3883C8.24517 12.3883 7.97171 12.6922 7.47504 13.2161C6.58051 14.1598 6.55467 15.6408 7.44666 16.5869V16.5869C8.37653 17.5731 9.93744 17.5961 10.8959 16.6376L12.1452 15.3883"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17.7802 15.1032L16.597 14.9422C16.0109 14.8624 15.4841 15.3059 15.4627 15.8969L15.4199 17.0818"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6.39064 9.03238L7.58432 9.06668C8.17551 9.08366 8.6522 8.58665 8.61056 7.99669L8.5271 6.81397"></path><line x1="12.1142" x2="11.7" y1="12.2" y2="11.7858" stroke="currentColor" stroke-linecap="round" stroke-width="2"></line>\n `;\n }\n return svg;\n }\n}\n\nclass CustomEmded extends Embed {\n \n static get toolbox() {\n return {\n title: \'Iframe\',\n icon: \'<svg width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 1 0-6M14 11a5 5 0 0 1 0 6"></path><line x1="14" y1="7" x2="14" y2="7"></line><line x1="10" y1="17" x2="10" y2="17"></line></svg>\'\n };\n }\n \n /**\n * Render Embed tool content\n *\n * @returns {HTMLElement}\n */\n render() {\n if (!this.data.service) {\n const container = document.createElement(\'div\');\n \n this.element = container;\n const input = document.createElement(\'input\');\n input.classList.add(\'cdx-input\');\n input.placeholder = \'https://www.youtube.com/watch?v=w8vsuOXZBXc\';\n input.type = \'url\';\n input.addEventListener(\'paste\', (event) => {\n const url = event.clipboardData.getData(\'text\');\n const service = Object.keys(Embed.services).find((key) => Embed.services[key].regex.test(url));\n if (service) {\n this.onPaste({detail: {key: service, data: url}});\n }\n });\n container.appendChild(input);\n \n return container;\n }\n return super.render();\n }\n \n validate(savedData) {\n return savedData.service && savedData.source ? true : false;\n }\n}\n\nclass CustomVideoTool extends VideoTool {\n \n static get toolbox() {\n return {\n title: \'Video\',\n icon: \'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 10.5606V13.4394C10 14.4777 11.1572 15.0971 12.0211 14.5211L14.1803 13.0817C14.9536 12.5661 14.9503 11.4317 14.18 10.9181L12.0214 9.47907C11.1591 8.9042 10 9.5203 10 10.5606Z" stroke="black" stroke-width="2"/><rect x="5" y="5" width="14" height="14" rx="4" stroke="black" stroke-width="2"/></svg>\'\n };\n }\n \n}\n\nvar EDITORJS_TOOLS_BLOG = {\n paragraph: {\n inlineToolbar: true,\n tunes: [\'textAlign\']\n },\n header: {\n class: Header,\n inlineToolbar: true,\n tunes: [\'textAlign\'],\n config: {\n placeholder: \'Titolo...\',\n levels: [1, 2, 4],\n defaultLevel: 2\n }\n },\n quote: {\n class: Quote,\n inlineToolbar: true,\n config: {\n quotePlaceholder: \'Scrivi una citazione...\',\n captionPlaceholder: \'Autore\',\n },\n },\n list: {\n class: NestedList,\n inlineToolbar: true,\n config: {\n defaultStyle: \'unordered\'\n },\n },\n delimiter: Delimiter,\n table: {\n class: Table,\n inlineToolbar: [\'link\', \'italic\', \'bold\'],\n },\n // code: CodeTool,\n image: {\n class: ImageTool,\n config: {\n captionPlaceholder: \'Caption...\',\n endpoints: {\n byFile: pathApp+\'/api/backend/editorjs/image.php\'\n // Aggiungere cartella dove caricare i file\n },\n field: \'image\',\n types: \'image/png, image/jpg, image/jpeg\',\n additionalRequestHeaders: { dir: \'\' }\n // Forzo nel css la rimozione "display: none" di withBorder, stretched e withBackground\n }\n },\n gallery: {\n class: ImageGallery,\n config: {\n captionPlaceholder: \'Caption galleria...\',\n endpoints: {\n byFile: pathApp+\'/api/backend/editorjs/image.php\'\n // Aggiungere cartella dove caricare i file\n },\n field: \'image\',\n types: \'image/png, image/jpg, image/jpeg\',\n additionalRequestHeaders: { dir: \'\' }\n // Forzo nel css la rimozione "display: none" di fit e slider\n },\n },\n Marker: Marker,\n inlineCode: InlineCode,\n attaches: {\n class: AttachesTool,\n config: {\n endpoint: pathApp+\'/api/backend/editorjs/file.php\',\n // Aggiungere cartella dove caricare i file\n field: \'file\',\n additionalRequestHeaders: { dir: \'\' }\n }\n },\n // TODO: Aggiungi caricamento video (potrebbe tornare utile la classe ImageTool)\n // video: {\n // class: CustomVideoTool,\n // config: {\n // captionPlaceholder: \'Caption...\',\n // endpoints: {\n // byFile: pathSite+\'/api/task/article/file.php\'\n // },\n // player: {\n // controls: true,\n // autoplay: false,\n // },\n // field: \'file\',\n // types: \'video/quicktime, video/mp4\'\n // // Forzo nel css la rimozione "display: none" di withBorder, stretched e withBackground\n // }\n // },\n // TODO: embed non funziona. Trovare un modo per caricare iframe\n // embed: {\n // class: CustomEmded,\n // },\n textAlign: {\n class: AlignmentTuneTool,\n config:{\n default: "left"\n },\n },\n link: {\n class: CustomHyperlink,\n config: {\n shortcut: \'CMD+L\',\n target: \'_blank\',\n rel: \'nofollow\',\n availableTargets: [\'_blank\', \'_self\'],\n availableRels: [\'author\', \'noreferrer\'],\n validate: false,\n }\n },\n};\n\nvar EDITORJS_TOOLS_TABLE = {\n paragraph: false,\n inlineCode: InlineCode,\n table: {\n class: Table,\n inlineToolbar: [\'link\', \'italic\', \'bold\'],\n }\n};\n\nvar EDITORJS_i18n_IT = {\n messages: {\n ui: {\n "blockTunes": {\n "toggler": {\n "Click to tune": "Modifica",\n "or drag to move": "Trascina per muovere"\n },\n },\n "inlineToolbar": {\n "converter": {\n "Convert to": "Converti"\n }\n },\n "toolbar": {\n "toolbox": {\n "Add": "Aggiungi",\n }\n }\n },\n toolNames: {\n "Add": "Aggiungi",\n "Quote": "Citazione",\n "Delimiter": "Linea",\n "Text": "Testo",\n "Heading": "Titolo",\n "Table": "Tabella",\n "Code": "Codice",\n "List": "Elenco",\n "Bold": "Grassetto",\n "Italic": "Corsivo",\n "Marker": "Evidenzia",\n "InlineCode": "Codice",\n "TextAlign": "Allineamento",\n "Gallery": "Galleria",\n "Image": "Immagine",\n "Attachment": "Allega file",\n },\n tools: {\n "header": {\n "Heading 1": "Titolo grande",\n "Heading 2": "Titolo",\n "Heading 4": "Sottotitolo"\n },\n "link": {\n "Add a link": "Aggiungi link"\n },\n "code": {\n "Enter a code": "Inserisci codice",\n },\n "quote": {\n "Align Left": "Allinea a sinistra",\n "Align Center": "Allinea in centro",\n },\n "table": {\n "With headings": "Con intestazione",\n "Without headings": "Senza intestazione",\n "Add column to left": "Aggiungi colonna sinistra",\n "Add column to right": "Aggiungi colonna destra",\n "Add row above": "Aggiungi riga sopra",\n "Add row below": "Aggiungi riga sotto",\n "Delete column": "Elimina colonna",\n "Delete row": "Elimina riga",\n },\n "list": {\n "Ordered": "Elenco numerato",\n "Unordered": "Elenco puntato",\n },\n "gallery": {\n "Select an Image": "Seleziona immagini",\n },\n "image": {\n "Select an Image": "Seleziona immagine",\n },\n "video": {\n "Select an Video": "Seleziona video",\n },\n "attaches": {\n "Select file to upload": "Seleziona file da allegare",\n },\n },\n blockTunes: {\n "delete": {\n "Delete": "Elimina",\n "Click to delete": "Clicca per elimina"\n },\n "moveUp": {\n "Move up": "Su"\n },\n "moveDown": {\n "Move down": "Giù"\n }\n },\n }\n};'},3990:e=>{e.exports="function moveFile(selectorContainer, selectorData, action) {\n\n var link = pathApp+'/api/backend/file/move.php';\n\n var el = document.querySelector(selectorContainer+' '+selectorData);\n\n var table = el.dataset.wiDbTable;\n var column = el.dataset.wiDbColumn;\n var rowId = el.dataset.wiDbRow;\n var fileId = el.dataset.wiFileId;\n var oldPosition = Number(el.dataset.wiOrder);\n var nFile = el.dataset.wiNFile;\n\n $.ajax({\n type: \"POST\",\n url: link,\n data: { \n post: 'true',\n table: table,\n column: column,\n row_id: rowId,\n file_id: fileId,\n action: action\n },\n success: function (data) {\n \n if (action == 'up') {\n var newPosition = oldPosition - 1;\n } else if (action == 'down') {\n var newPosition = oldPosition + 1;\n }\n\n var file1 = document.querySelector(selectorContainer+' .wi-card-file.order-'+oldPosition);\n var file2 = document.querySelector(selectorContainer+' .wi-card-file.order-'+newPosition);\n\n file1.classList.remove('order-'+oldPosition);\n file1.classList.add('order-'+newPosition);\n file1.dataset.wiOrder = newPosition;\n file1.dataset.wiFileId = file2.dataset.wiFileId;\n\n file2.classList.remove('order-'+newPosition);\n file2.classList.add('order-'+oldPosition);\n file2.dataset.wiOrder = oldPosition;\n file2.dataset.wiFileId = fileId;\n\n // Sistema first e last\n firstLastFile(selectorContainer, nFile);\n \n },\n error: function (XMLHttpRequest) {\n ajaxRequestError(XMLHttpRequest);\n }\n }); \n\n}\n\nfunction deleteFile(selectorContainer, selectorData) {\n\n var el = document.querySelector(selectorContainer+' '+selectorData);\n\n var folder = el.dataset.wiFolder;\n var table = el.dataset.wiDbTable;\n var column = el.dataset.wiDbColumn;\n var rowId = el.dataset.wiDbRow;\n var fileId = el.dataset.wiFileId;\n\n var oldPosition = Number(el.dataset.wiOrder);\n var nFile = el.dataset.wiNFile;\n\n var fileName = el.dataset.wiFileName;\n\n var text = \"Sei sicuro di eliminare il file <b>\"+fileName+\"</b>?\";\n var link = pathApp+'/api/backend/file/delete.php?folder='+folder+'&table='+table+'&column='+column+'&row_id='+rowId+'&file_id='+fileId;\n\n var onSuccess = '{ \"function\" : \"removeFile\", \"parameters\": { \"container\" : \"'+selectorContainer+'\", \"data\" : \"'+selectorData+'\", \"nFile\" : \"'+nFile+'\", \"position\" : \"'+oldPosition+'\"} }';\n\n modal(text, link, 'ATTENZIONE', 'Elimina', 'danger', 'Chiudi', 'dark', onSuccess);\n\n}\n\nfunction removeFile(parameters) {\n\n var selectorContainer = parameters.container;\n var selectorData = parameters.data;\n var deletedFilePosition = Number(parameters.position);\n var maxFile = Number(parameters.maxFile);\n var old_nFile = Number(parameters.nFile);\n const real_nFile = old_nFile - 1;\n\n document.querySelector(selectorContainer+' '+selectorData).remove();\n\n document.querySelectorAll(selectorContainer+' .wi-card-file').forEach(element => {\n\n var filePosition = Number(element.dataset.wiOrder);\n element.dataset.wiNFile = real_nFile;\n\n if (filePosition > deletedFilePosition) {\n\n var newPosition = filePosition - 1;\n var newId = newPosition - 1;\n\n element.dataset.wiOrder = newPosition;\n element.classList.remove('order-'+filePosition);\n element.classList.add('order-'+newPosition);\n\n element.dataset.wiFileId = newId;\n\n }\n\n });\n\n\n var maxFile = document.querySelector(selectorContainer+' input').dataset.wiMaxFile;\n\n if (maxFile > real_nFile) {\n document.querySelector(selectorContainer+' input').disabled = false;\n }\n\n firstLastFile(selectorContainer, real_nFile);\n\n $('#modal').modal('hide');\n\n}\n\nfunction firstLastFile(selectorContainer, nFile) {\n\n if (document.querySelectorAll(selectorContainer+' .wi-card-file').length > 0) {\n\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-first-file')) {\n document.querySelector(selectorContainer+' .wi-card-file.wi-first-file').classList.remove('wi-first-file');\n }\n \n if (document.querySelector(selectorContainer+' .wi-card-file.wi-last-file')) {\n document.querySelector(selectorContainer+' .wi-card-file.wi-last-file').classList.remove('wi-last-file');\n }\n \n document.querySelector(selectorContainer+' .wi-card-file.order-1').classList.add('wi-first-file');\n document.querySelector(selectorContainer+' .wi-card-file.order-'+nFile).classList.add('wi-last-file');\n \n }\n\n}"},7418:e=>{e.exports="function check() {\n \n document.querySelectorAll(\"form button[type='submit'], form button.wi-submit\").forEach(button => {\n \n button.removeAttribute(\"disabled\");\n\n var inputList = button.form.elements;\n\n for (let i = 0; i < inputList.length; i++) {\n\n var input = inputList[i];\n\n if (input.required) {\n if (input.type == 'checkbox' || input.type == 'radio') {\n if (input.checked == false) { button.setAttribute(\"disabled\", null); }\n } else {\n if (input.value == \"\") { button.setAttribute(\"disabled\", null); }\n }\n }\n\n }\n\n var formElement = button.form;\n\n formElement.querySelectorAll(\".wi-checkbox-required, .wi-radio-required\").forEach(checkboxContainer => {\n\n if (checkboxContainer.querySelectorAll(\"input[type='checkbox']:checked, input[type='radio']:checked\").length == 0) { button.setAttribute(\"disabled\", null); }\n\n });\n\n });\n\n}\n\nfunction lengthCount(event) {\n\n var val = event.target.value;\n var container = event.target.parentElement;\n\n if (container.querySelector('.wi-counter')) {\n container.querySelector('.wi-counter').innerHTML = val.length;\n }\n\n}\n\nfunction checkColor(event) {\n\n var val = event.target.value;\n var container = event.target.parentElement;\n\n if (val.includes('#')) {\n container.querySelector('.wi-show-color').style.color = val;\n } else {\n container.querySelector('.wi-show-color').el.style.color = 'rgba('+val+')';\n }\n \n}\n\nfunction generateCode(selector) {\n\n document.querySelector(selector).value = code();\n \n}\n\nfunction disableInput(type) {\n\n if (type == 'user') {\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\"profile_picture[]\"], select[name=color], select[name=active]');\n }\n\n inputArray.forEach(element => {\n\n element.disabled = true;\n element.dataset.wiOldValue = element.value;\n element.dataset.wiOldRequired = element.required;\n \n element.value = '';\n element.required = false;\n\n }); \n\n}\n\nfunction enabledInput(type) {\n\n if (type == 'user') {\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\"profile_picture[]\"], select[name=color], select[name=active]');\n }\n\n inputArray.forEach(element => {\n\n if (element.dataset.wiOldValue) {\n var wiOldValue = element.dataset.wiOldValue;\n } else {\n if (element.name == 'active') {\n var wiOldValue = \"true\";\n } else if (element.name == 'color') {\n var wiOldValue = \"blue\";\n } else {\n var wiOldValue = \"\";\n }\n }\n \n if (element.dataset.wiOldRequired) {\n var wiOldRequired = element.dataset.wiOldRequired;\n } else {\n var wiOldRequired = \"\";\n }\n \n element.disabled = false;\n element.value = wiOldValue;\n element.required = wiOldRequired;\n\n }); \n \n}\n\nfunction setDynamicSearch(element) {\n\n var dataValue = element.dataset.wiValue;\n var containerMaster = element.parentElement;\n var container = containerMaster.querySelector('.card .card-body');\n var footer = containerMaster.querySelector('.card .card-footer');\n\n container.innerHTML = \"\";\n\n if (dataValue != '') {\n\n var value = dataValue;\n var url = element.dataset.wiSearchUrl;\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: { \n post: 'true',\n id: value\n }, \n success: function (data) {\n createCheckbox(data, element, container, true);\n checkInput();\n },\n error: function (XMLHttpRequest) {\n\n ajaxRequestError(XMLHttpRequest);\n footer.innerHTML = 'Errore!';\n\n }\n });\n \n }\n\n}\n\nfunction createCheckbox(array, element, container, checked = false) {\n\n var name = element.dataset.wiName;\n var attribute = element.dataset.wiAttribute;\n\n if (element.dataset.wiSearchRadio != undefined) {\n var type = \"radio\";\n } else if (element.dataset.wiSearchCheckbox != undefined) {\n var type = \"checkbox\";\n }\n\n var containerMaster = container.parentElement;\n var footer = containerMaster.querySelector('.card .card-footer');\n footer.innerHTML = 'Cerco...';\n\n try {\n\n const response = JSON.parse(array);\n const nResponse = response.length;\n \n var HTML_CHECKED = \"\";\n \n container.querySelectorAll('input:checked').forEach(el => {\n \n el.setAttribute('checked', true);\n HTML_CHECKED += \"<div class='form-check'>\"+el.parentElement.innerHTML+\"</div>\";\n \n });\n \n container.innerHTML = \"\";\n \n for (let index = 0; index < nResponse; index++) {\n \n var idCode = code();\n var HTML = \"\";\n var att = attribute;\n \n var value = response[index]['value'];\n var label = response[index]['label'];\n var inputValue = response[index]['input-value'];\n \n if (checked) { var att = attribute+\" checked\"; }\n \n if (HTML_CHECKED.search('value=\"'+value+'\"') == '-1') {\n \n HTML += \"<div class='form-check'>\";\n HTML += \"<input id='\"+idCode+\"' type='\"+type+\"' class='form-check-input' name='\"+name+\"' value='\"+value+\"' data-wi-check='true' \"+att+\" >\";\n HTML += \"<label class='form-check-label wi-check-label user-select-none' for='\"+idCode+\"'>\"+label+\"</label>\";\n HTML += \"</div>\";\n \n container.insertAdjacentHTML(\"beforeend\", HTML);\n \n }\n \n }\n\n container.insertAdjacentHTML(\"beforeend\", HTML_CHECKED);\n \n if (inputValue == '') {\n footer.innerHTML = \"Cerca risultati\";\n } else if (nResponse == 1) {\n footer.innerHTML = nResponse+\" risultato\";\n } else if (nResponse != 1) {\n footer.innerHTML = nResponse+\" risultati\";\n }\n \n } catch {\n\n console.log(array);\n footer.innerHTML = 'Errore nel file! Contatta assistenza';\n\n }\n\n}\n\nfunction inputSearch(event) {\n\n var inputText = event.target;\n\n var containerMaster = inputText.parentElement;\n var container = containerMaster.querySelector('.card .card-body');\n var footer = containerMaster.querySelector('.card .card-footer');\n\n var inputValue = inputText.value.toLowerCase();\n\n if (inputText.dataset.wiSearchUrl != undefined) {\n\n var url = inputText.dataset.wiSearchUrl;\n\n var footer = containerMaster.querySelector('.card .card-footer');\n footer.innerHTML = 'Cerco...';\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: { \n post: 'true',\n search: inputValue\n }, \n success: function (data) {\n createCheckbox(data, inputText, container);\n checkInput();\n },\n error: function (XMLHttpRequest) {\n\n ajaxRequestError(XMLHttpRequest);\n footer.innerHTML = 'Errore! Riprova la ricerca.';\n\n }\n });\n \n } else {\n \n container.querySelectorAll('label.wi-check-label').forEach(element => {\n \n var container = element.parentElement;\n var name = element.innerHTML.toLowerCase();\n \n if (name.includes(inputValue)) {\n element.parentElement.style.display = 'block';\n } else if (container.querySelector('input').checked == false) {\n element.parentElement.style.display = 'none';\n }\n \n });\n\n }\n \n}\n\nfunction filterSelect(selectElement, dataName, value) {\n\n selectElement.querySelectorAll('option').forEach(option => {\n\n if (option.getAttribute('data-'+dataName)) {\n \n var filterValue = JSON.parse(option.getAttribute('data-'+dataName));\n\n if ((Array.isArray(filterValue) && filterValue.includes(value)) || filterValue == value) {\n\n option.disabled = false;\n option.hidden = false;\n\n } else {\n\n if (option.selected == true) {\n selectElement.value = \"\";\n }\n\n option.disabled = true;\n option.hidden = true;\n\n }\n\n }\n\n });\n \n}"},9636:e=>{e.exports="function copyRow(container, element) {\n\n var copy = element.cloneNode(true);\n var position = container.childElementCount;\n\n copy.id = '';\n copy.classList.remove('visually-hidden');\n copy.classList.add('wi-copy-row');\n copy.classList.add('order-'+position);\n\n copy.querySelector('input[name=\"position[]\"]').value = position;\n\n copy.querySelectorAll('[data-wi-attribute]').forEach(element => {\n\n var attribute = element.dataset.wiAttribute;\n\n if (attribute != '') {\n\n if (attribute.includes('required')) { element.required = true; }\n if (attribute.includes('disabled')) { element.disabled = true; }\n if (attribute.includes('readonly')) { element.readonly = true; }\n\n }\n\n });\n\n container.appendChild(copy);\n \n checkInput();\n rowSetArrow(container);\n bootstrapTooltip();\n\n}\n\nfunction rowOrder(el1, action) {\n\n var container = el1.parentElement;\n \n for (let a = 1; a < 100; a++) { \n \n var classEl1 = 'order-'+a;\n\n if(el1.classList.contains(classEl1)) {\n\n if (action == 'up') { var b = a - 1; } \n if (action == 'down') { var b = a + 1; }\n\n var classEl2 = 'order-'+b;\n\n var el2 = container.querySelector('.'+classEl2);\n\n rowChangePos(el1, a, b);\n rowChangePos(el2, b, a);\n\n rowSetArrow(container);\n\n break;\n\n }\n\n }\n\n}\n\nfunction rowChangePos(element, oldPosition, newPosition) {\n \n element.classList.remove('order-'+oldPosition);\n element.classList.add('order-'+newPosition);\n\n if (element.querySelector('input[name=\"position[]\"]')) {\n element.querySelector('input[name=\"position[]\"]').value = newPosition;\n }\n \n}\n\nfunction rowRemoveModal(element) {\n\n var container = element.parentElement;\n\n var text = 'Sei sicuro di voler eliminare questa linea?<br>Se <b>NON</b> salvi questa operazione non verrà effettuata!'\n modal(text, 'link');\n\n for (let a = 1; a < 100; a++) { \n\n var elementClass = 'order-'+a;\n if(element.classList.contains(elementClass)) { \n var orderN = a;\n break; \n }\n\n }\n\n var selector = '#'+container.id+' .'+elementClass;\n\n var sendBtn = document.querySelector('#modal button.send');\n sendBtn.setAttribute(\"onclick\", 'rowRemove(\"'+selector+'\", \"'+orderN+'\")');\n\n}\n\nfunction rowRemove(selector, nRow) {\n\n $('#modal').modal('hide');\n\n var element = document.querySelector(selector);\n var container = element.parentElement;\n var containerId = container.id;\n pageRemove(element);\n\n var rowStart = (nRow * 1) + 1;\n\n for (let a = rowStart; a < 100; a++) {\n\n var selector = '#'+containerId+' .order-'+a;\n\n if (document.querySelector(selector)) {\n var b = a - 1;\n rowChangePos(document.querySelector(selector), a, b);\n } else {\n break;\n }\n \n }\n\n rowSetArrow(container)\n\n}\n\nfunction rowSetArrow(container) {\n\n var nRow = document.querySelectorAll('#'+container.id+' .wi-copy-row').length;\n\n if (nRow > 1) {\n\n for (let i = 1; i <= nRow; i++) {\n\n var arrowUp = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-up');\n var arrowDown = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-down');\n\n if (arrowUp.classList.contains('visually-hidden')) {\n arrowUp.classList.remove('visually-hidden');\n }\n\n if (arrowDown.classList.contains('visually-hidden')) {\n arrowDown.classList.remove('visually-hidden');\n }\n\n if (i == 1) {\n arrowUp.classList.add('visually-hidden');\n }\n\n if (i == nRow) {\n arrowDown.classList.add('visually-hidden');\n }\n \n }\n\n } else if (nRow == 1) {\n\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-up').classList.add('visually-hidden');\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-down').classList.add('visually-hidden');\n\n }\n \n}"},9198:e=>{e.exports="async function formUpload(form, url, responseFunction = null) {\n \n var formData = new FormData(form);\n formData.append('post', 'true');\n\n await postData(url, formData).then((data) => {\n \n if (data != false) {\n if (typeof responseFunction === 'function') { responseFunction(data); }\n }\n\n });\n\n}"},1826:e=>{e.exports="function setSearchInput() {\n\n document.querySelectorAll(\"[data-wi-search='true']\").forEach(element => {\n\n element.addEventListener(\"keyup\", inputSearch);\n element.addEventListener(\"change\", lengthCount);\n element.addEventListener(\"focusin\", lengthCount);\n element.addEventListener(\"focusout\", lengthCount);\n\n if (element.dataset.wiSearchUrl != undefined) { setDynamicSearch(element); }\n\n });\n \n}\n\nfunction setUploader() {\n\n document.querySelectorAll(\"[data-wi-uploader]\").forEach(uploader => {\n\n var id = uploader.id;\n var type = uploader.dataset.wiUploader;\n var dir = uploader.dataset.wiDir;\n var value = uploader.dataset.wiValue;\n var label = uploader.dataset.wiUploaderLabel;\n var accept = uploader.accept;\n\n if (accept === '' || accept === '*') {\n var validation = false;\n } else {\n var validation = true;\n }\n\n var files = [];\n \n if (value != \"\") {\n\n var value = JSON.parse(value);\n \n value.forEach(file => {\n \n var source = {\n source: dir+file\n };\n\n files.push(source);\n\n });\n\n }\n\n if (type == 'classic') {\n\n FilePond.create(uploader, {\n storeAsFile: true,\n labelIdle: `Trascina `+label+` o <span class=\"filepond--label-action\">Cerca</span>`,\n files: files,\n allowFileTypeValidation: validation,\n allowDownloadByUrl: true,\n onaddfile: () => { check(); },\n onremovefile: () => { check(); }\n });\n \n } else if (type == 'profile') {\n\n FilePond.create(uploader, {\n storeAsFile: true,\n labelIdle: `Trascina `+label+` o <span class=\"filepond--label-action\">Cerca</span>`,\n imageCropAspectRatio: '1:1',\n stylePanelLayout: 'compact circle',\n styleLoadIndicatorPosition: 'center bottom',\n styleButtonRemoveItemPosition: 'center bottom',\n files: files,\n allowFileTypeValidation: validation,\n allowDownloadByUrl: true,\n onaddfile: () => { check(); },\n onremovefile: () => { check(); }\n });\n \n }\n\n });\n\n}\n\nfunction setTextarea() {\n\n document.querySelectorAll(\"[data-wi-textarea]\").forEach(textarea => {\n\n var container = textarea.parentElement;\n var type = textarea.dataset.wiTextarea;\n\n var textareaId = textarea.id;\n var textareaValue = atob(textarea.dataset.wiValue);\n\n // Creo l'editor\n var editorId = textareaId+'_editor';\n\n var editor = document.createElement(\"div\");\n editor.id = editorId;\n editor.classList.add('position-relative');\n editor.classList.add('float-start');\n editor.classList.add('w-100');\n editor.classList.add('h-auto');\n editor.classList.add('border');\n editor.style.maxHeight = '250px';\n\n if (type == 'base' || type == 'plus' || type == 'pro') {\n\n // Quill.js\n\n editor.classList.add('border-top-0');\n editor.classList.add('rounded-bottom');\n editor.classList.add('overflow-scroll');\n \n container.after(editor);\n\n var toolbarId = editorId+'_toolbar';\n\n if (type == 'base') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['clean']];\n } else if (type == 'plus') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], ['clean']];\n } else if (type == 'pro') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n }\n\n new Quill('#'+editorId, {\n theme: 'snow',\n modules: {\n toolbar: option\n }\n });\n\n var col = container.parentElement;\n var toolbar = col.querySelector('.ql-toolbar');\n\n toolbar.id = toolbarId;\n toolbar.classList.add('position-relative');\n toolbar.classList.add('float-start');\n toolbar.classList.add('w-100');\n toolbar.classList.add('border');\n toolbar.classList.add('rounded-top');\n\n var editor = document.querySelector('#'+editorId+' .ql-editor');\n\n editor.innerHTML = textareaValue.replace(\"'\", \"\\'\");\n\n editor.addEventListener('keydown', () => { textarea.value = editor.innerHTML; });\n editor.addEventListener('DOMNodeInserted', () => { textarea.value = editor.innerHTML; });\n\n } else if (type == 'table' || type == 'blog') {\n\n // Editor.js\n\n EDITORJS_TOOLS_BLOG.image.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\n EDITORJS_TOOLS_BLOG.gallery.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\n EDITORJS_TOOLS_BLOG.attaches.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/files';\n\n editor.classList.add('wi-'+type);\n editor.classList.add('pt-3');\n editor.classList.add('rounded');\n editor.classList.add('overflow-scroll');\n\n container.after(editor);\n\n if (type == 'table') {\n \n if (textareaValue == null || textareaValue == '') {\n var data = '{\"blocks\":[{\"id\":\"O3rAzVD6s8\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"content\":[]}}]}';\n } else {\n var data = '{\"blocks\":'+textareaValue+'}';\n }\n\n var tools = EDITORJS_TOOLS_TABLE;\n\n } else if (type == 'blog') {\n\n editor.style.maxHeight = '500px';\n\n if (textareaValue == null || textareaValue == '') {\n var data = '{}';\n } else {\n var data = '{\"blocks\":'+textareaValue+'}';\n }\n\n var tools = EDITORJS_TOOLS_BLOG;\n \n }\n\n new EditorJS({\n tools: tools,\n holder: editorId, \n autofocus: false,\n data: JSON.parse(data),\n onChange: (api) => {\n\n api.saver.save().then((outputData) => {\n var editorValue = JSON.stringify(outputData.blocks);\n document.getElementById(textareaId).value = editorValue;\n }).catch((error) => {\n console.log('Saving failed: ', error)\n });\n\n },\n i18n: EDITORJS_i18n_IT\n });\n\n }\n\n });\n\n}\n\nfunction setJsTree() {\n \n document.querySelectorAll('[data-wi-tree]').forEach(element => {\n\n var container = element.parentElement;\n\n var type = element.dataset.wiTree;\n var searchBar = container.querySelector('[data-wi-search=\"true\"]');\n\n var Tree = $(element).jstree({\n core: {\n check_callback: false\n },\n checkbox : {\n keep_selected_style: false,\n three_state: false,\n },\n types : {\n default : {\n icon : \"bi bi-folder\"\n }\n },\n plugins : [ \"checkbox\", \"types\", \"search\" ]\n });\n\n Tree.jstree('open_all');\n\n if (searchBar != undefined) {\n $(searchBar).keyup(function () {\n var v = $(searchBar).val();\n $(Tree).jstree(true).search(v);\n });\n }\n\n $(element).on('click', '.jstree-anchor', function(e) {\n\n var selectedNodes = $(element).jstree().get_checked();\n\n container.querySelectorAll('input[type=\"checkbox\"]:checked').forEach(element => { element.checked = false; });\n\n if (type == 'radio') {\n\n if (selectedNodes.length > 1) {\n $(element).jstree().uncheck_node(selectedNodes[0]);\n }\n\n var selectedNodes = $(element).jstree().get_checked();\n\n }\n\n selectedNodes.forEach(element => { container.querySelector('input[value=\"'+element+'\"]').checked = true; });\n\n check();\n\n });\n\n });\n\n}\n\nfunction setCheckBoolean() {\n \n document.querySelectorAll('[data-wi-check-boolean]').forEach(element => {\n\n var inputTrue = element.querySelector('input.wi-true');\n var labelTrue = inputTrue.labels[0];\n var inputFalse = element.querySelector('input.wi-false');\n var labelFalse = inputFalse.labels[0];\n\n inputTrue.addEventListener(\"change\", (el) => {\n\n var checked = el.target.checked;\n\n if (checked) { \n inputFalse.checked = false; \n labelFalse.classList.remove('btn-primary'); \n labelTrue.classList.add('btn-primary'); \n } else {\n labelTrue.classList.remove('btn-primary'); \n }\n\n });\n\n inputFalse.addEventListener(\"change\", (el) => {\n\n var checked = el.target.checked;\n\n if (checked) { \n inputTrue.checked = false; \n labelTrue.classList.remove('btn-primary'); \n labelFalse.classList.add('btn-primary'); \n } else {\n labelFalse.classList.remove('btn-primary'); \n }\n\n });\n\n\n });\n\n}"},9221:e=>{e.exports="function jqueryDaterange() {\n \n $('.wi-daterange-filter').datepicker({\n format: 'dd/mm/yyyy',\n language: 'it', \n orientation: 'bottom left'\n });\n\n}\n\nfunction setUpJquery() {\n \n jqueryDaterange();\n\n}"},7642:e=>{e.exports="function modal(text, link, title = 'ATTENZIONE', sendText = 'Elimina', sendColor = 'danger', closeText = 'Chiudi', closeColor = 'dark', onSuccess = 'reloadPage', params = null) {\n \n document.querySelector('#modal .modal-title').innerHTML = title;\n document.querySelector('#modal .modal-body').innerHTML = text;\n\n var sendBtn = document.querySelector('#modal button.send');\n sendBtn.innerHTML = sendText;\n sendBtn.classList.add('btn-'+sendColor);\n\n if (onSuccess == 'reloadPage') {\n \n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"')\");\n\n } else {\n \n if (typeof onSuccess === 'function') {\n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"', \"+onSuccess+\", '\"+params+\"')\");\n } else {\n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"', '\"+onSuccess+\"', '\"+params+\"')\");\n }\n\n }\n\n var closeBtn = document.querySelector('#modal button.close');\n closeBtn.innerHTML = closeText;\n closeBtn.classList.add('btn-'+closeColor);\n\n const modal = new bootstrap.Modal('#modal')\n modal.show();\n\n}"},5071:e=>{e.exports="function menu() { \n\n var el = document.getElementById('sidebar');\n el.classList.toggle(\"show\");\n\n var el = document.getElementById('menu');\n\n var iconMenu = el.querySelector('.open-menu');\n var iconClose = el.querySelector('.close-menu');\n\n if (iconMenu.classList.contains('d-none')) {\n\n // Chiudo il menu\n iconMenu.classList.remove('d-none');\n iconClose.classList.add('d-none');\n\n $('.offcanvas').offcanvas('hide');\n \n } else {\n\n // Apro il menu\n iconClose.classList.remove('d-none');\n iconMenu.classList.add('d-none');\n\n if (document.querySelector('#sidebar li.active [data-bs-target]')) {\n var offcanvasId = document.querySelector('#sidebar li.active [data-bs-target]').dataset.bsTarget;\n $(offcanvasId).offcanvas('show');\n }\n\n }\n \n}\n\nfunction loadingSpinner() {\n\n document.getElementById('loading-spinner').classList.toggle('d-none');\n \n}"},8882:e=>{e.exports='function canvasFullPage(elementId, draw = false) {\n\n var element = document.createElement("CANVAS");\n element.id = elementId;\n element.style.position = "fixed";\n element.style.top = 0;\n element.style.left = 0;\n element.style.zIndex = 999999;\n element.style.background = \'#ffffff\';\n element.style.touchAction = \'none\';\n element.style.msTouchAction = \'none\';\n\n fullPage(element);\n\n window.addEventListener(\'resize\', () => { fullPage(element) });\n\n if (draw) { canvasDraw(element); }\n\n}\n\nfunction canvasReset(element) {\n \n var ctx = element.getContext("2d");\n ctx.clearRect(0, 0, element.width, element.height);\n ctx.restore();\n\n}\n\nfunction canvasDraw(element) {\n\n var ctx = element.getContext("2d");\n \n let offset = position(element);\n let painting = false;\n\n function drawStart() {\n offset = position(element);\n painting = true;\n draw(e);\n }\n\n function drawEnd() {\n painting = false;\n ctx.beginPath();\n }\n\n function draw(e) {\n\n if (!painting) return;\n ctx.lineWidth = 1;\n ctx.lineCap = "round";\n ctx.strokeStyle = "black";\n\n if (e.type == \'touchmove\'){\n var x = e.touches[0].clientX;\n var y = e.touches[0].clientY;\n } else if (e.type == \'mousemove\'){\n var x = e.clientX;\n var y = e.clientY;\n }\n\n var offsetX = offset.left;\n var offsetY = offset.top;\n\n var x = x - offsetX;\n var y = y - offsetY;\n\n ctx.lineTo(x, y);\n ctx.stroke();\n ctx.beginPath();\n ctx.moveTo(x, y);\n\n }\n\n element.addEventListener("mousedown", drawStart);\n element.addEventListener("touchstart", drawStart);\n element.addEventListener("mouseup", drawEnd);\n element.addEventListener("touchend", drawEnd);\n element.addEventListener("mousemove", draw);\n element.addEventListener("touchmove", draw);\n\n}'},6944:e=>{e.exports='function fetchResponse(response) {\n \n if (response.ok) {\n\n return response.json();\n\n } else {\n\n alertToast(802);\n console.error("Impossibile connettersi o trovare il file!");\n return false;\n\n }\n\n}\n\nfunction fetchValue(value) {\n \n if (value == false) {\n \n return false;\n \n } else {\n\n if (value.status == 200) {\n return value;\n } else if (value.status == 401) {\n alertToast(911);\n return false;\n } else if (value.status == undefined) {\n alertToast(803);\n return false;\n } else {\n alertToast(value.status);\n return false;\n }\n\n }\n\n}\n\nfunction fetchError(error) {\n \n alertToast(802);\n console.error("Il file non risponde in JSON!");\n\n}\n'},8197:e=>{e.exports="var AUTONUMERIC_NUMBER = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nvar AUTONUMERIC_PRICE = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbol: '€',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nvar AUTONUMERIC_PERCENTIGE = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbol: '%',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nfunction customAutonumeric(element, autonumeric) {\n\n var option = {};\n\n if (autonumeric.caretPositionOnFocus != undefined) { \n option.caretPositionOnFocus = autonumeric.caretPositionOnFocus; \n }\n\n if (element.dataset.wiNumberDecimal != undefined) { \n option.decimalPlacesShownOnFocus = element.dataset.wiNumberDecimal;\n option.decimalPlaces = element.dataset.wiNumberDecimal;\n } else {\n if (autonumeric.decimalPlacesShownOnFocus != undefined) {\n option.decimalPlacesShownOnFocus = autonumeric.decimalPlacesShownOnFocus;\n }\n }\n\n if (element.dataset.wiNumberDecimalSeparator != undefined) { \n option.decimalCharacter = element.dataset.wiNumberDecimalSeparator;\n } else {\n if (autonumeric.decimalCharacter != undefined) {\n option.decimalCharacter = autonumeric.decimalCharacter;\n }\n }\n\n if (element.dataset.wiNumberGroupSeparator != undefined) { \n option.digitGroupSeparator = element.dataset.wiNumberGroupSeparator;\n } else {\n if (autonumeric.digitGroupSeparator != undefined) {\n option.digitGroupSeparator = autonumeric.digitGroupSeparator;\n }\n }\n\n if (autonumeric.onInvalidPaste != undefined) { \n option.onInvalidPaste = autonumeric.onInvalidPaste; \n }\n\n if (element.dataset.wiNumberSymbol != undefined) { \n option.currencySymbol = element.dataset.wiNumberSymbol;\n } else {\n if (autonumeric.currencySymbol != undefined) {\n option.currencySymbol = autonumeric.currencySymbol;\n }\n }\n\n if (element.dataset.wiNumberSymbolPlacement != undefined) { \n option.currencySymbolPlacement = element.dataset.wiNumberSymbolPlacement;\n } else {\n if (autonumeric.currencySymbolPlacement != undefined) {\n option.currencySymbolPlacement = autonumeric.currencySymbolPlacement;\n }\n }\n\n if (autonumeric.outputFormat != undefined) { \n option.outputFormat = autonumeric.outputFormat; \n }\n\n if (autonumeric.unformatOnSubmit != undefined) { \n option.unformatOnSubmit = autonumeric.unformatOnSubmit; \n }\n\n if (autonumeric.modifyValueOnWheel != undefined) { \n option.modifyValueOnWheel = autonumeric.modifyValueOnWheel; \n }\n\n return option;\n \n}\n\nfunction setAutonumeric() {\n \n document.querySelectorAll(\"[data-wi-number='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n \n if (el === null) {\n\n new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_NUMBER)); \n \n }\n\n });\n\n document.querySelectorAll(\"[data-wi-price='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PRICE)); }\n\n });\n \n document.querySelectorAll(\"[data-wi-percentige='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PERCENTIGE)); }\n\n });\n\n}"},3883:e=>{e.exports='function checkPhone(element) {\n \n var phones = [\n { "mask": "### ### ####"}\n ];\n\n new Inputmask({ \n mask: phones, \n greedy: false, \n placeholder: \'\', \n definitions: { \n \'#\': { \n validator: "[0-9]", \n cardinality: 1\n }\n } \n }).mask(element);\n\n}'},8636:e=>{e.exports="function position(element, showItem = false) {\n\n var rect = element.getBoundingClientRect();\n\n if (showItem) {\n\n var width = rect.right - rect.left;\n var height = rect.bottom - rect.top;\n\n var element = document.createElement(\"DIV\");\n element.style.position = \"fixed\";\n element.style.top = rect.top+'px';\n element.style.left = rect.left+'px';\n element.style.width = width+'px';\n element.style.height = height+'px';\n element.style.zIndex = 999999;\n element.style.background = 'rgba(255, 0, 0, .2)';\n document.body.appendChild(element);\n\n }\n\n return rect;\n\n}\n\nfunction fullPage(element) {\n element.width = window.innerWidth;\n element.height = window.innerHeight;\n}\n\nfunction copyText(text, icon = null) {\n\n if (icon != null) {\n document.querySelectorAll('.bi-clipboard-check').forEach(element => {\n element.classList.remove('bi-clipboard-check')\n element.classList.add('bi-clipboard');\n });\n }\n\n navigator.clipboard.writeText(text).then(() => {\n if (icon != null) {\n icon.classList.remove('bi-clipboard');\n icon.classList.add('bi-clipboard-check');\n }\n },() => {\n if (icon != null) {\n icon.classList.remove('bi-clipboard');\n icon.classList.add('bi-clipboard-x');\n }\n });\n\n}\n\nfunction ajaxRequestError(request) {\n \n if (request.readyState == 4) {\n alertToast(802);\n } else if (request.readyState == 0) {\n alertToast(801);\n } else {\n alertToast(800);\n }\n\n}\n\nfunction code(codeLength = 10) {\n\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n var charactersLength = characters.length;\n\n for ( var i = 0; i < codeLength; i++ ) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n\n}\n\nfunction isMobile() {\n\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n \n}\n\nfunction delay(time) {\n\n return new Promise(resolve => setTimeout(resolve, time));\n\n}"},4642:e=>{e.exports=function(e){function n(e){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",e)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(e):"undefined"!=typeof eval?eval.call(null,e):n("EvalError: No eval function available")}catch(e){n(e)}}},734:(e,n,t)=>{t(4642)(t(5285))},9196:(e,n,t)=>{t(4642)(t(4729))},9676:(e,n,t)=>{t(4642)(t(8553))},5328:(e,n,t)=>{t(4642)(t(5249))},4315:(e,n,t)=>{t(4642)(t(3990))},5545:(e,n,t)=>{t(4642)(t(7418))},8109:(e,n,t)=>{t(4642)(t(9636))},2879:(e,n,t)=>{t(4642)(t(9198))},2981:(e,n,t)=>{t(4642)(t(1826))},2730:(e,n,t)=>{t(4642)(t(9221))},555:(e,n,t)=>{t(4642)(t(7642))},8258:(e,n,t)=>{t(4642)(t(5071))},9111:(e,n,t)=>{t(4642)(t(8882))},2347:(e,n,t)=>{t(4642)(t(6944))},8004:(e,n,t)=>{t(4642)(t(8197))},3286:(e,n,t)=>{t(4642)(t(3883))},9899:(e,n,t)=>{t(4642)(t(8636))}},n={};function t(a){var r=n[a];if(void 0!==r)return r.exports;var o=n[a]={exports:{}};return e[a](o,o.exports,t),o.exports}t.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var a in n)t.o(n,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:n[a]})},t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";t.r(a);t(8004),t(3286),t(2347),t(9899),t(9111),t(8258),t(734),t(5328),t(5545),t(4315),t(2981),t(2879),t(8109),t(9196),t(555),t(9676),t(2730)})(),window.wonder=a})();
2
+ (()=>{var e={5285:e=>{e.exports="function ajaxRequest(link, onSuccess = reloadPage, params = null) {\n\n loadingSpinner();\n\n $.ajax({\n type: \"POST\",\n url: link,\n data: { \n post: 'true'\n }, \n success: function(data) {\n\n if (onSuccess != null) {\n if (typeof onSuccess === 'function') {\n \n if (params == null) {\n onSuccess();\n } else {\n onSuccess(params);\n }\n \n } else {\n \n try {\n \n var x = JSON.parse(onSuccess.replace('&quot;', '\"'));\n\n var f = x.function;\n var p = x.parameters;\n \n } catch {\n\n var f = onSuccess;\n var p = params;\n\n }\n \n window[f](p);\n \n }\n }\n\n loadingSpinner();\n \n },\n error: function (XMLHttpRequest) {\n ajaxRequestError(XMLHttpRequest);\n loadingSpinner();\n }\n }); \n\n}\n\nfunction reloadPage() {\n\n location.reload();\n \n}\n\nasync function postData(url, data) {\n\n loadingSpinner();\n\n if (data === undefined) {\n\n console.error(\"Non è stato passato alcun dato alla funzione postData()\");\n \n } else {\n\n if (data instanceof FormData === false) {\n var data = createPostData(data)\n }\n \n await fetch(url, {\n method: \"POST\",\n body: data\n })\n .then((response) => { loadingSpinner(); return fetchResponse(response); })\n .then((value) => { return fetchValue(value); })\n .catch((error) => { fetchValue(error); });\n\n }\n\n}\n\nfunction createPostData(array = {}) {\n\n var data = new FormData();\n\n Object.keys(array).forEach(key => {\n data.append(key, array[key]);\n });\n\n return data;\n\n}"},4729:e=>{e.exports="function toastContainer() {\n\n if (document.querySelector('.toast-container')) {\n\n var container = document.querySelector('.toast-container');\n\n }else{\n\n var container = document.createElement('div');\n container.classList.add('toast-container');\n container.classList.add('position-fixed');\n container.classList.add('top-0');\n container.classList.add('end-0');\n container.classList.add('p-3');\n\n document.body.insertBefore(container, document.body.firstChild);\n\n }\n\n return container;\n\n}\n\nfunction alertToast(alert, type = null, title = null, text = null) {\n\n var container = toastContainer();\n\n $(\".toast.show\").toast().hide();\n \n if (alert == 801) {\n\n container.innerHTML = NO_INTERNET_ALERT + container.innerHTML;\n const toast = new bootstrap.Toast(container.firstElementChild);\n toast.show();\n\n } else if (alert != undefined) {\n\n if (alert == 'custom') {\n\n var data = {\n post: 'true',\n backend: 'true',\n alert: alert,\n alertType: type,\n alertTitle: title,\n alertText: text\n }\n\n } else {\n\n var data = {\n post: 'true',\n backend: 'true',\n alert: alert\n };\n\n }\n\n $.ajax({\n type: \"POST\",\n url: pathApp+'/api/alert.php',\n data: data, \n success: function (data) {\n\n container.innerHTML = data + container.innerHTML;\n const toast = new bootstrap.Toast(container.firstElementChild);\n toast.show();\n \n var url = new URL(window.location.href);\n url.searchParams.delete('alert');\n window.history.replaceState(null, null, url);\n \n }\n });\n\n }\n\n}"},8553:e=>{e.exports="function bootstrapToast() {\n\n var toastElList = [].slice.call(document.querySelectorAll('.toast'))\n var toastList = toastElList.map(function(toastEl) {\n return new bootstrap.Toast(toastEl)\n });\n toastList.forEach(toast => toast.show());\n\n}\n\nfunction bootstrapTooltip() { $('[data-bs-toggle=\"tooltip\"]').tooltip(); }\n\nfunction bootstrapTheme(theme) {\n\n document.querySelector(\"html\").setAttribute(\"data-bs-theme\", theme);\n\n localStorage.setItem('theme', theme);\n \n if (theme == 'light') {\n\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.remove('d-none'); }\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.add('d-none'); }\n\n document.querySelector('#be-logo-white').classList.add('d-none');\n document.querySelector('#be-logo-black').classList.remove('d-none');\n\n element = document.querySelector('[data-bs-theme-value=\"light\"]');\n el = document.querySelector('[data-bs-theme-value=\"dark\"]');\n\n } else if (theme == 'dark') {\n\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.add('d-none'); }\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.remove('d-none'); }\n\n document.querySelector('#be-logo-white').classList.remove('d-none');\n document.querySelector('#be-logo-black').classList.add('d-none');\n\n element = document.querySelector('[data-bs-theme-value=\"dark\"]');\n el = document.querySelector('[data-bs-theme-value=\"light\"]');\n\n }\n\n if (el) { el.classList.remove('active'); }\n if (element) { element.classList.add('active'); }\n\n}\n\nfunction setUpBootstrap() {\n \n bootstrapTooltip();\n\n}"},5249:e=>{e.exports='class CustomHyperlink extends Hyperlink {\n iconSvg(name, width = 14, height = 14) {\n const svg = document.createElementNS(\'http://www.w3.org/2000/svg\', \'svg\');\n svg.classList.add(\'icon\', \'icon--\' + name);\n svg.setAttribute(\'width\', \'24\');\n svg.setAttribute(\'height\',\'24\');\n svg.setAttribute(\'viewBox\', \'0 0 24 24\')\n svg.setAttribute(\'fill\', \'none\');\n if (name == \'link\') {\n svg.innerHTML = `\n <path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M7.69998 12.6L7.67896 12.62C6.53993 13.7048 6.52012 15.5155 7.63516 16.625V16.625C8.72293 17.7073 10.4799 17.7102 11.5712 16.6314L13.0263 15.193C14.0703 14.1609 14.2141 12.525 13.3662 11.3266L13.22 11.12"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M16.22 11.12L16.3564 10.9805C17.2895 10.0265 17.3478 8.5207 16.4914 7.49733V7.49733C15.5691 6.39509 13.9269 6.25143 12.8271 7.17675L11.3901 8.38588C10.0935 9.47674 9.95706 11.4241 11.0888 12.6852L11.12 12.72"></path>\n `;\n } else {\n svg.innerHTML = `\n <path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M15.7795 11.5C15.7795 11.5 16.053 11.1962 16.5497 10.6722C17.4442 9.72856 17.4701 8.2475 16.5781 7.30145V7.30145C15.6482 6.31522 14.0873 6.29227 13.1288 7.25073L11.8796 8.49999"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M8.24517 12.3883C8.24517 12.3883 7.97171 12.6922 7.47504 13.2161C6.58051 14.1598 6.55467 15.6408 7.44666 16.5869V16.5869C8.37653 17.5731 9.93744 17.5961 10.8959 16.6376L12.1452 15.3883"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M17.7802 15.1032L16.597 14.9422C16.0109 14.8624 15.4841 15.3059 15.4627 15.8969L15.4199 17.0818"></path><path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M6.39064 9.03238L7.58432 9.06668C8.17551 9.08366 8.6522 8.58665 8.61056 7.99669L8.5271 6.81397"></path><line x1="12.1142" x2="11.7" y1="12.2" y2="11.7858" stroke="currentColor" stroke-linecap="round" stroke-width="2"></line>\n `;\n }\n return svg;\n }\n}\n\nclass CustomEmded extends Embed {\n \n static get toolbox() {\n return {\n title: \'Iframe\',\n icon: \'<svg width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 1 0-6M14 11a5 5 0 0 1 0 6"></path><line x1="14" y1="7" x2="14" y2="7"></line><line x1="10" y1="17" x2="10" y2="17"></line></svg>\'\n };\n }\n \n /**\n * Render Embed tool content\n *\n * @returns {HTMLElement}\n */\n render() {\n if (!this.data.service) {\n const container = document.createElement(\'div\');\n \n this.element = container;\n const input = document.createElement(\'input\');\n input.classList.add(\'cdx-input\');\n input.placeholder = \'https://www.youtube.com/watch?v=w8vsuOXZBXc\';\n input.type = \'url\';\n input.addEventListener(\'paste\', (event) => {\n const url = event.clipboardData.getData(\'text\');\n const service = Object.keys(Embed.services).find((key) => Embed.services[key].regex.test(url));\n if (service) {\n this.onPaste({detail: {key: service, data: url}});\n }\n });\n container.appendChild(input);\n \n return container;\n }\n return super.render();\n }\n \n validate(savedData) {\n return savedData.service && savedData.source ? true : false;\n }\n}\n\nclass CustomVideoTool extends VideoTool {\n \n static get toolbox() {\n return {\n title: \'Video\',\n icon: \'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 10.5606V13.4394C10 14.4777 11.1572 15.0971 12.0211 14.5211L14.1803 13.0817C14.9536 12.5661 14.9503 11.4317 14.18 10.9181L12.0214 9.47907C11.1591 8.9042 10 9.5203 10 10.5606Z" stroke="black" stroke-width="2"/><rect x="5" y="5" width="14" height="14" rx="4" stroke="black" stroke-width="2"/></svg>\'\n };\n }\n \n}\n\nvar EDITORJS_TOOLS_BLOG = {\n paragraph: {\n inlineToolbar: true,\n tunes: [\'textAlign\']\n },\n header: {\n class: Header,\n inlineToolbar: true,\n tunes: [\'textAlign\'],\n config: {\n placeholder: \'Titolo...\',\n levels: [1, 2, 4],\n defaultLevel: 2\n }\n },\n quote: {\n class: Quote,\n inlineToolbar: true,\n config: {\n quotePlaceholder: \'Scrivi una citazione...\',\n captionPlaceholder: \'Autore\',\n },\n },\n list: {\n class: NestedList,\n inlineToolbar: true,\n config: {\n defaultStyle: \'unordered\'\n },\n },\n delimiter: Delimiter,\n table: {\n class: Table,\n inlineToolbar: [\'link\', \'italic\', \'bold\'],\n },\n // code: CodeTool,\n image: {\n class: ImageTool,\n config: {\n captionPlaceholder: \'Caption...\',\n endpoints: {\n byFile: pathApp+\'/api/backend/editorjs/image.php\'\n // Aggiungere cartella dove caricare i file\n },\n field: \'image\',\n types: \'image/png, image/jpg, image/jpeg\',\n additionalRequestHeaders: { dir: \'\' }\n // Forzo nel css la rimozione "display: none" di withBorder, stretched e withBackground\n }\n },\n gallery: {\n class: ImageGallery,\n config: {\n captionPlaceholder: \'Caption galleria...\',\n endpoints: {\n byFile: pathApp+\'/api/backend/editorjs/image.php\'\n // Aggiungere cartella dove caricare i file\n },\n field: \'image\',\n types: \'image/png, image/jpg, image/jpeg\',\n additionalRequestHeaders: { dir: \'\' }\n // Forzo nel css la rimozione "display: none" di fit e slider\n },\n },\n Marker: Marker,\n inlineCode: InlineCode,\n attaches: {\n class: AttachesTool,\n config: {\n endpoint: pathApp+\'/api/backend/editorjs/file.php\',\n // Aggiungere cartella dove caricare i file\n field: \'file\',\n additionalRequestHeaders: { dir: \'\' }\n }\n },\n // TODO: Aggiungi caricamento video (potrebbe tornare utile la classe ImageTool)\n // video: {\n // class: CustomVideoTool,\n // config: {\n // captionPlaceholder: \'Caption...\',\n // endpoints: {\n // byFile: pathSite+\'/api/task/article/file.php\'\n // },\n // player: {\n // controls: true,\n // autoplay: false,\n // },\n // field: \'file\',\n // types: \'video/quicktime, video/mp4\'\n // // Forzo nel css la rimozione "display: none" di withBorder, stretched e withBackground\n // }\n // },\n // TODO: embed non funziona. Trovare un modo per caricare iframe\n // embed: {\n // class: CustomEmded,\n // },\n textAlign: {\n class: AlignmentTuneTool,\n config:{\n default: "left"\n },\n },\n link: {\n class: CustomHyperlink,\n config: {\n shortcut: \'CMD+L\',\n target: \'_blank\',\n rel: \'nofollow\',\n availableTargets: [\'_blank\', \'_self\'],\n availableRels: [\'author\', \'noreferrer\'],\n validate: false,\n }\n },\n};\n\nvar EDITORJS_TOOLS_TABLE = {\n paragraph: false,\n inlineCode: InlineCode,\n table: {\n class: Table,\n inlineToolbar: [\'link\', \'italic\', \'bold\'],\n }\n};\n\nvar EDITORJS_i18n_IT = {\n messages: {\n ui: {\n "blockTunes": {\n "toggler": {\n "Click to tune": "Modifica",\n "or drag to move": "Trascina per muovere"\n },\n },\n "inlineToolbar": {\n "converter": {\n "Convert to": "Converti"\n }\n },\n "toolbar": {\n "toolbox": {\n "Add": "Aggiungi",\n }\n }\n },\n toolNames: {\n "Add": "Aggiungi",\n "Quote": "Citazione",\n "Delimiter": "Linea",\n "Text": "Testo",\n "Heading": "Titolo",\n "Table": "Tabella",\n "Code": "Codice",\n "List": "Elenco",\n "Bold": "Grassetto",\n "Italic": "Corsivo",\n "Marker": "Evidenzia",\n "InlineCode": "Codice",\n "TextAlign": "Allineamento",\n "Gallery": "Galleria",\n "Image": "Immagine",\n "Attachment": "Allega file",\n },\n tools: {\n "header": {\n "Heading 1": "Titolo grande",\n "Heading 2": "Titolo",\n "Heading 4": "Sottotitolo"\n },\n "link": {\n "Add a link": "Aggiungi link"\n },\n "code": {\n "Enter a code": "Inserisci codice",\n },\n "quote": {\n "Align Left": "Allinea a sinistra",\n "Align Center": "Allinea in centro",\n },\n "table": {\n "With headings": "Con intestazione",\n "Without headings": "Senza intestazione",\n "Add column to left": "Aggiungi colonna sinistra",\n "Add column to right": "Aggiungi colonna destra",\n "Add row above": "Aggiungi riga sopra",\n "Add row below": "Aggiungi riga sotto",\n "Delete column": "Elimina colonna",\n "Delete row": "Elimina riga",\n },\n "list": {\n "Ordered": "Elenco numerato",\n "Unordered": "Elenco puntato",\n },\n "gallery": {\n "Select an Image": "Seleziona immagini",\n },\n "image": {\n "Select an Image": "Seleziona immagine",\n },\n "video": {\n "Select an Video": "Seleziona video",\n },\n "attaches": {\n "Select file to upload": "Seleziona file da allegare",\n },\n },\n blockTunes: {\n "delete": {\n "Delete": "Elimina",\n "Click to delete": "Clicca per elimina"\n },\n "moveUp": {\n "Move up": "Su"\n },\n "moveDown": {\n "Move down": "Giù"\n }\n },\n }\n};'},3990:e=>{e.exports="function moveFile(selectorContainer, selectorData, action) {\n\n var link = pathApp+'/api/backend/file/move.php';\n\n var el = document.querySelector(selectorContainer+' '+selectorData);\n\n var table = el.dataset.wiDbTable;\n var column = el.dataset.wiDbColumn;\n var rowId = el.dataset.wiDbRow;\n var fileId = el.dataset.wiFileId;\n var oldPosition = Number(el.dataset.wiOrder);\n var nFile = el.dataset.wiNFile;\n\n $.ajax({\n type: \"POST\",\n url: link,\n data: { \n post: 'true',\n table: table,\n column: column,\n row_id: rowId,\n file_id: fileId,\n action: action\n },\n success: function (data) {\n \n if (action == 'up') {\n var newPosition = oldPosition - 1;\n } else if (action == 'down') {\n var newPosition = oldPosition + 1;\n }\n\n var file1 = document.querySelector(selectorContainer+' .wi-card-file.order-'+oldPosition);\n var file2 = document.querySelector(selectorContainer+' .wi-card-file.order-'+newPosition);\n\n file1.classList.remove('order-'+oldPosition);\n file1.classList.add('order-'+newPosition);\n file1.dataset.wiOrder = newPosition;\n file1.dataset.wiFileId = file2.dataset.wiFileId;\n\n file2.classList.remove('order-'+newPosition);\n file2.classList.add('order-'+oldPosition);\n file2.dataset.wiOrder = oldPosition;\n file2.dataset.wiFileId = fileId;\n\n // Sistema first e last\n firstLastFile(selectorContainer, nFile);\n \n },\n error: function (XMLHttpRequest) {\n ajaxRequestError(XMLHttpRequest);\n }\n }); \n\n}\n\nfunction deleteFile(selectorContainer, selectorData) {\n\n var el = document.querySelector(selectorContainer+' '+selectorData);\n\n var folder = el.dataset.wiFolder;\n var table = el.dataset.wiDbTable;\n var column = el.dataset.wiDbColumn;\n var rowId = el.dataset.wiDbRow;\n var fileId = el.dataset.wiFileId;\n\n var oldPosition = Number(el.dataset.wiOrder);\n var nFile = el.dataset.wiNFile;\n\n var fileName = el.dataset.wiFileName;\n\n var text = \"Sei sicuro di eliminare il file <b>\"+fileName+\"</b>?\";\n var link = pathApp+'/api/backend/file/delete.php?folder='+folder+'&table='+table+'&column='+column+'&row_id='+rowId+'&file_id='+fileId;\n\n var onSuccess = '{ \"function\" : \"removeFile\", \"parameters\": { \"container\" : \"'+selectorContainer+'\", \"data\" : \"'+selectorData+'\", \"nFile\" : \"'+nFile+'\", \"position\" : \"'+oldPosition+'\"} }';\n\n modal(text, link, 'ATTENZIONE', 'Elimina', 'danger', 'Chiudi', 'dark', onSuccess);\n\n}\n\nfunction removeFile(parameters) {\n\n var selectorContainer = parameters.container;\n var selectorData = parameters.data;\n var deletedFilePosition = Number(parameters.position);\n var maxFile = Number(parameters.maxFile);\n var old_nFile = Number(parameters.nFile);\n const real_nFile = old_nFile - 1;\n\n document.querySelector(selectorContainer+' '+selectorData).remove();\n\n document.querySelectorAll(selectorContainer+' .wi-card-file').forEach(element => {\n\n var filePosition = Number(element.dataset.wiOrder);\n element.dataset.wiNFile = real_nFile;\n\n if (filePosition > deletedFilePosition) {\n\n var newPosition = filePosition - 1;\n var newId = newPosition - 1;\n\n element.dataset.wiOrder = newPosition;\n element.classList.remove('order-'+filePosition);\n element.classList.add('order-'+newPosition);\n\n element.dataset.wiFileId = newId;\n\n }\n\n });\n\n\n var maxFile = document.querySelector(selectorContainer+' input').dataset.wiMaxFile;\n\n if (maxFile > real_nFile) {\n document.querySelector(selectorContainer+' input').disabled = false;\n }\n\n firstLastFile(selectorContainer, real_nFile);\n\n $('#modal').modal('hide');\n\n}\n\nfunction firstLastFile(selectorContainer, nFile) {\n\n if (document.querySelectorAll(selectorContainer+' .wi-card-file').length > 0) {\n\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-first-file')) {\n document.querySelector(selectorContainer+' .wi-card-file.wi-first-file').classList.remove('wi-first-file');\n }\n \n if (document.querySelector(selectorContainer+' .wi-card-file.wi-last-file')) {\n document.querySelector(selectorContainer+' .wi-card-file.wi-last-file').classList.remove('wi-last-file');\n }\n \n document.querySelector(selectorContainer+' .wi-card-file.order-1').classList.add('wi-first-file');\n document.querySelector(selectorContainer+' .wi-card-file.order-'+nFile).classList.add('wi-last-file');\n \n }\n\n}"},7418:e=>{e.exports="function check() {\n \n document.querySelectorAll(\"form button[type='submit'], form button.wi-submit\").forEach(button => {\n \n button.removeAttribute(\"disabled\");\n\n var inputList = button.form.elements;\n\n for (let i = 0; i < inputList.length; i++) {\n\n var input = inputList[i];\n\n if (input.required) {\n if (input.type == 'checkbox' || input.type == 'radio') {\n if (input.checked == false) { button.setAttribute(\"disabled\", null); }\n } else {\n if (input.value == \"\") { button.setAttribute(\"disabled\", null); }\n }\n }\n\n }\n\n var formElement = button.form;\n\n formElement.querySelectorAll(\".wi-checkbox-required, .wi-radio-required\").forEach(checkboxContainer => {\n\n if (checkboxContainer.querySelectorAll(\"input[type='checkbox']:checked, input[type='radio']:checked\").length == 0) { button.setAttribute(\"disabled\", null); }\n\n });\n\n });\n\n}\n\nfunction lengthCount(event) {\n\n var val = event.target.value;\n var container = event.target.parentElement;\n\n if (container.querySelector('.wi-counter')) {\n container.querySelector('.wi-counter').innerHTML = val.length;\n }\n\n}\n\nfunction checkColor(event) {\n\n var val = event.target.value;\n var container = event.target.parentElement;\n\n if (val.includes('#')) {\n container.querySelector('.wi-show-color').style.color = val;\n } else {\n container.querySelector('.wi-show-color').el.style.color = 'rgba('+val+')';\n }\n \n}\n\nfunction generateCode(selector) {\n\n document.querySelector(selector).value = code();\n \n}\n\nfunction disableInput(type) {\n\n if (type == 'user') {\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\"profile_picture[]\"], select[name=color], select[name=active]');\n }\n\n inputArray.forEach(element => {\n\n element.disabled = true;\n element.dataset.wiOldValue = element.value;\n element.dataset.wiOldRequired = element.required;\n \n element.value = '';\n element.required = false;\n\n }); \n\n}\n\nfunction enabledInput(type) {\n\n if (type == 'user') {\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\"profile_picture[]\"], select[name=color], select[name=active]');\n }\n\n inputArray.forEach(element => {\n\n if (element.dataset.wiOldValue) {\n var wiOldValue = element.dataset.wiOldValue;\n } else {\n if (element.name == 'active') {\n var wiOldValue = \"true\";\n } else if (element.name == 'color') {\n var wiOldValue = \"blue\";\n } else {\n var wiOldValue = \"\";\n }\n }\n \n if (element.dataset.wiOldRequired) {\n var wiOldRequired = element.dataset.wiOldRequired;\n } else {\n var wiOldRequired = \"\";\n }\n \n element.disabled = false;\n element.value = wiOldValue;\n element.required = wiOldRequired;\n\n }); \n \n}\n\nfunction setDynamicSearch(element) {\n\n var dataValue = element.dataset.wiValue;\n var containerMaster = element.parentElement;\n var container = containerMaster.querySelector('.card .card-body');\n var footer = containerMaster.querySelector('.card .card-footer');\n\n container.innerHTML = \"\";\n\n if (dataValue != '') {\n\n var value = dataValue;\n var url = element.dataset.wiSearchUrl;\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: { \n post: 'true',\n id: value\n }, \n success: function (data) {\n createCheckbox(data, element, container, true);\n checkInput();\n },\n error: function (XMLHttpRequest) {\n\n ajaxRequestError(XMLHttpRequest);\n footer.innerHTML = 'Errore!';\n\n }\n });\n \n }\n\n}\n\nfunction createCheckbox(array, element, container, checked = false) {\n\n var name = element.dataset.wiName;\n var attribute = element.dataset.wiAttribute;\n\n if (element.dataset.wiSearchRadio != undefined) {\n var type = \"radio\";\n } else if (element.dataset.wiSearchCheckbox != undefined) {\n var type = \"checkbox\";\n }\n\n var containerMaster = container.parentElement;\n var footer = containerMaster.querySelector('.card .card-footer');\n footer.innerHTML = 'Cerco...';\n\n try {\n\n const response = JSON.parse(array);\n const nResponse = response.length;\n \n var HTML_CHECKED = \"\";\n \n container.querySelectorAll('input:checked').forEach(el => {\n \n el.setAttribute('checked', true);\n HTML_CHECKED += \"<div class='form-check'>\"+el.parentElement.innerHTML+\"</div>\";\n \n });\n \n container.innerHTML = \"\";\n \n for (let index = 0; index < nResponse; index++) {\n \n var idCode = code();\n var HTML = \"\";\n var att = attribute;\n \n var value = response[index]['value'];\n var label = response[index]['label'];\n var inputValue = response[index]['input-value'];\n \n if (checked) { var att = attribute+\" checked\"; }\n \n if (HTML_CHECKED.search('value=\"'+value+'\"') == '-1') {\n \n HTML += \"<div class='form-check'>\";\n HTML += \"<input id='\"+idCode+\"' type='\"+type+\"' class='form-check-input' name='\"+name+\"' value='\"+value+\"' data-wi-check='true' \"+att+\" >\";\n HTML += \"<label class='form-check-label wi-check-label user-select-none' for='\"+idCode+\"'>\"+label+\"</label>\";\n HTML += \"</div>\";\n \n container.insertAdjacentHTML(\"beforeend\", HTML);\n \n }\n \n }\n\n container.insertAdjacentHTML(\"beforeend\", HTML_CHECKED);\n \n if (inputValue == '') {\n footer.innerHTML = \"Cerca risultati\";\n } else if (nResponse == 1) {\n footer.innerHTML = nResponse+\" risultato\";\n } else if (nResponse != 1) {\n footer.innerHTML = nResponse+\" risultati\";\n }\n \n } catch {\n\n console.log(array);\n footer.innerHTML = 'Errore nel file! Contatta assistenza';\n\n }\n\n}\n\nfunction inputSearch(event) {\n\n var inputText = event.target;\n\n var containerMaster = inputText.parentElement;\n var container = containerMaster.querySelector('.card .card-body');\n var footer = containerMaster.querySelector('.card .card-footer');\n\n var inputValue = inputText.value.toLowerCase();\n\n if (inputText.dataset.wiSearchUrl != undefined) {\n\n var url = inputText.dataset.wiSearchUrl;\n\n var footer = containerMaster.querySelector('.card .card-footer');\n footer.innerHTML = 'Cerco...';\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: { \n post: 'true',\n search: inputValue\n }, \n success: function (data) {\n createCheckbox(data, inputText, container);\n checkInput();\n },\n error: function (XMLHttpRequest) {\n\n ajaxRequestError(XMLHttpRequest);\n footer.innerHTML = 'Errore! Riprova la ricerca.';\n\n }\n });\n \n } else {\n \n container.querySelectorAll('label.wi-check-label').forEach(element => {\n \n var container = element.parentElement;\n var name = element.innerHTML.toLowerCase();\n \n if (name.includes(inputValue)) {\n element.parentElement.style.display = 'block';\n } else if (container.querySelector('input').checked == false) {\n element.parentElement.style.display = 'none';\n }\n \n });\n\n }\n \n}\n\nfunction filterSelect(selectElement, dataName, value) {\n\n selectElement.querySelectorAll('option').forEach(option => {\n\n if (option.getAttribute('data-'+dataName)) {\n \n var filterValue = JSON.parse(option.getAttribute('data-'+dataName));\n\n if ((Array.isArray(filterValue) && filterValue.includes(value)) || filterValue == value) {\n\n option.disabled = false;\n option.hidden = false;\n\n } else {\n\n if (option.selected == true) {\n selectElement.value = \"\";\n }\n\n option.disabled = true;\n option.hidden = true;\n\n }\n\n }\n\n });\n \n}"},9636:e=>{e.exports="function copyRow(container, element) {\n\n var copy = element.cloneNode(true);\n var position = container.childElementCount;\n\n copy.id = '';\n copy.classList.remove('visually-hidden');\n copy.classList.add('wi-copy-row');\n copy.classList.add('order-'+position);\n\n if (copy.querySelector('[data-wi-sort-pos]')) {\n copy.querySelector('[data-wi-sort-pos]').value = position;\n } else if (copy.querySelector('input[name=\"position[]\"]')) {\n copy.querySelector('input[name=\"position[]\"]').value = position;\n }\n\n copy.querySelectorAll('[data-wi-attribute]').forEach(element => {\n\n var attribute = element.dataset.wiAttribute;\n\n if (attribute != '') {\n\n if (attribute.includes('required')) { element.required = true; }\n if (attribute.includes('disabled')) { element.disabled = true; }\n if (attribute.includes('readonly')) { element.readonly = true; }\n\n }\n\n });\n\n container.appendChild(copy);\n \n checkInput();\n rowSetArrow(container);\n bootstrapTooltip();\n\n}\n\nfunction rowOrder(el1, action) {\n\n var container = el1.parentElement;\n \n for (let a = 1; a < 100; a++) { \n \n var classEl1 = 'order-'+a;\n\n if(el1.classList.contains(classEl1)) {\n\n if (action == 'up') { var b = a - 1; } \n if (action == 'down') { var b = a + 1; }\n\n var classEl2 = 'order-'+b;\n\n var el2 = container.querySelector('.'+classEl2);\n\n rowChangePos(el1, a, b);\n rowChangePos(el2, b, a);\n\n rowSetArrow(container);\n\n break;\n\n }\n\n }\n\n}\n\nfunction rowChangePos(element, oldPosition, newPosition) {\n \n element.classList.remove('order-'+oldPosition);\n element.classList.add('order-'+newPosition);\n\n if (element.querySelector('input[name=\"position[]\"]')) {\n element.querySelector('input[name=\"position[]\"]').value = newPosition;\n }\n \n}\n\nfunction rowRemoveModal(element) {\n\n var container = element.parentElement;\n\n var text = 'Sei sicuro di voler eliminare questa linea?<br>Se <b>NON</b> salvi questa operazione non verrà effettuata!'\n modal(text, 'link');\n\n for (let a = 1; a < 100; a++) { \n\n var elementClass = 'order-'+a;\n if(element.classList.contains(elementClass)) { \n var orderN = a;\n break; \n }\n\n }\n\n var selector = '#'+container.id+' .'+elementClass;\n\n var sendBtn = document.querySelector('#modal button.send');\n sendBtn.setAttribute(\"onclick\", 'rowRemove(\"'+selector+'\", \"'+orderN+'\")');\n\n}\n\nfunction rowRemove(selector, nRow) {\n\n $('#modal').modal('hide');\n\n var element = document.querySelector(selector);\n var container = element.parentElement;\n var containerId = container.id;\n pageRemove(element);\n\n var rowStart = (nRow * 1) + 1;\n\n for (let a = rowStart; a < 100; a++) {\n\n var selector = '#'+containerId+' .order-'+a;\n\n if (document.querySelector(selector)) {\n var b = a - 1;\n rowChangePos(document.querySelector(selector), a, b);\n } else {\n break;\n }\n \n }\n\n rowSetArrow(container)\n\n}\n\nfunction rowSetArrow(container) {\n\n var nRow = document.querySelectorAll('#'+container.id+' .wi-copy-row').length;\n\n if (nRow > 1) {\n\n for (let i = 1; i <= nRow; i++) {\n\n var arrowUp = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-up');\n var arrowDown = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-down');\n\n if (arrowUp.classList.contains('visually-hidden')) {\n arrowUp.classList.remove('visually-hidden');\n }\n\n if (arrowDown.classList.contains('visually-hidden')) {\n arrowDown.classList.remove('visually-hidden');\n }\n\n if (i == 1) {\n arrowUp.classList.add('visually-hidden');\n }\n\n if (i == nRow) {\n arrowDown.classList.add('visually-hidden');\n }\n \n }\n\n } else if (nRow == 1) {\n\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-up').classList.add('visually-hidden');\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-down').classList.add('visually-hidden');\n\n }\n \n}"},9198:e=>{e.exports="async function formUpload(form, url, responseFunction = null) {\n \n var formData = new FormData(form);\n formData.append('post', 'true');\n\n await postData(url, formData).then((data) => {\n \n if (data != false) {\n if (typeof responseFunction === 'function') { responseFunction(data); }\n }\n\n });\n\n}"},1826:e=>{e.exports="function setSearchInput() {\n\n document.querySelectorAll(\"[data-wi-search='true']\").forEach(element => {\n\n element.addEventListener(\"keyup\", inputSearch);\n element.addEventListener(\"change\", lengthCount);\n element.addEventListener(\"focusin\", lengthCount);\n element.addEventListener(\"focusout\", lengthCount);\n\n if (element.dataset.wiSearchUrl != undefined) { setDynamicSearch(element); }\n\n });\n \n}\n\nfunction setUploader() {\n\n document.querySelectorAll(\"[data-wi-uploader]\").forEach(uploader => {\n\n var id = uploader.id;\n var type = uploader.dataset.wiUploader;\n var dir = uploader.dataset.wiDir;\n var value = uploader.dataset.wiValue;\n var label = uploader.dataset.wiUploaderLabel;\n var accept = uploader.accept;\n\n if (accept === '' || accept === '*') {\n var validation = false;\n } else {\n var validation = true;\n }\n\n var files = [];\n \n if (value != \"\") {\n\n var value = JSON.parse(value);\n \n value.forEach(file => {\n \n var source = {\n source: dir+file\n };\n\n files.push(source);\n\n });\n\n }\n\n if (type == 'classic') {\n\n FilePond.create(uploader, {\n storeAsFile: true,\n labelIdle: `Trascina `+label+` o <span class=\"filepond--label-action\">Cerca</span>`,\n files: files,\n allowFileTypeValidation: validation,\n allowDownloadByUrl: true,\n onaddfile: () => { check(); },\n onremovefile: () => { check(); }\n });\n \n } else if (type == 'profile') {\n\n FilePond.create(uploader, {\n storeAsFile: true,\n labelIdle: `Trascina `+label+` o <span class=\"filepond--label-action\">Cerca</span>`,\n imageCropAspectRatio: '1:1',\n stylePanelLayout: 'compact circle',\n styleLoadIndicatorPosition: 'center bottom',\n styleButtonRemoveItemPosition: 'center bottom',\n files: files,\n allowFileTypeValidation: validation,\n allowDownloadByUrl: true,\n onaddfile: () => { check(); },\n onremovefile: () => { check(); }\n });\n \n }\n\n });\n\n}\n\nfunction setTextarea() {\n\n document.querySelectorAll(\"[data-wi-textarea]\").forEach(textarea => {\n\n var container = textarea.parentElement;\n var type = textarea.dataset.wiTextarea;\n\n var textareaId = textarea.id;\n var textareaValue = atob(textarea.dataset.wiValue);\n\n // Creo l'editor\n var editorId = textareaId+'_editor';\n\n var editor = document.createElement(\"div\");\n editor.id = editorId;\n editor.classList.add('position-relative');\n editor.classList.add('float-start');\n editor.classList.add('w-100');\n editor.classList.add('h-auto');\n editor.classList.add('border');\n editor.style.maxHeight = '250px';\n\n if (type == 'base' || type == 'plus' || type == 'pro') {\n\n // Quill.js\n\n editor.classList.add('border-top-0');\n editor.classList.add('rounded-bottom');\n editor.classList.add('overflow-scroll');\n \n container.after(editor);\n\n var toolbarId = editorId+'_toolbar';\n\n if (type == 'base') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['clean']];\n } else if (type == 'plus') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], ['clean']];\n } else if (type == 'pro') {\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n }\n\n new Quill('#'+editorId, {\n theme: 'snow',\n modules: {\n toolbar: option\n }\n });\n\n var col = container.parentElement;\n var toolbar = col.querySelector('.ql-toolbar');\n\n toolbar.id = toolbarId;\n toolbar.classList.add('position-relative');\n toolbar.classList.add('float-start');\n toolbar.classList.add('w-100');\n toolbar.classList.add('border');\n toolbar.classList.add('rounded-top');\n\n var editor = document.querySelector('#'+editorId+' .ql-editor');\n\n editor.innerHTML = textareaValue.replace(\"'\", \"\\'\");\n\n editor.addEventListener('keydown', () => { textarea.value = editor.innerHTML; });\n editor.addEventListener('DOMNodeInserted', () => { textarea.value = editor.innerHTML; });\n\n } else if (type == 'table' || type == 'blog') {\n\n // Editor.js\n\n EDITORJS_TOOLS_BLOG.image.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\n EDITORJS_TOOLS_BLOG.gallery.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\n EDITORJS_TOOLS_BLOG.attaches.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/files';\n\n editor.classList.add('wi-'+type);\n editor.classList.add('pt-3');\n editor.classList.add('rounded');\n editor.classList.add('overflow-scroll');\n\n container.after(editor);\n\n if (type == 'table') {\n \n if (textareaValue == null || textareaValue == '') {\n var data = '{\"blocks\":[{\"id\":\"O3rAzVD6s8\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"content\":[]}}]}';\n } else {\n var data = '{\"blocks\":'+textareaValue+'}';\n }\n\n var tools = EDITORJS_TOOLS_TABLE;\n\n } else if (type == 'blog') {\n\n editor.style.maxHeight = '500px';\n\n if (textareaValue == null || textareaValue == '') {\n var data = '{}';\n } else {\n var data = '{\"blocks\":'+textareaValue+'}';\n }\n\n var tools = EDITORJS_TOOLS_BLOG;\n \n }\n\n new EditorJS({\n tools: tools,\n holder: editorId, \n autofocus: false,\n data: JSON.parse(data),\n onChange: (api) => {\n\n api.saver.save().then((outputData) => {\n var editorValue = JSON.stringify(outputData.blocks);\n document.getElementById(textareaId).value = editorValue;\n }).catch((error) => {\n console.log('Saving failed: ', error)\n });\n\n },\n i18n: EDITORJS_i18n_IT\n });\n\n }\n\n });\n\n}\n\nfunction setJsTree() {\n \n document.querySelectorAll('[data-wi-tree]').forEach(element => {\n\n var container = element.parentElement;\n\n var type = element.dataset.wiTree;\n var searchBar = container.querySelector('[data-wi-search=\"true\"]');\n\n var Tree = $(element).jstree({\n core: {\n check_callback: false\n },\n checkbox : {\n keep_selected_style: false,\n three_state: false,\n },\n types : {\n default : {\n icon : \"bi bi-folder\"\n }\n },\n plugins : [ \"checkbox\", \"types\", \"search\" ]\n });\n\n Tree.jstree('open_all');\n\n if (searchBar != undefined) {\n $(searchBar).keyup(function () {\n var v = $(searchBar).val();\n $(Tree).jstree(true).search(v);\n });\n }\n\n $(element).on('click', '.jstree-anchor', function(e) {\n\n var selectedNodes = $(element).jstree().get_checked();\n\n container.querySelectorAll('input[type=\"checkbox\"]:checked').forEach(element => { element.checked = false; });\n\n if (type == 'radio') {\n\n if (selectedNodes.length > 1) {\n $(element).jstree().uncheck_node(selectedNodes[0]);\n }\n\n var selectedNodes = $(element).jstree().get_checked();\n\n }\n\n selectedNodes.forEach(element => { container.querySelector('input[value=\"'+element+'\"]').checked = true; });\n\n check();\n\n });\n\n });\n\n}\n\nfunction setCheckBoolean() {\n \n document.querySelectorAll('[data-wi-check-boolean]').forEach(element => {\n\n var inputTrue = element.querySelector('input.wi-true');\n var labelTrue = inputTrue.labels[0];\n var inputFalse = element.querySelector('input.wi-false');\n var labelFalse = inputFalse.labels[0];\n\n inputTrue.addEventListener(\"change\", (el) => {\n\n var checked = el.target.checked;\n\n if (checked) { \n inputFalse.checked = false; \n labelFalse.classList.remove('btn-primary'); \n labelTrue.classList.add('btn-primary'); \n } else {\n labelTrue.classList.remove('btn-primary'); \n }\n\n });\n\n inputFalse.addEventListener(\"change\", (el) => {\n\n var checked = el.target.checked;\n\n if (checked) { \n inputTrue.checked = false; \n labelTrue.classList.remove('btn-primary'); \n labelFalse.classList.add('btn-primary'); \n } else {\n labelFalse.classList.remove('btn-primary'); \n }\n\n });\n\n\n });\n\n}"},9221:e=>{e.exports="function jqueryDaterange() {\n \n $('.wi-daterange-filter').datepicker({\n format: 'dd/mm/yyyy',\n language: 'it', \n orientation: 'bottom left'\n });\n\n}\n\nfunction setUpJquery() {\n \n jqueryDaterange();\n\n}"},7642:e=>{e.exports="function modal(text, link, title = 'ATTENZIONE', sendText = 'Elimina', sendColor = 'danger', closeText = 'Chiudi', closeColor = 'dark', onSuccess = 'reloadPage', params = null) {\n \n document.querySelector('#modal .modal-title').innerHTML = title;\n document.querySelector('#modal .modal-body').innerHTML = text;\n\n var sendBtn = document.querySelector('#modal button.send');\n sendBtn.innerHTML = sendText;\n sendBtn.classList.add('btn-'+sendColor);\n\n if (onSuccess == 'reloadPage') {\n \n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"')\");\n\n } else {\n \n if (typeof onSuccess === 'function') {\n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"', \"+onSuccess+\", '\"+params+\"')\");\n } else {\n sendBtn.setAttribute(\"onclick\", \"ajaxRequest('\"+link+\"', '\"+onSuccess+\"', '\"+params+\"')\");\n }\n\n }\n\n var closeBtn = document.querySelector('#modal button.close');\n closeBtn.innerHTML = closeText;\n closeBtn.classList.add('btn-'+closeColor);\n\n const modal = new bootstrap.Modal('#modal')\n modal.show();\n\n}"},5071:e=>{e.exports="function menu() { \n\n var el = document.getElementById('sidebar');\n el.classList.toggle(\"show\");\n\n var el = document.getElementById('menu');\n\n var iconMenu = el.querySelector('.open-menu');\n var iconClose = el.querySelector('.close-menu');\n\n if (iconMenu.classList.contains('d-none')) {\n\n // Chiudo il menu\n iconMenu.classList.remove('d-none');\n iconClose.classList.add('d-none');\n\n $('.offcanvas').offcanvas('hide');\n \n } else {\n\n // Apro il menu\n iconClose.classList.remove('d-none');\n iconMenu.classList.add('d-none');\n\n if (document.querySelector('#sidebar li.active [data-bs-target]')) {\n var offcanvasId = document.querySelector('#sidebar li.active [data-bs-target]').dataset.bsTarget;\n $(offcanvasId).offcanvas('show');\n }\n\n }\n \n}\n\nfunction loadingSpinner() {\n\n document.getElementById('loading-spinner').classList.toggle('d-none');\n \n}"},8882:e=>{e.exports='function canvasFullPage(elementId, draw = false) {\n\n var element = document.createElement("CANVAS");\n element.id = elementId;\n element.style.position = "fixed";\n element.style.top = 0;\n element.style.left = 0;\n element.style.zIndex = 999999;\n element.style.background = \'#ffffff\';\n element.style.touchAction = \'none\';\n element.style.msTouchAction = \'none\';\n\n fullPage(element);\n\n window.addEventListener(\'resize\', () => { fullPage(element) });\n\n if (draw) { canvasDraw(element); }\n\n}\n\nfunction canvasReset(element) {\n \n var ctx = element.getContext("2d");\n ctx.clearRect(0, 0, element.width, element.height);\n ctx.restore();\n\n}\n\nfunction canvasDraw(element) {\n\n var ctx = element.getContext("2d");\n \n let offset = position(element);\n let painting = false;\n\n function drawStart() {\n offset = position(element);\n painting = true;\n draw(e);\n }\n\n function drawEnd() {\n painting = false;\n ctx.beginPath();\n }\n\n function draw(e) {\n\n if (!painting) return;\n ctx.lineWidth = 1;\n ctx.lineCap = "round";\n ctx.strokeStyle = "black";\n\n if (e.type == \'touchmove\'){\n var x = e.touches[0].clientX;\n var y = e.touches[0].clientY;\n } else if (e.type == \'mousemove\'){\n var x = e.clientX;\n var y = e.clientY;\n }\n\n var offsetX = offset.left;\n var offsetY = offset.top;\n\n var x = x - offsetX;\n var y = y - offsetY;\n\n ctx.lineTo(x, y);\n ctx.stroke();\n ctx.beginPath();\n ctx.moveTo(x, y);\n\n }\n\n element.addEventListener("mousedown", drawStart);\n element.addEventListener("touchstart", drawStart);\n element.addEventListener("mouseup", drawEnd);\n element.addEventListener("touchend", drawEnd);\n element.addEventListener("mousemove", draw);\n element.addEventListener("touchmove", draw);\n\n}'},6944:e=>{e.exports='function fetchResponse(response) {\n \n if (response.ok) {\n\n return response.json();\n\n } else {\n\n alertToast(802);\n console.error("Impossibile connettersi o trovare il file!");\n return false;\n\n }\n\n}\n\nfunction fetchValue(value) {\n \n if (value == false) {\n \n return false;\n \n } else {\n\n if (value.status == 200) {\n return value;\n } else if (value.status == 401) {\n alertToast(911);\n return false;\n } else if (value.status == undefined) {\n alertToast(803);\n return false;\n } else {\n alertToast(value.status);\n return false;\n }\n\n }\n\n}\n\nfunction fetchError(error) {\n \n alertToast(802);\n console.error("Il file non risponde in JSON!");\n\n}\n'},8197:e=>{e.exports="var AUTONUMERIC_NUMBER = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nvar AUTONUMERIC_PRICE = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbol: '€',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nvar AUTONUMERIC_PERCENTIGE = {\n caretPositionOnFocus: 'end',\n decimalPlacesShownOnFocus: 2,\n digitGroupSeparator: '',\n decimalCharacter: '.',\n onInvalidPaste: 'truncate',\n currencySymbol: '%',\n currencySymbolPlacement: 's',\n outputFormat: 'number',\n unformatOnSubmit: true,\n modifyValueOnWheel: false\n};\n\nfunction customAutonumeric(element, autonumeric) {\n\n var option = {};\n\n if (autonumeric.caretPositionOnFocus != undefined) { \n option.caretPositionOnFocus = autonumeric.caretPositionOnFocus; \n }\n\n if (element.dataset.wiNumberDecimal != undefined) { \n option.decimalPlacesShownOnFocus = element.dataset.wiNumberDecimal;\n option.decimalPlaces = element.dataset.wiNumberDecimal;\n } else {\n if (autonumeric.decimalPlacesShownOnFocus != undefined) {\n option.decimalPlacesShownOnFocus = autonumeric.decimalPlacesShownOnFocus;\n }\n }\n\n if (element.dataset.wiNumberDecimalSeparator != undefined) { \n option.decimalCharacter = element.dataset.wiNumberDecimalSeparator;\n } else {\n if (autonumeric.decimalCharacter != undefined) {\n option.decimalCharacter = autonumeric.decimalCharacter;\n }\n }\n\n if (element.dataset.wiNumberGroupSeparator != undefined) { \n option.digitGroupSeparator = element.dataset.wiNumberGroupSeparator;\n } else {\n if (autonumeric.digitGroupSeparator != undefined) {\n option.digitGroupSeparator = autonumeric.digitGroupSeparator;\n }\n }\n\n if (autonumeric.onInvalidPaste != undefined) { \n option.onInvalidPaste = autonumeric.onInvalidPaste; \n }\n\n if (element.dataset.wiNumberSymbol != undefined) { \n option.currencySymbol = element.dataset.wiNumberSymbol;\n } else {\n if (autonumeric.currencySymbol != undefined) {\n option.currencySymbol = autonumeric.currencySymbol;\n }\n }\n\n if (element.dataset.wiNumberSymbolPlacement != undefined) { \n option.currencySymbolPlacement = element.dataset.wiNumberSymbolPlacement;\n } else {\n if (autonumeric.currencySymbolPlacement != undefined) {\n option.currencySymbolPlacement = autonumeric.currencySymbolPlacement;\n }\n }\n\n if (autonumeric.outputFormat != undefined) { \n option.outputFormat = autonumeric.outputFormat; \n }\n\n if (autonumeric.unformatOnSubmit != undefined) { \n option.unformatOnSubmit = autonumeric.unformatOnSubmit; \n }\n\n if (autonumeric.modifyValueOnWheel != undefined) { \n option.modifyValueOnWheel = autonumeric.modifyValueOnWheel; \n }\n\n return option;\n \n}\n\nfunction setAutonumeric() {\n \n document.querySelectorAll(\"[data-wi-number='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n \n if (el === null) {\n\n new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_NUMBER)); \n \n }\n\n });\n\n document.querySelectorAll(\"[data-wi-price='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PRICE)); }\n\n });\n \n document.querySelectorAll(\"[data-wi-percentige='true']\").forEach(element => {\n \n var el = AutoNumeric.getAutoNumericElement(element);\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PERCENTIGE)); }\n\n });\n\n}"},3883:e=>{e.exports='function checkPhone(element) {\n \n var phones = [\n { "mask": "### ### ####"}\n ];\n\n new Inputmask({ \n mask: phones, \n greedy: false, \n placeholder: \'\', \n definitions: { \n \'#\': { \n validator: "[0-9]", \n cardinality: 1\n }\n } \n }).mask(element);\n\n}'},8636:e=>{e.exports="function position(element, showItem = false) {\n\n var rect = element.getBoundingClientRect();\n\n if (showItem) {\n\n var width = rect.right - rect.left;\n var height = rect.bottom - rect.top;\n\n var element = document.createElement(\"DIV\");\n element.style.position = \"fixed\";\n element.style.top = rect.top+'px';\n element.style.left = rect.left+'px';\n element.style.width = width+'px';\n element.style.height = height+'px';\n element.style.zIndex = 999999;\n element.style.background = 'rgba(255, 0, 0, .2)';\n document.body.appendChild(element);\n\n }\n\n return rect;\n\n}\n\nfunction fullPage(element) {\n element.width = window.innerWidth;\n element.height = window.innerHeight;\n}\n\nfunction copyText(text, icon = null) {\n\n if (icon != null) {\n document.querySelectorAll('.bi-clipboard-check').forEach(element => {\n element.classList.remove('bi-clipboard-check')\n element.classList.add('bi-clipboard');\n });\n }\n\n navigator.clipboard.writeText(text).then(() => {\n if (icon != null) {\n icon.classList.remove('bi-clipboard');\n icon.classList.add('bi-clipboard-check');\n }\n },() => {\n if (icon != null) {\n icon.classList.remove('bi-clipboard');\n icon.classList.add('bi-clipboard-x');\n }\n });\n\n}\n\nfunction ajaxRequestError(request) {\n \n if (request.readyState == 4) {\n alertToast(802);\n } else if (request.readyState == 0) {\n alertToast(801);\n } else {\n alertToast(800);\n }\n\n}\n\nfunction code(codeLength = 10) {\n\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n var charactersLength = characters.length;\n\n for ( var i = 0; i < codeLength; i++ ) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n\n return result;\n\n}\n\nfunction isMobile() {\n\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return true;\n } else {\n return false;\n }\n \n}\n\nfunction delay(time) {\n\n return new Promise(resolve => setTimeout(resolve, time));\n\n}"},4642:e=>{e.exports=function(e){function n(e){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",e)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(e):"undefined"!=typeof eval?eval.call(null,e):n("EvalError: No eval function available")}catch(e){n(e)}}},734:(e,n,t)=>{t(4642)(t(5285))},9196:(e,n,t)=>{t(4642)(t(4729))},9676:(e,n,t)=>{t(4642)(t(8553))},5328:(e,n,t)=>{t(4642)(t(5249))},4315:(e,n,t)=>{t(4642)(t(3990))},5545:(e,n,t)=>{t(4642)(t(7418))},8109:(e,n,t)=>{t(4642)(t(9636))},2879:(e,n,t)=>{t(4642)(t(9198))},2981:(e,n,t)=>{t(4642)(t(1826))},2730:(e,n,t)=>{t(4642)(t(9221))},555:(e,n,t)=>{t(4642)(t(7642))},8258:(e,n,t)=>{t(4642)(t(5071))},9111:(e,n,t)=>{t(4642)(t(8882))},2347:(e,n,t)=>{t(4642)(t(6944))},8004:(e,n,t)=>{t(4642)(t(8197))},3286:(e,n,t)=>{t(4642)(t(3883))},9899:(e,n,t)=>{t(4642)(t(8636))}},n={};function t(a){var r=n[a];if(void 0!==r)return r.exports;var o=n[a]={exports:{}};return e[a](o,o.exports,t),o.exports}t.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var a in n)t.o(n,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:n[a]})},t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{"use strict";t.r(a);t(8004),t(3286),t(2347),t(9899),t(9111),t(8258),t(734),t(5328),t(5545),t(4315),t(2981),t(2879),t(8109),t(9196),t(555),t(9676),t(2730)})(),window.wonder=a})();
3
3
  //# sourceMappingURL=head.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend/head.js","mappings":";sBAAAA,EAAOC,QAAU,+oECAjBD,EAAOC,QAAU,u+DCAjBD,EAAOC,QAAU,k7DCAjBD,EAAOC,QAAU,kxVCAjBD,EAAOC,QAAU,m3JCAjBD,EAAOC,QAAU,y7RCAjBD,EAAOC,QAAU,sxICAjBD,EAAOC,QAAU,0WCAjBD,EAAOC,QAAU,62TCAjBD,EAAOC,QAAU,sQCAjBD,EAAOC,QAAU,upCCAjBD,EAAOC,QAAU,2/BCAjBD,EAAOC,QAAU,igECAjBD,EAAOC,QAAU,63BCAjBD,EAAOC,QAAU,gtICAjBD,EAAOC,QAAU,mYCAjBD,EAAOC,QAAU,wxECIjBD,EAAOC,QAAU,SAASC,GACzB,SAASC,EAAIC,GACQ,oBAAZC,UACJA,QAAQD,OAASC,QAAQF,KAAK,kBAAmBC,EACtD,CAOA,IAC2B,oBAAfE,YAJmB,oBAAhBC,aAA2D,oBAArBC,iBAKnDF,WAAWJ,GACe,oBAATO,KACjBA,KAAKC,KAAK,KAAMR,GAEhBC,EAAI,wCAEN,CAAE,MAAOC,GACRD,EAAIC,EACL,CACD,iBC1BA,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,sBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,SCC7GO,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAab,QAGrB,IAAID,EAASW,EAAyBE,GAAY,CAGjDZ,QAAS,CAAC,GAOX,OAHAe,EAAoBH,GAAUb,EAAQA,EAAOC,QAASW,GAG/CZ,EAAOC,OACf,CCrBAW,EAAoBK,EAAKjB,IACxB,IAAIkB,EAASlB,GAAUA,EAAOmB,WAC7B,IAAOnB,EAAiB,QACxB,IAAM,EAEP,OADAY,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdN,EAAoBQ,EAAI,CAACnB,EAASqB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEvB,EAASsB,IAC5EE,OAAOC,eAAezB,EAASsB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAetB,KAAKmB,EAAKC,GCClFlB,EAAoBqB,EAAKhC,IACH,oBAAXiC,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAezB,EAASiC,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAezB,EAAS,aAAc,CAAEmC,OAAO,GAAO","sources":["webpack://wonder/./src/build/backend/js/ajax.js","webpack://wonder/./src/build/backend/js/alert.js","webpack://wonder/./src/build/backend/js/bootstrap.js","webpack://wonder/./src/build/backend/js/form/editor.js","webpack://wonder/./src/build/backend/js/form/file.js","webpack://wonder/./src/build/backend/js/form/input.js","webpack://wonder/./src/build/backend/js/form/inputRow.js","webpack://wonder/./src/build/backend/js/form/send.js","webpack://wonder/./src/build/backend/js/form/set.js","webpack://wonder/./src/build/backend/js/jquery.js","webpack://wonder/./src/build/backend/js/modal.js","webpack://wonder/./src/build/backend/js/utility.js","webpack://wonder/./src/build/global/js/canvas.js","webpack://wonder/./src/build/global/js/fetch.js","webpack://wonder/./src/build/global/js/form/autonumeric.js","webpack://wonder/./src/build/global/js/form/phone.js","webpack://wonder/./src/build/global/js/utility.js","webpack://wonder/./node_modules/script-loader/addScript.js","webpack://wonder/./src/build/backend/js/ajax.js?5edf","webpack://wonder/./src/build/backend/js/alert.js?ecdd","webpack://wonder/./src/build/backend/js/bootstrap.js?a563","webpack://wonder/./src/build/backend/js/form/editor.js?d3ee","webpack://wonder/./src/build/backend/js/form/file.js?1251","webpack://wonder/./src/build/backend/js/form/input.js?29d6","webpack://wonder/./src/build/backend/js/form/inputRow.js?4d20","webpack://wonder/./src/build/backend/js/form/send.js?4232","webpack://wonder/./src/build/backend/js/form/set.js?1979","webpack://wonder/./src/build/backend/js/jquery.js?4d3e","webpack://wonder/./src/build/backend/js/modal.js?8850","webpack://wonder/./src/build/backend/js/utility.js?cf29","webpack://wonder/./src/build/global/js/canvas.js?1992","webpack://wonder/./src/build/global/js/fetch.js?e11d","webpack://wonder/./src/build/global/js/form/autonumeric.js?ad99","webpack://wonder/./src/build/global/js/form/phone.js?29c0","webpack://wonder/./src/build/global/js/utility.js?f76e","webpack://wonder/webpack/bootstrap","webpack://wonder/webpack/runtime/compat get default export","webpack://wonder/webpack/runtime/define property getters","webpack://wonder/webpack/runtime/hasOwnProperty shorthand","webpack://wonder/webpack/runtime/make namespace object"],"sourcesContent":["module.exports = \"function ajaxRequest(link, onSuccess = reloadPage, params = null) {\\n\\n loadingSpinner();\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: link,\\n data: { \\n post: 'true'\\n }, \\n success: function(data) {\\n\\n if (onSuccess != null) {\\n if (typeof onSuccess === 'function') {\\n \\n if (params == null) {\\n onSuccess();\\n } else {\\n onSuccess(params);\\n }\\n \\n } else {\\n \\n try {\\n \\n var x = JSON.parse(onSuccess.replace('&quot;', '\\\"'));\\n\\n var f = x.function;\\n var p = x.parameters;\\n \\n } catch {\\n\\n var f = onSuccess;\\n var p = params;\\n\\n }\\n \\n window[f](p);\\n \\n }\\n }\\n\\n loadingSpinner();\\n \\n },\\n error: function (XMLHttpRequest) {\\n ajaxRequestError(XMLHttpRequest);\\n loadingSpinner();\\n }\\n }); \\n\\n}\\n\\nfunction reloadPage() {\\n\\n location.reload();\\n \\n}\\n\\nasync function postData(url, data) {\\n\\n loadingSpinner();\\n\\n if (data === undefined) {\\n\\n console.error(\\\"Non è stato passato alcun dato alla funzione postData()\\\");\\n \\n } else {\\n\\n if (data instanceof FormData === false) {\\n var data = createPostData(data)\\n }\\n \\n await fetch(url, {\\n method: \\\"POST\\\",\\n body: data\\n })\\n .then((response) => { loadingSpinner(); return fetchResponse(response); })\\n .then((value) => { return fetchValue(value); })\\n .catch((error) => { fetchValue(error); });\\n\\n }\\n\\n}\\n\\nfunction createPostData(array = {}) {\\n\\n var data = new FormData();\\n\\n Object.keys(array).forEach(key => {\\n data.append(key, array[key]);\\n });\\n\\n return data;\\n\\n}\"","module.exports = \"function toastContainer() {\\n\\n if (document.querySelector('.toast-container')) {\\n\\n var container = document.querySelector('.toast-container');\\n\\n }else{\\n\\n var container = document.createElement('div');\\n container.classList.add('toast-container');\\n container.classList.add('position-fixed');\\n container.classList.add('top-0');\\n container.classList.add('end-0');\\n container.classList.add('p-3');\\n\\n document.body.insertBefore(container, document.body.firstChild);\\n\\n }\\n\\n return container;\\n\\n}\\n\\nfunction alertToast(alert, type = null, title = null, text = null) {\\n\\n var container = toastContainer();\\n\\n $(\\\".toast.show\\\").toast().hide();\\n \\n if (alert == 801) {\\n\\n container.innerHTML = NO_INTERNET_ALERT + container.innerHTML;\\n const toast = new bootstrap.Toast(container.firstElementChild);\\n toast.show();\\n\\n } else if (alert != undefined) {\\n\\n if (alert == 'custom') {\\n\\n var data = {\\n post: 'true',\\n backend: 'true',\\n alert: alert,\\n alertType: type,\\n alertTitle: title,\\n alertText: text\\n }\\n\\n } else {\\n\\n var data = {\\n post: 'true',\\n backend: 'true',\\n alert: alert\\n };\\n\\n }\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: pathApp+'/api/alert.php',\\n data: data, \\n success: function (data) {\\n\\n container.innerHTML = data + container.innerHTML;\\n const toast = new bootstrap.Toast(container.firstElementChild);\\n toast.show();\\n \\n var url = new URL(window.location.href);\\n url.searchParams.delete('alert');\\n window.history.replaceState(null, null, url);\\n \\n }\\n });\\n\\n }\\n\\n}\"","module.exports = \"function bootstrapToast() {\\n\\n var toastElList = [].slice.call(document.querySelectorAll('.toast'))\\n var toastList = toastElList.map(function(toastEl) {\\n return new bootstrap.Toast(toastEl)\\n });\\n toastList.forEach(toast => toast.show());\\n\\n}\\n\\nfunction bootstrapTooltip() { $('[data-bs-toggle=\\\"tooltip\\\"]').tooltip(); }\\n\\nfunction bootstrapTheme(theme) {\\n\\n document.querySelector(\\\"html\\\").setAttribute(\\\"data-bs-theme\\\", theme);\\n\\n localStorage.setItem('theme', theme);\\n \\n if (theme == 'light') {\\n\\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.remove('d-none'); }\\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.add('d-none'); }\\n\\n document.querySelector('#be-logo-white').classList.add('d-none');\\n document.querySelector('#be-logo-black').classList.remove('d-none');\\n\\n element = document.querySelector('[data-bs-theme-value=\\\"light\\\"]');\\n el = document.querySelector('[data-bs-theme-value=\\\"dark\\\"]');\\n\\n } else if (theme == 'dark') {\\n\\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.add('d-none'); }\\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.remove('d-none'); }\\n\\n document.querySelector('#be-logo-white').classList.remove('d-none');\\n document.querySelector('#be-logo-black').classList.add('d-none');\\n\\n element = document.querySelector('[data-bs-theme-value=\\\"dark\\\"]');\\n el = document.querySelector('[data-bs-theme-value=\\\"light\\\"]');\\n\\n }\\n\\n if (el) { el.classList.remove('active'); }\\n if (element) { element.classList.add('active'); }\\n\\n}\\n\\nfunction setUpBootstrap() {\\n \\n bootstrapTooltip();\\n\\n}\"","module.exports = \"class CustomHyperlink extends Hyperlink {\\n iconSvg(name, width = 14, height = 14) {\\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\\n svg.classList.add('icon', 'icon--' + name);\\n svg.setAttribute('width', '24');\\n svg.setAttribute('height','24');\\n svg.setAttribute('viewBox', '0 0 24 24')\\n svg.setAttribute('fill', 'none');\\n if (name == 'link') {\\n svg.innerHTML = `\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M7.69998 12.6L7.67896 12.62C6.53993 13.7048 6.52012 15.5155 7.63516 16.625V16.625C8.72293 17.7073 10.4799 17.7102 11.5712 16.6314L13.0263 15.193C14.0703 14.1609 14.2141 12.525 13.3662 11.3266L13.22 11.12\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M16.22 11.12L16.3564 10.9805C17.2895 10.0265 17.3478 8.5207 16.4914 7.49733V7.49733C15.5691 6.39509 13.9269 6.25143 12.8271 7.17675L11.3901 8.38588C10.0935 9.47674 9.95706 11.4241 11.0888 12.6852L11.12 12.72\\\"></path>\\n `;\\n } else {\\n svg.innerHTML = `\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M15.7795 11.5C15.7795 11.5 16.053 11.1962 16.5497 10.6722C17.4442 9.72856 17.4701 8.2475 16.5781 7.30145V7.30145C15.6482 6.31522 14.0873 6.29227 13.1288 7.25073L11.8796 8.49999\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M8.24517 12.3883C8.24517 12.3883 7.97171 12.6922 7.47504 13.2161C6.58051 14.1598 6.55467 15.6408 7.44666 16.5869V16.5869C8.37653 17.5731 9.93744 17.5961 10.8959 16.6376L12.1452 15.3883\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M17.7802 15.1032L16.597 14.9422C16.0109 14.8624 15.4841 15.3059 15.4627 15.8969L15.4199 17.0818\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M6.39064 9.03238L7.58432 9.06668C8.17551 9.08366 8.6522 8.58665 8.61056 7.99669L8.5271 6.81397\\\"></path><line x1=\\\"12.1142\\\" x2=\\\"11.7\\\" y1=\\\"12.2\\\" y2=\\\"11.7858\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\"></line>\\n `;\\n }\\n return svg;\\n }\\n}\\n\\nclass CustomEmded extends Embed {\\n \\n static get toolbox() {\\n return {\\n title: 'Iframe',\\n icon: '<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M10 13a5 5 0 0 1 0-6M14 11a5 5 0 0 1 0 6\\\"></path><line x1=\\\"14\\\" y1=\\\"7\\\" x2=\\\"14\\\" y2=\\\"7\\\"></line><line x1=\\\"10\\\" y1=\\\"17\\\" x2=\\\"10\\\" y2=\\\"17\\\"></line></svg>'\\n };\\n }\\n \\n /**\\n * Render Embed tool content\\n *\\n * @returns {HTMLElement}\\n */\\n render() {\\n if (!this.data.service) {\\n const container = document.createElement('div');\\n \\n this.element = container;\\n const input = document.createElement('input');\\n input.classList.add('cdx-input');\\n input.placeholder = 'https://www.youtube.com/watch?v=w8vsuOXZBXc';\\n input.type = 'url';\\n input.addEventListener('paste', (event) => {\\n const url = event.clipboardData.getData('text');\\n const service = Object.keys(Embed.services).find((key) => Embed.services[key].regex.test(url));\\n if (service) {\\n this.onPaste({detail: {key: service, data: url}});\\n }\\n });\\n container.appendChild(input);\\n \\n return container;\\n }\\n return super.render();\\n }\\n \\n validate(savedData) {\\n return savedData.service && savedData.source ? true : false;\\n }\\n}\\n\\nclass CustomVideoTool extends VideoTool {\\n \\n static get toolbox() {\\n return {\\n title: 'Video',\\n icon: '<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M10 10.5606V13.4394C10 14.4777 11.1572 15.0971 12.0211 14.5211L14.1803 13.0817C14.9536 12.5661 14.9503 11.4317 14.18 10.9181L12.0214 9.47907C11.1591 8.9042 10 9.5203 10 10.5606Z\\\" stroke=\\\"black\\\" stroke-width=\\\"2\\\"/><rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"14\\\" height=\\\"14\\\" rx=\\\"4\\\" stroke=\\\"black\\\" stroke-width=\\\"2\\\"/></svg>'\\n };\\n }\\n \\n}\\n\\nvar EDITORJS_TOOLS_BLOG = {\\n paragraph: {\\n inlineToolbar: true,\\n tunes: ['textAlign']\\n },\\n header: {\\n class: Header,\\n inlineToolbar: true,\\n tunes: ['textAlign'],\\n config: {\\n placeholder: 'Titolo...',\\n levels: [1, 2, 4],\\n defaultLevel: 2\\n }\\n },\\n quote: {\\n class: Quote,\\n inlineToolbar: true,\\n config: {\\n quotePlaceholder: 'Scrivi una citazione...',\\n captionPlaceholder: 'Autore',\\n },\\n },\\n list: {\\n class: NestedList,\\n inlineToolbar: true,\\n config: {\\n defaultStyle: 'unordered'\\n },\\n },\\n delimiter: Delimiter,\\n table: {\\n class: Table,\\n inlineToolbar: ['link', 'italic', 'bold'],\\n },\\n // code: CodeTool,\\n image: {\\n class: ImageTool,\\n config: {\\n captionPlaceholder: 'Caption...',\\n endpoints: {\\n byFile: pathApp+'/api/backend/editorjs/image.php'\\n // Aggiungere cartella dove caricare i file\\n },\\n field: 'image',\\n types: 'image/png, image/jpg, image/jpeg',\\n additionalRequestHeaders: { dir: '' }\\n // Forzo nel css la rimozione \\\"display: none\\\" di withBorder, stretched e withBackground\\n }\\n },\\n gallery: {\\n class: ImageGallery,\\n config: {\\n captionPlaceholder: 'Caption galleria...',\\n endpoints: {\\n byFile: pathApp+'/api/backend/editorjs/image.php'\\n // Aggiungere cartella dove caricare i file\\n },\\n field: 'image',\\n types: 'image/png, image/jpg, image/jpeg',\\n additionalRequestHeaders: { dir: '' }\\n // Forzo nel css la rimozione \\\"display: none\\\" di fit e slider\\n },\\n },\\n Marker: Marker,\\n inlineCode: InlineCode,\\n attaches: {\\n class: AttachesTool,\\n config: {\\n endpoint: pathApp+'/api/backend/editorjs/file.php',\\n // Aggiungere cartella dove caricare i file\\n field: 'file',\\n additionalRequestHeaders: { dir: '' }\\n }\\n },\\n // TODO: Aggiungi caricamento video (potrebbe tornare utile la classe ImageTool)\\n // video: {\\n // class: CustomVideoTool,\\n // config: {\\n // captionPlaceholder: 'Caption...',\\n // endpoints: {\\n // byFile: pathSite+'/api/task/article/file.php'\\n // },\\n // player: {\\n // controls: true,\\n // autoplay: false,\\n // },\\n // field: 'file',\\n // types: 'video/quicktime, video/mp4'\\n // // Forzo nel css la rimozione \\\"display: none\\\" di withBorder, stretched e withBackground\\n // }\\n // },\\n // TODO: embed non funziona. Trovare un modo per caricare iframe\\n // embed: {\\n // class: CustomEmded,\\n // },\\n textAlign: {\\n class: AlignmentTuneTool,\\n config:{\\n default: \\\"left\\\"\\n },\\n },\\n link: {\\n class: CustomHyperlink,\\n config: {\\n shortcut: 'CMD+L',\\n target: '_blank',\\n rel: 'nofollow',\\n availableTargets: ['_blank', '_self'],\\n availableRels: ['author', 'noreferrer'],\\n validate: false,\\n }\\n },\\n};\\n\\nvar EDITORJS_TOOLS_TABLE = {\\n paragraph: false,\\n inlineCode: InlineCode,\\n table: {\\n class: Table,\\n inlineToolbar: ['link', 'italic', 'bold'],\\n }\\n};\\n\\nvar EDITORJS_i18n_IT = {\\n messages: {\\n ui: {\\n \\\"blockTunes\\\": {\\n \\\"toggler\\\": {\\n \\\"Click to tune\\\": \\\"Modifica\\\",\\n \\\"or drag to move\\\": \\\"Trascina per muovere\\\"\\n },\\n },\\n \\\"inlineToolbar\\\": {\\n \\\"converter\\\": {\\n \\\"Convert to\\\": \\\"Converti\\\"\\n }\\n },\\n \\\"toolbar\\\": {\\n \\\"toolbox\\\": {\\n \\\"Add\\\": \\\"Aggiungi\\\",\\n }\\n }\\n },\\n toolNames: {\\n \\\"Add\\\": \\\"Aggiungi\\\",\\n \\\"Quote\\\": \\\"Citazione\\\",\\n \\\"Delimiter\\\": \\\"Linea\\\",\\n \\\"Text\\\": \\\"Testo\\\",\\n \\\"Heading\\\": \\\"Titolo\\\",\\n \\\"Table\\\": \\\"Tabella\\\",\\n \\\"Code\\\": \\\"Codice\\\",\\n \\\"List\\\": \\\"Elenco\\\",\\n \\\"Bold\\\": \\\"Grassetto\\\",\\n \\\"Italic\\\": \\\"Corsivo\\\",\\n \\\"Marker\\\": \\\"Evidenzia\\\",\\n \\\"InlineCode\\\": \\\"Codice\\\",\\n \\\"TextAlign\\\": \\\"Allineamento\\\",\\n \\\"Gallery\\\": \\\"Galleria\\\",\\n \\\"Image\\\": \\\"Immagine\\\",\\n \\\"Attachment\\\": \\\"Allega file\\\",\\n },\\n tools: {\\n \\\"header\\\": {\\n \\\"Heading 1\\\": \\\"Titolo grande\\\",\\n \\\"Heading 2\\\": \\\"Titolo\\\",\\n \\\"Heading 4\\\": \\\"Sottotitolo\\\"\\n },\\n \\\"link\\\": {\\n \\\"Add a link\\\": \\\"Aggiungi link\\\"\\n },\\n \\\"code\\\": {\\n \\\"Enter a code\\\": \\\"Inserisci codice\\\",\\n },\\n \\\"quote\\\": {\\n \\\"Align Left\\\": \\\"Allinea a sinistra\\\",\\n \\\"Align Center\\\": \\\"Allinea in centro\\\",\\n },\\n \\\"table\\\": {\\n \\\"With headings\\\": \\\"Con intestazione\\\",\\n \\\"Without headings\\\": \\\"Senza intestazione\\\",\\n \\\"Add column to left\\\": \\\"Aggiungi colonna sinistra\\\",\\n \\\"Add column to right\\\": \\\"Aggiungi colonna destra\\\",\\n \\\"Add row above\\\": \\\"Aggiungi riga sopra\\\",\\n \\\"Add row below\\\": \\\"Aggiungi riga sotto\\\",\\n \\\"Delete column\\\": \\\"Elimina colonna\\\",\\n \\\"Delete row\\\": \\\"Elimina riga\\\",\\n },\\n \\\"list\\\": {\\n \\\"Ordered\\\": \\\"Elenco numerato\\\",\\n \\\"Unordered\\\": \\\"Elenco puntato\\\",\\n },\\n \\\"gallery\\\": {\\n \\\"Select an Image\\\": \\\"Seleziona immagini\\\",\\n },\\n \\\"image\\\": {\\n \\\"Select an Image\\\": \\\"Seleziona immagine\\\",\\n },\\n \\\"video\\\": {\\n \\\"Select an Video\\\": \\\"Seleziona video\\\",\\n },\\n \\\"attaches\\\": {\\n \\\"Select file to upload\\\": \\\"Seleziona file da allegare\\\",\\n },\\n },\\n blockTunes: {\\n \\\"delete\\\": {\\n \\\"Delete\\\": \\\"Elimina\\\",\\n \\\"Click to delete\\\": \\\"Clicca per elimina\\\"\\n },\\n \\\"moveUp\\\": {\\n \\\"Move up\\\": \\\"Su\\\"\\n },\\n \\\"moveDown\\\": {\\n \\\"Move down\\\": \\\"Giù\\\"\\n }\\n },\\n }\\n};\"","module.exports = \"function moveFile(selectorContainer, selectorData, action) {\\n\\n var link = pathApp+'/api/backend/file/move.php';\\n\\n var el = document.querySelector(selectorContainer+' '+selectorData);\\n\\n var table = el.dataset.wiDbTable;\\n var column = el.dataset.wiDbColumn;\\n var rowId = el.dataset.wiDbRow;\\n var fileId = el.dataset.wiFileId;\\n var oldPosition = Number(el.dataset.wiOrder);\\n var nFile = el.dataset.wiNFile;\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: link,\\n data: { \\n post: 'true',\\n table: table,\\n column: column,\\n row_id: rowId,\\n file_id: fileId,\\n action: action\\n },\\n success: function (data) {\\n \\n if (action == 'up') {\\n var newPosition = oldPosition - 1;\\n } else if (action == 'down') {\\n var newPosition = oldPosition + 1;\\n }\\n\\n var file1 = document.querySelector(selectorContainer+' .wi-card-file.order-'+oldPosition);\\n var file2 = document.querySelector(selectorContainer+' .wi-card-file.order-'+newPosition);\\n\\n file1.classList.remove('order-'+oldPosition);\\n file1.classList.add('order-'+newPosition);\\n file1.dataset.wiOrder = newPosition;\\n file1.dataset.wiFileId = file2.dataset.wiFileId;\\n\\n file2.classList.remove('order-'+newPosition);\\n file2.classList.add('order-'+oldPosition);\\n file2.dataset.wiOrder = oldPosition;\\n file2.dataset.wiFileId = fileId;\\n\\n // Sistema first e last\\n firstLastFile(selectorContainer, nFile);\\n \\n },\\n error: function (XMLHttpRequest) {\\n ajaxRequestError(XMLHttpRequest);\\n }\\n }); \\n\\n}\\n\\nfunction deleteFile(selectorContainer, selectorData) {\\n\\n var el = document.querySelector(selectorContainer+' '+selectorData);\\n\\n var folder = el.dataset.wiFolder;\\n var table = el.dataset.wiDbTable;\\n var column = el.dataset.wiDbColumn;\\n var rowId = el.dataset.wiDbRow;\\n var fileId = el.dataset.wiFileId;\\n\\n var oldPosition = Number(el.dataset.wiOrder);\\n var nFile = el.dataset.wiNFile;\\n\\n var fileName = el.dataset.wiFileName;\\n\\n var text = \\\"Sei sicuro di eliminare il file <b>\\\"+fileName+\\\"</b>?\\\";\\n var link = pathApp+'/api/backend/file/delete.php?folder='+folder+'&table='+table+'&column='+column+'&row_id='+rowId+'&file_id='+fileId;\\n\\n var onSuccess = '{ \\\"function\\\" : \\\"removeFile\\\", \\\"parameters\\\": { \\\"container\\\" : \\\"'+selectorContainer+'\\\", \\\"data\\\" : \\\"'+selectorData+'\\\", \\\"nFile\\\" : \\\"'+nFile+'\\\", \\\"position\\\" : \\\"'+oldPosition+'\\\"} }';\\n\\n modal(text, link, 'ATTENZIONE', 'Elimina', 'danger', 'Chiudi', 'dark', onSuccess);\\n\\n}\\n\\nfunction removeFile(parameters) {\\n\\n var selectorContainer = parameters.container;\\n var selectorData = parameters.data;\\n var deletedFilePosition = Number(parameters.position);\\n var maxFile = Number(parameters.maxFile);\\n var old_nFile = Number(parameters.nFile);\\n const real_nFile = old_nFile - 1;\\n\\n document.querySelector(selectorContainer+' '+selectorData).remove();\\n\\n document.querySelectorAll(selectorContainer+' .wi-card-file').forEach(element => {\\n\\n var filePosition = Number(element.dataset.wiOrder);\\n element.dataset.wiNFile = real_nFile;\\n\\n if (filePosition > deletedFilePosition) {\\n\\n var newPosition = filePosition - 1;\\n var newId = newPosition - 1;\\n\\n element.dataset.wiOrder = newPosition;\\n element.classList.remove('order-'+filePosition);\\n element.classList.add('order-'+newPosition);\\n\\n element.dataset.wiFileId = newId;\\n\\n }\\n\\n });\\n\\n\\n var maxFile = document.querySelector(selectorContainer+' input').dataset.wiMaxFile;\\n\\n if (maxFile > real_nFile) {\\n document.querySelector(selectorContainer+' input').disabled = false;\\n }\\n\\n firstLastFile(selectorContainer, real_nFile);\\n\\n $('#modal').modal('hide');\\n\\n}\\n\\nfunction firstLastFile(selectorContainer, nFile) {\\n\\n if (document.querySelectorAll(selectorContainer+' .wi-card-file').length > 0) {\\n\\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-first-file')) {\\n document.querySelector(selectorContainer+' .wi-card-file.wi-first-file').classList.remove('wi-first-file');\\n }\\n \\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-last-file')) {\\n document.querySelector(selectorContainer+' .wi-card-file.wi-last-file').classList.remove('wi-last-file');\\n }\\n \\n document.querySelector(selectorContainer+' .wi-card-file.order-1').classList.add('wi-first-file');\\n document.querySelector(selectorContainer+' .wi-card-file.order-'+nFile).classList.add('wi-last-file');\\n \\n }\\n\\n}\"","module.exports = \"function check() {\\n \\n document.querySelectorAll(\\\"form button[type='submit'], form button.wi-submit\\\").forEach(button => {\\n \\n button.removeAttribute(\\\"disabled\\\");\\n\\n var inputList = button.form.elements;\\n\\n for (let i = 0; i < inputList.length; i++) {\\n\\n var input = inputList[i];\\n\\n if (input.required) {\\n if (input.type == 'checkbox' || input.type == 'radio') {\\n if (input.checked == false) { button.setAttribute(\\\"disabled\\\", null); }\\n } else {\\n if (input.value == \\\"\\\") { button.setAttribute(\\\"disabled\\\", null); }\\n }\\n }\\n\\n }\\n\\n var formElement = button.form;\\n\\n formElement.querySelectorAll(\\\".wi-checkbox-required, .wi-radio-required\\\").forEach(checkboxContainer => {\\n\\n if (checkboxContainer.querySelectorAll(\\\"input[type='checkbox']:checked, input[type='radio']:checked\\\").length == 0) { button.setAttribute(\\\"disabled\\\", null); }\\n\\n });\\n\\n });\\n\\n}\\n\\nfunction lengthCount(event) {\\n\\n var val = event.target.value;\\n var container = event.target.parentElement;\\n\\n if (container.querySelector('.wi-counter')) {\\n container.querySelector('.wi-counter').innerHTML = val.length;\\n }\\n\\n}\\n\\nfunction checkColor(event) {\\n\\n var val = event.target.value;\\n var container = event.target.parentElement;\\n\\n if (val.includes('#')) {\\n container.querySelector('.wi-show-color').style.color = val;\\n } else {\\n container.querySelector('.wi-show-color').el.style.color = 'rgba('+val+')';\\n }\\n \\n}\\n\\nfunction generateCode(selector) {\\n\\n document.querySelector(selector).value = code();\\n \\n}\\n\\nfunction disableInput(type) {\\n\\n if (type == 'user') {\\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\\\"profile_picture[]\\\"], select[name=color], select[name=active]');\\n }\\n\\n inputArray.forEach(element => {\\n\\n element.disabled = true;\\n element.dataset.wiOldValue = element.value;\\n element.dataset.wiOldRequired = element.required;\\n \\n element.value = '';\\n element.required = false;\\n\\n }); \\n\\n}\\n\\nfunction enabledInput(type) {\\n\\n if (type == 'user') {\\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\\\"profile_picture[]\\\"], select[name=color], select[name=active]');\\n }\\n\\n inputArray.forEach(element => {\\n\\n if (element.dataset.wiOldValue) {\\n var wiOldValue = element.dataset.wiOldValue;\\n } else {\\n if (element.name == 'active') {\\n var wiOldValue = \\\"true\\\";\\n } else if (element.name == 'color') {\\n var wiOldValue = \\\"blue\\\";\\n } else {\\n var wiOldValue = \\\"\\\";\\n }\\n }\\n \\n if (element.dataset.wiOldRequired) {\\n var wiOldRequired = element.dataset.wiOldRequired;\\n } else {\\n var wiOldRequired = \\\"\\\";\\n }\\n \\n element.disabled = false;\\n element.value = wiOldValue;\\n element.required = wiOldRequired;\\n\\n }); \\n \\n}\\n\\nfunction setDynamicSearch(element) {\\n\\n var dataValue = element.dataset.wiValue;\\n var containerMaster = element.parentElement;\\n var container = containerMaster.querySelector('.card .card-body');\\n var footer = containerMaster.querySelector('.card .card-footer');\\n\\n container.innerHTML = \\\"\\\";\\n\\n if (dataValue != '') {\\n\\n var value = dataValue;\\n var url = element.dataset.wiSearchUrl;\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: url,\\n data: { \\n post: 'true',\\n id: value\\n }, \\n success: function (data) {\\n createCheckbox(data, element, container, true);\\n checkInput();\\n },\\n error: function (XMLHttpRequest) {\\n\\n ajaxRequestError(XMLHttpRequest);\\n footer.innerHTML = 'Errore!';\\n\\n }\\n });\\n \\n }\\n\\n}\\n\\nfunction createCheckbox(array, element, container, checked = false) {\\n\\n var name = element.dataset.wiName;\\n var attribute = element.dataset.wiAttribute;\\n\\n if (element.dataset.wiSearchRadio != undefined) {\\n var type = \\\"radio\\\";\\n } else if (element.dataset.wiSearchCheckbox != undefined) {\\n var type = \\\"checkbox\\\";\\n }\\n\\n var containerMaster = container.parentElement;\\n var footer = containerMaster.querySelector('.card .card-footer');\\n footer.innerHTML = 'Cerco...';\\n\\n try {\\n\\n const response = JSON.parse(array);\\n const nResponse = response.length;\\n \\n var HTML_CHECKED = \\\"\\\";\\n \\n container.querySelectorAll('input:checked').forEach(el => {\\n \\n el.setAttribute('checked', true);\\n HTML_CHECKED += \\\"<div class='form-check'>\\\"+el.parentElement.innerHTML+\\\"</div>\\\";\\n \\n });\\n \\n container.innerHTML = \\\"\\\";\\n \\n for (let index = 0; index < nResponse; index++) {\\n \\n var idCode = code();\\n var HTML = \\\"\\\";\\n var att = attribute;\\n \\n var value = response[index]['value'];\\n var label = response[index]['label'];\\n var inputValue = response[index]['input-value'];\\n \\n if (checked) { var att = attribute+\\\" checked\\\"; }\\n \\n if (HTML_CHECKED.search('value=\\\"'+value+'\\\"') == '-1') {\\n \\n HTML += \\\"<div class='form-check'>\\\";\\n HTML += \\\"<input id='\\\"+idCode+\\\"' type='\\\"+type+\\\"' class='form-check-input' name='\\\"+name+\\\"' value='\\\"+value+\\\"' data-wi-check='true' \\\"+att+\\\" >\\\";\\n HTML += \\\"<label class='form-check-label wi-check-label user-select-none' for='\\\"+idCode+\\\"'>\\\"+label+\\\"</label>\\\";\\n HTML += \\\"</div>\\\";\\n \\n container.insertAdjacentHTML(\\\"beforeend\\\", HTML);\\n \\n }\\n \\n }\\n\\n container.insertAdjacentHTML(\\\"beforeend\\\", HTML_CHECKED);\\n \\n if (inputValue == '') {\\n footer.innerHTML = \\\"Cerca risultati\\\";\\n } else if (nResponse == 1) {\\n footer.innerHTML = nResponse+\\\" risultato\\\";\\n } else if (nResponse != 1) {\\n footer.innerHTML = nResponse+\\\" risultati\\\";\\n }\\n \\n } catch {\\n\\n console.log(array);\\n footer.innerHTML = 'Errore nel file! Contatta assistenza';\\n\\n }\\n\\n}\\n\\nfunction inputSearch(event) {\\n\\n var inputText = event.target;\\n\\n var containerMaster = inputText.parentElement;\\n var container = containerMaster.querySelector('.card .card-body');\\n var footer = containerMaster.querySelector('.card .card-footer');\\n\\n var inputValue = inputText.value.toLowerCase();\\n\\n if (inputText.dataset.wiSearchUrl != undefined) {\\n\\n var url = inputText.dataset.wiSearchUrl;\\n\\n var footer = containerMaster.querySelector('.card .card-footer');\\n footer.innerHTML = 'Cerco...';\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: url,\\n data: { \\n post: 'true',\\n search: inputValue\\n }, \\n success: function (data) {\\n createCheckbox(data, inputText, container);\\n checkInput();\\n },\\n error: function (XMLHttpRequest) {\\n\\n ajaxRequestError(XMLHttpRequest);\\n footer.innerHTML = 'Errore! Riprova la ricerca.';\\n\\n }\\n });\\n \\n } else {\\n \\n container.querySelectorAll('label.wi-check-label').forEach(element => {\\n \\n var container = element.parentElement;\\n var name = element.innerHTML.toLowerCase();\\n \\n if (name.includes(inputValue)) {\\n element.parentElement.style.display = 'block';\\n } else if (container.querySelector('input').checked == false) {\\n element.parentElement.style.display = 'none';\\n }\\n \\n });\\n\\n }\\n \\n}\\n\\nfunction filterSelect(selectElement, dataName, value) {\\n\\n selectElement.querySelectorAll('option').forEach(option => {\\n\\n if (option.getAttribute('data-'+dataName)) {\\n \\n var filterValue = JSON.parse(option.getAttribute('data-'+dataName));\\n\\n if ((Array.isArray(filterValue) && filterValue.includes(value)) || filterValue == value) {\\n\\n option.disabled = false;\\n option.hidden = false;\\n\\n } else {\\n\\n if (option.selected == true) {\\n selectElement.value = \\\"\\\";\\n }\\n\\n option.disabled = true;\\n option.hidden = true;\\n\\n }\\n\\n }\\n\\n });\\n \\n}\"","module.exports = \"function copyRow(container, element) {\\n\\n var copy = element.cloneNode(true);\\n var position = container.childElementCount;\\n\\n copy.id = '';\\n copy.classList.remove('visually-hidden');\\n copy.classList.add('wi-copy-row');\\n copy.classList.add('order-'+position);\\n\\n copy.querySelector('input[name=\\\"position[]\\\"]').value = position;\\n\\n copy.querySelectorAll('[data-wi-attribute]').forEach(element => {\\n\\n var attribute = element.dataset.wiAttribute;\\n\\n if (attribute != '') {\\n\\n if (attribute.includes('required')) { element.required = true; }\\n if (attribute.includes('disabled')) { element.disabled = true; }\\n if (attribute.includes('readonly')) { element.readonly = true; }\\n\\n }\\n\\n });\\n\\n container.appendChild(copy);\\n \\n checkInput();\\n rowSetArrow(container);\\n bootstrapTooltip();\\n\\n}\\n\\nfunction rowOrder(el1, action) {\\n\\n var container = el1.parentElement;\\n \\n for (let a = 1; a < 100; a++) { \\n \\n var classEl1 = 'order-'+a;\\n\\n if(el1.classList.contains(classEl1)) {\\n\\n if (action == 'up') { var b = a - 1; } \\n if (action == 'down') { var b = a + 1; }\\n\\n var classEl2 = 'order-'+b;\\n\\n var el2 = container.querySelector('.'+classEl2);\\n\\n rowChangePos(el1, a, b);\\n rowChangePos(el2, b, a);\\n\\n rowSetArrow(container);\\n\\n break;\\n\\n }\\n\\n }\\n\\n}\\n\\nfunction rowChangePos(element, oldPosition, newPosition) {\\n \\n element.classList.remove('order-'+oldPosition);\\n element.classList.add('order-'+newPosition);\\n\\n if (element.querySelector('input[name=\\\"position[]\\\"]')) {\\n element.querySelector('input[name=\\\"position[]\\\"]').value = newPosition;\\n }\\n \\n}\\n\\nfunction rowRemoveModal(element) {\\n\\n var container = element.parentElement;\\n\\n var text = 'Sei sicuro di voler eliminare questa linea?<br>Se <b>NON</b> salvi questa operazione non verrà effettuata!'\\n modal(text, 'link');\\n\\n for (let a = 1; a < 100; a++) { \\n\\n var elementClass = 'order-'+a;\\n if(element.classList.contains(elementClass)) { \\n var orderN = a;\\n break; \\n }\\n\\n }\\n\\n var selector = '#'+container.id+' .'+elementClass;\\n\\n var sendBtn = document.querySelector('#modal button.send');\\n sendBtn.setAttribute(\\\"onclick\\\", 'rowRemove(\\\"'+selector+'\\\", \\\"'+orderN+'\\\")');\\n\\n}\\n\\nfunction rowRemove(selector, nRow) {\\n\\n $('#modal').modal('hide');\\n\\n var element = document.querySelector(selector);\\n var container = element.parentElement;\\n var containerId = container.id;\\n pageRemove(element);\\n\\n var rowStart = (nRow * 1) + 1;\\n\\n for (let a = rowStart; a < 100; a++) {\\n\\n var selector = '#'+containerId+' .order-'+a;\\n\\n if (document.querySelector(selector)) {\\n var b = a - 1;\\n rowChangePos(document.querySelector(selector), a, b);\\n } else {\\n break;\\n }\\n \\n }\\n\\n rowSetArrow(container)\\n\\n}\\n\\nfunction rowSetArrow(container) {\\n\\n var nRow = document.querySelectorAll('#'+container.id+' .wi-copy-row').length;\\n\\n if (nRow > 1) {\\n\\n for (let i = 1; i <= nRow; i++) {\\n\\n var arrowUp = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-up');\\n var arrowDown = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-down');\\n\\n if (arrowUp.classList.contains('visually-hidden')) {\\n arrowUp.classList.remove('visually-hidden');\\n }\\n\\n if (arrowDown.classList.contains('visually-hidden')) {\\n arrowDown.classList.remove('visually-hidden');\\n }\\n\\n if (i == 1) {\\n arrowUp.classList.add('visually-hidden');\\n }\\n\\n if (i == nRow) {\\n arrowDown.classList.add('visually-hidden');\\n }\\n \\n }\\n\\n } else if (nRow == 1) {\\n\\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-up').classList.add('visually-hidden');\\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-down').classList.add('visually-hidden');\\n\\n }\\n \\n}\"","module.exports = \"async function formUpload(form, url, responseFunction = null) {\\n \\n var formData = new FormData(form);\\n formData.append('post', 'true');\\n\\n await postData(url, formData).then((data) => {\\n \\n if (data != false) {\\n if (typeof responseFunction === 'function') { responseFunction(data); }\\n }\\n\\n });\\n\\n}\"","module.exports = \"function setSearchInput() {\\n\\n document.querySelectorAll(\\\"[data-wi-search='true']\\\").forEach(element => {\\n\\n element.addEventListener(\\\"keyup\\\", inputSearch);\\n element.addEventListener(\\\"change\\\", lengthCount);\\n element.addEventListener(\\\"focusin\\\", lengthCount);\\n element.addEventListener(\\\"focusout\\\", lengthCount);\\n\\n if (element.dataset.wiSearchUrl != undefined) { setDynamicSearch(element); }\\n\\n });\\n \\n}\\n\\nfunction setUploader() {\\n\\n document.querySelectorAll(\\\"[data-wi-uploader]\\\").forEach(uploader => {\\n\\n var id = uploader.id;\\n var type = uploader.dataset.wiUploader;\\n var dir = uploader.dataset.wiDir;\\n var value = uploader.dataset.wiValue;\\n var label = uploader.dataset.wiUploaderLabel;\\n var accept = uploader.accept;\\n\\n if (accept === '' || accept === '*') {\\n var validation = false;\\n } else {\\n var validation = true;\\n }\\n\\n var files = [];\\n \\n if (value != \\\"\\\") {\\n\\n var value = JSON.parse(value);\\n \\n value.forEach(file => {\\n \\n var source = {\\n source: dir+file\\n };\\n\\n files.push(source);\\n\\n });\\n\\n }\\n\\n if (type == 'classic') {\\n\\n FilePond.create(uploader, {\\n storeAsFile: true,\\n labelIdle: `Trascina `+label+` o <span class=\\\"filepond--label-action\\\">Cerca</span>`,\\n files: files,\\n allowFileTypeValidation: validation,\\n allowDownloadByUrl: true,\\n onaddfile: () => { check(); },\\n onremovefile: () => { check(); }\\n });\\n \\n } else if (type == 'profile') {\\n\\n FilePond.create(uploader, {\\n storeAsFile: true,\\n labelIdle: `Trascina `+label+` o <span class=\\\"filepond--label-action\\\">Cerca</span>`,\\n imageCropAspectRatio: '1:1',\\n stylePanelLayout: 'compact circle',\\n styleLoadIndicatorPosition: 'center bottom',\\n styleButtonRemoveItemPosition: 'center bottom',\\n files: files,\\n allowFileTypeValidation: validation,\\n allowDownloadByUrl: true,\\n onaddfile: () => { check(); },\\n onremovefile: () => { check(); }\\n });\\n \\n }\\n\\n });\\n\\n}\\n\\nfunction setTextarea() {\\n\\n document.querySelectorAll(\\\"[data-wi-textarea]\\\").forEach(textarea => {\\n\\n var container = textarea.parentElement;\\n var type = textarea.dataset.wiTextarea;\\n\\n var textareaId = textarea.id;\\n var textareaValue = atob(textarea.dataset.wiValue);\\n\\n // Creo l'editor\\n var editorId = textareaId+'_editor';\\n\\n var editor = document.createElement(\\\"div\\\");\\n editor.id = editorId;\\n editor.classList.add('position-relative');\\n editor.classList.add('float-start');\\n editor.classList.add('w-100');\\n editor.classList.add('h-auto');\\n editor.classList.add('border');\\n editor.style.maxHeight = '250px';\\n\\n if (type == 'base' || type == 'plus' || type == 'pro') {\\n\\n // Quill.js\\n\\n editor.classList.add('border-top-0');\\n editor.classList.add('rounded-bottom');\\n editor.classList.add('overflow-scroll');\\n \\n container.after(editor);\\n\\n var toolbarId = editorId+'_toolbar';\\n\\n if (type == 'base') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['clean']];\\n } else if (type == 'plus') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], ['clean']];\\n } else if (type == 'pro') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\\n }\\n\\n new Quill('#'+editorId, {\\n theme: 'snow',\\n modules: {\\n toolbar: option\\n }\\n });\\n\\n var col = container.parentElement;\\n var toolbar = col.querySelector('.ql-toolbar');\\n\\n toolbar.id = toolbarId;\\n toolbar.classList.add('position-relative');\\n toolbar.classList.add('float-start');\\n toolbar.classList.add('w-100');\\n toolbar.classList.add('border');\\n toolbar.classList.add('rounded-top');\\n\\n var editor = document.querySelector('#'+editorId+' .ql-editor');\\n\\n editor.innerHTML = textareaValue.replace(\\\"'\\\", \\\"\\\\'\\\");\\n\\n editor.addEventListener('keydown', () => { textarea.value = editor.innerHTML; });\\n editor.addEventListener('DOMNodeInserted', () => { textarea.value = editor.innerHTML; });\\n\\n } else if (type == 'table' || type == 'blog') {\\n\\n // Editor.js\\n\\n EDITORJS_TOOLS_BLOG.image.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\\n EDITORJS_TOOLS_BLOG.gallery.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\\n EDITORJS_TOOLS_BLOG.attaches.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/files';\\n\\n editor.classList.add('wi-'+type);\\n editor.classList.add('pt-3');\\n editor.classList.add('rounded');\\n editor.classList.add('overflow-scroll');\\n\\n container.after(editor);\\n\\n if (type == 'table') {\\n \\n if (textareaValue == null || textareaValue == '') {\\n var data = '{\\\"blocks\\\":[{\\\"id\\\":\\\"O3rAzVD6s8\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"withHeadings\\\":true,\\\"content\\\":[]}}]}';\\n } else {\\n var data = '{\\\"blocks\\\":'+textareaValue+'}';\\n }\\n\\n var tools = EDITORJS_TOOLS_TABLE;\\n\\n } else if (type == 'blog') {\\n\\n editor.style.maxHeight = '500px';\\n\\n if (textareaValue == null || textareaValue == '') {\\n var data = '{}';\\n } else {\\n var data = '{\\\"blocks\\\":'+textareaValue+'}';\\n }\\n\\n var tools = EDITORJS_TOOLS_BLOG;\\n \\n }\\n\\n new EditorJS({\\n tools: tools,\\n holder: editorId, \\n autofocus: false,\\n data: JSON.parse(data),\\n onChange: (api) => {\\n\\n api.saver.save().then((outputData) => {\\n var editorValue = JSON.stringify(outputData.blocks);\\n document.getElementById(textareaId).value = editorValue;\\n }).catch((error) => {\\n console.log('Saving failed: ', error)\\n });\\n\\n },\\n i18n: EDITORJS_i18n_IT\\n });\\n\\n }\\n\\n });\\n\\n}\\n\\nfunction setJsTree() {\\n \\n document.querySelectorAll('[data-wi-tree]').forEach(element => {\\n\\n var container = element.parentElement;\\n\\n var type = element.dataset.wiTree;\\n var searchBar = container.querySelector('[data-wi-search=\\\"true\\\"]');\\n\\n var Tree = $(element).jstree({\\n core: {\\n check_callback: false\\n },\\n checkbox : {\\n keep_selected_style: false,\\n three_state: false,\\n },\\n types : {\\n default : {\\n icon : \\\"bi bi-folder\\\"\\n }\\n },\\n plugins : [ \\\"checkbox\\\", \\\"types\\\", \\\"search\\\" ]\\n });\\n\\n Tree.jstree('open_all');\\n\\n if (searchBar != undefined) {\\n $(searchBar).keyup(function () {\\n var v = $(searchBar).val();\\n $(Tree).jstree(true).search(v);\\n });\\n }\\n\\n $(element).on('click', '.jstree-anchor', function(e) {\\n\\n var selectedNodes = $(element).jstree().get_checked();\\n\\n container.querySelectorAll('input[type=\\\"checkbox\\\"]:checked').forEach(element => { element.checked = false; });\\n\\n if (type == 'radio') {\\n\\n if (selectedNodes.length > 1) {\\n $(element).jstree().uncheck_node(selectedNodes[0]);\\n }\\n\\n var selectedNodes = $(element).jstree().get_checked();\\n\\n }\\n\\n selectedNodes.forEach(element => { container.querySelector('input[value=\\\"'+element+'\\\"]').checked = true; });\\n\\n check();\\n\\n });\\n\\n });\\n\\n}\\n\\nfunction setCheckBoolean() {\\n \\n document.querySelectorAll('[data-wi-check-boolean]').forEach(element => {\\n\\n var inputTrue = element.querySelector('input.wi-true');\\n var labelTrue = inputTrue.labels[0];\\n var inputFalse = element.querySelector('input.wi-false');\\n var labelFalse = inputFalse.labels[0];\\n\\n inputTrue.addEventListener(\\\"change\\\", (el) => {\\n\\n var checked = el.target.checked;\\n\\n if (checked) { \\n inputFalse.checked = false; \\n labelFalse.classList.remove('btn-primary'); \\n labelTrue.classList.add('btn-primary'); \\n } else {\\n labelTrue.classList.remove('btn-primary'); \\n }\\n\\n });\\n\\n inputFalse.addEventListener(\\\"change\\\", (el) => {\\n\\n var checked = el.target.checked;\\n\\n if (checked) { \\n inputTrue.checked = false; \\n labelTrue.classList.remove('btn-primary'); \\n labelFalse.classList.add('btn-primary'); \\n } else {\\n labelFalse.classList.remove('btn-primary'); \\n }\\n\\n });\\n\\n\\n });\\n\\n}\"","module.exports = \"function jqueryDaterange() {\\n \\n $('.wi-daterange-filter').datepicker({\\n format: 'dd/mm/yyyy',\\n language: 'it', \\n orientation: 'bottom left'\\n });\\n\\n}\\n\\nfunction setUpJquery() {\\n \\n jqueryDaterange();\\n\\n}\"","module.exports = \"function modal(text, link, title = 'ATTENZIONE', sendText = 'Elimina', sendColor = 'danger', closeText = 'Chiudi', closeColor = 'dark', onSuccess = 'reloadPage', params = null) {\\n \\n document.querySelector('#modal .modal-title').innerHTML = title;\\n document.querySelector('#modal .modal-body').innerHTML = text;\\n\\n var sendBtn = document.querySelector('#modal button.send');\\n sendBtn.innerHTML = sendText;\\n sendBtn.classList.add('btn-'+sendColor);\\n\\n if (onSuccess == 'reloadPage') {\\n \\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"')\\\");\\n\\n } else {\\n \\n if (typeof onSuccess === 'function') {\\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"', \\\"+onSuccess+\\\", '\\\"+params+\\\"')\\\");\\n } else {\\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"', '\\\"+onSuccess+\\\"', '\\\"+params+\\\"')\\\");\\n }\\n\\n }\\n\\n var closeBtn = document.querySelector('#modal button.close');\\n closeBtn.innerHTML = closeText;\\n closeBtn.classList.add('btn-'+closeColor);\\n\\n const modal = new bootstrap.Modal('#modal')\\n modal.show();\\n\\n}\"","module.exports = \"function menu() { \\n\\n var el = document.getElementById('sidebar');\\n el.classList.toggle(\\\"show\\\");\\n\\n var el = document.getElementById('menu');\\n\\n var iconMenu = el.querySelector('.open-menu');\\n var iconClose = el.querySelector('.close-menu');\\n\\n if (iconMenu.classList.contains('d-none')) {\\n\\n // Chiudo il menu\\n iconMenu.classList.remove('d-none');\\n iconClose.classList.add('d-none');\\n\\n $('.offcanvas').offcanvas('hide');\\n \\n } else {\\n\\n // Apro il menu\\n iconClose.classList.remove('d-none');\\n iconMenu.classList.add('d-none');\\n\\n if (document.querySelector('#sidebar li.active [data-bs-target]')) {\\n var offcanvasId = document.querySelector('#sidebar li.active [data-bs-target]').dataset.bsTarget;\\n $(offcanvasId).offcanvas('show');\\n }\\n\\n }\\n \\n}\\n\\nfunction loadingSpinner() {\\n\\n document.getElementById('loading-spinner').classList.toggle('d-none');\\n \\n}\"","module.exports = \"function canvasFullPage(elementId, draw = false) {\\n\\n var element = document.createElement(\\\"CANVAS\\\");\\n element.id = elementId;\\n element.style.position = \\\"fixed\\\";\\n element.style.top = 0;\\n element.style.left = 0;\\n element.style.zIndex = 999999;\\n element.style.background = '#ffffff';\\n element.style.touchAction = 'none';\\n element.style.msTouchAction = 'none';\\n\\n fullPage(element);\\n\\n window.addEventListener('resize', () => { fullPage(element) });\\n\\n if (draw) { canvasDraw(element); }\\n\\n}\\n\\nfunction canvasReset(element) {\\n \\n var ctx = element.getContext(\\\"2d\\\");\\n ctx.clearRect(0, 0, element.width, element.height);\\n ctx.restore();\\n\\n}\\n\\nfunction canvasDraw(element) {\\n\\n var ctx = element.getContext(\\\"2d\\\");\\n \\n let offset = position(element);\\n let painting = false;\\n\\n function drawStart() {\\n offset = position(element);\\n painting = true;\\n draw(e);\\n }\\n\\n function drawEnd() {\\n painting = false;\\n ctx.beginPath();\\n }\\n\\n function draw(e) {\\n\\n if (!painting) return;\\n ctx.lineWidth = 1;\\n ctx.lineCap = \\\"round\\\";\\n ctx.strokeStyle = \\\"black\\\";\\n\\n if (e.type == 'touchmove'){\\n var x = e.touches[0].clientX;\\n var y = e.touches[0].clientY;\\n } else if (e.type == 'mousemove'){\\n var x = e.clientX;\\n var y = e.clientY;\\n }\\n\\n var offsetX = offset.left;\\n var offsetY = offset.top;\\n\\n var x = x - offsetX;\\n var y = y - offsetY;\\n\\n ctx.lineTo(x, y);\\n ctx.stroke();\\n ctx.beginPath();\\n ctx.moveTo(x, y);\\n\\n }\\n\\n element.addEventListener(\\\"mousedown\\\", drawStart);\\n element.addEventListener(\\\"touchstart\\\", drawStart);\\n element.addEventListener(\\\"mouseup\\\", drawEnd);\\n element.addEventListener(\\\"touchend\\\", drawEnd);\\n element.addEventListener(\\\"mousemove\\\", draw);\\n element.addEventListener(\\\"touchmove\\\", draw);\\n\\n}\"","module.exports = \"function fetchResponse(response) {\\n \\n if (response.ok) {\\n\\n return response.json();\\n\\n } else {\\n\\n alertToast(802);\\n console.error(\\\"Impossibile connettersi o trovare il file!\\\");\\n return false;\\n\\n }\\n\\n}\\n\\nfunction fetchValue(value) {\\n \\n if (value == false) {\\n \\n return false;\\n \\n } else {\\n\\n if (value.status == 200) {\\n return value;\\n } else if (value.status == 401) {\\n alertToast(911);\\n return false;\\n } else if (value.status == undefined) {\\n alertToast(803);\\n return false;\\n } else {\\n alertToast(value.status);\\n return false;\\n }\\n\\n }\\n\\n}\\n\\nfunction fetchError(error) {\\n \\n alertToast(802);\\n console.error(\\\"Il file non risponde in JSON!\\\");\\n\\n}\\n\"","module.exports = \"var AUTONUMERIC_NUMBER = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nvar AUTONUMERIC_PRICE = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbol: '€',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nvar AUTONUMERIC_PERCENTIGE = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbol: '%',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nfunction customAutonumeric(element, autonumeric) {\\n\\n var option = {};\\n\\n if (autonumeric.caretPositionOnFocus != undefined) { \\n option.caretPositionOnFocus = autonumeric.caretPositionOnFocus; \\n }\\n\\n if (element.dataset.wiNumberDecimal != undefined) { \\n option.decimalPlacesShownOnFocus = element.dataset.wiNumberDecimal;\\n option.decimalPlaces = element.dataset.wiNumberDecimal;\\n } else {\\n if (autonumeric.decimalPlacesShownOnFocus != undefined) {\\n option.decimalPlacesShownOnFocus = autonumeric.decimalPlacesShownOnFocus;\\n }\\n }\\n\\n if (element.dataset.wiNumberDecimalSeparator != undefined) { \\n option.decimalCharacter = element.dataset.wiNumberDecimalSeparator;\\n } else {\\n if (autonumeric.decimalCharacter != undefined) {\\n option.decimalCharacter = autonumeric.decimalCharacter;\\n }\\n }\\n\\n if (element.dataset.wiNumberGroupSeparator != undefined) { \\n option.digitGroupSeparator = element.dataset.wiNumberGroupSeparator;\\n } else {\\n if (autonumeric.digitGroupSeparator != undefined) {\\n option.digitGroupSeparator = autonumeric.digitGroupSeparator;\\n }\\n }\\n\\n if (autonumeric.onInvalidPaste != undefined) { \\n option.onInvalidPaste = autonumeric.onInvalidPaste; \\n }\\n\\n if (element.dataset.wiNumberSymbol != undefined) { \\n option.currencySymbol = element.dataset.wiNumberSymbol;\\n } else {\\n if (autonumeric.currencySymbol != undefined) {\\n option.currencySymbol = autonumeric.currencySymbol;\\n }\\n }\\n\\n if (element.dataset.wiNumberSymbolPlacement != undefined) { \\n option.currencySymbolPlacement = element.dataset.wiNumberSymbolPlacement;\\n } else {\\n if (autonumeric.currencySymbolPlacement != undefined) {\\n option.currencySymbolPlacement = autonumeric.currencySymbolPlacement;\\n }\\n }\\n\\n if (autonumeric.outputFormat != undefined) { \\n option.outputFormat = autonumeric.outputFormat; \\n }\\n\\n if (autonumeric.unformatOnSubmit != undefined) { \\n option.unformatOnSubmit = autonumeric.unformatOnSubmit; \\n }\\n\\n if (autonumeric.modifyValueOnWheel != undefined) { \\n option.modifyValueOnWheel = autonumeric.modifyValueOnWheel; \\n }\\n\\n return option;\\n \\n}\\n\\nfunction setAutonumeric() {\\n \\n document.querySelectorAll(\\\"[data-wi-number='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n \\n if (el === null) {\\n\\n new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_NUMBER)); \\n \\n }\\n\\n });\\n\\n document.querySelectorAll(\\\"[data-wi-price='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PRICE)); }\\n\\n });\\n \\n document.querySelectorAll(\\\"[data-wi-percentige='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PERCENTIGE)); }\\n\\n });\\n\\n}\"","module.exports = \"function checkPhone(element) {\\n \\n var phones = [\\n { \\\"mask\\\": \\\"### ### ####\\\"}\\n ];\\n\\n new Inputmask({ \\n mask: phones, \\n greedy: false, \\n placeholder: '', \\n definitions: { \\n '#': { \\n validator: \\\"[0-9]\\\", \\n cardinality: 1\\n }\\n } \\n }).mask(element);\\n\\n}\"","module.exports = \"function position(element, showItem = false) {\\n\\n var rect = element.getBoundingClientRect();\\n\\n if (showItem) {\\n\\n var width = rect.right - rect.left;\\n var height = rect.bottom - rect.top;\\n\\n var element = document.createElement(\\\"DIV\\\");\\n element.style.position = \\\"fixed\\\";\\n element.style.top = rect.top+'px';\\n element.style.left = rect.left+'px';\\n element.style.width = width+'px';\\n element.style.height = height+'px';\\n element.style.zIndex = 999999;\\n element.style.background = 'rgba(255, 0, 0, .2)';\\n document.body.appendChild(element);\\n\\n }\\n\\n return rect;\\n\\n}\\n\\nfunction fullPage(element) {\\n element.width = window.innerWidth;\\n element.height = window.innerHeight;\\n}\\n\\nfunction copyText(text, icon = null) {\\n\\n if (icon != null) {\\n document.querySelectorAll('.bi-clipboard-check').forEach(element => {\\n element.classList.remove('bi-clipboard-check')\\n element.classList.add('bi-clipboard');\\n });\\n }\\n\\n navigator.clipboard.writeText(text).then(() => {\\n if (icon != null) {\\n icon.classList.remove('bi-clipboard');\\n icon.classList.add('bi-clipboard-check');\\n }\\n },() => {\\n if (icon != null) {\\n icon.classList.remove('bi-clipboard');\\n icon.classList.add('bi-clipboard-x');\\n }\\n });\\n\\n}\\n\\nfunction ajaxRequestError(request) {\\n \\n if (request.readyState == 4) {\\n alertToast(802);\\n } else if (request.readyState == 0) {\\n alertToast(801);\\n } else {\\n alertToast(800);\\n }\\n\\n}\\n\\nfunction code(codeLength = 10) {\\n\\n var result = '';\\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\\n var charactersLength = characters.length;\\n\\n for ( var i = 0; i < codeLength; i++ ) {\\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\\n }\\n\\n return result;\\n\\n}\\n\\nfunction isMobile() {\\n\\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\\n return true;\\n } else {\\n return false;\\n }\\n \\n}\\n\\nfunction delay(time) {\\n\\n return new Promise(resolve => setTimeout(resolve, time));\\n\\n}\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/ajax.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/alert.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/bootstrap.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/editor.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/file.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/input.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/inputRow.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/send.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/set.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/jquery.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/modal.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/utility.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/canvas.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/fetch.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/form/autonumeric.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/form/phone.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/utility.js\"))","// 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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["module","exports","src","log","error","console","execScript","attachEvent","addEventListener","eval","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","value"],"sourceRoot":""}
1
+ {"version":3,"file":"backend/head.js","mappings":";sBAAAA,EAAOC,QAAU,+oECAjBD,EAAOC,QAAU,u+DCAjBD,EAAOC,QAAU,k7DCAjBD,EAAOC,QAAU,kxVCAjBD,EAAOC,QAAU,m3JCAjBD,EAAOC,QAAU,y7RCAjBD,EAAOC,QAAU,89ICAjBD,EAAOC,QAAU,0WCAjBD,EAAOC,QAAU,62TCAjBD,EAAOC,QAAU,sQCAjBD,EAAOC,QAAU,upCCAjBD,EAAOC,QAAU,2/BCAjBD,EAAOC,QAAU,igECAjBD,EAAOC,QAAU,63BCAjBD,EAAOC,QAAU,gtICAjBD,EAAOC,QAAU,mYCAjBD,EAAOC,QAAU,wxECIjBD,EAAOC,QAAU,SAASC,GACzB,SAASC,EAAIC,GACQ,oBAAZC,UACJA,QAAQD,OAASC,QAAQF,KAAK,kBAAmBC,EACtD,CAOA,IAC2B,oBAAfE,YAJmB,oBAAhBC,aAA2D,oBAArBC,iBAKnDF,WAAWJ,GACe,oBAATO,KACjBA,KAAKC,KAAK,KAAMR,GAEhBC,EAAI,wCAEN,CAAE,MAAOC,GACRD,EAAIC,EACL,CACD,iBC1BA,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,sBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,uBCAjH,EAAQ,KAAR,CAAyG,EAAQ,SCC7GO,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAab,QAGrB,IAAID,EAASW,EAAyBE,GAAY,CAGjDZ,QAAS,CAAC,GAOX,OAHAe,EAAoBH,GAAUb,EAAQA,EAAOC,QAASW,GAG/CZ,EAAOC,OACf,CCrBAW,EAAoBK,EAAKjB,IACxB,IAAIkB,EAASlB,GAAUA,EAAOmB,WAC7B,IAAOnB,EAAiB,QACxB,IAAM,EAEP,OADAY,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdN,EAAoBQ,EAAI,CAACnB,EAASqB,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAEvB,EAASsB,IAC5EE,OAAOC,eAAezB,EAASsB,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAetB,KAAKmB,EAAKC,GCClFlB,EAAoBqB,EAAKhC,IACH,oBAAXiC,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAezB,EAASiC,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAezB,EAAS,aAAc,CAAEmC,OAAO,GAAO","sources":["webpack://wonder/./src/build/backend/js/ajax.js","webpack://wonder/./src/build/backend/js/alert.js","webpack://wonder/./src/build/backend/js/bootstrap.js","webpack://wonder/./src/build/backend/js/form/editor.js","webpack://wonder/./src/build/backend/js/form/file.js","webpack://wonder/./src/build/backend/js/form/input.js","webpack://wonder/./src/build/backend/js/form/inputRow.js","webpack://wonder/./src/build/backend/js/form/send.js","webpack://wonder/./src/build/backend/js/form/set.js","webpack://wonder/./src/build/backend/js/jquery.js","webpack://wonder/./src/build/backend/js/modal.js","webpack://wonder/./src/build/backend/js/utility.js","webpack://wonder/./src/build/global/js/canvas.js","webpack://wonder/./src/build/global/js/fetch.js","webpack://wonder/./src/build/global/js/form/autonumeric.js","webpack://wonder/./src/build/global/js/form/phone.js","webpack://wonder/./src/build/global/js/utility.js","webpack://wonder/./node_modules/script-loader/addScript.js","webpack://wonder/./src/build/backend/js/ajax.js?5edf","webpack://wonder/./src/build/backend/js/alert.js?ecdd","webpack://wonder/./src/build/backend/js/bootstrap.js?a563","webpack://wonder/./src/build/backend/js/form/editor.js?d3ee","webpack://wonder/./src/build/backend/js/form/file.js?1251","webpack://wonder/./src/build/backend/js/form/input.js?29d6","webpack://wonder/./src/build/backend/js/form/inputRow.js?4d20","webpack://wonder/./src/build/backend/js/form/send.js?4232","webpack://wonder/./src/build/backend/js/form/set.js?1979","webpack://wonder/./src/build/backend/js/jquery.js?4d3e","webpack://wonder/./src/build/backend/js/modal.js?8850","webpack://wonder/./src/build/backend/js/utility.js?cf29","webpack://wonder/./src/build/global/js/canvas.js?1992","webpack://wonder/./src/build/global/js/fetch.js?e11d","webpack://wonder/./src/build/global/js/form/autonumeric.js?ad99","webpack://wonder/./src/build/global/js/form/phone.js?29c0","webpack://wonder/./src/build/global/js/utility.js?f76e","webpack://wonder/webpack/bootstrap","webpack://wonder/webpack/runtime/compat get default export","webpack://wonder/webpack/runtime/define property getters","webpack://wonder/webpack/runtime/hasOwnProperty shorthand","webpack://wonder/webpack/runtime/make namespace object"],"sourcesContent":["module.exports = \"function ajaxRequest(link, onSuccess = reloadPage, params = null) {\\n\\n loadingSpinner();\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: link,\\n data: { \\n post: 'true'\\n }, \\n success: function(data) {\\n\\n if (onSuccess != null) {\\n if (typeof onSuccess === 'function') {\\n \\n if (params == null) {\\n onSuccess();\\n } else {\\n onSuccess(params);\\n }\\n \\n } else {\\n \\n try {\\n \\n var x = JSON.parse(onSuccess.replace('&quot;', '\\\"'));\\n\\n var f = x.function;\\n var p = x.parameters;\\n \\n } catch {\\n\\n var f = onSuccess;\\n var p = params;\\n\\n }\\n \\n window[f](p);\\n \\n }\\n }\\n\\n loadingSpinner();\\n \\n },\\n error: function (XMLHttpRequest) {\\n ajaxRequestError(XMLHttpRequest);\\n loadingSpinner();\\n }\\n }); \\n\\n}\\n\\nfunction reloadPage() {\\n\\n location.reload();\\n \\n}\\n\\nasync function postData(url, data) {\\n\\n loadingSpinner();\\n\\n if (data === undefined) {\\n\\n console.error(\\\"Non è stato passato alcun dato alla funzione postData()\\\");\\n \\n } else {\\n\\n if (data instanceof FormData === false) {\\n var data = createPostData(data)\\n }\\n \\n await fetch(url, {\\n method: \\\"POST\\\",\\n body: data\\n })\\n .then((response) => { loadingSpinner(); return fetchResponse(response); })\\n .then((value) => { return fetchValue(value); })\\n .catch((error) => { fetchValue(error); });\\n\\n }\\n\\n}\\n\\nfunction createPostData(array = {}) {\\n\\n var data = new FormData();\\n\\n Object.keys(array).forEach(key => {\\n data.append(key, array[key]);\\n });\\n\\n return data;\\n\\n}\"","module.exports = \"function toastContainer() {\\n\\n if (document.querySelector('.toast-container')) {\\n\\n var container = document.querySelector('.toast-container');\\n\\n }else{\\n\\n var container = document.createElement('div');\\n container.classList.add('toast-container');\\n container.classList.add('position-fixed');\\n container.classList.add('top-0');\\n container.classList.add('end-0');\\n container.classList.add('p-3');\\n\\n document.body.insertBefore(container, document.body.firstChild);\\n\\n }\\n\\n return container;\\n\\n}\\n\\nfunction alertToast(alert, type = null, title = null, text = null) {\\n\\n var container = toastContainer();\\n\\n $(\\\".toast.show\\\").toast().hide();\\n \\n if (alert == 801) {\\n\\n container.innerHTML = NO_INTERNET_ALERT + container.innerHTML;\\n const toast = new bootstrap.Toast(container.firstElementChild);\\n toast.show();\\n\\n } else if (alert != undefined) {\\n\\n if (alert == 'custom') {\\n\\n var data = {\\n post: 'true',\\n backend: 'true',\\n alert: alert,\\n alertType: type,\\n alertTitle: title,\\n alertText: text\\n }\\n\\n } else {\\n\\n var data = {\\n post: 'true',\\n backend: 'true',\\n alert: alert\\n };\\n\\n }\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: pathApp+'/api/alert.php',\\n data: data, \\n success: function (data) {\\n\\n container.innerHTML = data + container.innerHTML;\\n const toast = new bootstrap.Toast(container.firstElementChild);\\n toast.show();\\n \\n var url = new URL(window.location.href);\\n url.searchParams.delete('alert');\\n window.history.replaceState(null, null, url);\\n \\n }\\n });\\n\\n }\\n\\n}\"","module.exports = \"function bootstrapToast() {\\n\\n var toastElList = [].slice.call(document.querySelectorAll('.toast'))\\n var toastList = toastElList.map(function(toastEl) {\\n return new bootstrap.Toast(toastEl)\\n });\\n toastList.forEach(toast => toast.show());\\n\\n}\\n\\nfunction bootstrapTooltip() { $('[data-bs-toggle=\\\"tooltip\\\"]').tooltip(); }\\n\\nfunction bootstrapTheme(theme) {\\n\\n document.querySelector(\\\"html\\\").setAttribute(\\\"data-bs-theme\\\", theme);\\n\\n localStorage.setItem('theme', theme);\\n \\n if (theme == 'light') {\\n\\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.remove('d-none'); }\\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.add('d-none'); }\\n\\n document.querySelector('#be-logo-white').classList.add('d-none');\\n document.querySelector('#be-logo-black').classList.remove('d-none');\\n\\n element = document.querySelector('[data-bs-theme-value=\\\"light\\\"]');\\n el = document.querySelector('[data-bs-theme-value=\\\"dark\\\"]');\\n\\n } else if (theme == 'dark') {\\n\\n if (document.querySelector('#bs-theme i.light-theme')) { document.querySelector('#bs-theme i.light-theme').classList.add('d-none'); }\\n if (document.querySelector('#bs-theme i.dark-theme')) { document.querySelector('#bs-theme i.dark-theme').classList.remove('d-none'); }\\n\\n document.querySelector('#be-logo-white').classList.remove('d-none');\\n document.querySelector('#be-logo-black').classList.add('d-none');\\n\\n element = document.querySelector('[data-bs-theme-value=\\\"dark\\\"]');\\n el = document.querySelector('[data-bs-theme-value=\\\"light\\\"]');\\n\\n }\\n\\n if (el) { el.classList.remove('active'); }\\n if (element) { element.classList.add('active'); }\\n\\n}\\n\\nfunction setUpBootstrap() {\\n \\n bootstrapTooltip();\\n\\n}\"","module.exports = \"class CustomHyperlink extends Hyperlink {\\n iconSvg(name, width = 14, height = 14) {\\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\\n svg.classList.add('icon', 'icon--' + name);\\n svg.setAttribute('width', '24');\\n svg.setAttribute('height','24');\\n svg.setAttribute('viewBox', '0 0 24 24')\\n svg.setAttribute('fill', 'none');\\n if (name == 'link') {\\n svg.innerHTML = `\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M7.69998 12.6L7.67896 12.62C6.53993 13.7048 6.52012 15.5155 7.63516 16.625V16.625C8.72293 17.7073 10.4799 17.7102 11.5712 16.6314L13.0263 15.193C14.0703 14.1609 14.2141 12.525 13.3662 11.3266L13.22 11.12\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M16.22 11.12L16.3564 10.9805C17.2895 10.0265 17.3478 8.5207 16.4914 7.49733V7.49733C15.5691 6.39509 13.9269 6.25143 12.8271 7.17675L11.3901 8.38588C10.0935 9.47674 9.95706 11.4241 11.0888 12.6852L11.12 12.72\\\"></path>\\n `;\\n } else {\\n svg.innerHTML = `\\n <path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M15.7795 11.5C15.7795 11.5 16.053 11.1962 16.5497 10.6722C17.4442 9.72856 17.4701 8.2475 16.5781 7.30145V7.30145C15.6482 6.31522 14.0873 6.29227 13.1288 7.25073L11.8796 8.49999\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M8.24517 12.3883C8.24517 12.3883 7.97171 12.6922 7.47504 13.2161C6.58051 14.1598 6.55467 15.6408 7.44666 16.5869V16.5869C8.37653 17.5731 9.93744 17.5961 10.8959 16.6376L12.1452 15.3883\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M17.7802 15.1032L16.597 14.9422C16.0109 14.8624 15.4841 15.3059 15.4627 15.8969L15.4199 17.0818\\\"></path><path stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M6.39064 9.03238L7.58432 9.06668C8.17551 9.08366 8.6522 8.58665 8.61056 7.99669L8.5271 6.81397\\\"></path><line x1=\\\"12.1142\\\" x2=\\\"11.7\\\" y1=\\\"12.2\\\" y2=\\\"11.7858\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"2\\\"></line>\\n `;\\n }\\n return svg;\\n }\\n}\\n\\nclass CustomEmded extends Embed {\\n \\n static get toolbox() {\\n return {\\n title: 'Iframe',\\n icon: '<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M10 13a5 5 0 0 1 0-6M14 11a5 5 0 0 1 0 6\\\"></path><line x1=\\\"14\\\" y1=\\\"7\\\" x2=\\\"14\\\" y2=\\\"7\\\"></line><line x1=\\\"10\\\" y1=\\\"17\\\" x2=\\\"10\\\" y2=\\\"17\\\"></line></svg>'\\n };\\n }\\n \\n /**\\n * Render Embed tool content\\n *\\n * @returns {HTMLElement}\\n */\\n render() {\\n if (!this.data.service) {\\n const container = document.createElement('div');\\n \\n this.element = container;\\n const input = document.createElement('input');\\n input.classList.add('cdx-input');\\n input.placeholder = 'https://www.youtube.com/watch?v=w8vsuOXZBXc';\\n input.type = 'url';\\n input.addEventListener('paste', (event) => {\\n const url = event.clipboardData.getData('text');\\n const service = Object.keys(Embed.services).find((key) => Embed.services[key].regex.test(url));\\n if (service) {\\n this.onPaste({detail: {key: service, data: url}});\\n }\\n });\\n container.appendChild(input);\\n \\n return container;\\n }\\n return super.render();\\n }\\n \\n validate(savedData) {\\n return savedData.service && savedData.source ? true : false;\\n }\\n}\\n\\nclass CustomVideoTool extends VideoTool {\\n \\n static get toolbox() {\\n return {\\n title: 'Video',\\n icon: '<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M10 10.5606V13.4394C10 14.4777 11.1572 15.0971 12.0211 14.5211L14.1803 13.0817C14.9536 12.5661 14.9503 11.4317 14.18 10.9181L12.0214 9.47907C11.1591 8.9042 10 9.5203 10 10.5606Z\\\" stroke=\\\"black\\\" stroke-width=\\\"2\\\"/><rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"14\\\" height=\\\"14\\\" rx=\\\"4\\\" stroke=\\\"black\\\" stroke-width=\\\"2\\\"/></svg>'\\n };\\n }\\n \\n}\\n\\nvar EDITORJS_TOOLS_BLOG = {\\n paragraph: {\\n inlineToolbar: true,\\n tunes: ['textAlign']\\n },\\n header: {\\n class: Header,\\n inlineToolbar: true,\\n tunes: ['textAlign'],\\n config: {\\n placeholder: 'Titolo...',\\n levels: [1, 2, 4],\\n defaultLevel: 2\\n }\\n },\\n quote: {\\n class: Quote,\\n inlineToolbar: true,\\n config: {\\n quotePlaceholder: 'Scrivi una citazione...',\\n captionPlaceholder: 'Autore',\\n },\\n },\\n list: {\\n class: NestedList,\\n inlineToolbar: true,\\n config: {\\n defaultStyle: 'unordered'\\n },\\n },\\n delimiter: Delimiter,\\n table: {\\n class: Table,\\n inlineToolbar: ['link', 'italic', 'bold'],\\n },\\n // code: CodeTool,\\n image: {\\n class: ImageTool,\\n config: {\\n captionPlaceholder: 'Caption...',\\n endpoints: {\\n byFile: pathApp+'/api/backend/editorjs/image.php'\\n // Aggiungere cartella dove caricare i file\\n },\\n field: 'image',\\n types: 'image/png, image/jpg, image/jpeg',\\n additionalRequestHeaders: { dir: '' }\\n // Forzo nel css la rimozione \\\"display: none\\\" di withBorder, stretched e withBackground\\n }\\n },\\n gallery: {\\n class: ImageGallery,\\n config: {\\n captionPlaceholder: 'Caption galleria...',\\n endpoints: {\\n byFile: pathApp+'/api/backend/editorjs/image.php'\\n // Aggiungere cartella dove caricare i file\\n },\\n field: 'image',\\n types: 'image/png, image/jpg, image/jpeg',\\n additionalRequestHeaders: { dir: '' }\\n // Forzo nel css la rimozione \\\"display: none\\\" di fit e slider\\n },\\n },\\n Marker: Marker,\\n inlineCode: InlineCode,\\n attaches: {\\n class: AttachesTool,\\n config: {\\n endpoint: pathApp+'/api/backend/editorjs/file.php',\\n // Aggiungere cartella dove caricare i file\\n field: 'file',\\n additionalRequestHeaders: { dir: '' }\\n }\\n },\\n // TODO: Aggiungi caricamento video (potrebbe tornare utile la classe ImageTool)\\n // video: {\\n // class: CustomVideoTool,\\n // config: {\\n // captionPlaceholder: 'Caption...',\\n // endpoints: {\\n // byFile: pathSite+'/api/task/article/file.php'\\n // },\\n // player: {\\n // controls: true,\\n // autoplay: false,\\n // },\\n // field: 'file',\\n // types: 'video/quicktime, video/mp4'\\n // // Forzo nel css la rimozione \\\"display: none\\\" di withBorder, stretched e withBackground\\n // }\\n // },\\n // TODO: embed non funziona. Trovare un modo per caricare iframe\\n // embed: {\\n // class: CustomEmded,\\n // },\\n textAlign: {\\n class: AlignmentTuneTool,\\n config:{\\n default: \\\"left\\\"\\n },\\n },\\n link: {\\n class: CustomHyperlink,\\n config: {\\n shortcut: 'CMD+L',\\n target: '_blank',\\n rel: 'nofollow',\\n availableTargets: ['_blank', '_self'],\\n availableRels: ['author', 'noreferrer'],\\n validate: false,\\n }\\n },\\n};\\n\\nvar EDITORJS_TOOLS_TABLE = {\\n paragraph: false,\\n inlineCode: InlineCode,\\n table: {\\n class: Table,\\n inlineToolbar: ['link', 'italic', 'bold'],\\n }\\n};\\n\\nvar EDITORJS_i18n_IT = {\\n messages: {\\n ui: {\\n \\\"blockTunes\\\": {\\n \\\"toggler\\\": {\\n \\\"Click to tune\\\": \\\"Modifica\\\",\\n \\\"or drag to move\\\": \\\"Trascina per muovere\\\"\\n },\\n },\\n \\\"inlineToolbar\\\": {\\n \\\"converter\\\": {\\n \\\"Convert to\\\": \\\"Converti\\\"\\n }\\n },\\n \\\"toolbar\\\": {\\n \\\"toolbox\\\": {\\n \\\"Add\\\": \\\"Aggiungi\\\",\\n }\\n }\\n },\\n toolNames: {\\n \\\"Add\\\": \\\"Aggiungi\\\",\\n \\\"Quote\\\": \\\"Citazione\\\",\\n \\\"Delimiter\\\": \\\"Linea\\\",\\n \\\"Text\\\": \\\"Testo\\\",\\n \\\"Heading\\\": \\\"Titolo\\\",\\n \\\"Table\\\": \\\"Tabella\\\",\\n \\\"Code\\\": \\\"Codice\\\",\\n \\\"List\\\": \\\"Elenco\\\",\\n \\\"Bold\\\": \\\"Grassetto\\\",\\n \\\"Italic\\\": \\\"Corsivo\\\",\\n \\\"Marker\\\": \\\"Evidenzia\\\",\\n \\\"InlineCode\\\": \\\"Codice\\\",\\n \\\"TextAlign\\\": \\\"Allineamento\\\",\\n \\\"Gallery\\\": \\\"Galleria\\\",\\n \\\"Image\\\": \\\"Immagine\\\",\\n \\\"Attachment\\\": \\\"Allega file\\\",\\n },\\n tools: {\\n \\\"header\\\": {\\n \\\"Heading 1\\\": \\\"Titolo grande\\\",\\n \\\"Heading 2\\\": \\\"Titolo\\\",\\n \\\"Heading 4\\\": \\\"Sottotitolo\\\"\\n },\\n \\\"link\\\": {\\n \\\"Add a link\\\": \\\"Aggiungi link\\\"\\n },\\n \\\"code\\\": {\\n \\\"Enter a code\\\": \\\"Inserisci codice\\\",\\n },\\n \\\"quote\\\": {\\n \\\"Align Left\\\": \\\"Allinea a sinistra\\\",\\n \\\"Align Center\\\": \\\"Allinea in centro\\\",\\n },\\n \\\"table\\\": {\\n \\\"With headings\\\": \\\"Con intestazione\\\",\\n \\\"Without headings\\\": \\\"Senza intestazione\\\",\\n \\\"Add column to left\\\": \\\"Aggiungi colonna sinistra\\\",\\n \\\"Add column to right\\\": \\\"Aggiungi colonna destra\\\",\\n \\\"Add row above\\\": \\\"Aggiungi riga sopra\\\",\\n \\\"Add row below\\\": \\\"Aggiungi riga sotto\\\",\\n \\\"Delete column\\\": \\\"Elimina colonna\\\",\\n \\\"Delete row\\\": \\\"Elimina riga\\\",\\n },\\n \\\"list\\\": {\\n \\\"Ordered\\\": \\\"Elenco numerato\\\",\\n \\\"Unordered\\\": \\\"Elenco puntato\\\",\\n },\\n \\\"gallery\\\": {\\n \\\"Select an Image\\\": \\\"Seleziona immagini\\\",\\n },\\n \\\"image\\\": {\\n \\\"Select an Image\\\": \\\"Seleziona immagine\\\",\\n },\\n \\\"video\\\": {\\n \\\"Select an Video\\\": \\\"Seleziona video\\\",\\n },\\n \\\"attaches\\\": {\\n \\\"Select file to upload\\\": \\\"Seleziona file da allegare\\\",\\n },\\n },\\n blockTunes: {\\n \\\"delete\\\": {\\n \\\"Delete\\\": \\\"Elimina\\\",\\n \\\"Click to delete\\\": \\\"Clicca per elimina\\\"\\n },\\n \\\"moveUp\\\": {\\n \\\"Move up\\\": \\\"Su\\\"\\n },\\n \\\"moveDown\\\": {\\n \\\"Move down\\\": \\\"Giù\\\"\\n }\\n },\\n }\\n};\"","module.exports = \"function moveFile(selectorContainer, selectorData, action) {\\n\\n var link = pathApp+'/api/backend/file/move.php';\\n\\n var el = document.querySelector(selectorContainer+' '+selectorData);\\n\\n var table = el.dataset.wiDbTable;\\n var column = el.dataset.wiDbColumn;\\n var rowId = el.dataset.wiDbRow;\\n var fileId = el.dataset.wiFileId;\\n var oldPosition = Number(el.dataset.wiOrder);\\n var nFile = el.dataset.wiNFile;\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: link,\\n data: { \\n post: 'true',\\n table: table,\\n column: column,\\n row_id: rowId,\\n file_id: fileId,\\n action: action\\n },\\n success: function (data) {\\n \\n if (action == 'up') {\\n var newPosition = oldPosition - 1;\\n } else if (action == 'down') {\\n var newPosition = oldPosition + 1;\\n }\\n\\n var file1 = document.querySelector(selectorContainer+' .wi-card-file.order-'+oldPosition);\\n var file2 = document.querySelector(selectorContainer+' .wi-card-file.order-'+newPosition);\\n\\n file1.classList.remove('order-'+oldPosition);\\n file1.classList.add('order-'+newPosition);\\n file1.dataset.wiOrder = newPosition;\\n file1.dataset.wiFileId = file2.dataset.wiFileId;\\n\\n file2.classList.remove('order-'+newPosition);\\n file2.classList.add('order-'+oldPosition);\\n file2.dataset.wiOrder = oldPosition;\\n file2.dataset.wiFileId = fileId;\\n\\n // Sistema first e last\\n firstLastFile(selectorContainer, nFile);\\n \\n },\\n error: function (XMLHttpRequest) {\\n ajaxRequestError(XMLHttpRequest);\\n }\\n }); \\n\\n}\\n\\nfunction deleteFile(selectorContainer, selectorData) {\\n\\n var el = document.querySelector(selectorContainer+' '+selectorData);\\n\\n var folder = el.dataset.wiFolder;\\n var table = el.dataset.wiDbTable;\\n var column = el.dataset.wiDbColumn;\\n var rowId = el.dataset.wiDbRow;\\n var fileId = el.dataset.wiFileId;\\n\\n var oldPosition = Number(el.dataset.wiOrder);\\n var nFile = el.dataset.wiNFile;\\n\\n var fileName = el.dataset.wiFileName;\\n\\n var text = \\\"Sei sicuro di eliminare il file <b>\\\"+fileName+\\\"</b>?\\\";\\n var link = pathApp+'/api/backend/file/delete.php?folder='+folder+'&table='+table+'&column='+column+'&row_id='+rowId+'&file_id='+fileId;\\n\\n var onSuccess = '{ \\\"function\\\" : \\\"removeFile\\\", \\\"parameters\\\": { \\\"container\\\" : \\\"'+selectorContainer+'\\\", \\\"data\\\" : \\\"'+selectorData+'\\\", \\\"nFile\\\" : \\\"'+nFile+'\\\", \\\"position\\\" : \\\"'+oldPosition+'\\\"} }';\\n\\n modal(text, link, 'ATTENZIONE', 'Elimina', 'danger', 'Chiudi', 'dark', onSuccess);\\n\\n}\\n\\nfunction removeFile(parameters) {\\n\\n var selectorContainer = parameters.container;\\n var selectorData = parameters.data;\\n var deletedFilePosition = Number(parameters.position);\\n var maxFile = Number(parameters.maxFile);\\n var old_nFile = Number(parameters.nFile);\\n const real_nFile = old_nFile - 1;\\n\\n document.querySelector(selectorContainer+' '+selectorData).remove();\\n\\n document.querySelectorAll(selectorContainer+' .wi-card-file').forEach(element => {\\n\\n var filePosition = Number(element.dataset.wiOrder);\\n element.dataset.wiNFile = real_nFile;\\n\\n if (filePosition > deletedFilePosition) {\\n\\n var newPosition = filePosition - 1;\\n var newId = newPosition - 1;\\n\\n element.dataset.wiOrder = newPosition;\\n element.classList.remove('order-'+filePosition);\\n element.classList.add('order-'+newPosition);\\n\\n element.dataset.wiFileId = newId;\\n\\n }\\n\\n });\\n\\n\\n var maxFile = document.querySelector(selectorContainer+' input').dataset.wiMaxFile;\\n\\n if (maxFile > real_nFile) {\\n document.querySelector(selectorContainer+' input').disabled = false;\\n }\\n\\n firstLastFile(selectorContainer, real_nFile);\\n\\n $('#modal').modal('hide');\\n\\n}\\n\\nfunction firstLastFile(selectorContainer, nFile) {\\n\\n if (document.querySelectorAll(selectorContainer+' .wi-card-file').length > 0) {\\n\\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-first-file')) {\\n document.querySelector(selectorContainer+' .wi-card-file.wi-first-file').classList.remove('wi-first-file');\\n }\\n \\n if (document.querySelector(selectorContainer+' .wi-card-file.wi-last-file')) {\\n document.querySelector(selectorContainer+' .wi-card-file.wi-last-file').classList.remove('wi-last-file');\\n }\\n \\n document.querySelector(selectorContainer+' .wi-card-file.order-1').classList.add('wi-first-file');\\n document.querySelector(selectorContainer+' .wi-card-file.order-'+nFile).classList.add('wi-last-file');\\n \\n }\\n\\n}\"","module.exports = \"function check() {\\n \\n document.querySelectorAll(\\\"form button[type='submit'], form button.wi-submit\\\").forEach(button => {\\n \\n button.removeAttribute(\\\"disabled\\\");\\n\\n var inputList = button.form.elements;\\n\\n for (let i = 0; i < inputList.length; i++) {\\n\\n var input = inputList[i];\\n\\n if (input.required) {\\n if (input.type == 'checkbox' || input.type == 'radio') {\\n if (input.checked == false) { button.setAttribute(\\\"disabled\\\", null); }\\n } else {\\n if (input.value == \\\"\\\") { button.setAttribute(\\\"disabled\\\", null); }\\n }\\n }\\n\\n }\\n\\n var formElement = button.form;\\n\\n formElement.querySelectorAll(\\\".wi-checkbox-required, .wi-radio-required\\\").forEach(checkboxContainer => {\\n\\n if (checkboxContainer.querySelectorAll(\\\"input[type='checkbox']:checked, input[type='radio']:checked\\\").length == 0) { button.setAttribute(\\\"disabled\\\", null); }\\n\\n });\\n\\n });\\n\\n}\\n\\nfunction lengthCount(event) {\\n\\n var val = event.target.value;\\n var container = event.target.parentElement;\\n\\n if (container.querySelector('.wi-counter')) {\\n container.querySelector('.wi-counter').innerHTML = val.length;\\n }\\n\\n}\\n\\nfunction checkColor(event) {\\n\\n var val = event.target.value;\\n var container = event.target.parentElement;\\n\\n if (val.includes('#')) {\\n container.querySelector('.wi-show-color').style.color = val;\\n } else {\\n container.querySelector('.wi-show-color').el.style.color = 'rgba('+val+')';\\n }\\n \\n}\\n\\nfunction generateCode(selector) {\\n\\n document.querySelector(selector).value = code();\\n \\n}\\n\\nfunction disableInput(type) {\\n\\n if (type == 'user') {\\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\\\"profile_picture[]\\\"], select[name=color], select[name=active]');\\n }\\n\\n inputArray.forEach(element => {\\n\\n element.disabled = true;\\n element.dataset.wiOldValue = element.value;\\n element.dataset.wiOldRequired = element.required;\\n \\n element.value = '';\\n element.required = false;\\n\\n }); \\n\\n}\\n\\nfunction enabledInput(type) {\\n\\n if (type == 'user') {\\n var inputArray = document.querySelectorAll('input[name=name], input[name=surname], input[name=username], input[name=email], input[name=\\\"profile_picture[]\\\"], select[name=color], select[name=active]');\\n }\\n\\n inputArray.forEach(element => {\\n\\n if (element.dataset.wiOldValue) {\\n var wiOldValue = element.dataset.wiOldValue;\\n } else {\\n if (element.name == 'active') {\\n var wiOldValue = \\\"true\\\";\\n } else if (element.name == 'color') {\\n var wiOldValue = \\\"blue\\\";\\n } else {\\n var wiOldValue = \\\"\\\";\\n }\\n }\\n \\n if (element.dataset.wiOldRequired) {\\n var wiOldRequired = element.dataset.wiOldRequired;\\n } else {\\n var wiOldRequired = \\\"\\\";\\n }\\n \\n element.disabled = false;\\n element.value = wiOldValue;\\n element.required = wiOldRequired;\\n\\n }); \\n \\n}\\n\\nfunction setDynamicSearch(element) {\\n\\n var dataValue = element.dataset.wiValue;\\n var containerMaster = element.parentElement;\\n var container = containerMaster.querySelector('.card .card-body');\\n var footer = containerMaster.querySelector('.card .card-footer');\\n\\n container.innerHTML = \\\"\\\";\\n\\n if (dataValue != '') {\\n\\n var value = dataValue;\\n var url = element.dataset.wiSearchUrl;\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: url,\\n data: { \\n post: 'true',\\n id: value\\n }, \\n success: function (data) {\\n createCheckbox(data, element, container, true);\\n checkInput();\\n },\\n error: function (XMLHttpRequest) {\\n\\n ajaxRequestError(XMLHttpRequest);\\n footer.innerHTML = 'Errore!';\\n\\n }\\n });\\n \\n }\\n\\n}\\n\\nfunction createCheckbox(array, element, container, checked = false) {\\n\\n var name = element.dataset.wiName;\\n var attribute = element.dataset.wiAttribute;\\n\\n if (element.dataset.wiSearchRadio != undefined) {\\n var type = \\\"radio\\\";\\n } else if (element.dataset.wiSearchCheckbox != undefined) {\\n var type = \\\"checkbox\\\";\\n }\\n\\n var containerMaster = container.parentElement;\\n var footer = containerMaster.querySelector('.card .card-footer');\\n footer.innerHTML = 'Cerco...';\\n\\n try {\\n\\n const response = JSON.parse(array);\\n const nResponse = response.length;\\n \\n var HTML_CHECKED = \\\"\\\";\\n \\n container.querySelectorAll('input:checked').forEach(el => {\\n \\n el.setAttribute('checked', true);\\n HTML_CHECKED += \\\"<div class='form-check'>\\\"+el.parentElement.innerHTML+\\\"</div>\\\";\\n \\n });\\n \\n container.innerHTML = \\\"\\\";\\n \\n for (let index = 0; index < nResponse; index++) {\\n \\n var idCode = code();\\n var HTML = \\\"\\\";\\n var att = attribute;\\n \\n var value = response[index]['value'];\\n var label = response[index]['label'];\\n var inputValue = response[index]['input-value'];\\n \\n if (checked) { var att = attribute+\\\" checked\\\"; }\\n \\n if (HTML_CHECKED.search('value=\\\"'+value+'\\\"') == '-1') {\\n \\n HTML += \\\"<div class='form-check'>\\\";\\n HTML += \\\"<input id='\\\"+idCode+\\\"' type='\\\"+type+\\\"' class='form-check-input' name='\\\"+name+\\\"' value='\\\"+value+\\\"' data-wi-check='true' \\\"+att+\\\" >\\\";\\n HTML += \\\"<label class='form-check-label wi-check-label user-select-none' for='\\\"+idCode+\\\"'>\\\"+label+\\\"</label>\\\";\\n HTML += \\\"</div>\\\";\\n \\n container.insertAdjacentHTML(\\\"beforeend\\\", HTML);\\n \\n }\\n \\n }\\n\\n container.insertAdjacentHTML(\\\"beforeend\\\", HTML_CHECKED);\\n \\n if (inputValue == '') {\\n footer.innerHTML = \\\"Cerca risultati\\\";\\n } else if (nResponse == 1) {\\n footer.innerHTML = nResponse+\\\" risultato\\\";\\n } else if (nResponse != 1) {\\n footer.innerHTML = nResponse+\\\" risultati\\\";\\n }\\n \\n } catch {\\n\\n console.log(array);\\n footer.innerHTML = 'Errore nel file! Contatta assistenza';\\n\\n }\\n\\n}\\n\\nfunction inputSearch(event) {\\n\\n var inputText = event.target;\\n\\n var containerMaster = inputText.parentElement;\\n var container = containerMaster.querySelector('.card .card-body');\\n var footer = containerMaster.querySelector('.card .card-footer');\\n\\n var inputValue = inputText.value.toLowerCase();\\n\\n if (inputText.dataset.wiSearchUrl != undefined) {\\n\\n var url = inputText.dataset.wiSearchUrl;\\n\\n var footer = containerMaster.querySelector('.card .card-footer');\\n footer.innerHTML = 'Cerco...';\\n\\n $.ajax({\\n type: \\\"POST\\\",\\n url: url,\\n data: { \\n post: 'true',\\n search: inputValue\\n }, \\n success: function (data) {\\n createCheckbox(data, inputText, container);\\n checkInput();\\n },\\n error: function (XMLHttpRequest) {\\n\\n ajaxRequestError(XMLHttpRequest);\\n footer.innerHTML = 'Errore! Riprova la ricerca.';\\n\\n }\\n });\\n \\n } else {\\n \\n container.querySelectorAll('label.wi-check-label').forEach(element => {\\n \\n var container = element.parentElement;\\n var name = element.innerHTML.toLowerCase();\\n \\n if (name.includes(inputValue)) {\\n element.parentElement.style.display = 'block';\\n } else if (container.querySelector('input').checked == false) {\\n element.parentElement.style.display = 'none';\\n }\\n \\n });\\n\\n }\\n \\n}\\n\\nfunction filterSelect(selectElement, dataName, value) {\\n\\n selectElement.querySelectorAll('option').forEach(option => {\\n\\n if (option.getAttribute('data-'+dataName)) {\\n \\n var filterValue = JSON.parse(option.getAttribute('data-'+dataName));\\n\\n if ((Array.isArray(filterValue) && filterValue.includes(value)) || filterValue == value) {\\n\\n option.disabled = false;\\n option.hidden = false;\\n\\n } else {\\n\\n if (option.selected == true) {\\n selectElement.value = \\\"\\\";\\n }\\n\\n option.disabled = true;\\n option.hidden = true;\\n\\n }\\n\\n }\\n\\n });\\n \\n}\"","module.exports = \"function copyRow(container, element) {\\n\\n var copy = element.cloneNode(true);\\n var position = container.childElementCount;\\n\\n copy.id = '';\\n copy.classList.remove('visually-hidden');\\n copy.classList.add('wi-copy-row');\\n copy.classList.add('order-'+position);\\n\\n if (copy.querySelector('[data-wi-sort-pos]')) {\\n copy.querySelector('[data-wi-sort-pos]').value = position;\\n } else if (copy.querySelector('input[name=\\\"position[]\\\"]')) {\\n copy.querySelector('input[name=\\\"position[]\\\"]').value = position;\\n }\\n\\n copy.querySelectorAll('[data-wi-attribute]').forEach(element => {\\n\\n var attribute = element.dataset.wiAttribute;\\n\\n if (attribute != '') {\\n\\n if (attribute.includes('required')) { element.required = true; }\\n if (attribute.includes('disabled')) { element.disabled = true; }\\n if (attribute.includes('readonly')) { element.readonly = true; }\\n\\n }\\n\\n });\\n\\n container.appendChild(copy);\\n \\n checkInput();\\n rowSetArrow(container);\\n bootstrapTooltip();\\n\\n}\\n\\nfunction rowOrder(el1, action) {\\n\\n var container = el1.parentElement;\\n \\n for (let a = 1; a < 100; a++) { \\n \\n var classEl1 = 'order-'+a;\\n\\n if(el1.classList.contains(classEl1)) {\\n\\n if (action == 'up') { var b = a - 1; } \\n if (action == 'down') { var b = a + 1; }\\n\\n var classEl2 = 'order-'+b;\\n\\n var el2 = container.querySelector('.'+classEl2);\\n\\n rowChangePos(el1, a, b);\\n rowChangePos(el2, b, a);\\n\\n rowSetArrow(container);\\n\\n break;\\n\\n }\\n\\n }\\n\\n}\\n\\nfunction rowChangePos(element, oldPosition, newPosition) {\\n \\n element.classList.remove('order-'+oldPosition);\\n element.classList.add('order-'+newPosition);\\n\\n if (element.querySelector('input[name=\\\"position[]\\\"]')) {\\n element.querySelector('input[name=\\\"position[]\\\"]').value = newPosition;\\n }\\n \\n}\\n\\nfunction rowRemoveModal(element) {\\n\\n var container = element.parentElement;\\n\\n var text = 'Sei sicuro di voler eliminare questa linea?<br>Se <b>NON</b> salvi questa operazione non verrà effettuata!'\\n modal(text, 'link');\\n\\n for (let a = 1; a < 100; a++) { \\n\\n var elementClass = 'order-'+a;\\n if(element.classList.contains(elementClass)) { \\n var orderN = a;\\n break; \\n }\\n\\n }\\n\\n var selector = '#'+container.id+' .'+elementClass;\\n\\n var sendBtn = document.querySelector('#modal button.send');\\n sendBtn.setAttribute(\\\"onclick\\\", 'rowRemove(\\\"'+selector+'\\\", \\\"'+orderN+'\\\")');\\n\\n}\\n\\nfunction rowRemove(selector, nRow) {\\n\\n $('#modal').modal('hide');\\n\\n var element = document.querySelector(selector);\\n var container = element.parentElement;\\n var containerId = container.id;\\n pageRemove(element);\\n\\n var rowStart = (nRow * 1) + 1;\\n\\n for (let a = rowStart; a < 100; a++) {\\n\\n var selector = '#'+containerId+' .order-'+a;\\n\\n if (document.querySelector(selector)) {\\n var b = a - 1;\\n rowChangePos(document.querySelector(selector), a, b);\\n } else {\\n break;\\n }\\n \\n }\\n\\n rowSetArrow(container)\\n\\n}\\n\\nfunction rowSetArrow(container) {\\n\\n var nRow = document.querySelectorAll('#'+container.id+' .wi-copy-row').length;\\n\\n if (nRow > 1) {\\n\\n for (let i = 1; i <= nRow; i++) {\\n\\n var arrowUp = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-up');\\n var arrowDown = document.querySelector('#'+container.id+' .wi-copy-row.order-'+i+' .wi-arrow-down');\\n\\n if (arrowUp.classList.contains('visually-hidden')) {\\n arrowUp.classList.remove('visually-hidden');\\n }\\n\\n if (arrowDown.classList.contains('visually-hidden')) {\\n arrowDown.classList.remove('visually-hidden');\\n }\\n\\n if (i == 1) {\\n arrowUp.classList.add('visually-hidden');\\n }\\n\\n if (i == nRow) {\\n arrowDown.classList.add('visually-hidden');\\n }\\n \\n }\\n\\n } else if (nRow == 1) {\\n\\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-up').classList.add('visually-hidden');\\n document.querySelector('#'+container.id+' .wi-copy-row.order-1 .wi-arrow-down').classList.add('visually-hidden');\\n\\n }\\n \\n}\"","module.exports = \"async function formUpload(form, url, responseFunction = null) {\\n \\n var formData = new FormData(form);\\n formData.append('post', 'true');\\n\\n await postData(url, formData).then((data) => {\\n \\n if (data != false) {\\n if (typeof responseFunction === 'function') { responseFunction(data); }\\n }\\n\\n });\\n\\n}\"","module.exports = \"function setSearchInput() {\\n\\n document.querySelectorAll(\\\"[data-wi-search='true']\\\").forEach(element => {\\n\\n element.addEventListener(\\\"keyup\\\", inputSearch);\\n element.addEventListener(\\\"change\\\", lengthCount);\\n element.addEventListener(\\\"focusin\\\", lengthCount);\\n element.addEventListener(\\\"focusout\\\", lengthCount);\\n\\n if (element.dataset.wiSearchUrl != undefined) { setDynamicSearch(element); }\\n\\n });\\n \\n}\\n\\nfunction setUploader() {\\n\\n document.querySelectorAll(\\\"[data-wi-uploader]\\\").forEach(uploader => {\\n\\n var id = uploader.id;\\n var type = uploader.dataset.wiUploader;\\n var dir = uploader.dataset.wiDir;\\n var value = uploader.dataset.wiValue;\\n var label = uploader.dataset.wiUploaderLabel;\\n var accept = uploader.accept;\\n\\n if (accept === '' || accept === '*') {\\n var validation = false;\\n } else {\\n var validation = true;\\n }\\n\\n var files = [];\\n \\n if (value != \\\"\\\") {\\n\\n var value = JSON.parse(value);\\n \\n value.forEach(file => {\\n \\n var source = {\\n source: dir+file\\n };\\n\\n files.push(source);\\n\\n });\\n\\n }\\n\\n if (type == 'classic') {\\n\\n FilePond.create(uploader, {\\n storeAsFile: true,\\n labelIdle: `Trascina `+label+` o <span class=\\\"filepond--label-action\\\">Cerca</span>`,\\n files: files,\\n allowFileTypeValidation: validation,\\n allowDownloadByUrl: true,\\n onaddfile: () => { check(); },\\n onremovefile: () => { check(); }\\n });\\n \\n } else if (type == 'profile') {\\n\\n FilePond.create(uploader, {\\n storeAsFile: true,\\n labelIdle: `Trascina `+label+` o <span class=\\\"filepond--label-action\\\">Cerca</span>`,\\n imageCropAspectRatio: '1:1',\\n stylePanelLayout: 'compact circle',\\n styleLoadIndicatorPosition: 'center bottom',\\n styleButtonRemoveItemPosition: 'center bottom',\\n files: files,\\n allowFileTypeValidation: validation,\\n allowDownloadByUrl: true,\\n onaddfile: () => { check(); },\\n onremovefile: () => { check(); }\\n });\\n \\n }\\n\\n });\\n\\n}\\n\\nfunction setTextarea() {\\n\\n document.querySelectorAll(\\\"[data-wi-textarea]\\\").forEach(textarea => {\\n\\n var container = textarea.parentElement;\\n var type = textarea.dataset.wiTextarea;\\n\\n var textareaId = textarea.id;\\n var textareaValue = atob(textarea.dataset.wiValue);\\n\\n // Creo l'editor\\n var editorId = textareaId+'_editor';\\n\\n var editor = document.createElement(\\\"div\\\");\\n editor.id = editorId;\\n editor.classList.add('position-relative');\\n editor.classList.add('float-start');\\n editor.classList.add('w-100');\\n editor.classList.add('h-auto');\\n editor.classList.add('border');\\n editor.style.maxHeight = '250px';\\n\\n if (type == 'base' || type == 'plus' || type == 'pro') {\\n\\n // Quill.js\\n\\n editor.classList.add('border-top-0');\\n editor.classList.add('rounded-bottom');\\n editor.classList.add('overflow-scroll');\\n \\n container.after(editor);\\n\\n var toolbarId = editorId+'_toolbar';\\n\\n if (type == 'base') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['clean']];\\n } else if (type == 'plus') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], ['clean']];\\n } else if (type == 'pro') {\\n var option = [['bold', 'italic', 'underline', 'strike'], ['link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\\n }\\n\\n new Quill('#'+editorId, {\\n theme: 'snow',\\n modules: {\\n toolbar: option\\n }\\n });\\n\\n var col = container.parentElement;\\n var toolbar = col.querySelector('.ql-toolbar');\\n\\n toolbar.id = toolbarId;\\n toolbar.classList.add('position-relative');\\n toolbar.classList.add('float-start');\\n toolbar.classList.add('w-100');\\n toolbar.classList.add('border');\\n toolbar.classList.add('rounded-top');\\n\\n var editor = document.querySelector('#'+editorId+' .ql-editor');\\n\\n editor.innerHTML = textareaValue.replace(\\\"'\\\", \\\"\\\\'\\\");\\n\\n editor.addEventListener('keydown', () => { textarea.value = editor.innerHTML; });\\n editor.addEventListener('DOMNodeInserted', () => { textarea.value = editor.innerHTML; });\\n\\n } else if (type == 'table' || type == 'blog') {\\n\\n // Editor.js\\n\\n EDITORJS_TOOLS_BLOG.image.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\\n EDITORJS_TOOLS_BLOG.gallery.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/images';\\n EDITORJS_TOOLS_BLOG.attaches.config.additionalRequestHeaders.dir = textarea.dataset.wiFolder+'/files';\\n\\n editor.classList.add('wi-'+type);\\n editor.classList.add('pt-3');\\n editor.classList.add('rounded');\\n editor.classList.add('overflow-scroll');\\n\\n container.after(editor);\\n\\n if (type == 'table') {\\n \\n if (textareaValue == null || textareaValue == '') {\\n var data = '{\\\"blocks\\\":[{\\\"id\\\":\\\"O3rAzVD6s8\\\",\\\"type\\\":\\\"table\\\",\\\"data\\\":{\\\"withHeadings\\\":true,\\\"content\\\":[]}}]}';\\n } else {\\n var data = '{\\\"blocks\\\":'+textareaValue+'}';\\n }\\n\\n var tools = EDITORJS_TOOLS_TABLE;\\n\\n } else if (type == 'blog') {\\n\\n editor.style.maxHeight = '500px';\\n\\n if (textareaValue == null || textareaValue == '') {\\n var data = '{}';\\n } else {\\n var data = '{\\\"blocks\\\":'+textareaValue+'}';\\n }\\n\\n var tools = EDITORJS_TOOLS_BLOG;\\n \\n }\\n\\n new EditorJS({\\n tools: tools,\\n holder: editorId, \\n autofocus: false,\\n data: JSON.parse(data),\\n onChange: (api) => {\\n\\n api.saver.save().then((outputData) => {\\n var editorValue = JSON.stringify(outputData.blocks);\\n document.getElementById(textareaId).value = editorValue;\\n }).catch((error) => {\\n console.log('Saving failed: ', error)\\n });\\n\\n },\\n i18n: EDITORJS_i18n_IT\\n });\\n\\n }\\n\\n });\\n\\n}\\n\\nfunction setJsTree() {\\n \\n document.querySelectorAll('[data-wi-tree]').forEach(element => {\\n\\n var container = element.parentElement;\\n\\n var type = element.dataset.wiTree;\\n var searchBar = container.querySelector('[data-wi-search=\\\"true\\\"]');\\n\\n var Tree = $(element).jstree({\\n core: {\\n check_callback: false\\n },\\n checkbox : {\\n keep_selected_style: false,\\n three_state: false,\\n },\\n types : {\\n default : {\\n icon : \\\"bi bi-folder\\\"\\n }\\n },\\n plugins : [ \\\"checkbox\\\", \\\"types\\\", \\\"search\\\" ]\\n });\\n\\n Tree.jstree('open_all');\\n\\n if (searchBar != undefined) {\\n $(searchBar).keyup(function () {\\n var v = $(searchBar).val();\\n $(Tree).jstree(true).search(v);\\n });\\n }\\n\\n $(element).on('click', '.jstree-anchor', function(e) {\\n\\n var selectedNodes = $(element).jstree().get_checked();\\n\\n container.querySelectorAll('input[type=\\\"checkbox\\\"]:checked').forEach(element => { element.checked = false; });\\n\\n if (type == 'radio') {\\n\\n if (selectedNodes.length > 1) {\\n $(element).jstree().uncheck_node(selectedNodes[0]);\\n }\\n\\n var selectedNodes = $(element).jstree().get_checked();\\n\\n }\\n\\n selectedNodes.forEach(element => { container.querySelector('input[value=\\\"'+element+'\\\"]').checked = true; });\\n\\n check();\\n\\n });\\n\\n });\\n\\n}\\n\\nfunction setCheckBoolean() {\\n \\n document.querySelectorAll('[data-wi-check-boolean]').forEach(element => {\\n\\n var inputTrue = element.querySelector('input.wi-true');\\n var labelTrue = inputTrue.labels[0];\\n var inputFalse = element.querySelector('input.wi-false');\\n var labelFalse = inputFalse.labels[0];\\n\\n inputTrue.addEventListener(\\\"change\\\", (el) => {\\n\\n var checked = el.target.checked;\\n\\n if (checked) { \\n inputFalse.checked = false; \\n labelFalse.classList.remove('btn-primary'); \\n labelTrue.classList.add('btn-primary'); \\n } else {\\n labelTrue.classList.remove('btn-primary'); \\n }\\n\\n });\\n\\n inputFalse.addEventListener(\\\"change\\\", (el) => {\\n\\n var checked = el.target.checked;\\n\\n if (checked) { \\n inputTrue.checked = false; \\n labelTrue.classList.remove('btn-primary'); \\n labelFalse.classList.add('btn-primary'); \\n } else {\\n labelFalse.classList.remove('btn-primary'); \\n }\\n\\n });\\n\\n\\n });\\n\\n}\"","module.exports = \"function jqueryDaterange() {\\n \\n $('.wi-daterange-filter').datepicker({\\n format: 'dd/mm/yyyy',\\n language: 'it', \\n orientation: 'bottom left'\\n });\\n\\n}\\n\\nfunction setUpJquery() {\\n \\n jqueryDaterange();\\n\\n}\"","module.exports = \"function modal(text, link, title = 'ATTENZIONE', sendText = 'Elimina', sendColor = 'danger', closeText = 'Chiudi', closeColor = 'dark', onSuccess = 'reloadPage', params = null) {\\n \\n document.querySelector('#modal .modal-title').innerHTML = title;\\n document.querySelector('#modal .modal-body').innerHTML = text;\\n\\n var sendBtn = document.querySelector('#modal button.send');\\n sendBtn.innerHTML = sendText;\\n sendBtn.classList.add('btn-'+sendColor);\\n\\n if (onSuccess == 'reloadPage') {\\n \\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"')\\\");\\n\\n } else {\\n \\n if (typeof onSuccess === 'function') {\\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"', \\\"+onSuccess+\\\", '\\\"+params+\\\"')\\\");\\n } else {\\n sendBtn.setAttribute(\\\"onclick\\\", \\\"ajaxRequest('\\\"+link+\\\"', '\\\"+onSuccess+\\\"', '\\\"+params+\\\"')\\\");\\n }\\n\\n }\\n\\n var closeBtn = document.querySelector('#modal button.close');\\n closeBtn.innerHTML = closeText;\\n closeBtn.classList.add('btn-'+closeColor);\\n\\n const modal = new bootstrap.Modal('#modal')\\n modal.show();\\n\\n}\"","module.exports = \"function menu() { \\n\\n var el = document.getElementById('sidebar');\\n el.classList.toggle(\\\"show\\\");\\n\\n var el = document.getElementById('menu');\\n\\n var iconMenu = el.querySelector('.open-menu');\\n var iconClose = el.querySelector('.close-menu');\\n\\n if (iconMenu.classList.contains('d-none')) {\\n\\n // Chiudo il menu\\n iconMenu.classList.remove('d-none');\\n iconClose.classList.add('d-none');\\n\\n $('.offcanvas').offcanvas('hide');\\n \\n } else {\\n\\n // Apro il menu\\n iconClose.classList.remove('d-none');\\n iconMenu.classList.add('d-none');\\n\\n if (document.querySelector('#sidebar li.active [data-bs-target]')) {\\n var offcanvasId = document.querySelector('#sidebar li.active [data-bs-target]').dataset.bsTarget;\\n $(offcanvasId).offcanvas('show');\\n }\\n\\n }\\n \\n}\\n\\nfunction loadingSpinner() {\\n\\n document.getElementById('loading-spinner').classList.toggle('d-none');\\n \\n}\"","module.exports = \"function canvasFullPage(elementId, draw = false) {\\n\\n var element = document.createElement(\\\"CANVAS\\\");\\n element.id = elementId;\\n element.style.position = \\\"fixed\\\";\\n element.style.top = 0;\\n element.style.left = 0;\\n element.style.zIndex = 999999;\\n element.style.background = '#ffffff';\\n element.style.touchAction = 'none';\\n element.style.msTouchAction = 'none';\\n\\n fullPage(element);\\n\\n window.addEventListener('resize', () => { fullPage(element) });\\n\\n if (draw) { canvasDraw(element); }\\n\\n}\\n\\nfunction canvasReset(element) {\\n \\n var ctx = element.getContext(\\\"2d\\\");\\n ctx.clearRect(0, 0, element.width, element.height);\\n ctx.restore();\\n\\n}\\n\\nfunction canvasDraw(element) {\\n\\n var ctx = element.getContext(\\\"2d\\\");\\n \\n let offset = position(element);\\n let painting = false;\\n\\n function drawStart() {\\n offset = position(element);\\n painting = true;\\n draw(e);\\n }\\n\\n function drawEnd() {\\n painting = false;\\n ctx.beginPath();\\n }\\n\\n function draw(e) {\\n\\n if (!painting) return;\\n ctx.lineWidth = 1;\\n ctx.lineCap = \\\"round\\\";\\n ctx.strokeStyle = \\\"black\\\";\\n\\n if (e.type == 'touchmove'){\\n var x = e.touches[0].clientX;\\n var y = e.touches[0].clientY;\\n } else if (e.type == 'mousemove'){\\n var x = e.clientX;\\n var y = e.clientY;\\n }\\n\\n var offsetX = offset.left;\\n var offsetY = offset.top;\\n\\n var x = x - offsetX;\\n var y = y - offsetY;\\n\\n ctx.lineTo(x, y);\\n ctx.stroke();\\n ctx.beginPath();\\n ctx.moveTo(x, y);\\n\\n }\\n\\n element.addEventListener(\\\"mousedown\\\", drawStart);\\n element.addEventListener(\\\"touchstart\\\", drawStart);\\n element.addEventListener(\\\"mouseup\\\", drawEnd);\\n element.addEventListener(\\\"touchend\\\", drawEnd);\\n element.addEventListener(\\\"mousemove\\\", draw);\\n element.addEventListener(\\\"touchmove\\\", draw);\\n\\n}\"","module.exports = \"function fetchResponse(response) {\\n \\n if (response.ok) {\\n\\n return response.json();\\n\\n } else {\\n\\n alertToast(802);\\n console.error(\\\"Impossibile connettersi o trovare il file!\\\");\\n return false;\\n\\n }\\n\\n}\\n\\nfunction fetchValue(value) {\\n \\n if (value == false) {\\n \\n return false;\\n \\n } else {\\n\\n if (value.status == 200) {\\n return value;\\n } else if (value.status == 401) {\\n alertToast(911);\\n return false;\\n } else if (value.status == undefined) {\\n alertToast(803);\\n return false;\\n } else {\\n alertToast(value.status);\\n return false;\\n }\\n\\n }\\n\\n}\\n\\nfunction fetchError(error) {\\n \\n alertToast(802);\\n console.error(\\\"Il file non risponde in JSON!\\\");\\n\\n}\\n\"","module.exports = \"var AUTONUMERIC_NUMBER = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nvar AUTONUMERIC_PRICE = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbol: '€',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nvar AUTONUMERIC_PERCENTIGE = {\\n caretPositionOnFocus: 'end',\\n decimalPlacesShownOnFocus: 2,\\n digitGroupSeparator: '',\\n decimalCharacter: '.',\\n onInvalidPaste: 'truncate',\\n currencySymbol: '%',\\n currencySymbolPlacement: 's',\\n outputFormat: 'number',\\n unformatOnSubmit: true,\\n modifyValueOnWheel: false\\n};\\n\\nfunction customAutonumeric(element, autonumeric) {\\n\\n var option = {};\\n\\n if (autonumeric.caretPositionOnFocus != undefined) { \\n option.caretPositionOnFocus = autonumeric.caretPositionOnFocus; \\n }\\n\\n if (element.dataset.wiNumberDecimal != undefined) { \\n option.decimalPlacesShownOnFocus = element.dataset.wiNumberDecimal;\\n option.decimalPlaces = element.dataset.wiNumberDecimal;\\n } else {\\n if (autonumeric.decimalPlacesShownOnFocus != undefined) {\\n option.decimalPlacesShownOnFocus = autonumeric.decimalPlacesShownOnFocus;\\n }\\n }\\n\\n if (element.dataset.wiNumberDecimalSeparator != undefined) { \\n option.decimalCharacter = element.dataset.wiNumberDecimalSeparator;\\n } else {\\n if (autonumeric.decimalCharacter != undefined) {\\n option.decimalCharacter = autonumeric.decimalCharacter;\\n }\\n }\\n\\n if (element.dataset.wiNumberGroupSeparator != undefined) { \\n option.digitGroupSeparator = element.dataset.wiNumberGroupSeparator;\\n } else {\\n if (autonumeric.digitGroupSeparator != undefined) {\\n option.digitGroupSeparator = autonumeric.digitGroupSeparator;\\n }\\n }\\n\\n if (autonumeric.onInvalidPaste != undefined) { \\n option.onInvalidPaste = autonumeric.onInvalidPaste; \\n }\\n\\n if (element.dataset.wiNumberSymbol != undefined) { \\n option.currencySymbol = element.dataset.wiNumberSymbol;\\n } else {\\n if (autonumeric.currencySymbol != undefined) {\\n option.currencySymbol = autonumeric.currencySymbol;\\n }\\n }\\n\\n if (element.dataset.wiNumberSymbolPlacement != undefined) { \\n option.currencySymbolPlacement = element.dataset.wiNumberSymbolPlacement;\\n } else {\\n if (autonumeric.currencySymbolPlacement != undefined) {\\n option.currencySymbolPlacement = autonumeric.currencySymbolPlacement;\\n }\\n }\\n\\n if (autonumeric.outputFormat != undefined) { \\n option.outputFormat = autonumeric.outputFormat; \\n }\\n\\n if (autonumeric.unformatOnSubmit != undefined) { \\n option.unformatOnSubmit = autonumeric.unformatOnSubmit; \\n }\\n\\n if (autonumeric.modifyValueOnWheel != undefined) { \\n option.modifyValueOnWheel = autonumeric.modifyValueOnWheel; \\n }\\n\\n return option;\\n \\n}\\n\\nfunction setAutonumeric() {\\n \\n document.querySelectorAll(\\\"[data-wi-number='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n \\n if (el === null) {\\n\\n new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_NUMBER)); \\n \\n }\\n\\n });\\n\\n document.querySelectorAll(\\\"[data-wi-price='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PRICE)); }\\n\\n });\\n \\n document.querySelectorAll(\\\"[data-wi-percentige='true']\\\").forEach(element => {\\n \\n var el = AutoNumeric.getAutoNumericElement(element);\\n if (el === null) { new AutoNumeric(element, customAutonumeric(element, AUTONUMERIC_PERCENTIGE)); }\\n\\n });\\n\\n}\"","module.exports = \"function checkPhone(element) {\\n \\n var phones = [\\n { \\\"mask\\\": \\\"### ### ####\\\"}\\n ];\\n\\n new Inputmask({ \\n mask: phones, \\n greedy: false, \\n placeholder: '', \\n definitions: { \\n '#': { \\n validator: \\\"[0-9]\\\", \\n cardinality: 1\\n }\\n } \\n }).mask(element);\\n\\n}\"","module.exports = \"function position(element, showItem = false) {\\n\\n var rect = element.getBoundingClientRect();\\n\\n if (showItem) {\\n\\n var width = rect.right - rect.left;\\n var height = rect.bottom - rect.top;\\n\\n var element = document.createElement(\\\"DIV\\\");\\n element.style.position = \\\"fixed\\\";\\n element.style.top = rect.top+'px';\\n element.style.left = rect.left+'px';\\n element.style.width = width+'px';\\n element.style.height = height+'px';\\n element.style.zIndex = 999999;\\n element.style.background = 'rgba(255, 0, 0, .2)';\\n document.body.appendChild(element);\\n\\n }\\n\\n return rect;\\n\\n}\\n\\nfunction fullPage(element) {\\n element.width = window.innerWidth;\\n element.height = window.innerHeight;\\n}\\n\\nfunction copyText(text, icon = null) {\\n\\n if (icon != null) {\\n document.querySelectorAll('.bi-clipboard-check').forEach(element => {\\n element.classList.remove('bi-clipboard-check')\\n element.classList.add('bi-clipboard');\\n });\\n }\\n\\n navigator.clipboard.writeText(text).then(() => {\\n if (icon != null) {\\n icon.classList.remove('bi-clipboard');\\n icon.classList.add('bi-clipboard-check');\\n }\\n },() => {\\n if (icon != null) {\\n icon.classList.remove('bi-clipboard');\\n icon.classList.add('bi-clipboard-x');\\n }\\n });\\n\\n}\\n\\nfunction ajaxRequestError(request) {\\n \\n if (request.readyState == 4) {\\n alertToast(802);\\n } else if (request.readyState == 0) {\\n alertToast(801);\\n } else {\\n alertToast(800);\\n }\\n\\n}\\n\\nfunction code(codeLength = 10) {\\n\\n var result = '';\\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\\n var charactersLength = characters.length;\\n\\n for ( var i = 0; i < codeLength; i++ ) {\\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\\n }\\n\\n return result;\\n\\n}\\n\\nfunction isMobile() {\\n\\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\\n return true;\\n } else {\\n return false;\\n }\\n \\n}\\n\\nfunction delay(time) {\\n\\n return new Promise(resolve => setTimeout(resolve, time));\\n\\n}\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/ajax.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/alert.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/bootstrap.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/editor.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/file.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/input.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/inputRow.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/send.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/form/set.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/jquery.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/modal.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/backend/js/utility.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/canvas.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/fetch.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/form/autonumeric.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/form/phone.js\"))","require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/script-loader/addScript.js\")(require(\"!!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/node_modules/raw-loader/index.js!/Users/andreamarinoni/Desktop/PROGETTI/template/lib/src/build/global/js/utility.js\"))","// 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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["module","exports","src","log","error","console","execScript","attachEvent","addEventListener","eval","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","value"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wonder-image",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "",
5
5
  "private": false,
6
6
  "scripts": {
@@ -8,7 +8,11 @@ function copyRow(container, element) {
8
8
  copy.classList.add('wi-copy-row');
9
9
  copy.classList.add('order-'+position);
10
10
 
11
- copy.querySelector('input[name="position[]"]').value = position;
11
+ if (copy.querySelector('[data-wi-sort-pos]')) {
12
+ copy.querySelector('[data-wi-sort-pos]').value = position;
13
+ } else if (copy.querySelector('input[name="position[]"]')) {
14
+ copy.querySelector('input[name="position[]"]').value = position;
15
+ }
12
16
 
13
17
  copy.querySelectorAll('[data-wi-attribute]').forEach(element => {
14
18