{"version":3,"file":"app.bundle.js","mappings":"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ACdF,EAASE,KAAK,GACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,IACdF,EAASE,KAAK,GACdD,EAASC,KAAK,SACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,GACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,IACdD,EAASC,KAAK,GACPT,EAAS,IAAI,CAGnB,GAFAC,EAASH,EAAIY,OAAOV,EAAS,GAEX,IADlBE,EAAa3D,EAAIoE,OAAOL,EAASL,IAEhC,MAAO,GAERE,EAAMI,EAASL,GACfE,EAAMI,EAASN,GACXF,EAAS,EAAIzD,EAAIqE,UAAUZ,EAAS,GACvCD,GAAkBK,EAElBL,GAAkBI,EAEnBH,GAAkB,CACnB,CAIA,OAHAK,EAAON,EAAS,GAETO,EA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","sources":["webpack://FactoryManager/webpack/runtime/load script","webpack://FactoryManager/webpack/runtime/css loading","webpack://FactoryManager/./src/js/Globals.js","webpack://FactoryManager/./src/js/3x1010/Pqp.js","webpack://FactoryManager/./src/js/pages/PageCommon.js","webpack://FactoryManager/./src/js/pages/PageDefault.js","webpack://FactoryManager/./src/js/pages/Albums/Album.js","webpack://FactoryManager/./src/js/pages/Albums/Albums.js","webpack://FactoryManager/./src/js/pages/Labels/Label.js","webpack://FactoryManager/./src/js/pages/Labels/Labels.js","webpack://FactoryManager/./src/js/pages/Artists/Artist.js","webpack://FactoryManager/./src/js/pages/Artists/Artists.js","webpack://FactoryManager/./src/js/pages/Playlists/Playlist.js","webpack://FactoryManager/./src/js/pages/Playlists/Playlists.js","webpack://FactoryManager/./src/js/pages/Tracks/Track.js","webpack://FactoryManager/./src/js/pages/Tracks/Tracks.js","webpack://FactoryManager/./src/js/pages/Filters/Filter.js","webpack://FactoryManager/./src/js/pages/Filters/Filters.js","webpack://FactoryManager/./src/js/pages/DataManager.js","webpack://FactoryManager/./src/js/pages/SearchManager.js","webpack://FactoryManager/./src/js/pages/PlayerManager.js","webpack://FactoryManager/./src/js/pages/Profiles/Profile.js","webpack://FactoryManager/./src/js/pages/Profiles/ArtistProfile.js","webpack://FactoryManager/./src/js/pages/UserManager.js","webpack://FactoryManager/./src/js/pages/VideoManager.js","webpack://FactoryManager/./src/js/pages/IndexedDBManager.js","webpack://FactoryManager/./src/js/pages/Tracks/LicensesTrack.js","webpack://FactoryManager/./src/js/pages/LicensesManager.js","webpack://FactoryManager/./src/js/pages/PageShow.js","webpack://FactoryManager/./src/js/FactoryManager.js","webpack://FactoryManager/./node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js","webpack://FactoryManager/./node_modules/mini-css-extract-plugin/dist/hmr/normalize-url.js","webpack://FactoryManager/./src/scss/styles.scss?b7ff","webpack://FactoryManager/webpack/bootstrap","webpack://FactoryManager/webpack/runtime/define property getters","webpack://FactoryManager/webpack/runtime/get javascript update chunk filename","webpack://FactoryManager/webpack/runtime/get mini-css chunk filename","webpack://FactoryManager/webpack/runtime/get update manifest filename","webpack://FactoryManager/webpack/runtime/getFullHash","webpack://FactoryManager/webpack/runtime/global","webpack://FactoryManager/webpack/runtime/hasOwnProperty shorthand","webpack://FactoryManager/webpack/runtime/hot module replacement","webpack://FactoryManager/webpack/runtime/publicPath","webpack://FactoryManager/webpack/runtime/jsonp chunk loading","webpack://FactoryManager/webpack/startup"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"FactoryManager:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = (chunkId, fullhref, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// no chunk loading\n\nvar oldTags = [];\nvar newTags = [];\nvar applyHandler = (options) => {\n\treturn { dispose: () => {\n\t\tfor(var i = 0; i < oldTags.length; i++) {\n\t\t\tvar oldTag = oldTags[i];\n\t\t\tif(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);\n\t\t}\n\t\toldTags.length = 0;\n\t}, apply: () => {\n\t\tfor(var i = 0; i < newTags.length; i++) newTags[i].rel = \"stylesheet\";\n\t\tnewTags.length = 0;\n\t} };\n}\n__webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => {\n\tapplyHandlers.push(applyHandler);\n\tchunkIds.forEach((chunkId) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tvar oldTag = findStylesheet(href, fullhref);\n\t\tif(!oldTag) return;\n\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\tvar tag = createStylesheet(chunkId, fullhref, () => {\n\t\t\t\ttag.as = \"style\";\n\t\t\t\ttag.rel = \"preload\";\n\t\t\t\tresolve();\n\t\t\t}, reject);\n\t\t\toldTags.push(oldTag);\n\t\t\tnewTags.push(tag);\n\t\t}));\n\t});\n}","export default class Globals {\r\n static getBaseUrl() {\r\n try {\r\n App;\r\n } catch (e) {\r\n return \"/\";\r\n }\r\n return App.Env.BaseUrl;\r\n }\r\n}\r\n//let isDev = true;\r\nlet isDev = false;\r\n//CM imposto isDev=false; per il mio pc\r\nGlobals.API_KEY = \"WEB.0.0\";\r\nGlobals.URL_FETCH_BLOCK = \"\";\r\n// Globals.URL_FETCH_BLOCK_DEV = '/Sounzone/wwwroot/pages/blocks/';\r\n// Globals.URL_FETCH_BLOCK_DEMO = '/pages/blocks/';\r\nif (isDev) {\r\n Globals.URL_FETCH_BLOCK = \"/Sounzone/wwwroot/pages/blocks/\";\r\n} else {\r\n Globals.URL_FETCH_BLOCK = \"/pages/blocks/\";\r\n}\r\n\r\n// 230719 - PF\r\nGlobals.isRemoveTrackFromPlaylist = false;\r\n\r\n// 230108 - PF \r\nGlobals.WS_URL = \"https://sounzone.com/szwsbeta/\";\r\n// Globals.WS_URL = \"https://sz-backend02.azurewebsites.net/szwsbeta/\"; // Dev Url\r\n\r\nGlobals.searchManager = null;\r\n\r\n// 230807 - PF\r\nGlobals.userManager = null;\r\n\r\n// Mostra nella console i dati di tracking\r\nGlobals.SHOW_TRACKING_DATA = false;\r\n\r\n// Nasconde i console.log di sviluppo\r\nGlobals.SHOW_ALL_CONSOLE_LOG = true;\r\n\r\n// Mostra nella console le chiamate del service manager\r\n//Globals.SERVICE_MANAGER_SHOW_CALLS = false;\r\n\r\n// Esclude totalmente il processo fake\r\n//Globals.SERVICE_MANAGER_USE_FAKE = true && (App.Env.globalKeySet == \"dev\");\r\n","export default class Pqp {\r\n\r\n\tstatic trace(xValue, level) {\r\n\t\tvar colors = [\"#ff0000\", \"#00ff00\", \"#ff00FF\", \"#FF8000\"]\r\n\t\tif (typeof console != \"undefined\") {\r\n\t\t\tif ((Pqp.isNullOrEmpty(level)) || (level > colors.length - 1)) {\r\n\t\t\t\tconsole.log(xValue);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"%c\" + xValue, \"color:\" + colors[level]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tstatic isString(a) {\r\n\t\tif ((a instanceof String) || (typeof (a) == \"string\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isNumber(a) {\r\n\t\tif ((a instanceof Number) || (typeof (a) == \"number\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isArray(a) {\r\n\t\tif ((a instanceof Array) || (typeof (a) == \"array\")) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isNullOrEmpty(xValue) {\r\n\t\tif (typeof (xValue) == \"boolean\") {\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\tif ((xValue == null) || (xValue == undefined) || (xValue == \"\")) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic getParameterByName(name) {\r\n\t\tvar match = new RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);\r\n\t\treturn match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\r\n\t}\r\n\r\n\tstatic shuffle(o) {\r\n\t\tfor (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);\r\n\t\treturn o;\r\n\t}\r\n\r\n\r\n\tstatic rnd(max, min) {\r\n\t\tif (!min) {\r\n\t\t\tmin = 0;\r\n\t\t}\r\n\t\treturn Math.floor(Math.random() * (max - min + 1)) + min;\r\n\t}\r\n\r\n\r\n\r\n\tstatic check(nProb) {\r\n\t\tif (nProb >= 1) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (nProb <= 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar nSpace = 100000;\r\n\t\tvar nProd = (nProb * nSpace);\r\n\t\tvar nRnd = Pqp.range(0, nSpace);\r\n\t\treturn nRnd < nProd;\r\n\t}\r\n\r\n\tstatic range(nMin, nMax) {\r\n\t\treturn (Pqp.rangeInt((nMin * 1000.0), (nMax * 1000.0))) / 1000.0;\r\n\t}\r\n\r\n\tstatic rangeInt(nMin, nMax) {\r\n\t\treturn Math.floor(Math.random() * (nMax - nMin + 1)) + nMin;\r\n\t}\r\n\r\n\tstatic replace(str, fnd, repl) {\r\n\t\treturn Pqp.safeReplace(str, fnd, repl);\r\n\t}\r\n\r\n\tstatic mettiPunti(input, sep, sepdec) {\r\n\t\tif (sep == null) {\r\n\t\t\tsep = \".\";\r\n\t\t}\r\n\t\tif (sepdec == null) {\r\n\t\t\tsepdec = \",\";\r\n\t\t}\r\n\r\n\t\tvar num = input;\r\n\t\tvar minus = false;\r\n\t\tif (num < 0) {\r\n\t\t\tnum *= -1;\r\n\t\t\tminus = true\r\n\t\t}\r\n\t\tvar dotPos = (num + \"\").split(\".\");\r\n\t\tvar dotU = dotPos[0];\r\n\t\tvar dotD = dotPos[1];\r\n\t\tvar commaFlag = dotU.length % 3;\r\n\r\n\t\tvar out;\r\n\t\tif (commaFlag) {\r\n\t\t\tout = dotU.substring(0, commaFlag);\r\n\t\t\tif (dotU.length > 3) {\r\n\t\t\t\tout += sep;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tout = \"\"\r\n\t\t}\r\n\r\n\t\tfor (var i = commaFlag; i < dotU.length; i += 3) {\r\n\t\t\tout += dotU.substring(i, i + 3);\r\n\t\t\tif (i < dotU.length - 3) {\r\n\t\t\t\tout += sep;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (minus) {\r\n\t\t\tout = \"-\" + out;\r\n\t\t}\r\n\t\tif (dotD) {\r\n\t\t\treturn out + sepdec + dotD\r\n\t\t}\r\n\t\treturn out\r\n\t}\r\n\r\n\r\n\tstatic _carCon(mCf) {\r\n\t\tvar aNumLet = new Array();\r\n\t\tvar aNumeri1 = new Array();\r\n\t\tvar aNumeri2 = new Array();\r\n\t\tvar nSomma;\r\n\t\tvar nConta;\r\n\t\tvar cCifra;\r\n\t\tvar nPuntatore;\r\n\t\tvar nNp;\r\n\t\tvar nNd;\r\n\t\tvar nCf1;\r\n\t\tvar nCf2;\r\n\t\tvar nMlc;\r\n\t\tnSomma = 0;\r\n\t\tnConta = 1;\r\n\t\taNumLet.push(\"DUMMY\");\r\n\t\taNumLet.push(\"0\");\r\n\t\taNumLet.push(\"1\");\r\n\t\taNumLet.push(\"2\");\r\n\t\taNumLet.push(\"3\");\r\n\t\taNumLet.push(\"4\");\r\n\t\taNumLet.push(\"5\");\r\n\t\taNumLet.push(\"6\");\r\n\t\taNumLet.push(\"7\");\r\n\t\taNumLet.push(\"8\");\r\n\t\taNumLet.push(\"9\");\r\n\t\taNumLet.push(\"A\");\r\n\t\taNumLet.push(\"B\");\r\n\t\taNumLet.push(\"C\");\r\n\t\taNumLet.push(\"D\");\r\n\t\taNumLet.push(\"E\");\r\n\t\taNumLet.push(\"F\");\r\n\t\taNumLet.push(\"G\");\r\n\t\taNumLet.push(\"H\");\r\n\t\taNumLet.push(\"I\");\r\n\t\taNumLet.push(\"J\");\r\n\t\taNumLet.push(\"K\");\r\n\t\taNumLet.push(\"L\");\r\n\t\taNumLet.push(\"M\");\r\n\t\taNumLet.push(\"N\");\r\n\t\taNumLet.push(\"O\");\r\n\t\taNumLet.push(\"P\");\r\n\t\taNumLet.push(\"Q\");\r\n\t\taNumLet.push(\"R\");\r\n\t\taNumLet.push(\"S\");\r\n\t\taNumLet.push(\"T\");\r\n\t\taNumLet.push(\"U\");\r\n\t\taNumLet.push(\"V\");\r\n\t\taNumLet.push(\"W\");\r\n\t\taNumLet.push(\"X\");\r\n\t\taNumLet.push(\"Y\");\r\n\t\taNumLet.push(\"Z\");\r\n\t\taNumLet.push(\"/\");\r\n\t\taNumeri1.push(\"DUMMY\");\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri1.push(1);\r\n\t\taNumeri1.push(2);\r\n\t\taNumeri1.push(3);\r\n\t\taNumeri1.push(4);\r\n\t\taNumeri1.push(5);\r\n\t\taNumeri1.push(6);\r\n\t\taNumeri1.push(7);\r\n\t\taNumeri1.push(8);\r\n\t\taNumeri1.push(9);\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri1.push(1);\r\n\t\taNumeri1.push(2);\r\n\t\taNumeri1.push(3);\r\n\t\taNumeri1.push(4);\r\n\t\taNumeri1.push(5);\r\n\t\taNumeri1.push(6);\r\n\t\taNumeri1.push(7);\r\n\t\taNumeri1.push(8);\r\n\t\taNumeri1.push(9);\r\n\t\taNumeri1.push(10);\r\n\t\taNumeri1.push(11);\r\n\t\taNumeri1.push(12);\r\n\t\taNumeri1.push(13);\r\n\t\taNumeri1.push(14);\r\n\t\taNumeri1.push(15);\r\n\t\taNumeri1.push(16);\r\n\t\taNumeri1.push(17);\r\n\t\taNumeri1.push(18);\r\n\t\taNumeri1.push(19);\r\n\t\taNumeri1.push(20);\r\n\t\taNumeri1.push(21);\r\n\t\taNumeri1.push(22);\r\n\t\taNumeri1.push(23);\r\n\t\taNumeri1.push(24);\r\n\t\taNumeri1.push(25);\r\n\t\taNumeri1.push(0);\r\n\t\taNumeri2.push(\"DUMMY\");\r\n\t\taNumeri2.push(1);\r\n\t\taNumeri2.push(0);\r\n\t\taNumeri2.push(5);\r\n\t\taNumeri2.push(7);\r\n\t\taNumeri2.push(9);\r\n\t\taNumeri2.push(13);\r\n\t\taNumeri2.push(15);\r\n\t\taNumeri2.push(17);\r\n\t\taNumeri2.push(19);\r\n\t\taNumeri2.push(21);\r\n\t\taNumeri2.push(1);\r\n\t\taNumeri2.push(0);\r\n\t\taNumeri2.push(5);\r\n\t\taNumeri2.push(7);\r\n\t\taNumeri2.push(9);\r\n\t\taNumeri2.push(13);\r\n\t\taNumeri2.push(15);\r\n\t\taNumeri2.push(17);\r\n\t\taNumeri2.push(19);\r\n\t\taNumeri2.push(21);\r\n\t\taNumeri2.push(2);\r\n\t\taNumeri2.push(4);\r\n\t\taNumeri2.push(18);\r\n\t\taNumeri2.push(20);\r\n\t\taNumeri2.push(11);\r\n\t\taNumeri2.push(3);\r\n\t\taNumeri2.push(6);\r\n\t\taNumeri2.push(8);\r\n\t\taNumeri2.push(12);\r\n\t\taNumeri2.push(14);\r\n\t\taNumeri2.push(16);\r\n\t\taNumeri2.push(10);\r\n\t\taNumeri2.push(22);\r\n\t\taNumeri2.push(25);\r\n\t\taNumeri2.push(24);\r\n\t\taNumeri2.push(23);\r\n\t\taNumeri2.push(0);\r\n\t\twhile (nConta < 16) {\r\n\t\t\tcCifra = mCf.charAt(nConta - 1);\r\n\t\t\tnPuntatore = Pqp._ascan(aNumLet, cCifra);\r\n\t\t\tif (nPuntatore == 0) {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t\tnNp = aNumeri1[nPuntatore];\r\n\t\t\tnNd = aNumeri2[nPuntatore];\r\n\t\t\tif (nConta / 2 > Pqp._parteInt(nConta / 2)) {\r\n\t\t\t\tnSomma = nSomma + nNd;\r\n\t\t\t} else {\r\n\t\t\t\tnSomma = nSomma + nNp;\r\n\t\t\t}\r\n\t\t\tnConta = nConta + 1;\r\n\t\t}\r\n\t\tnCf1 = nSomma / 26;\r\n\t\tnCf2 = nSomma - Pqp._parteInt(nCf1) * 26 + 11;\r\n\t\tnMlc = aNumLet[nCf2];\r\n\t\treturn nMlc;\r\n\t}\r\n\r\n\tstatic _parteInt(nNumero) {\r\n\t\tvar aTmp;\r\n\t\taTmp = (\"\" + nNumero).split(\".\");\r\n\t\treturn parseInt(aTmp[0]);\r\n\t}\r\n\tstatic _ascan(aNumLet, cCifra) {\r\n\t\tvar x, lTrovato;\r\n\t\tlTrovato = false;\r\n\t\tfor (x = 0; x < aNumLet.length; x++) {\r\n\t\t\tif (aNumLet[x] == cCifra) {\r\n\t\t\t\tlTrovato = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lTrovato) {\r\n\t\t\treturn x;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic ascSeq(sString) {\r\n\t\tvar x, sCode, sTmp;\r\n\t\tsCode = \"\";\r\n\t\tfor (x = 0; x < sString.length; x++) {\r\n\t\t\tsTmp = \"\" + sString.charCodeAt(x);\r\n\t\t\tif (sTmp.length < 3) {\r\n\t\t\t\tif (sTmp.length < 2) {\r\n\t\t\t\t\tsTmp = \"00\" + sTmp;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsTmp = \"0\" + sTmp;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsCode = sCode + sTmp;\r\n\t\t}\r\n\t\treturn sCode;\r\n\t}\r\n\r\n\tstatic charSeq(sString) {\r\n\t\tvar sTmp, x, sChar;\r\n\t\tsTmp = \"\";\r\n\t\tfor (x = 0; x < sString.length / 3; x++) {\r\n\t\t\tsChar = parseInt(Pqp._removeZero(sString.substr(x * 3, 3)));\r\n\t\t\tsTmp = sTmp + String.fromCharCode(sChar);\r\n\t\t}\r\n\t\treturn sTmp;\r\n\t}\r\n\r\n\tstatic _removeZero(sString) {\r\n\t\tvar sTmp, x, lTrovato;\r\n\t\tlTrovato = false;\r\n\t\tfor (x = 0; x < sString.length; x++) {\r\n\t\t\tif (sString.charAt(x) != \"0\") {\r\n\t\t\t\tlTrovato = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lTrovato) {\r\n\t\t\tsTmp = sString.substr(x);\r\n\t\t} else {\r\n\t\t\tsTmp = sString;\r\n\t\t}\r\n\t\treturn parseInt(sTmp);\r\n\t}\r\n\r\n\tstatic padr(sString, sChar, nQuanti) {\r\n\t\tvar n;\r\n\t\tn = sString.length;\r\n\t\tfor (var x = 0; x < (nQuanti - n); x++) {\r\n\t\t\tsString = sChar + sString;\r\n\t\t}\r\n\t\treturn sString;\r\n\t}\r\n\r\n\tstatic padl(sString, sChar, nQuanti) {\r\n\t\tvar n;\r\n\t\tn = sString.length;\r\n\t\tfor (var x = 0; x < (nQuanti - n); x++) {\r\n\t\t\tsString = sString + sChar\r\n\t\t}\r\n\t\treturn sString;\r\n\t}\r\n\r\n\r\n\tstatic getCheck(s) {\r\n\t\tvar s1 = s.toUpperCase();\r\n\t\ts1 = Pqp._soloCharNumber(s1);\r\n\t\tvar nQuanti = s1.length % 15;\r\n\t\tfor (x = 0; x < 15 - nQuanti; x++) {\r\n\t\t\ts1 = s1 + \"F\";\r\n\t\t}\r\n\t\tvar sControllo = \"\";\r\n\t\tfor (var x = 1; x <= (s1.length / 15); x++) {\r\n\t\t\tsControllo = sControllo + Pqp._carCon(s1.substr(x * 15 - 15, 15));\r\n\t\t}\r\n\t\ts1 = sControllo + sControllo.length;\r\n\t\treturn s1;\r\n\t}\r\n\r\n\r\n\tstatic _soloCharNumber(s) {\r\n\t\tvar sRet = \"\";\r\n\t\tfor (var x = 0; x < s.length; x++) {\r\n\t\t\tvar c = s.charAt(x);\r\n\t\t\tif (((c >= \"0\") && (c <= \"9\")) || ((c >= \"A\") && (c <= \"Z\"))) {\r\n\t\t\t\tsRet += c;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic cripta(s) {\r\n\t\treturn Pqp.uEncode8(s, 6006);\r\n\t}\r\n\r\n\tstatic decripta(s) {\r\n\t\treturn Pqp.uDecode8(s, 6006);\r\n\t}\r\n\r\n\tstatic uEncode8(str, k) {\r\n\t\tk = k % 256;\r\n\t\tvar ret = \"\";\r\n\t\tfor (var i = 0; i < str.length; i++) {\r\n\t\t\tvar u = str.charCodeAt(i) ^ k;\r\n\t\t\tvar s = u.toString(16);\r\n\t\t\twhile (s.length < 2) {\r\n\t\t\t\ts = \"0\" + s;\r\n\t\t\t}\r\n\t\t\tret += s;\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tstatic uDecode8(str, k) {\r\n\t\tk = k % 256;\r\n\t\tvar ret = \"\";\r\n\t\tfor (var i = 0; i < str.length; i += 2) {\r\n\t\t\tvar s = \"\";\r\n\t\t\tfor (var j = 0; j < 2; j++) {\r\n\t\t\t\ts += str.charAt(i + j);\r\n\t\t\t}\r\n\t\t\tvar u = parseInt(s, 16) ^ k;\r\n\t\t\tret += String.fromCharCode(u);\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tstatic utf8Encode(s) {\r\n\t\tvar sRet = \"\";\r\n\t\tfor (var x = 0; x < s.length; x++) {\r\n\t\t\tvar c = s.charAt(x);\r\n\t\t\tvar n = c.charCodeAt(0);\r\n\t\t\tif ((n >= 32) && (n <= 127)) {\r\n\t\t\t\tsRet += c;\r\n\t\t\t} else {\r\n\t\t\t\tsRet += \"&#\" + n + \";\";\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic dataora(dt) {\r\n\t\tvar sRet = \"\" + dt.getFullYear();\r\n\t\tvar sTmp = (\"0\" + (dt.getMonth() + 1));\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getDate());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getHours());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getMinutes());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\tsTmp = (\"0\" + dt.getSeconds());\r\n\t\tsTmp = sTmp.substr(sTmp.length - 2, 2);\r\n\t\tsRet += sTmp;\r\n\t\treturn sRet;\r\n\t}\r\n\r\n\tstatic validateEmail(email) {\r\n\t\tvar re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\treturn re.test(email);\r\n\t}\r\n\r\n\r\n\tstatic safeReplace(input, rep, replaceWith) {\r\n\t\tvar sb = new String();\r\n\t\tvar found = false;\r\n\r\n\t\tvar sLen = input.length;\r\n\t\tvar rLen = rep.length;\r\n\r\n\t\tfor (var i = 0; i < sLen; i++) {\r\n\t\t\tif (input.charAt(i) == rep.charAt(0)) {\r\n\t\t\t\tfound = true;\r\n\t\t\t\tfor (var j = 0; j < rLen; j++) {\r\n\t\t\t\t\tif (!(input.charAt(i + j) == rep.charAt(j))) {\r\n\t\t\t\t\t\tfound = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (found) {\r\n\t\t\t\t\tsb += replaceWith;\r\n\t\t\t\t\ti = i + (rLen - 1);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsb += input.charAt(i);\r\n\t\t}\r\n\t\treturn sb;\r\n\t}\r\n\r\n\r\n\tstatic minion(lMoltiBr, chars, lBarraEnne, lHodor) {\r\n\t\treturn Pqp.lorem(lMoltiBr, chars, lBarraEnne, lHodor);\r\n\t}\r\n\r\n\tstatic lorem(lMoltiBr, chars, lBarraEnne, lHodor) {\r\n\t\tvar consonanti = \"rtplgfdszcvbnm\";\r\n\t\tvar doppie = \"rtplgfdsvnmc\"\r\n\t\tvar mediane = [\"nt\", \"nd\", \"mb\", \"rl\", \"rt\", \"ch\"];\r\n\t\tvar iniziali = [\"pr\", \"cr\", \"st\", \"br\", \"tr\", \"sc\", \"cl\", \"gr\", \"gn\", \"sf\", \"sb\", \"sp\", \"sm\"];\r\n\t\tvar vocali = \"aeiouaeioaeaeoaeo\";\r\n\t\tvar nomi = [\"Frodo\", \"Gandalf\", \"Samwise\", \"Meriadoc\", \"Peregrino\", \"Aragorn\", \"Legolas\", \"Gimli\", \"Boromir\", \"Sauron\", \"Gollum\", \"Bilbo\", \"Elrond\", \"Arwen\", \"Galadriel\", \"Saruman\", \"Eomer\", \"Theoden\", \"Eowyn\", \"Faramir\", \"Denethor\", \"Ned\", \"Sansa\", \"Arya\", \"Bran\", \"Jon\", \"Catelyn\", \"Daenerys\", \"Jaime\", \"Cersei\", \"Tyrion\", \"Walder\", \"Tywin\", \"Geoffrey\"];\r\n\t\tvar cognomi = [\"Baggins\", \"Gamgee\", \"Brandybuck\", \"Tuc\", \"Stark\", \"Lannister\", \"Tyrell\", \"Frey\", \"Bolton\", \"Baratheon\", \"Targaryen\", \"Snow\"];\r\n\t\tvar punteggiatura = \";,,,,,,,,:\";\r\n\t\tvar chiusura = \"!.........?\";\r\n\t\tvar domini = [\".com\", \".it\", \".co.uk\", \".fr\", \".de\", \".ru\"];\r\n\t\tvar lName\r\n\t\tvar lUid\r\n\t\tvar lNoPunteggiatura;\r\n\t\tvar lTitle;\r\n\t\tvar lEmail;\r\n\r\n\t\tif (typeof (lMoltiBr) == \"object\") {\r\n\t\t\tvar oTmp = lMoltiBr;\r\n\t\t\tlMoltiBr = oTmp.lMoltiBr;\r\n\t\t\tchars = oTmp.chars;\r\n\t\t\tlBarraEnne = oTmp.lBarraEnne;\r\n\t\t\tlHodor = oTmp.lHodor;\r\n\t\t\tlName = oTmp.lName;\r\n\t\t\tlUid = oTmp.lUid;\r\n\t\t\tlNoPunteggiatura = oTmp.lNoPunteggiatura;\r\n\t\t\tlTitle = oTmp.lTitle;\r\n\t\t\tlEmail = oTmp.lEmail;\r\n\t\t}\r\n\r\n\t\tif (lEmail) {\r\n\t\t\tlNoPunteggiatura = true;\r\n\r\n\t\t\tchars = Pqp.rnd(30, 20);\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\r\n\t\tif (lName) {\r\n\t\t\treturn nomi[Pqp.rnd(nomi.length - 1)] + \" \" + cognomi[Pqp.rnd(cognomi.length - 1)]\r\n\t\t}\r\n\t\tif (lUid) {\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\t\tif (lTitle) {\r\n\t\t\tlNoPunteggiatura = true;\r\n\t\t\tchars = Pqp.rnd(30, 20);\r\n\t\t\tlMoltiBr = 0;\r\n\t\t}\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < consonanti.length; x++) {\r\n\t\t\ta.push(consonanti.charAt(x));\r\n\t\t\ta.push(consonanti.charAt(x));\r\n\t\t}\r\n\t\tconsonanti = a;\r\n\r\n\t\tfor (var x = 0; x < doppie.length; x++) {\r\n\t\t\tconsonanti.push(doppie.charAt(x) + doppie.charAt(x));\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < iniziali.length; x++) {\r\n\t\t\tconsonanti.push(iniziali[x]);\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < mediane.length; x++) {\r\n\t\t\tconsonanti.push(mediane[x]);\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < consonanti.length; x++) {\r\n\t\t\tif (consonanti[x].length == 1) {\r\n\t\t\t\tiniziali.push(consonanti[x]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (var x = 0; x < vocali.length; x++) {\r\n\t\t\tiniziali.push(vocali.charAt(x));\r\n\t\t\tiniziali.push(vocali.charAt(x));\r\n\t\t}\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < vocali.length; x++) {\r\n\t\t\ta.push(vocali.charAt(x));\r\n\t\t}\r\n\t\tvocali = a;\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < punteggiatura.length; x++) {\r\n\t\t\ta.push(punteggiatura.charAt(x));\r\n\t\t}\r\n\t\tpunteggiatura = a;\r\n\r\n\t\tvar a = new Array();\r\n\t\tfor (var x = 0; x < chiusura.length; x++) {\r\n\t\t\ta.push(chiusura.charAt(x));\r\n\t\t}\r\n\t\tchiusura = a;\r\n\r\n\r\n\t\tconsonanti = Pqp.shuffle(consonanti)\r\n\t\tiniziali = Pqp.shuffle(iniziali)\r\n\t\tvocali = Pqp.shuffle(vocali)\r\n\t\tpunteggiatura = Pqp.shuffle(punteggiatura)\r\n\t\tchiusura = Pqp.shuffle(chiusura)\r\n\r\n\r\n\t\tif (Pqp.isNullOrEmpty(chars)) {\r\n\t\t\tchars = 4000;\r\n\t\t} else {\r\n\t\t\tif (!Pqp.isNumber(chars)) {\r\n\t\t\t\tchars = 4000;\r\n\t\t\t\ttrace(\"Occhio alla sintassi, Pqp.minion(lMoltiBr, chars, lBarraEnne, lHodor)\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvar lNoBr = false;\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lMoltiBr)) {\r\n\t\t\tlMoltiBr = false;\r\n\t\t} else {\r\n\t\t\tif (lMoltiBr === 0) {\r\n\t\t\t\tlMoltiBr = false;\r\n\t\t\t\tlNoBr = true;\r\n\t\t\t} else {\r\n\t\t\t\tif (typeof (lMoltiBr) === \"boolean\") {\r\n\t\t\t\t\tif (lMoltiBr == true) {\r\n\t\t\t\t\t\tlMoltiBr = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlMoltiBr = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttrace(\"Occhio alla sintassi, Pqp.minion(lMoltiBr, chars, lBarraEnne, lHodor)\");\r\n\t\t\t\t\tlMoltiBr = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lBarraEnne)) {\r\n\t\t\tlBarraEnne = false;\r\n\t\t} else {\r\n\t\t\tif (lBarraEnne == true) {\r\n\t\t\t\tlBarraEnne = true;\r\n\t\t\t} else {\r\n\t\t\t\tlBarraEnne = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tif (Pqp.isNullOrEmpty(lHodor)) {\r\n\t\t\tlHodor = false;\r\n\t\t}\r\n\r\n\t\t//trace(chars + \" \" + lMoltiBr + \" \" + lBarraEnne + \" \" +lNoBr);\r\n\r\n\t\tvar frase = new Array();\r\n\t\tvar len = 0;\r\n\r\n\t\tvar stepNome = 0;\r\n\t\tvar lastUno = false;\r\n\t\tvar contaDoppie = 0;\r\n\t\tvar lPrimo = true;\r\n\t\tif ((lUid) || (lEmail)) {\r\n\t\t\tlPrimo = false;\r\n\t\t\tchars = 100;\r\n\t\t\tstepNome = 5;\r\n\t\t}\r\n\r\n\t\twhile (len < chars) {\r\n\t\t\tvar word = \"\";\r\n\t\t\tvar lOk = false;\r\n\t\t\tvar lName = false;\r\n\t\t\t// Genera una parola\r\n\t\t\tif (Pqp.check(0.25) || lPrimo) {\r\n\t\t\t\tif (stepNome == 0) {\r\n\t\t\t\t\t// Prende un nome\r\n\t\t\t\t\tlPrimo = false;\r\n\t\t\t\t\tif (Pqp.rnd(1) == 0) {\r\n\t\t\t\t\t\tword = nomi[Pqp.rnd(nomi.length - 1)];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tword = cognomi[Pqp.rnd(cognomi.length - 1)];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstepNome++;\r\n\t\t\t\t\tlName = true;\r\n\t\t\t\t\tlOk = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!lOk) {\r\n\t\t\t\t// Genera una parola\r\n\t\t\t\tvar ln;\r\n\t\t\t\tif (Pqp.check(0.7)) {\r\n\t\t\t\t\tln = Pqp.rnd(3, 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tln = Pqp.rnd(7, 6);\r\n\t\t\t\t}\r\n\t\t\t\tif ((lastUno) && (ln == 1)) {\r\n\t\t\t\t\t// Controlla di non avere 2 parole da 1 carattere di seguito\r\n\t\t\t\t\tln = Pqp.rnd(4, 3);\r\n\t\t\t\t}\r\n\t\t\t\tif (ln == 1) {\r\n\t\t\t\t\tlastUno = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlastUno = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (stepNome > 0) {\r\n\t\t\t\t\tstepNome++;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tvar doppie = 0;\r\n\t\t\t\tvar char2 = 0;\r\n\t\t\t\tvar lastVocale\r\n\t\t\t\tfor (var x = 0; x < ln; x++) {\r\n\t\t\t\t\t// Iniziale\r\n\t\t\t\t\tif (x == 0) {\r\n\t\t\t\t\t\tif (lastUno) {\r\n\t\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tword += iniziali[Pqp.rnd(iniziali.length - 1)];\r\n\t\t\t\t\t\t\tif ((word.indexOf(\"a\") >= 0) || (word.indexOf(\"e\") >= 0) || (word.indexOf(\"i\") >= 0) || (word.indexOf(\"o\") >= 0) || (word.indexOf(\"u\") >= 0)) {\r\n\t\t\t\t\t\t\t\tlastVocale = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlastVocale = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (lastVocale) {\r\n\t\t\t\t\t\t\tvar lCondExit = false;\r\n\t\t\t\t\t\t\twhile (!lCondExit) {\r\n\t\t\t\t\t\t\t\tvar cc = consonanti[Pqp.rnd(consonanti.length - 1)];\r\n\t\t\t\t\t\t\t\tif ((cc.length > 1) && (cc.charAt(0) == cc.charAt(1))) {\r\n\t\t\t\t\t\t\t\t\tif (contaDoppie == 0) {\r\n\t\t\t\t\t\t\t\t\t\t//trace(\"SS\");\r\n\t\t\t\t\t\t\t\t\t\t//trace(cc);\r\n\t\t\t\t\t\t\t\t\t\tlCondExit = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tlCondExit = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tword += cc;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlastVocale = !lastVocale;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (stepNome > 5) {\r\n\t\t\t\tif ((!lUid) && (!lEmail)) {\r\n\t\t\t\t\tstepNome = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcontaDoppie--;\r\n\t\t\tif (contaDoppie < 0) {\r\n\t\t\t\tcontaDoppie = 7;\r\n\t\t\t}\r\n\r\n\t\t\t// Controlla che la parola finisca con una vocale\r\n\t\t\tif (!lName) {\r\n\t\t\t\tif (Pqp.check(0.95)) {\r\n\t\t\t\t\tvar c = word.charAt(word.length - 1);\r\n\t\t\t\t\tif ((c.indexOf(\"a\") >= 0) || (c.indexOf(\"e\") >= 0) || (c.indexOf(\"i\") >= 0) || (c.indexOf(\"o\") >= 0) || (c.indexOf(\"u\") >= 0)) {\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tword += vocali[Pqp.rnd(vocali.length - 1)];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (lHodor) {\r\n\t\t\t\tword = \"hodor\"\r\n\t\t\t}\r\n\r\n\t\t\tlen += word.length;\r\n\r\n\t\t\tfrase.push(word);\r\n\t\t}\r\n\r\n\t\t// Genera la punteggiatura\r\n\r\n\t\tvar nextPun = Pqp.rnd(10, 2);\r\n\t\tvar lastPunto = Pqp.rnd(30, 15);\r\n\r\n\t\tfor (var x = 0; x < frase.length; x++) {\r\n\t\t\tif (x == 0) {\r\n\t\t\t\tfrase[x] = frase[x].charAt(0).toUpperCase() + frase[x].substr(1);\r\n\t\t\t}\r\n\r\n\t\t\tif (x >= nextPun) {\r\n\t\t\t\tif (lastPunto <= 0) {\r\n\t\t\t\t\tif (frase[x].length == 1) {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + chiusura[Pqp.rnd(chiusura.length - 1)]\r\n\t\t\t\t\t\tvar lBr = false;\r\n\t\t\t\t\t\tif (lMoltiBr) {\r\n\t\t\t\t\t\t\tif (Pqp.check(0.7)) {\r\n\t\t\t\t\t\t\t\tlBr = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (Pqp.check(0.4)) {\r\n\t\t\t\t\t\t\t\tlBr = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (lNoBr) {\r\n\t\t\t\t\t\t\tlBr = false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (lBr) {\r\n\t\t\t\t\t\t\tif (lBarraEnne) {\r\n\t\t\t\t\t\t\t\tfrase[x] = frase[x] + \"\\n\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tfrase[x] = frase[x] + \"
\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfrase[x] = frase[x] + \" \";\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tlastPunto = Pqp.rnd(30, 15);\r\n\t\t\t\t\t\tnextPun += Pqp.rnd(10, 2);\r\n\t\t\t\t\t\tif (!Pqp.isNullOrEmpty(frase[x + 1])) {\r\n\t\t\t\t\t\t\tfrase[x + 1] = frase[x + 1].charAt(0).toUpperCase() + frase[x + 1].substr(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (frase[x].length == 1) {\r\n\t\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tfrase[x] = frase[x] + punteggiatura[Pqp.rnd(punteggiatura.length - 1)] + \" \"\r\n\t\t\t\t\t\tnextPun += Pqp.rnd(10, 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvar lVirg = false;\r\n\t\t\t\tif (frase[x].length > 2) {\r\n\t\t\t\t\tif (frase[x].charAt(0) != frase[x].charAt(0).toUpperCase()) {\r\n\t\t\t\t\t\tif (Pqp.check(0.01)) {\r\n\t\t\t\t\t\t\tlVirg = true;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (lVirg) {\r\n\t\t\t\t\tfrase[x] = \"\\\"\" + frase[x] + \"\\\"\" + \" \";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfrase[x] = frase[x] + \" \"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlastPunto--;\r\n\t\t\tif (lastPunto < 0) {\r\n\t\t\t\tlastPunto = 0;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvar finale = \"\";\r\n\t\tvar tot = 0;\r\n\t\tfor (var x = 0; x < frase.length - 1; x++) {\r\n\t\t\tfinale += frase[x];\r\n\t\t\ttot += frase[x].length;\r\n\t\t\tif (frase[x].indexOf(\"
\") >= 0) {\r\n\t\t\t\ttot -= 4;\r\n\t\t\t}\r\n\t\t\tif (frase[x].indexOf(\"\\\\n\") >= 0) {\r\n\t\t\t\ttot -= 2;\r\n\t\t\t}\r\n\r\n\t\t\tif (tot.length >= chars) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfinale = jQuery.trim(finale);\r\n\t\tvar c = finale.charAt(finale.length - 1);\r\n\t\tif (\";,:.?!\".indexOf(c) >= 0) {\r\n\t\t\tfinale = finale.substr(0, finale.length - 2);\r\n\t\t}\r\n\t\tfinale = finale + chiusura[Pqp.rnd(chiusura.length - 1)];\r\n\r\n\r\n\t\tvar c = finale.charAt(finale.length - 3);\r\n\t\tif (c == \" \") {\r\n\t\t\t//trace(\"-->\"+finale);\r\n\t\t\tfinale = jQuery.trim(finale.substr(0, finale.length - 3));\r\n\t\t\tvar c = finale.charAt(finale.length - 1);\r\n\t\t\tif (\";,:.?!\".indexOf(c) >= 0) {\r\n\t\t\t\tfinale = finale.substr(0, finale.length - 2);\r\n\t\t\t}\r\n\t\t\tfinale = finale + chiusura[Pqp.rnd(chiusura.length - 1)];\r\n\t\t}\r\n\r\n\r\n\t\tif ((lUid) || (lNoPunteggiatura)) {\r\n\r\n\t\t\tfor (var x = 0; x < punteggiatura.length; x++) {\r\n\t\t\t\tfinale = Pqp.safeReplace(finale, punteggiatura[x], \"\");\r\n\t\t\t}\r\n\t\t\tfor (var x = 0; x < chiusura.length; x++) {\r\n\t\t\t\tfinale = Pqp.safeReplace(finale, chiusura[x], \"\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (lUid) {\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t\tif (finale.length > 17) {\r\n\t\t\t\tfinale = finale.substr(0, 17);\r\n\t\t\t}\r\n\t\t\tfinale = \"uid\" + finale.toLowerCase();\r\n\t\t}\r\n\r\n\r\n\t\tif (lEmail) {\r\n\t\t\tfinale = (nomi[Pqp.rnd(nomi.length - 1)] + \".\" + cognomi[Pqp.rnd(cognomi.length - 1)] + \"@\" + finale.substr(0, Pqp.rnd(10, 5)) + domini[Pqp.rnd(domini.length - 1)]).toLowerCase();\r\n\t\t\tfinale = Pqp.safeReplace(finale, \" \", \"\");\r\n\t\t}\r\n\r\n\r\n\t\treturn finale;\r\n\t}\r\n\r\n\r\n\tstatic formattaNumeroConMigliaia(n) {\r\n\t\tvar ret = \"\";\r\n\t\tvar tmp = n + \"\";\r\n\t\t//\r\n\t\tvar cnt = 0;\r\n\t\tfor (var i = tmp.length - 1; i >= 0; i--) {\r\n\t\t\tif (cnt == 3) {\r\n\t\t\t\tret = \".\" + ret;\r\n\t\t\t\tcnt = 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcnt++;\r\n\t\t\t}\r\n\t\t\tret = tmp.charAt(i) + ret;\r\n\t\t}\r\n\t\treturn ret;\r\n\t}\r\n\r\n\r\n\tstatic newGuid() {\r\n\t\tvar uid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\t\tvar r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n\t\t\treturn v.toString(16);\r\n\t\t});\r\n\t\treturn Pqp.replace(uid, \"-\", \"\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\tstatic removeDiacritics(str) {\r\n\t\tif (!Pqp.diacriticsMap) {\r\n\t\t\tPqp.diacriticsMap = {};\r\n\t\t}\r\n\t\tfor (var i = 0; i < Pqp.defaultDiacriticsRemovalap.length; i++) {\r\n\t\t\tvar letters = Pqp.defaultDiacriticsRemovalap[i].letters.split(\"\");\r\n\t\t\tfor (var j = 0; j < letters.length; j++) {\r\n\t\t\t\tPqp.diacriticsMap[letters[j]] = Pqp.defaultDiacriticsRemovalap[i].base;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar letters = str.split(\"\");\r\n\t\tvar newStr = \"\";\r\n\t\tfor (var i = 0; i < letters.length; i++) {\r\n\t\t\tnewStr += letters[i] in Pqp.diacriticsMap ? Pqp.diacriticsMap[letters[i]] : letters[i];\r\n\t\t}\r\n\t\treturn newStr;\r\n\t}\r\n\r\n\tstatic isMobile() {\r\n\t\tlet mobile = false;\r\n\t\tif (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n\t\t\tmobile = true;\r\n\t\t}\r\n\t\tlet isIOS = /iPad|iPhone|iPod/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\r\n\t\tif (isIOS) {\r\n\t\t\tmobile = true;\r\n\t\t}\r\n\t\treturn mobile;\r\n\t}\r\n\r\n\tstatic isIpaddone() {\r\n\t\tlet mobile = Pqp.isMobile();\r\n\t\t// Controllo ipadpro\r\n\t\tlet lIpaddone = false;\r\n\t\tif (mobile) {\r\n\t\t\tif ((window.innerHeight > 900) && (window.innerWidth > 900)) {\r\n\t\t\t\tlIpaddone = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn lIpaddone;\r\n\t}\r\n\r\n\tstatic isIos() {\r\n\t\tlet isIOS = /iPad|iPhone|iPod/i.test(navigator.userAgent) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\r\n\r\n\t\t/*isIOS = false;\r\n\t\tif (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {\r\n\t\t\tisIOS = true;\r\n\t\t}*/\r\n\r\n\t\treturn isIOS;\r\n\t}\r\n}\r\n\r\n\r\nPqp.diacriticsMap = null;\r\nPqp.defaultDiacriticsRemovalap = [\r\n\t{ 'base': 'A', 'letters': '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F' },\r\n\t{ 'base': 'AA', 'letters': '\\uA732' },\r\n\t{ 'base': 'AE', 'letters': '\\u00C6\\u01FC\\u01E2' },\r\n\t{ 'base': 'AO', 'letters': '\\uA734' },\r\n\t{ 'base': 'AU', 'letters': '\\uA736' },\r\n\t{ 'base': 'AV', 'letters': '\\uA738\\uA73A' },\r\n\t{ 'base': 'AY', 'letters': '\\uA73C' },\r\n\t{ 'base': 'B', 'letters': '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181' },\r\n\t{ 'base': 'C', 'letters': '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E' },\r\n\t{ 'base': 'D', 'letters': '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779' },\r\n\t{ 'base': 'DZ', 'letters': '\\u01F1\\u01C4' },\r\n\t{ 'base': 'Dz', 'letters': '\\u01F2\\u01C5' },\r\n\t{ 'base': 'E', 'letters': '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E' },\r\n\t{ 'base': 'F', 'letters': '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B' },\r\n\t{ 'base': 'G', 'letters': '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E' },\r\n\t{ 'base': 'H', 'letters': '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D' },\r\n\t{ 'base': 'I', 'letters': '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197' },\r\n\t{ 'base': 'J', 'letters': '\\u004A\\u24BF\\uFF2A\\u0134\\u0248' },\r\n\t{ 'base': 'K', 'letters': '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2' },\r\n\t{ 'base': 'L', 'letters': '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780' },\r\n\t{ 'base': 'LJ', 'letters': '\\u01C7' },\r\n\t{ 'base': 'Lj', 'letters': '\\u01C8' },\r\n\t{ 'base': 'M', 'letters': '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C' },\r\n\t{ 'base': 'N', 'letters': '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4' },\r\n\t{ 'base': 'NJ', 'letters': '\\u01CA' },\r\n\t{ 'base': 'Nj', 'letters': '\\u01CB' },\r\n\t{ 'base': 'O', 'letters': '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C' },\r\n\t{ 'base': 'OI', 'letters': '\\u01A2' },\r\n\t{ 'base': 'OO', 'letters': '\\uA74E' },\r\n\t{ 'base': 'OU', 'letters': '\\u0222' },\r\n\t{ 'base': 'P', 'letters': '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754' },\r\n\t{ 'base': 'Q', 'letters': '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A' },\r\n\t{ 'base': 'R', 'letters': '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782' },\r\n\t{ 'base': 'S', 'letters': '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784' },\r\n\t{ 'base': 'T', 'letters': '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786' },\r\n\t{ 'base': 'TZ', 'letters': '\\uA728' },\r\n\t{ 'base': 'U', 'letters': '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244' },\r\n\t{ 'base': 'V', 'letters': '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245' },\r\n\t{ 'base': 'VY', 'letters': '\\uA760' },\r\n\t{ 'base': 'W', 'letters': '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72' },\r\n\t{ 'base': 'X', 'letters': '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C' },\r\n\t{ 'base': 'Y', 'letters': '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE' },\r\n\t{ 'base': 'Z', 'letters': '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762' },\r\n\t{ 'base': 'a', 'letters': '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250' },\r\n\t{ 'base': 'aa', 'letters': '\\uA733' },\r\n\t{ 'base': 'ae', 'letters': '\\u00E6\\u01FD\\u01E3' },\r\n\t{ 'base': 'ao', 'letters': '\\uA735' },\r\n\t{ 'base': 'au', 'letters': '\\uA737' },\r\n\t{ 'base': 'av', 'letters': '\\uA739\\uA73B' },\r\n\t{ 'base': 'ay', 'letters': '\\uA73D' },\r\n\t{ 'base': 'b', 'letters': '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253' },\r\n\t{ 'base': 'c', 'letters': '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184' },\r\n\t{ 'base': 'd', 'letters': '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A' },\r\n\t{ 'base': 'dz', 'letters': '\\u01F3\\u01C6' },\r\n\t{ 'base': 'e', 'letters': '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD' },\r\n\t{ 'base': 'f', 'letters': '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C' },\r\n\t{ 'base': 'g', 'letters': '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F' },\r\n\t{ 'base': 'h', 'letters': '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265' },\r\n\t{ 'base': 'hv', 'letters': '\\u0195' },\r\n\t{ 'base': 'i', 'letters': '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131' },\r\n\t{ 'base': 'j', 'letters': '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249' },\r\n\t{ 'base': 'k', 'letters': '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3' },\r\n\t{ 'base': 'l', 'letters': '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747' },\r\n\t{ 'base': 'lj', 'letters': '\\u01C9' },\r\n\t{ 'base': 'm', 'letters': '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F' },\r\n\t{ 'base': 'n', 'letters': '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5' },\r\n\t{ 'base': 'nj', 'letters': '\\u01CC' },\r\n\t{ 'base': 'o', 'letters': '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275' },\r\n\t{ 'base': 'oi', 'letters': '\\u01A3' },\r\n\t{ 'base': 'ou', 'letters': '\\u0223' },\r\n\t{ 'base': 'oo', 'letters': '\\uA74F' },\r\n\t{ 'base': 'p', 'letters': '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755' },\r\n\t{ 'base': 'q', 'letters': '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759' },\r\n\t{ 'base': 'r', 'letters': '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783' },\r\n\t{ 'base': 's', 'letters': '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B' },\r\n\t{ 'base': 't', 'letters': '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787' },\r\n\t{ 'base': 'tz', 'letters': '\\uA729' },\r\n\t{ 'base': 'u', 'letters': '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289' },\r\n\t{ 'base': 'v', 'letters': '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C' },\r\n\t{ 'base': 'vy', 'letters': '\\uA761' },\r\n\t{ 'base': 'w', 'letters': '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73' },\r\n\t{ 'base': 'x', 'letters': '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D' },\r\n\t{ 'base': 'y', 'letters': '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF' },\r\n\t{ 'base': 'z', 'letters': '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763' }\r\n];\r\n\r\n\r\n","import Pqp from \"../3x1010/Pqp.js\";\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class PageCommon {\r\n constructor() {}\r\n init() {}\r\n\r\n showPreloader(flag) {\r\n if (flag) {\r\n jQuery(\".mainApp\").hide();\r\n jQuery(\".js-preloader\").show();\r\n } else {\r\n jQuery(\".mainApp\").show();\r\n jQuery(\".js-preloader\").hide();\r\n }\r\n }\r\n\r\n track() {\r\n if (Globals.SHOW_TRACKING_DATA) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"---tracking---\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Event: \" + PageCommon._normalizza_track_prop(o.event));\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Category: \" + PageCommon._normalizza_track_prop(o.category));\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Label: \" + o.label ? PageCommon._normalizza_track_prop(o.label) : \"n/a\");\r\n }\r\n\r\n let additional = {\r\n event_category: PageCommon._normalizza_track_prop(o.category),\r\n };\r\n if (o.label) {\r\n additional.event_label = PageCommon._normalizza_track_prop(o.label);\r\n }\r\n\r\n gtag(\"event\", PageCommon._normalizza_track_prop(o.event), additional);\r\n }\r\n\r\n _normalizza_track_prop(s) {\r\n let ret = s.toLowerCase();\r\n // ret = Pqp.safeReplace(ret, \" \", \"_\");\r\n ret = Pqp.safeReplace(ret, \"/\", \"-\");\r\n ret = Pqp.safeReplace(ret, \" \", \"-\");\r\n ret = Pqp.safeReplace(ret, \"#\", \"\");\r\n ret = Pqp.safeReplace(ret, \"'\", \"_\");\r\n ret = Pqp.safeReplace(ret, \".\", \"\");\r\n ret = Pqp.safeReplace(ret, \",\", \"\");\r\n ret = Pqp.safeReplace(ret, \";\", \"\");\r\n ret = Pqp.safeReplace(ret, \"<\", \"\");\r\n ret = Pqp.safeReplace(ret, \">\", \"\");\r\n ret = Pqp.safeReplace(ret, \"(\", \"_\");\r\n ret = Pqp.safeReplace(ret, \")\", \"\");\r\n ret = Pqp.safeReplace(ret, \"__\", \"_\");\r\n ret = Pqp.safeReplace(ret, \"?\", \"\");\r\n ret = Pqp.safeReplace(ret, \"&\", \"-\");\r\n return ret;\r\n }\r\n\r\n decodeHtmlEntity(str) {\r\n return str.replace(/&#(\\d+);/g, function (match, dec) {\r\n return String.fromCharCode(dec);\r\n });\r\n }\r\n\r\n encodeHtmlEntity(str) {\r\n var buf = [];\r\n for (var i = str.length - 1; i >= 0; i--) {\r\n buf.unshift([\"&#\", str[i].charCodeAt(), \";\"].join(\"\"));\r\n }\r\n return buf.join(\"\");\r\n }\r\n\r\n // Shuffle an array of elements\r\n shuffle(a) {\r\n for (let i = a.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [a[i], a[j]] = [a[j], a[i]];\r\n }\r\n return a;\r\n }\r\n\r\n // Slice firsts N words\r\n sliceWords(str, words) {\r\n if (str === null) return;\r\n return str\r\n .split(\" \")\r\n .filter((_, index) => index < words)\r\n .join(\" \");\r\n }\r\n\r\n formatPrice(price) {\r\n var value = Number(price);\r\n value = value.toFixed(2);\r\n return value;\r\n }\r\n\r\n // Emit an event\r\n emitEvent(eventName, data, target) {\r\n const event = new CustomEvent(eventName, data);\r\n if (target) {\r\n return target.dispatchEvent(event);\r\n }\r\n return document.dispatchEvent(event);\r\n }\r\n\r\n // COOKIES MANAGER\r\n setCookie(cname, token) {\r\n const d = new Date();\r\n d.setTime(d.getTime() + 1 * 24 * 60 * 60 * 1000);\r\n const expires = d.toUTCString();\r\n document.cookie = `${cname}=${token}; expires=${expires}; path=/`;\r\n }\r\n\r\n getCookie(cname) {\r\n const name = `${cname}=`;\r\n const decodedCookie = decodeURIComponent(document.cookie);\r\n const ca = decodedCookie.split(\";\");\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n deleteCookie(cname) {\r\n document.cookie = `${cname}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\r\n }\r\n\r\n // URL QUERY\r\n getUrlParams() {\r\n const queryString = window.location.search;\r\n return new URLSearchParams(queryString);\r\n }\r\n setUrlParams(page, array) {\r\n let pathname = window.location.pathname.split(\"/\");\r\n pathname.pop();\r\n pathname = pathname.join(\"/\");\r\n let baseUrl = `${window.location.origin}${pathname}/${page}`;\r\n if (page.startsWith(\"/\")) baseUrl = `${window.location.origin}${page}`;\r\n const url = new URL(baseUrl);\r\n const urlParams = new URLSearchParams(url.search);\r\n array.map(({ key, value }) => urlParams.append(key, value));\r\n if (urlParams.toString() === \"\") {\r\n return `${url}`;\r\n } else {\r\n return `${url}?${urlParams.toString()}`;\r\n }\r\n }\r\n\r\n // FETCHING\r\n handleResponse(response) {\r\n return response.text().then((text) => {\r\n const data = text && JSON.parse(text);\r\n\r\n if (!response.ok) {\r\n if ([401, 403].includes(response.status)) {\r\n this.deleteCookie(\"user_token\");\r\n }\r\n\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n\r\n // KEYCODE\r\n getKeyCode(event) {\r\n let code;\r\n if (event.key !== undefined) {\r\n code = event.key;\r\n } else if (event.keyIdentifier !== undefined) {\r\n code = event.keyIdentifier;\r\n } else if (event.keyCode !== undefined) {\r\n code = event.keyCode;\r\n }\r\n if (code === 13) {\r\n code = \"Enter\";\r\n } else if (code === 24) {\r\n code = \"ArrowUp\";\r\n } else if (code === 25) {\r\n code = \"ArrowDown\";\r\n } else if (code === 37) {\r\n code = \"ArrowLeft\";\r\n } else if (code === 39) {\r\n code = \"ArrowRight\";\r\n } else if (code === \" \" || code === 32) {\r\n code = \"Space\";\r\n }\r\n return code;\r\n }\r\n\r\n // Player\r\n getMouseCoordinate(event, wave) {\r\n let x = parseInt(event.pageX - wave.getBoundingClientRect().left);\r\n let y = parseInt(event.pageY - wave.getBoundingClientRect().top);\r\n return { x, y };\r\n }\r\n formatTime(time) {\r\n let s = parseInt(time % 60);\r\n let m = parseInt((time / 60) % 60);\r\n return m.toLocaleString(\"en-US\", { minimumIntegerDigits: 2 }) + \":\" + s.toLocaleString(\"en-US\", { minimumIntegerDigits: 2 });\r\n }\r\n\r\n // Download\r\n download(url) {\r\n var element = document.createElement(\"a\");\r\n element.href = url;\r\n\r\n const filename = url.split(\"/\").pop();\r\n element.download = filename;\r\n document.body.appendChild(element);\r\n element.click();\r\n document.body.removeChild(element);\r\n }\r\n\r\n extractDate(string) {\r\n const year = string.substr(0, 4);\r\n const month = string.substr(4, 2);\r\n const day = string.substr(6, 2);\r\n const hour = string.substr(8, 2);\r\n const minute = string.substr(10, 2);\r\n const second = string.substr(12, 2);\r\n return new Date(`${year}-${month}-${day} ${hour}:${minute}:${second}`);\r\n }\r\n formatDate(date) {\r\n const day = date.getDate();\r\n const month = date.toLocaleString(\"en-US\", { month: \"long\" });\r\n const year = date.getFullYear();\r\n return `${month} ${day}, ${year}`;\r\n }\r\n\r\n b64toBlob(b64Data, contentType, sliceSize) {\r\n contentType = contentType || \"\";\r\n sliceSize = sliceSize || 512;\r\n\r\n var byteCharacters = atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n var byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n var blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n cleanInput(str) {\r\n let regex = /[#]/g;\r\n return str.replace(regex, function (match) {\r\n if (match === \"#\") {\r\n return \"\";\r\n } else {\r\n return \"\";\r\n }\r\n });\r\n }\r\n\r\n requestDownload(userManager, track) {\r\n if (userManager.userLogged) {\r\n const token = this.getCookie(\"user_token\");\r\n if (!token) {\r\n return false;\r\n }\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"DOWNLOAD\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Please wait..\";\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n fetch(`${Globals.WS_URL}?mode=TRACK.DOWNLOAD&token=${token}&track_id=` + track.ID)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Track - Download\");\r\n if (result.download.enabled) {\r\n this.download(result.download.url);\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Downloaded\";\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n } else {\r\n // document.querySelector(\"#genericStatusModal .message\").textContent = \"Reached downloads limit\";\r\n // setTimeout(() => {\r\n // document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n // document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n // jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n // }, 2000);\r\n window.location.href = \"/licenses?force-track=\" + track.ID;\r\n }\r\n })\r\n .catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"ERROR Track - Download\", { message: error.message });\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Error: \" + error.message;\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n });\r\n gtag(\"event\", track.Name + \" {\" + track.ID + \"}\", { event_category: \"download\", event_label: \"Download\" });\r\n }\r\n }\r\n\r\n shareItem(element, data) {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"SHARE\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n\r\n let text = \"\";\r\n if (element === \"album\") {\r\n text = data.Name;\r\n } else if (element === \"artist\") {\r\n text = data.Name;\r\n } else if (element === \"label\") {\r\n text = data.Name;\r\n } else if (element === \"playlist\") {\r\n text = data.Name;\r\n }\r\n\r\n var shares = [\r\n {\r\n share: \"email\",\r\n logo: \"fas fa-at\",\r\n label: \"E-mail\",\r\n text: text,\r\n },\r\n {\r\n share: \"twitter\",\r\n logo: \"fab fa-twitter\",\r\n label: \"Twitter\",\r\n text: \"#\" + text,\r\n },\r\n {\r\n share: \"facebook\",\r\n logo: \"fab fa-facebook-f\",\r\n label: \"Facebook\",\r\n text: text,\r\n },\r\n ];\r\n\r\n jQuery(\"#genericStatusModal .message\").jsSocials({\r\n url: window.location.href,\r\n shareIn: \"popup\",\r\n shares,\r\n showLabel: true,\r\n on: {\r\n click: function (e) {\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n },\r\n error: (err) => {\r\n document.querySelector(\"#genericStatusModal .message\").textContent = err.message;\r\n },\r\n },\r\n });\r\n\r\n Array.from(document.querySelectorAll(\"#genericStatusModal .message .jssocials-shares .jssocials-share-link\")).map((link) => {\r\n link.classList.add(\"btn\");\r\n link.classList.add(\"btn-sm\");\r\n link.classList.add(\"btn-primary\");\r\n });\r\n\r\n const copyLink = document.createElement(\"div\");\r\n copyLink.className = \"jssocials-share jssocials-copy-link\";\r\n const link = document.createElement(\"a\");\r\n link.href = \"#\";\r\n link.className = \"jssocials-share-link btn btn-sm btn-primary\";\r\n\r\n var copyText = document.createElement(\"textarea\");\r\n copyText.id = \"clipboard\";\r\n copyText.style.opacity = \"0\";\r\n copyText.style.position = \"absolute\";\r\n copyText.textContent = window.location.href;\r\n document.querySelector(\"#genericStatusModal\").appendChild(copyText);\r\n\r\n link.addEventListener(\"click\", (event) => {\r\n /* Select the text field */\r\n copyText.select();\r\n copyText.setSelectionRange(0, 99999); /* For mobile devices */\r\n\r\n try {\r\n var successful = document.execCommand(\"copy\");\r\n var msg = successful ? \"LINK COPIED TO CLIPBOARD\" : \"ERROR\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = msg;\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n } catch (err) {\r\n document.querySelector(\"#genericStatusModal .message\").textContent = err.message;\r\n }\r\n\r\n document.querySelector(\"#genericStatusModal\").removeChild(copyText);\r\n });\r\n\r\n const span = document.createElement(\"span\");\r\n span.className = \"jssocials-share-label\";\r\n span.textContent = \"Copy Link\";\r\n link.appendChild(span);\r\n\r\n copyLink.appendChild(link);\r\n\r\n document.querySelector(\"#genericStatusModal .message .jssocials-shares\").appendChild(copyLink);\r\n }\r\n\r\n socialLogin(social) {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"LOGGING IN\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Please wait..\";\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n\r\n // const return_url = window.location.origin + \"/find-music\";\r\n const return_url = window.location.href;\r\n\r\n window.location.href = `${Globals.WS_URL}?mode=LOGIN.SOCIAL&social=${social}&return_url=${return_url}`;\r\n }\r\n\r\n swapLinksToEvents(links, dataStructure, userManager) {\r\n Array.from(links).map((link) => {\r\n if (link.href.indexOf(\"javascript\") === -1 && link.href.indexOf(\"#\") === -1 && !link.classList.contains(\"changed\")) {\r\n const href = link.href.replace(window.location.origin, \"\").split(\"/\");\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(href, link.href);\r\n if (href[1].indexOf(\"?\") === -1) {\r\n link.dataset.page = href[1];\r\n } else {\r\n link.dataset.page = href[1].replace(/(\\?)(.*)/, \"\");\r\n href[2] = href[1];\r\n }\r\n if (href[2]) {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(href[2]);\r\n href[2]\r\n .replace(/(.*)(\\?)/, \"\")\r\n .split(\"&\")\r\n .map((item) => {\r\n const fields = item.split(\"=\");\r\n link.dataset[fields[0]] = fields[1];\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(fields, link.dataset, fields[1]);\r\n });\r\n }\r\n link.classList.add(\"changed\");\r\n link.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n const item = event.currentTarget;\r\n const page = item.dataset.page;\r\n const id = item.dataset.id;\r\n const format = item.dataset.format;\r\n\r\n history.pushState(history.state, document.title, item.href);\r\n this.emitEvent(\r\n \"click\",\r\n {\r\n detail: {\r\n disableDefaultSearch: true,\r\n },\r\n },\r\n document.querySelector(\".fm-searchbar .reset button\")\r\n );\r\n\r\n document.querySelector(\"#sideMenu\").style.display = \"\";\r\n\r\n this.resetAllSections();\r\n document.querySelector(\"#tracksSection\").style.display = \"none\";\r\n\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(page, id, format);\r\n\r\n if (page === \"playlists\") {\r\n document.querySelector(\"#playlistsListSection\").style.display = \"\";\r\n dataStructure.playlists.renderList();\r\n const loadedLinks = document.querySelectorAll(\"#playlistsListSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"playlist\") {\r\n document.querySelector(\"#playlistSection\").style.display = \"\";\r\n document.querySelector(\"#tracksSection\").style.display = \"\";\r\n dataStructure.playlists.renderSingle(id, dataStructure.tracks, userManager);\r\n document.addEventListener(\"track_list_loaded\", () => {\r\n const loadedLinks = document.querySelectorAll(\"#tracksSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n });\r\n } else if (page === \"artists\") {\r\n document.querySelector(\"#artistsListSection\").style.display = \"\";\r\n dataStructure.artists.renderList(format, \"artistsList\");\r\n const loadedLinks = document.querySelectorAll(\"#artistsListSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"artist\") {\r\n document.querySelector(\"#artistSection\").style.display = \"\";\r\n document.querySelector(\"#tracksSection\").style.display = \"\";\r\n dataStructure.artists.renderSingle(id, dataStructure.tracks);\r\n const loadedLinks = document.querySelectorAll(\"#tracksSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"albums\") {\r\n document.querySelector(\"#albumsListSection\").style.display = \"\";\r\n dataStructure.albums.renderList();\r\n const loadedLinks = document.querySelectorAll(\"#albumsListSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"album\") {\r\n document.querySelector(\"#albumSection\").style.display = \"\";\r\n document.querySelector(\"#tracksSection\").style.display = \"\";\r\n dataStructure.albums.renderSingle(id, dataStructure.tracks);\r\n const loadedLinks = document.querySelectorAll(\"#tracksSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"labels\") {\r\n document.querySelector(\"#labelsListSection\").style.display = \"\";\r\n dataStructure.labels.renderList();\r\n const loadedLinks = document.querySelectorAll(\"#labelsListSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n } else if (page === \"label\") {\r\n document.querySelector(\"#labelSection\").style.display = \"\";\r\n document.querySelector(\"#tracksSection\").style.display = \"\";\r\n dataStructure.labels.renderSingle(id, dataStructure.tracks);\r\n const loadedLinks = document.querySelectorAll(\"#tracksSection a\");\r\n this.swapLinksToEvents(loadedLinks, dataStructure, userManager);\r\n }\r\n\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n }, 200);\r\n });\r\n }\r\n });\r\n }\r\n\r\n resetAllSections() {\r\n if (document.querySelector(\"#playlistsSection\")) document.querySelector(\"#playlistsSection\").style.display = \"none\";\r\n if (document.querySelector(\"#artistsBlock\")) document.querySelector(\"#artistsBlock\").style.display = \"none\";\r\n if (document.querySelector(\"#producersBlock\")) document.querySelector(\"#producersBlock\").style.display = \"none\";\r\n if (document.querySelector(\"#albumsBlock\")) document.querySelector(\"#albumsBlock\").style.display = \"none\";\r\n if (document.querySelector(\"#labelsBlock\")) document.querySelector(\"#labelsBlock\").style.display = \"none\";\r\n\r\n if (document.querySelector(\"#playlistsListSection\")) document.querySelector(\"#playlistsListSection\").style.display = \"none\";\r\n if (document.querySelector(\"#playlistSection\")) document.querySelector(\"#playlistSection\").style.display = \"none\";\r\n if (document.querySelector(\"#artistsListSection\")) document.querySelector(\"#artistsListSection\").style.display = \"none\";\r\n if (document.querySelector(\"#artistSection\")) document.querySelector(\"#artistSection\").style.display = \"none\";\r\n if (document.querySelector(\"#albumsListSection\")) document.querySelector(\"#albumsListSection\").style.display = \"none\";\r\n if (document.querySelector(\"#albumSection\")) document.querySelector(\"#albumSection\").style.display = \"none\";\r\n if (document.querySelector(\"#labelsListSection\")) document.querySelector(\"#labelsListSection\").style.display = \"none\";\r\n if (document.querySelector(\"#labelSection\")) document.querySelector(\"#labelSection\").style.display = \"none\";\r\n\r\n // setTimeout(() => {\r\n // window.setAbsolute();\r\n // }, 200);\r\n }\r\n\r\n sendAskusData(userManager, formData) {\r\n if (userManager.userLogged) {\r\n const token = this.getCookie(\"user_token\");\r\n if (!token) {\r\n return false;\r\n }\r\n\r\n // if (!Pqp.validateEmail(formData.get(\"email\"))) {\r\n // document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"ERROR\";\r\n // document.querySelector(\"#genericStatusModal .message\").textContent = \"Email not valid\";\r\n // jQuery(\"#genericStatusModal\").modal(\"show\");\r\n // setTimeout(() => {\r\n // document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n // document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n // jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n // }, 2000);\r\n // }\r\n\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"SENDING\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Please wait..\";\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n\r\n let url = `${Globals.WS_URL}?mode=ASKUS.SUBMIT&token=${token}`;\r\n\r\n const args = {\r\n method: \"POST\",\r\n header: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n body: formData,\r\n };\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Askus - Sending form data\");\r\n\r\n fetch(url, args)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Askus - Receive results\");\r\n if (result.askus) {\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Message sent\";\r\n setTimeout(() => {\r\n window.location.href = window.location.origin + \"/find-music\";\r\n }, 1000);\r\n } else {\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Error sending message\";\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n }\r\n })\r\n .catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"ERROR Askus - Sending form data\", { message: error });\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"Error: \" + error;\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n });\r\n }\r\n }\r\n\r\n promiseTimeout(ms, promise) {\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error(\"TIMEOUT\"));\r\n }, ms);\r\n\r\n promise\r\n .then((value) => {\r\n clearTimeout(timer);\r\n resolve(value);\r\n })\r\n .catch((reason) => {\r\n clearTimeout(timer);\r\n reject(reason);\r\n });\r\n });\r\n }\r\n}\r\n","import Globals from \"../Globals.js\";\r\nimport PageCommon from \"./PageCommon.js\";\r\n\r\nexport default class PageDefault extends PageCommon {\r\n constructor() {\r\n super();\r\n }\r\n init() {\r\n super.init();\r\n this.showPreloader(true);\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PageDefault - Hello world\");\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class Album extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n ID: props.ID,\r\n Description: props.Description,\r\n Image: {\r\n High: props.Image.High,\r\n Medium: props.Image.Medium,\r\n },\r\n Name: props.Name,\r\n Tracks: props.Tracks,\r\n isNew: props.isNew,\r\n };\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n renderSwiperListItem() {\r\n const modelId = \"#model-artists-swiper-list\";\r\n const item = document.querySelector(`${modelId} .swiper-slide`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"album/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").textContent = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderListItem() {\r\n const modelId = \"#model-artists-list\";\r\n const item = document.querySelector(`${modelId} .artist-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"album/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").innerHTML = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderSingleItem(container, tracks) {\r\n container.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n container.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n container.querySelector(\".album-name\").textContent = this.data.Name;\r\n if (container.querySelector(\".badge\")) {\r\n if (!this.data.isNew) container.querySelector(\".badge\").style.display = \"none\";\r\n else container.querySelector(\".badge\").style.display = \"\";\r\n }\r\n if (container.querySelector(\".wrapper-btns .btn-show-more\")) {\r\n container.querySelector(\".wrapper-btns .btn-show-more\").style.display = \"\";\r\n }\r\n if (this.data.Description) {\r\n const extract = this.sliceWords(this.data.Description, this.extractDescriptionWords);\r\n container.querySelector(\".album-bio p .extract-description\").innerHTML = extract;\r\n container.querySelector(\".album-bio p .full-description\").innerHTML = this.data.Description.replace(extract, \"\");\r\n } else {\r\n container.querySelector(\".album-bio p .extract-description\").textContent = \"\";\r\n container.querySelector(\".album-bio p .full-description\").textContent = \"\";\r\n if (container.querySelector(\".wrapper-btns .btn-show-more\")) {\r\n container.querySelector(\".wrapper-btns .btn-show-more\").style.display = \"none\";\r\n }\r\n }\r\n\r\n const _this = this;\r\n container.querySelector(\".wrapper-btns button.btn.share\").addEventListener(\"click\", (event) => {\r\n this.shareItem(\"album\", _this.data);\r\n });\r\n\r\n const list = document.querySelector(\"#tracksSection .tracks-list .tracks-list-body\");\r\n list.textContent = \"\";\r\n\r\n this.data.Tracks.map((id) => {\r\n const track = tracks.get({ id });\r\n if (track) {\r\n list.appendChild(tracks.getItem(track));\r\n }\r\n });\r\n // this.SetMeta(this.data);\r\n }\r\n\r\n // SetMeta(item) {\r\n // document.querySelector('meta[property=\"og:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"twitter:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"title\"]').setAttribute(\"content\", item.Name);\r\n\r\n // document.querySelector('meta[property=\"og:description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n // document.querySelector('meta[name=\"twitter:description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n // document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n\r\n // if (item.Image.Medium) {\r\n // document.querySelector('meta[property=\"og:image\"]').setAttribute(\"content\", item.Image.Medium);\r\n // document.querySelector('meta[name=\"twitter:image:src\"]').setAttribute(\"content\", item.Image.Medium);\r\n // }\r\n // }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Album from \"./Album.js\";\r\n\r\nexport default class Albums {\r\n constructor(props) {\r\n this.data = props.map((item) => new Album(item));\r\n this.firstpage = [];\r\n }\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Album(item));\r\n }\r\n\r\n get({ id }) {\r\n if (id) {\r\n return this.data.filter((album) => album.get().ID === parseInt(id))[0];\r\n }\r\n return this.data;\r\n }\r\n\r\n renderFirstpageList() {\r\n const container = document.querySelector(`#albumsSection`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n const elements = 6;\r\n this.data.map((album, index) => index < elements && list.appendChild(album.renderSwiperListItem()));\r\n }\r\n\r\n renderSwiperList() {\r\n const container = document.querySelector(`#albumsSection`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n this.data.map((album) => list.appendChild(album.renderSwiperListItem()));\r\n }\r\n\r\n renderList() {\r\n const container = document.querySelector(`#albumsListSection`);\r\n const list = container.querySelector(\".list-wrapper\");\r\n list.textContent = \"\";\r\n this.data.map((album) => list.appendChild(album.renderListItem()));\r\n }\r\n\r\n renderSingle(id, tracks) {\r\n const container = document.querySelector(`#albumSection`);\r\n const album = this.get({ id });\r\n album.renderSingleItem(container, tracks);\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class Label extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n ID: props.ID,\r\n Description: props.Description,\r\n Image: {\r\n High: props.Image.High,\r\n Medium: props.Image.Medium,\r\n },\r\n Name: props.Name,\r\n Tracks: props.Tracks,\r\n isNew: props.isNew,\r\n };\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n renderSwiperListItem() {\r\n const modelId = \"#model-artists-swiper-list\";\r\n const item = document.querySelector(`${modelId} .swiper-slide`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"label/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").textContent = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderListItem() {\r\n const modelId = \"#model-artists-list\";\r\n const item = document.querySelector(`${modelId} .artist-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"label/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").innerHTML = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderSingleItem(container, tracks) {\r\n container.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n container.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n container.querySelector(\".album-name\").textContent = this.data.Name;\r\n if (container.querySelector(\".badge\")) {\r\n if (!this.data.isNew) container.querySelector(\".badge\").style.display = \"none\";\r\n else container.querySelector(\".badge\").style.display = \"\";\r\n }\r\n if (this.data.Description) {\r\n container.querySelector(\".album-bio p .full-description\").innerHTML = this.data.Description;\r\n }\r\n\r\n const _this = this;\r\n container.querySelector(\".wrapper-btns button.btn.share\").addEventListener(\"click\", (event) => {\r\n this.shareItem(\"label\", _this.data);\r\n });\r\n\r\n // const list = document.querySelector(\"#tracksSection .tracks-list .tracks-list-body\");\r\n // list.textContent = \"\";\r\n\r\n // if (this.data.Tracks) {\r\n // this.data.Tracks.map((id) => {\r\n // const track = tracks.get({ id });\r\n // list.appendChild(tracks.getItem(track));\r\n // });\r\n // }\r\n\r\n // this.SetMeta(this.data);\r\n }\r\n\r\n // SetMeta(item) {\r\n // document.querySelector('meta[property=\"og:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"twitter:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"title\"]').setAttribute(\"content\", item.Name);\r\n\r\n // document.querySelector('meta[property=\"og:description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n // document.querySelector('meta[name=\"twitter:description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n // document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", item.Name + \"- Playlist\");\r\n\r\n // if (item.Image.Medium) {\r\n // document.querySelector('meta[property=\"og:image\"]').setAttribute(\"content\", item.Image.Medium);\r\n // document.querySelector('meta[name=\"twitter:image:src\"]').setAttribute(\"content\", item.Image.Medium);\r\n // }\r\n // }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Label from \"./Label.js\";\r\n\r\nexport default class Labels {\r\n constructor(props) {\r\n this.data = props.map((item) => new Label(item));\r\n this.firstpage = [];\r\n }\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Label(item));\r\n }\r\n\r\n get({ id }) {\r\n if (id) {\r\n return this.data.filter((label) => label.get().ID === parseInt(id))[0];\r\n }\r\n return this.data;\r\n }\r\n\r\n renderFirstpageList() {\r\n const container = document.querySelector(`#labelsSection`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n const elements = 6;\r\n if (this.data && this.data.length > 0) {\r\n this.data.map((label, index) => index < elements && list.appendChild(label.renderSwiperListItem()));\r\n } else {\r\n if (document.querySelector(\"#labelsBlock\")) {\r\n document.querySelector(\"#labelsBlock\").remove();\r\n }\r\n }\r\n }\r\n\r\n renderSwiperList() {\r\n const container = document.querySelector(`#labelsSection`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n this.data.map((label) => list.appendChild(label.renderSwiperListItem()));\r\n }\r\n\r\n renderList() {\r\n const container = document.querySelector(`#labelsListSection`);\r\n const list = container.querySelector(\".list-wrapper\");\r\n list.textContent = \"\";\r\n this.data.map((label) => list.appendChild(label.renderListItem()));\r\n }\r\n\r\n renderSingle(id, tracks) {\r\n const container = document.querySelector(`#labelSection`);\r\n const label = this.get({ id });\r\n label.renderSingleItem(container, tracks);\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class Artist extends PageCommon {\r\n constructor(props, formats) {\r\n super();\r\n this.data = {\r\n ID: props.ID,\r\n Description: props.Description,\r\n Image: {\r\n High: props.Image.High,\r\n Medium: props.Image.Medium,\r\n },\r\n Wallpaper: props.Wallpaper,\r\n Name: props.Name,\r\n Format: formats[props.Format],\r\n Tracks: [],\r\n isNew: props.isNew,\r\n };\r\n this.extractDescriptionWords = 30;\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n renderSwiperListItem() {\r\n const modelId = \"#model-artists-swiper-list\";\r\n const item = document.querySelector(`${modelId} .swiper-slide`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n // var token = this.getCookie(\"user_token\");\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(this.data.Name), [\r\n { key: \"id\", value: this.data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(this.data.Format) },\r\n // { key: \"user_token\", value: token },\r\n ]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").textContent = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderListItem() {\r\n const modelId = \"#model-artists-list\";\r\n const item = document.querySelector(`${modelId} .artist-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n // var token = this.getCookie(\"user_token\");\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(this.data.Name), [\r\n { key: \"id\", value: this.data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(this.data.Format) },\r\n // { key: \"user_token\", value: token },\r\n ]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.querySelector(\".name\").innerHTML = this.data.Name;\r\n if (item.querySelector(\".badge\")) {\r\n if (!this.data.isNew) item.querySelector(\".badge\").style.display = \"none\";\r\n else item.querySelector(\".badge\").style.display = \"\";\r\n }\r\n return item;\r\n }\r\n\r\n renderSingleItem(container, tracks) {\r\n container.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n container.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n container.querySelector(\".artist-name\").innerHTML = this.data.Name;\r\n if (container.querySelector(\".badge\")) {\r\n if (!this.data.isNew) container.querySelector(\".badge\").style.display = \"none\";\r\n else container.querySelector(\".badge\").style.display = \"\";\r\n }\r\n if (this.data.Description) {\r\n const extract = this.sliceWords(this.data.Description, this.extractDescriptionWords);\r\n container.querySelector(\".artist-bio p .extract-description\").innerHTML = extract;\r\n container.querySelector(\".artist-bio p .full-description\").innerHTML = this.data.Description.replace(extract, \"\");\r\n }\r\n\r\n const _this = this;\r\n container.querySelector(\".wrapper-btns button.btn.share\").addEventListener(\"click\", (event) => {\r\n this.shareItem(\"artist\", _this.data);\r\n });\r\n\r\n const list = document.querySelector(\"#tracksSection .tracks-list .tracks-list-body\");\r\n list.textContent = \"\";\r\n\r\n if (this.data.Tracks.length === 0) {\r\n this.data.Tracks = tracks.get({ artistId: this.data.ID });\r\n }\r\n\r\n this.data.Tracks.map((track) => {\r\n if (track) {\r\n list.appendChild(tracks.getItem(track));\r\n }\r\n });\r\n\r\n const modalId = \"#artistModal\";\r\n const modal = document.querySelector(modalId);\r\n const image = modal.querySelector(\".wrapper-img img\");\r\n image.src = this.data.Wallpaper;\r\n const detail = modal.querySelector(\".artist-detail\");\r\n detail.querySelector(\".artist-name\").innerHTML = this.data.Name;\r\n detail.querySelector(\".artist-bio .artist-description\").innerHTML = this.data.Description;\r\n // this.SetMetaTag(this.data);\r\n\r\n detail.querySelector(\".wrapper-btns button.btn.share\").removeEventListener(\"click\", () => this.shareItem());\r\n detail.querySelector(\".wrapper-btns button.btn.share\").addEventListener(\"click\", () => this.shareItem(\"artist\", _this.data));\r\n }\r\n\r\n // SetMetaTag(item) {\r\n // document.querySelector('meta[property=\"og:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"twitter:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"title\"]').setAttribute(\"content\", item.Name);\r\n\r\n // document.querySelector('meta[property=\"og:description\"]').setAttribute(\"content\", item.Name + \"- Artist\");\r\n // document.querySelector('meta[name=\"twitter:description\"]').setAttribute(\"content\", item.Name + \"- Artist\");\r\n // document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", item.Description);\r\n\r\n // if (item.Wallpaper) {\r\n // document.querySelector('meta[property=\"og:image\"]').setAttribute(\"content\", item.Wallpaper);\r\n // document.querySelector('meta[name=\"twitter:image:src\"]').setAttribute(\"content\", item.Wallpaper);\r\n // }\r\n // }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon.js\";\r\nimport Artist from \"./Artist.js\";\r\n\r\nexport default class Artists {\r\n constructor(props, formats) {\r\n this.formats = formats;\r\n this.data = props.map((item) => new Artist(item, this.formats));\r\n this.firstpage = {\r\n artists: [],\r\n producers: [],\r\n };\r\n }\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Artist(item, this.formats));\r\n }\r\n\r\n get({ id }) {\r\n if (id) {\r\n return this.data.filter((artist) => artist.get().ID === parseInt(id))[0];\r\n }\r\n return this.data;\r\n }\r\n\r\n renderFirstpageList(format) {\r\n const container = document.querySelector(`#${format}Section`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n const elements = 6;\r\n this.firstpage[format].map((id, index) => index < elements && list.appendChild(this.get({ id }).renderSwiperListItem()));\r\n }\r\n\r\n renderList(format, section) {\r\n const container = document.querySelector(`#${section}Section`);\r\n const list = container.querySelector(\".list-wrapper\");\r\n list.textContent = \"\";\r\n container.querySelector(\".fm-section-header h4\").textContent = format + \"s\";\r\n this.data.map((artist) => artist.data.Format === format && list.appendChild(artist.renderListItem()));\r\n }\r\n\r\n renderSwiperList(format) {\r\n const container = document.querySelector(`#${format}Section`);\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n this.data.map((artist) => list.appendChild(artist.renderSwiperListItem()));\r\n }\r\n\r\n renderSingle(id, tracks) {\r\n const container = document.querySelector(`#artistSection`);\r\n const artist = this.get({ id });\r\n artist.renderSingleItem(container, tracks);\r\n }\r\n\r\n dispose() {\r\n this.data = [];\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class Playlist extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n ID: props.ID,\r\n Description: props.Description,\r\n Image: {\r\n High: props.Image.High,\r\n Medium: props.Image.Medium,\r\n },\r\n Name: props.Name,\r\n Tracks: props.Tracks,\r\n };\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n renderMyplaylistItem(parent) {\r\n const modelId = \"#model-myplaylists-list\";\r\n const item = document.querySelector(`${modelId} .nav-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".nav-link\").title = this.data.Name;\r\n item.querySelector(\".nav-link\").href = this.setUrlParams(\"/playlist/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".playlist-name\").textContent = this.data.Name;\r\n\r\n const button = item.querySelector(\".remove-btn\");\r\n button.dataset.id = this.data.ID;\r\n button.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n parent.showRemoveDialog(event.currentTarget.dataset.id);\r\n });\r\n\r\n return item;\r\n }\r\n\r\n renderAddTrackMyplaylistItem(object) {\r\n const modelId = \"#model-add-track-myplaylist-list\";\r\n const item = document.querySelector(`${modelId} .nav-item`).cloneNode(true);\r\n item.querySelector(\".nav-link\").dataset.id = this.data.ID;\r\n item.querySelector(\".nav-link\").title = this.data.Name;\r\n // item.querySelector(\".nav-link\").href = this.setUrlParams(\"playlist.html\", [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".playlist-name\").textContent = this.data.Name;\r\n\r\n // const button = item.querySelector(\".add-btn\");\r\n // button.dataset.id = this.data.ID;\r\n\r\n return item;\r\n }\r\n\r\n renderSwiperListItem() {\r\n const modelId = \"#model-playlist-swiper-list\";\r\n const item = document.querySelector(`${modelId} .swiper-slide`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"/playlist/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.dataset.id = this.data.ID;\r\n return item;\r\n }\r\n\r\n renderListItem() {\r\n const modelId = \"#model-playlists-list\";\r\n const item = document.querySelector(`${modelId} .playlist-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"/playlist/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n item.dataset.id = this.data.ID;\r\n return item;\r\n }\r\n\r\n renderHeaderListItem() {\r\n const modelId = \"#model-playlists-header\";\r\n const item = document.querySelector(`${modelId} .playlist-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n item.querySelector(\".music-item-thumb\").title = this.data.Name;\r\n item.querySelector(\".music-item-thumb\").href = this.setUrlParams(\"/playlist/\" + this._normalizza_track_prop(this.data.Name), [{ key: \"id\", value: this.data.ID }]);\r\n item.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n item.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n return item;\r\n }\r\n\r\n renderSingleItem(container, tracks) {\r\n container.querySelector(\".wrapper-img img\").src = this.data.Image.Medium;\r\n container.querySelector(\".wrapper-img img\").alt = this.data.Name;\r\n container.querySelector(\".playlist-name\").textContent = this.data.Name;\r\n\r\n if (container.querySelector(\".wrapper-btns .btn-show-more\")) {\r\n container.querySelector(\".wrapper-btns .btn-show-more\").style.display = \"\";\r\n }\r\n\r\n if (this.data.Description) {\r\n const extract = this.sliceWords(this.data.Description, this.extractDescriptionWords);\r\n container.querySelector(\".playlist-bio p .extract-description\").innerHTML = extract;\r\n container.querySelector(\".playlist-bio p .full-description\").innerHTML = this.data.Description.replace(extract, \"\");\r\n } else {\r\n container.querySelector(\".playlist-bio p .extract-description\").textContent = \"\";\r\n container.querySelector(\".playlist-bio p .full-description\").textContent = \"\";\r\n if (container.querySelector(\".wrapper-btns .btn-show-more\")) {\r\n container.querySelector(\".wrapper-btns .btn-show-more\").style.display = \"none\";\r\n }\r\n }\r\n\r\n const _this = this;\r\n container.querySelector(\".wrapper-btns button.btn.share\").addEventListener(\"click\", (event) => {\r\n this.shareItem(\"playlist\", _this.data);\r\n });\r\n\r\n const list = document.querySelector(\"#tracksSection .tracks-list .tracks-list-body\");\r\n list.textContent = \"\";\r\n\r\n this.data.Tracks.map((id) => {\r\n const track = tracks.get({ id });\r\n if (track) {\r\n list.appendChild(tracks.getItem(track));\r\n }\r\n });\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon.js\";\r\nimport Playlist from \"./Playlist.js\";\r\n\r\nimport Globals from \"../../Globals.js\";\r\n\r\nexport default class Playlists extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = props.map((item) => new Playlist(item));\r\n this.firstpage = [];\r\n }\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Playlist(item));\r\n }\r\n\r\n get({ id }) {\r\n if (id) {\r\n return this.data.filter((playlist) => playlist.get().ID === parseInt(id))[0];\r\n }\r\n return this.data;\r\n }\r\n\r\n getFull(id, tracks, userManager) {\r\n if (id && tracks) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getFull\");\r\n const contentWrapper = document.querySelector(`#contentWrapper`);\r\n if (contentWrapper.querySelector(\".js-preloader\")) {\r\n setTimeout((contentWrapper.querySelector(\".js-preloader\").style.display = \"\"), 100);\r\n }\r\n const found = userManager.userPlaylists.filter((playlist) => playlist.ID === parseInt(id));\r\n const _this = this;\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST&playlist_id=${id}`)\r\n // fetch(`/apisounzone/getplaylist/` + id)\r\n .then((response) => response.text())\r\n .then((json) => JSON.parse(json))\r\n .then((result) => {\r\n const playlistItem = result.data.playlists[0];\r\n // this.SetMeta(playlistItem);\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getFull OK\");\r\n if (contentWrapper.querySelector(\".js-preloader\")) {\r\n contentWrapper.querySelector(\".js-preloader\").remove();\r\n }\r\n contentWrapper.querySelector(\"#tracksSection\").style.display = \"\";\r\n const container = contentWrapper.querySelector(`#playlistSection`);\r\n container.style.display = \"\";\r\n const playlist = new Playlist(playlistItem);\r\n playlist.renderSingleItem(container, tracks);\r\n if (found.length > 0) {\r\n contentWrapper.querySelector(\"button.update\").addEventListener(\"click\", (event) => {\r\n contentWrapper.querySelector(\"button.update\").style.display = \"none\";\r\n const orderedTracks = Array.from(contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\")).map((item) => item.dataset.id);\r\n _this.changeTracksPlaylist(orderedTracks, playlist.data);\r\n });\r\n\r\n let dragging = null;\r\n\r\n contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\").forEach((trackItem) => {\r\n trackItem.draggable = true;\r\n\r\n // (B2) DRAG START - YELLOW HIGHLIGHT DROPZONES\r\n trackItem.addEventListener(\"dragstart\", function (event) {\r\n dragging = event.currentTarget.closest(\".track-item\");\r\n dragging.classList.add(\"hint\");\r\n });\r\n\r\n // (B3) DRAG ENTER - RED HIGHLIGHT DROPZONE\r\n trackItem.addEventListener(\"dragenter\", function (event) {\r\n contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\").forEach((item) => {\r\n item.classList.remove(\"active\");\r\n });\r\n const current = event.currentTarget.closest(\".track-item\");\r\n if (current !== dragging) {\r\n current.classList.add(\"active\");\r\n }\r\n });\r\n\r\n // (B5) DRAG END - REMOVE ALL HIGHLIGHTS\r\n trackItem.addEventListener(\"dragend\", function (event) {\r\n contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\").forEach((item) => {\r\n item.classList.remove(\"hint\");\r\n item.classList.remove(\"active\");\r\n });\r\n });\r\n\r\n // (B6) DRAG OVER - PREVENT THE DEFAULT \"DROP\", SO WE CAN DO OUR OWN\r\n trackItem.addEventListener(\"dragover\", function (event) {\r\n event.preventDefault();\r\n });\r\n\r\n // (B7) ON DROP - DO SOMETHING\r\n trackItem.addEventListener(\"drop\", function (event) {\r\n event.preventDefault();\r\n const current = event.currentTarget.closest(\".track-item\");\r\n let currentPosition = 0;\r\n let draggingPosition = 0;\r\n\r\n contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\").forEach((item, index) => {\r\n if (item === current) {\r\n currentPosition = index;\r\n } else if (item === dragging) {\r\n draggingPosition = index;\r\n }\r\n });\r\n if (currentPosition !== draggingPosition) {\r\n if (currentPosition > draggingPosition) {\r\n current.parentNode.insertBefore(dragging, current.nextSibling);\r\n } else {\r\n current.parentNode.insertBefore(dragging, current);\r\n }\r\n contentWrapper.querySelector(\"button.update\").style.display = \"\";\r\n }\r\n });\r\n });\r\n }\r\n this.emitEvent(\"track_list_loaded\");\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n }\r\n\r\n // const orderedTracks = Array.from(contentWrapper.querySelectorAll(\"#tracksSection .tracks-list-body .track-item\")).map(\r\n // (item) => item.dataset.id\r\n // );\r\n // _this.changeTracksPlaylist(orderedTracks, playlist.data);\r\n\r\n changeTracksPlaylist(tracks, playlist) {\r\n playlist.Tracks = tracks;\r\n this.editPlaylist(playlist);\r\n }\r\n\r\n getAddTrackMyPlaylistList(userManager) {\r\n const list = [];\r\n userManager.userPlaylists.map((item) => {\r\n const playlist = new Playlist(item);\r\n list.push(playlist.renderAddTrackMyplaylistItem(this));\r\n });\r\n return list;\r\n }\r\n\r\n renderMyplaylistsList(userManager) {\r\n const container = document.querySelector(\"#playlistsMenu\");\r\n const list = container.querySelector(\".nav-myplaylists\");\r\n list.textContent = \"\";\r\n userManager.userPlaylists.map((item) => {\r\n const playlist = new Playlist(item);\r\n list.appendChild(playlist.renderMyplaylistItem(this));\r\n });\r\n jQuery(\"#loadingModal\").modal(\"hide\");\r\n jQuery(\"#loadingModal .js-preloader\").hide();\r\n }\r\n\r\n renderHeaderList(elements) {\r\n const container = document.querySelector(\"#playlistsHeaderSection\");\r\n const list = container.querySelector(\".row\");\r\n list.textContent = \"\";\r\n this.shuffle(this.data).filter((playlist, index) => index < elements && list.appendChild(playlist.renderHeaderListItem()));\r\n }\r\n\r\n renderFirstpageList(limit = 6) {\r\n const container = document.querySelector(\"#playlistsSection\");\r\n const list = container.querySelector(\".swiper-wrapper\");\r\n list.textContent = \"\";\r\n const elements = limit;\r\n this.data.map((playlist, index) => index < elements && list.appendChild(playlist.renderSwiperListItem()));\r\n }\r\n\r\n renderList() {\r\n const container = document.querySelector(\"#playlistsListSection\");\r\n const list = container.querySelector(\".list-wrapper\");\r\n list.textContent = \"\";\r\n this.data.filter((playlist) => list.appendChild(playlist.renderListItem()));\r\n }\r\n\r\n renderSingle(id, tracks, userManager) {\r\n this.getFull(id, tracks, userManager);\r\n }\r\n\r\n setupNewPlaylist() {\r\n const playlistModal = document.querySelector(\"#playlistModal\");\r\n const form = playlistModal.querySelector(\"form\");\r\n form.addEventListener(\"submit\", (event) => {\r\n event.preventDefault();\r\n\r\n const data = new FormData(event.target);\r\n const playlist_name = data.get(\"plName\");\r\n const track_id = data.get(\"plTrackId\");\r\n\r\n jQuery(\"#playlistModal\").modal(\"hide\");\r\n document.querySelector(\"#playlistModal input[name=plTrackId]\").value = 0;\r\n\r\n jQuery(\"#loadingModal\").modal(\"show\");\r\n jQuery(\"#loadingModal .js-preloader\").show();\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"New Playlist - Start\");\r\n\r\n document.querySelector(\"#playlistsMenu .nav-myplaylists\").innerHTML = `
`;\r\n\r\n const token = this.getCookie(\"user_token\");\r\n if (token) {\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST.NEW&token=${token}&playlist_name=${playlist_name}&track_id=${track_id}`)\r\n // fetch(`/apisounzone/setupNewPlaylist/?token=${token}&playlist_name=${playlist_name}&track_id=${track_id}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"New Playlist - ERROR: \" + result.error);\r\n return;\r\n }\r\n if (result.result && result.data) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"New Playlist - Created OK\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n this.emitEvent(\"playlists_update\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"New Playlist - NO TOKEN\");\r\n }\r\n });\r\n }\r\n\r\n addTrackToPlaylist(id, track) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Add Track To Playlist - Start\");\r\n\r\n jQuery(\"#loadingModal\").modal(\"show\");\r\n jQuery(\"#loadingModal .js-preloader\").show();\r\n\r\n const token = this.getCookie(\"user_token\");\r\n if (token) {\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST.ADD&token=${token}&playlist_id=${id}&track_id=${track.ID}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Add Track To Playlist - ERROR: \" + result.error);\r\n return;\r\n }\r\n if (result.result && result.data) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Add Track To Playlist - Created OK\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n\r\n jQuery(\"#loadingModal\").modal(\"hide\");\r\n jQuery(\"#loadingModal .js-preloader\").hide();\r\n\r\n jQuery(\"#playlistAddTrackOKModal\").modal(\"show\");\r\n document.querySelector(\"#playlistAddTrackOKModal .playlist-name\").textContent = result.data.playlists[0].Name;\r\n document.querySelector(\"#playlistAddTrackOKModal .track-name\").textContent = track.Name;\r\n setTimeout(() => {\r\n jQuery(\"#playlistAddTrackOKModal\").modal(\"hide\");\r\n document.querySelector(\"#playlistAddTrackOKModal .playlist-name\").textContent = \"\";\r\n document.querySelector(\"#playlistAddTrackOKModal .track-name\").textContent = \"\";\r\n }, 3000);\r\n\r\n //this.emitEvent(\"playlists_update\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Add Track To Playlist - NO TOKEN\");\r\n }\r\n }\r\n\r\n showRemoveDialog(id) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Show Dialog Remove Playlist - Start\");\r\n\r\n jQuery(\"#playlistDeleteModal\").modal(\"show\");\r\n\r\n document.querySelector(\"#playlistDeleteModal input[name=plTrackId]\").value = id;\r\n\r\n document.querySelector(\"#playlistDeleteModal button.delete-playlist\").addEventListener(\"click\", (event) => {\r\n jQuery(\"#playlistDeleteModal\").modal(\"hide\");\r\n const id = document.querySelector(\"#playlistDeleteModal input[name=plTrackId]\").value;\r\n document.querySelector(\"#playlistDeleteModal input[name=plTrackId]\").value = \"\";\r\n this.removePlaylist(id);\r\n });\r\n }\r\n\r\n removePlaylist(id) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Remove Playlist - Start\");\r\n\r\n jQuery(\"#loadingModal\").modal(\"show\");\r\n jQuery(\"#loadingModal .js-preloader\").show();\r\n\r\n document.querySelector(\"#playlistsMenu .nav-myplaylists\").innerHTML = `
`;\r\n\r\n const token = this.getCookie(\"user_token\");\r\n if (token) {\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST.REMOVE&token=${token}&playlist_id=${id}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Remove Playlist - ERROR: \" + result.error);\r\n return;\r\n }\r\n if (result.result) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Remove Playlist - Delete OK\");\r\n\r\n const urlParams = this.getUrlParams();\r\n\r\n if (parseInt(urlParams.get(\"id\")) === result.result[\"playlist.deleted\"]) {\r\n window.location.href = \"/find-music\";\r\n }\r\n\r\n this.emitEvent(\"playlists_update\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Remove Playlist - NO TOKEN\");\r\n }\r\n }\r\n\r\n showRemoveTrackDialog(track_id, playlist) {\r\n Globals.isRemoveTrackFromPlaylist = true;\r\n\r\n // this.removeTrackFromPlaylist(track_id, playlist);\r\n\r\n //*\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Show Dialog Remove Track - Start\");\r\n\r\n jQuery(\"#playlistRemoveTrackModal\").modal(\"show\");\r\n\r\n document.querySelector(\"#playlistRemoveTrackModal button.btn-cancel\").addEventListener(\"click\", (event) => {\r\n Globals.isRemoveTrackFromPlaylist = false;\r\n });\r\n\r\n document.querySelector(\"#playlistRemoveTrackModal button.remove-track\").addEventListener(\"click\", (event) => {\r\n jQuery(\"#playlistRemoveTrackModal\").modal(\"hide\");\r\n this.removeTrackFromPlaylist(track_id, playlist);\r\n });\r\n //*/\r\n }\r\n\r\n removeTrackFromPlaylist(track_id, playlist) {\r\n playlist.Tracks.splice(playlist.Tracks.indexOf(track_id), 1);\r\n this.editPlaylist(playlist);\r\n }\r\n\r\n editPlaylist(playlist) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Edit Playlist - Start\");\r\n\r\n jQuery(\"#loadingModal\").modal(\"show\");\r\n jQuery(\"#loadingModal .js-preloader\").show();\r\n\r\n const token = this.getCookie(\"user_token\");\r\n if (token) {\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST.EDIT&token=${token}&playlist_id=${playlist.ID}&tracks=${playlist.Tracks.join(\",\")}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Edit Playlist - ERROR: \" + result.error);\r\n return;\r\n }\r\n if (result.result) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Edit Playlist - Edit OK\");\r\n\r\n this.emitEvent(\"playlists_update\");\r\n }\r\n // 230719\r\n Globals.isRemoveTrackFromPlaylist = false;\r\n window.location.reload();\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Edit Playlist - NO TOKEN\");\r\n }\r\n }\r\n\r\n // SetMeta(item) {\r\n // document.querySelector('meta[property=\"og:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"twitter:title\"]').setAttribute(\"content\", item.Name);\r\n // document.querySelector('meta[name=\"title\"]').setAttribute(\"content\", item.Name);\r\n\r\n // document.querySelector('meta[property=\"og:description\"]').setAttribute(\"content\", item.Name + '- Playlist');\r\n // document.querySelector('meta[name=\"twitter:description\"]').setAttribute(\"content\", item.Name + '- Playlist');\r\n // document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", item.Name + '- Playlist');\r\n\r\n // if (item.Image.Medium) {\r\n // document.querySelector('meta[property=\"og:image\"]').setAttribute(\"content\", item.Image.Medium);\r\n // document.querySelector('meta[name=\"twitter:image:src\"]').setAttribute(\"content\", item.Image.Medium);\r\n // }\r\n\r\n // }\r\n\r\n dispose() {\r\n this.data = [];\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\nimport Pqp from \"../../3x1010/Pqp\";\r\n\r\nexport default class Track extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n ID: props.ID,\r\n Name: props.Name,\r\n MP3: {\r\n Length: props.MP3.Length,\r\n LengthFMT: props.MP3.LengthFMT,\r\n Url: props.MP3.Url,\r\n },\r\n isNew: props.isNew,\r\n Artists: props.Artists,\r\n Wave: props.Wave,\r\n };\r\n this.artistsConverted = false;\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n setupArtistsObject(artists) {\r\n if (!this.artistsConverted) {\r\n this.data.Artists = this.data.Artists.map((id) => artists.data.filter((item) => item.get().ID === id)[0]);\r\n this.artistsConverted = true;\r\n }\r\n }\r\n\r\n renderListItem(userManager, artists, playlists) {\r\n const modelId = \"#model-tracks-list\";\r\n const item = document.querySelector(`${modelId} .track-item`).cloneNode(true);\r\n item.dataset.id = this.data.ID;\r\n let badge = \"\";\r\n if (this.data.isNew) {\r\n badge = item.querySelector(\".tl-track .badge\").cloneNode(true);\r\n }\r\n item.querySelector(\".tl-track\").innerHTML = this.data.Name;\r\n if (badge !== \"\") {\r\n item.querySelector(\".tl-track\").appendChild(badge);\r\n }\r\n\r\n this.setupArtistsObject(artists);\r\n\r\n // 240212 - PF - Multi Artist Link in Track List\r\n if (this.data.Artists.length > 0) {\r\n if (this.data.Artists[0] && !Pqp.isMobile()) {\r\n item.querySelector(\".tl-artist\").href = \"javascript:void(0)\";\r\n /*\r\n item.querySelector(\".tl-artist\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(this.data.Artists[0].data.Name), [\r\n { key: \"id\", value: this.data.Artists[0].data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(this.data.Artists[0].data.Format) },\r\n ]);\r\n //*/\r\n } else {\r\n item.querySelector(\".tl-artist\").href = \"javascript:void(0)\";\r\n }\r\n item.querySelector(\".tl-artist\").innerHTML = this.data.Artists.map((artist) => {\r\n if (artist) {\r\n // return artist.get().Name;\r\n var aid = artist.get().ID;\r\n var af = artist.get().Format;\r\n return \"\" + artist.get().Name + \"\";\r\n }\r\n return \"\";\r\n }).join(\", \");\r\n }\r\n item.querySelector(\".tl-length\").textContent = this.data.MP3.LengthFMT;\r\n\r\n const _this = this;\r\n\r\n item.querySelector(\".play-btn\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const target = event.target.closest(\".track-item\");\r\n const id = target.dataset.id;\r\n _this.emitEvent(\"track_clicked\", { detail: { id, target, source: \"list\" } });\r\n gtag(\"event\", this.data.Name + \" - {\" + this.data.ID + \"}\", { event_category: \"play\", event_label: \"Played Tracks\" });\r\n });\r\n item.addEventListener(\"click\", (event) => {\r\n if (event.target.tagName !== \"I\" && event.target.tagName !== \"A\") {\r\n const target = event.target.closest(\".track-item\");\r\n const id = target.dataset.id;\r\n this.emitEvent(\"track_clicked\", { detail: { id, target } });\r\n gtag(\"event\", this.data.Name + \" - {\" + this.data.ID + \"}\", { event_category: \"play\", event_label: \"Played Tracks\" });\r\n }\r\n });\r\n\r\n item.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n item.querySelector(\".dropdown .icon-plus\").addEventListener(\"click\", (event) => {\r\n item.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n });\r\n\r\n /*\r\n item.querySelector(\".dropdown .dropdown-menu .add-to-playlist\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n item.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.toggle(\"show\");\r\n });\r\n */\r\n\r\n // PQP: Ho rimosso la gestione dell'over dal css perch� faceva casino e quindi l'ho dovuto gestire a mano\r\n let menuItem = jQuery(item.querySelector(\".dropdown .dropdown-menu .add-to-playlist\"));\r\n let menuItemToShow = jQuery(item.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\")).show();\r\n this.menuItemToShowStatus = false;\r\n menuItemToShow.on(\"mouseenter\", () => {\r\n this.menuItemToShowStatus = true;\r\n });\r\n menuItemToShow.on(\"mouseleave\", () => {\r\n this.menuItemToShowStatus = false;\r\n menuItemToShow.hide();\r\n });\r\n if (Pqp.isMobile()) {\r\n menuItem.on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (menuItemToShow.is(\":visible\")) {\r\n menuItemToShow.hide();\r\n } else {\r\n menuItemToShow.show();\r\n }\r\n });\r\n } else {\r\n menuItem.on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n }\r\n if (!Pqp.isMobile()) {\r\n menuItem.on(\"mouseenter\", () => {\r\n menuItemToShow.show();\r\n });\r\n menuItem.on(\"mouseleave\", () => {\r\n requestAnimationFrame(() => {\r\n if (!this.menuItemToShowStatus) {\r\n menuItemToShow.hide();\r\n }\r\n });\r\n });\r\n }\r\n\r\n item.querySelector(\".dropdown .dropdown-submenu .create-link\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (userManager.userLogged) {\r\n jQuery(\"#playlistModal\").modal(\"show\");\r\n document.querySelector(\"#playlistModal input[name=plTrackId]\").value = _this.data.ID;\r\n } else {\r\n jQuery(\"#notLoggedModal\").modal(\"show\");\r\n }\r\n });\r\n\r\n let list = item.querySelector(\".dropdown .dropdown-myplaylists\");\r\n if (userManager.userPlaylists.length > 0) {\r\n const userPlaylists = playlists.getAddTrackMyPlaylistList(userManager);\r\n userPlaylists.map((playlist) => {\r\n const item = playlist.cloneNode(true);\r\n const button = item.querySelector(\"a\");\r\n button.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n playlists.addTrackToPlaylist(event.currentTarget.dataset.id, _this.data);\r\n });\r\n list.appendChild(item);\r\n });\r\n const found = userManager.userPlaylists.filter((playlist) => playlist.Tracks.indexOf(this.data.ID) > -1);\r\n if (found.length === 0) {\r\n item.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n } else {\r\n item.querySelector(\".remove-playlist .remove-link\").addEventListener(\"click\", (event) => {\r\n playlists.showRemoveTrackDialog(_this.data.ID, found[0]);\r\n });\r\n }\r\n } else {\r\n item.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n }\r\n\r\n item.querySelector(\".dropdown .dropdown-menu .licenses-add\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n _this.emitEvent(\"add_track_to_licenses\", { detail: { track: _this.data } });\r\n });\r\n\r\n item.querySelector(\".dropdown .dropdown-menu .download\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (userManager.userLogged) {\r\n _this.requestDownload(userManager, this.data);\r\n } else {\r\n // jQuery(\"#notLoggedModal\").modal(\"show\");\r\n window.location.href = \"/pricing\";\r\n }\r\n });\r\n\r\n item.querySelector(\".dropdown .dropdown-menu .match-video\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (Pqp.isMobile()) {\r\n window.location.href = \"/match-video-mobile\";\r\n } else {\r\n _this.emitEvent(\"match_video_to_track\", { detail: { track: _this.data } });\r\n }\r\n });\r\n\r\n return item;\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Track from \"./Track.js\";\r\n\r\nexport default class Tracks {\r\n constructor(props) {\r\n this.data = props.map((item) => new Track(item));\r\n this.firstpage = [];\r\n this.artists = [];\r\n this.playlists = [];\r\n this.userManager = null;\r\n }\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Track(item));\r\n }\r\n\r\n get({ id, artistId }) {\r\n if (id) {\r\n return this.data.filter((track) => track.get().ID === parseInt(id))[0];\r\n } else if (artistId) {\r\n return this.data.filter((track) => track.get().Artists.filter((id) => artistId === id || (id.data && id.data.ID && id.data.ID === artistId))[0]);\r\n }\r\n return this.data;\r\n }\r\n\r\n setUserManager(userManager) {\r\n this.userManager = userManager;\r\n }\r\n\r\n setPlaylists(playlists) {\r\n this.playlists = playlists;\r\n }\r\n\r\n renderFirstpageList() {\r\n const container = document.querySelector(\"#tracksSection\");\r\n const list = container.querySelector(\".tracks-list-body\");\r\n if (list) {\r\n list.textContent = \"\";\r\n const elements = 40;\r\n this.firstpage.map((id, index) => {\r\n var b = false;\r\n try {\r\n b = (index < elements && list.appendChild(this.get({ id }).renderListItem(this.userManager, this.artists, this.playlists)));\r\n } catch (e) {\r\n console.log(\"[Tracks - renderFirstpageList] Track \"+id+\" -- Error: \" + e);\r\n }\r\n return (b);\r\n } \r\n );\r\n }\r\n }\r\n\r\n renderList() {\r\n const container = document.querySelector(\"#tracksSection\");\r\n const list = container.querySelector(\".tracks-list-body\");\r\n list.textContent = \"\";\r\n this.data.map((track) => list.appendChild(track.renderListItem(this.userManager, this.artists, this.playlists)));\r\n }\r\n\r\n getItem(track) {\r\n if (!track.length) {\r\n return track.renderListItem(this.userManager, this.artists, this.playlists);\r\n }\r\n return document.createElement(\"span\");\r\n }\r\n\r\n dispose() {\r\n this.data = [];\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class Filter extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n Name: props.Name,\r\n Tags: [...props.Tags],\r\n };\r\n this.selected = 0;\r\n }\r\n\r\n set(object) {}\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n renderListItem(searchManager) {\r\n const _this = this;\r\n const modelId = \"#model-filters-list\";\r\n const filterRow = document.querySelector(`${modelId} .nav-item`).cloneNode(true);\r\n const submenuList = filterRow.querySelector(\".submenu-list\");\r\n const submenuRow = submenuList.querySelector(\".form-check\").cloneNode(true);\r\n submenuList.textContent = \"\";\r\n\r\n const rowName = this._normalizza_track_prop(`${this.data.Name}`);\r\n const rowLink = filterRow.querySelector(\"a.nav-link\");\r\n rowLink.href = `#${rowName}`;\r\n rowLink.querySelector(\".nav-link-label\").innerHTML = this.data.Name;\r\n rowLink.querySelector(\".badge\").textContent = \"\";\r\n filterRow.querySelector(\".fm-nav-submenu\").id = rowName;\r\n if (this.data.Tags) {\r\n this.data.Tags.map((subFilterName) => {\r\n const subRow = submenuRow.cloneNode(true);\r\n const subRowName = this._normalizza_track_prop(`${this.data.Name} ${subFilterName}`);\r\n const input = subRow.querySelector(\"input\");\r\n input.id = subRowName;\r\n input.dataset.name = subFilterName;\r\n input.addEventListener(\"click\", (event) => {\r\n searchManager.searchCategory(event.currentTarget.dataset.name);\r\n if (event.currentTarget.checked) {\r\n _this.selected++;\r\n } else {\r\n _this.selected--;\r\n if (_this.selected < 0) _this.selected = 0;\r\n }\r\n rowLink.querySelector(\".badge\").textContent = _this.selected ? _this.selected : \"\";\r\n });\r\n const label = subRow.querySelector(\"label\");\r\n label.setAttribute(\"for\", subRowName);\r\n label.innerHTML = subFilterName;\r\n filterRow.querySelector(\".submenu-list\").appendChild(subRow);\r\n });\r\n }\r\n return filterRow;\r\n }\r\n\r\n renderHeaderListItem(elements, container) {\r\n const modelId = \"#model-categories-header\";\r\n const wrapper = document.querySelector(`${modelId} .col`).cloneNode(true);\r\n wrapper.querySelector(\".category-name\").innerHTML = this.data.Name;\r\n const list = wrapper.querySelector(\"ul.nav\");\r\n if (this.data.Tags) {\r\n this.data.Tags.map((subFilterName, index) => {\r\n if (index < elements) {\r\n const modelId = \"#model-categories-header-item\";\r\n const item = document.querySelector(`${modelId} .category-item`).cloneNode(true);\r\n item.querySelector(\"a\").textContent = subFilterName;\r\n // item.querySelector(\"a\").href = this.setUrlParams(\"find-music.html\", [{ key: \"filters\", value: subFilterName }]);\r\n item.querySelector(\"a\").href = this.setUrlParams(\"/find-music\", [{ key: \"filters\", value: subFilterName }]);\r\n list.appendChild(item);\r\n }\r\n });\r\n }\r\n container.appendChild(wrapper);\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Filter from \"./Filter.js\";\r\n\r\nexport default class Filters {\r\n constructor(props) {\r\n this.data = props.map((item) => new Filter(item));\r\n this.totalSelected = 0;\r\n this.eventsSet = false;\r\n }\r\n init() {}\r\n\r\n set(object) {\r\n this.data = object.map((item) => new Filter(item));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n updateTotalSelected() {}\r\n\r\n renderList(searchManager) {\r\n const _this = this;\r\n const filtersMenu = document.querySelector(\"#filtersMenu\");\r\n const filtersList = filtersMenu.querySelector(\"ul.nav\");\r\n if (!this.eventsSet) {\r\n this.eventsSet = true;\r\n filtersMenu.querySelector(\".reset\").addEventListener(\"click\", (event) => {\r\n _this.totalSelected = 0;\r\n _this.renderList(searchManager);\r\n filtersMenu.querySelector(\".reset\").style.display = \"none\";\r\n searchManager.resetSearchList(\"filters\");\r\n searchManager.searchTracks();\r\n });\r\n }\r\n filtersList.textContent = \"\";\r\n this.data.map((filter) => filtersList.appendChild(filter.renderListItem(searchManager)));\r\n filtersList.querySelectorAll(\"input[type=checkbox]\").forEach((item) => {\r\n item.addEventListener(\"click\", (event) => {\r\n if (event.target.checked) {\r\n _this.totalSelected++;\r\n } else {\r\n // Already done by function to remove filter from searchbar\r\n // _this.totalSelected--;\r\n }\r\n if (_this.totalSelected === 0) {\r\n filtersMenu.querySelector(\".reset\").style.display = \"none\";\r\n } else {\r\n filtersMenu.querySelector(\".reset\").style.display = \"flex\";\r\n }\r\n filtersMenu.querySelector(\".apply-filters-container p\").textContent = _this.totalSelected === 1 ? `1 filter selected` : `${_this.totalSelected} filters selected`;\r\n });\r\n });\r\n }\r\n\r\n renderHeaderList(category, elements) {\r\n const container = document.querySelector(\"#categoriesHeaderSection\");\r\n this.data.filter((_filter) => _filter.data.Name === category && _filter.renderHeaderListItem(elements, container));\r\n }\r\n\r\n dispose() {\r\n this.data = [];\r\n }\r\n}\r\n","import Albums from \"./Albums/Albums.js\";\r\nimport Labels from \"./Labels/Labels.js\";\r\nimport Artists from \"./Artists/Artists.js\";\r\nimport Playlists from \"./Playlists/Playlists.js\";\r\nimport Tracks from \"./Tracks/Tracks.js\";\r\n\r\nimport Filters from \"./Filters/Filters.js\";\r\nimport PageCommon from \"./PageCommon.js\";\r\n\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class DataManager extends PageCommon {\r\n constructor() {\r\n super();\r\n this.data = {};\r\n this.dataStructure = {\r\n albums: [],\r\n labels: [],\r\n artists: [],\r\n artists_formats: [],\r\n playlists: [],\r\n tracks: [],\r\n filters: [],\r\n countries: [],\r\n };\r\n this.keywords = [];\r\n this.searchResults = [];\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - constructor\");\r\n this.maxRetry = 5;\r\n this.retryCounter = 0;\r\n this.timeoutGetAll = 2000;\r\n }\r\n\r\n init() {\r\n super.init();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%DataManager - init\", \"color: orange\");\r\n const urlParams = new URLSearchParams(window.location.search);\r\n this.getData(urlParams.get(\"debug\"));\r\n }\r\n\r\n getData(debug) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Fetching Data\", \"color: orange\");\r\n let url = `/apisounzone/getall/`;\r\n // if (debug) {\r\n // url = `/apisounzone/getall/?rand=${Date.now()}`;\r\n // url = `/apisounzone/getall/`;\r\n // } else {\r\n // url = \"https://sounzone.com/szwsbeta/?mode=DATA\";\r\n //}\r\n fetch(url)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Fetch Data OK\", \"color: orange\");\r\n this.retryCounter = 0;\r\n this.data = result.data;\r\n this.parseData();\r\n })\r\n .catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - ERROR Fetching Data\", \"color: orange\", { message: error });\r\n if (this.retryCounter < this.maxRetry) {\r\n this.retryCounter++;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Retry request\", \"color: orange\", this.retryCounter);\r\n this.getData();\r\n } else {\r\n jQuery(\".js-critical-error\").show();\r\n }\r\n });\r\n }\r\n\r\n getDataPromise() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Promise Fetching Data\", \"color: orange\");\r\n // this.promiseTimeout(this.timeoutGetAll, fetch(\"https://sounzone.com/szwsbeta/?mode=DATA\"))\r\n // this.promiseTimeout(this.timeoutGetAll, fetch(`/apisounzone/getall/?rand=${Date.now()}`))\r\n this.promiseTimeout(this.timeoutGetAll, fetch(`/apisounzone/getall/`))\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Promise Fetch Data OK\", \"color: orange\");\r\n this.retryCounter = 0;\r\n this.data = result.data;\r\n this.parseData();\r\n })\r\n .catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - ERROR Promise Fetching Data\", \"color: orange\", { message: error });\r\n if (this.retryCounter < this.maxRetry) {\r\n this.retryCounter++;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Promise Retry request\", \"color: orange\", this.retryCounter);\r\n this.getDataPromise();\r\n }\r\n });\r\n }\r\n\r\n parseData() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Parsing Data\", \"color: orange\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Data saved\", \"color: orange\", this.data);\r\n let firstpageTracks = [];\r\n let firstpageArtists = [];\r\n let firstpageProducers = [];\r\n let firstpageLabels = [];\r\n let countries = [];\r\n Object.keys(this.data).map((item, index) => {\r\n switch (item) {\r\n case \"albums\":\r\n this.dataStructure[item] = new Albums(this.data[item]);\r\n break;\r\n case \"labels\":\r\n this.dataStructure[item] = new Labels(this.data[item]);\r\n break;\r\n case \"artists\":\r\n this.dataStructure[item] = new Artists(this.data[item], this.data[\"artists_formats\"]);\r\n break;\r\n case \"playlists\":\r\n this.dataStructure[item] = new Playlists(this.data[item]);\r\n break;\r\n case \"tracks\":\r\n this.dataStructure[item] = new Tracks(this.data[item]);\r\n break;\r\n case \"firstpage_filters\":\r\n this.dataStructure[\"filters\"] = new Filters(this.data[item]);\r\n break;\r\n case \"firstpage_artists\":\r\n firstpageArtists = this.data[item];\r\n break;\r\n case \"firstpage_producers\":\r\n firstpageProducers = this.data[item];\r\n break;\r\n case \"firstpage_tracks\":\r\n firstpageTracks = this.data[item];\r\n break;\r\n case \"firstpage_labels\":\r\n firstpageLabels = this.data[item];\r\n break;\r\n case \"countries\":\r\n countries = this.data[item];\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n this.dataStructure.countries = countries;\r\n if (this.dataStructure.artists) {\r\n this.dataStructure.artists.firstpage = {\r\n artists: firstpageArtists,\r\n producers: firstpageProducers,\r\n };\r\n }\r\n if (this.dataStructure.tracks) {\r\n this.dataStructure.tracks.firstpage = firstpageTracks;\r\n this.dataStructure.tracks.artists = this.dataStructure.artists;\r\n }\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cDataManager - Parsing OK\", \"color: orange\");\r\n this.emitEvent(\"data_ready\");\r\n }\r\n\r\n renderPlacementsData(pm) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetching Placements Data\");\r\n fetch(Globals.WS_URL+\"?mode=PAGE.PLACEMENTS\")\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetch Placements Data OK\");\r\n\r\n var item = result.page_placements;\r\n var accordion = document.querySelector(\"#placementCont\");\r\n accordion.textContent = \"\";\r\n const modelId = \"#model-placement-item\";\r\n\r\n if (pm == 1) {\r\n if (item.length >= 4) {\r\n for (var k = 0; k < 4; k++) item.push(item[k]);\r\n }\r\n }\r\n\r\n item.map((item, index) => {\r\n const plaItem = document.querySelector(`${modelId} .placement-item`).cloneNode(true);\r\n const plaCont = plaItem.querySelector(\".placementItemCont\");\r\n plaCont.style.backgroundImage = \"url(\" + item.img + \")\";\r\n const plaOver = plaItem.querySelector(\".placementItemOver\");\r\n plaOver.addEventListener('click', function (event) {\r\n window.open(item.link);\r\n }, false);\r\n const titleItem = plaItem.querySelector(\".plaTit\");\r\n titleItem.innerHTML = item.title;\r\n const textItem = plaItem.querySelector(\".plaText\");\r\n textItem.innerHTML = item.content;\r\n accordion.appendChild(plaItem);\r\n });\r\n\r\n const maxtpr = 3; // 4 - 3\r\n const tw = 341; // 341 x 3 -- 256 x 4\r\n\r\n if (pm == 1 && item.length >= maxtpr) {\r\n const marT = (item.length - maxtpr) * 4;\r\n const marW = (item.length - maxtpr) * tw;\r\n const marP = (100 / item.length) * (item.length - maxtpr);\r\n document.styleSheets[0].insertRule(\"@keyframes clientsAnim { 0% { transform: translateX(0); } 100% { transform: translateX(-\" + marW + \"px); }}\", document.styleSheets[0].cssRules.length);\r\n document.styleSheets[0].insertRule(\"#placementCont { animation: clientsAnim \" + marT + \"s linear infinite; }\", document.styleSheets[0].cssRules.length);\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n\r\n renderFaqData() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetching Faq Data\");\r\n setTimeout(() => {\r\n jQuery(\"#faqAccordion .js-preloader\").show();\r\n }, 200);\r\n fetch(Globals.WS_URL +\"?mode=PAGE.FAQ\")\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetch Faq Data OK\");\r\n\r\n // About subscriptions & specs\r\n\r\n var faq = result.page_faq_ss;\r\n var accordion = document.querySelector(\"#faqAccordionSS\");\r\n accordion.textContent = \"\";\r\n const modelId = \"#model-faq-item\";\r\n\r\n faq.map((item, index) => {\r\n const faqItem = document.querySelector(`${modelId} .faq-item`).cloneNode(true);\r\n const titleItem = faqItem.querySelector(\".faqTit\");\r\n const title = titleItem.querySelector(\"span\");\r\n titleItem.dataset.target = \"#f_ss_\" + index;\r\n title.textContent = item.title;\r\n const textItem = faqItem.querySelector(\".faqText\");\r\n const text = textItem.querySelector(\"span\");\r\n textItem.setAttribute(\"data-parent\", \"#faqAccordionSS\");\r\n textItem.id = \"f_ss_\" + index;\r\n text.innerHTML = item.content;\r\n accordion.appendChild(titleItem);\r\n accordion.appendChild(textItem);\r\n });\r\n\r\n // About tracks & licenses\r\n\r\n faq = result.page_faq_tl;\r\n accordion = document.querySelector(\"#faqAccordionTL\");\r\n accordion.textContent = \"\";\r\n\r\n faq.map((item, index) => {\r\n const faqItem = document.querySelector(`${modelId} .faq-item`).cloneNode(true);\r\n const titleItem = faqItem.querySelector(\".faqTit\");\r\n const title = titleItem.querySelector(\"span\");\r\n titleItem.dataset.target = \"#f_tl_\" + index;\r\n title.textContent = item.title;\r\n const textItem = faqItem.querySelector(\".faqText\");\r\n const text = textItem.querySelector(\"span\");\r\n textItem.setAttribute(\"data-parent\", \"#faqAccordionTL\");\r\n textItem.id = \"f_tl_\" + index;\r\n text.innerHTML = item.content;\r\n accordion.appendChild(titleItem);\r\n accordion.appendChild(textItem);\r\n });\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n\r\n renderFaqArtistData() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetching Faq Artist Data\");\r\n setTimeout(() => {\r\n jQuery(\"#faqAccordion .js-preloader\").show();\r\n }, 200);\r\n fetch(Globals.WS_URL +\"?mode=PAGE.FAQ.ARTIST\")\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetch Faq Artist Data OK\");\r\n const faq = result.page_faq;\r\n const accordion = document.querySelector(\"#faqAccordion\");\r\n accordion.textContent = \"\";\r\n const modelId = \"#model-faq-item\";\r\n\r\n faq.map((item, index) => {\r\n const faqItem = document.querySelector(`${modelId} .faq-item`).cloneNode(true);\r\n const titleItem = faqItem.querySelector(\".faqTit\");\r\n const title = titleItem.querySelector(\"span\");\r\n titleItem.dataset.target = \"#f\" + index;\r\n title.textContent = item.title;\r\n const textItem = faqItem.querySelector(\".faqText\");\r\n const text = textItem.querySelector(\"span\");\r\n textItem.id = \"f\" + index;\r\n text.innerHTML = item.content;\r\n accordion.appendChild(titleItem);\r\n accordion.appendChild(textItem);\r\n });\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n\r\n renderSubscriptionData() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetching Subscription Data\");\r\n\r\n const token = this.getCookie(\"user_token\");\r\n\r\n let code = \"\";\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const paramPromoCode = urlParams.get(\"promoCode\");\r\n if (paramPromoCode) {\r\n code = \"&promo_code=\" + paramPromoCode;\r\n }\r\n\r\n const inputCode = document.querySelector(\".promo-code-form input\");\r\n if (inputCode?.value) {\r\n code = \"&promo_code=\" + inputCode.value;\r\n }\r\n\r\n const ref = {\r\n \"2.M\": \"2m\",\r\n \"2.Y\": \"2y\",\r\n \"4.M\": \"4m\",\r\n \"4.Y\": \"4y\",\r\n // \"5.Y\": \"5y\",\r\n };\r\n\r\n const url = `${Globals.WS_URL}?mode=PRICING&token=${token}${code}`;\r\n fetch(url)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"DataManager - Fetch Subscription Data OK\");\r\n if (result.SingleLicence) {\r\n const singleLicense = result.SingleLicence;\r\n const card = document.querySelector(\".cards-group.standard .card-body.single-license\");\r\n if (card) {\r\n const price = card.querySelector(\".price\");\r\n const showPrice = this.formatPrice(singleLicense.price).toString().split(\".\");\r\n if (price) {\r\n price.querySelector(\".integer\").textContent = showPrice[0];\r\n price.querySelector(\".cent\").textContent = showPrice[1] ? `.${showPrice[1]}` : \"\";\r\n }\r\n }\r\n }\r\n if (result.pricing) {\r\n const pricing = result.pricing;\r\n pricing.map((item) => {\r\n // ---\r\n const cards = document.querySelectorAll(`.cards-group.commercial .card-body.card-cc-${ref[item.cc]}`);\r\n Array.from(cards).map((card) => {\r\n if (card) {\r\n // ---\r\n const price = card.querySelector(\".price\");\r\n const showPrice = this.formatPrice(item.price / 12).toString().split(\".\");\r\n if (price) {\r\n // console.log(\"Pricing: \" + ref[item.cc] + \" \" + item.price);\r\n price.querySelector(\".integer\").textContent = showPrice[0];\r\n price.querySelector(\".cent\").textContent = showPrice[1] ? `.${showPrice[1]}` : \"\";\r\n }\r\n // ---\r\n const button = card.parentNode.querySelector(\".payment-send\");\r\n if (token && button && code) {\r\n // href from Profile.js / buySubscription\r\n button.href += code;\r\n }\r\n // ---\r\n const switchTime = card.querySelector(\".switch-time\");\r\n if (switchTime) {\r\n const yearPrice = card.querySelector(\".year-price\");\r\n if (yearPrice) {\r\n yearPrice.textContent = this.formatPrice(item.price).toString().split(\".\");\r\n }\r\n }\r\n }\r\n });\r\n // ---\r\n const prices = document.querySelectorAll(`.cards-group.commercial .card-body .price-${ref[item.cc]}`);\r\n Array.from(prices).map((price) => {\r\n // ---\r\n console.log(\">> \" + ref[item.cc] + \" \" + item.price);\r\n const showPrice = this.formatPrice(item.price / ((item.cc.indexOf(\".Y\")==1)? 12 : 1) ).toString().split(\".\");\r\n if (price) {\r\n price.querySelector(\".integer\").textContent = showPrice[0];\r\n price.querySelector(\".cent\").textContent = showPrice[1] ? `.${showPrice[1]}` : \"\";\r\n }\r\n // ---\r\n const button = document.querySelectorAll(`.cards-group.commercial .card-body .payment-send-${ref[item.cc]}`);\r\n if (token && button && code) {\r\n button.href += code;\r\n }\r\n // ---\r\n });\r\n // --- pricing.map END\r\n });\r\n // --- \r\n const switchTimesA = document.querySelectorAll(\".cards-group.commercial .card-body .switch-time\");\r\n Array.from(switchTimesA).map((switchTime) => {\r\n switchTime.onclick = null;\r\n switchTime.addEventListener('click', function (event) {\r\n const appleSwitch = switchTime.querySelector(\".apple-switch\");\r\n const isOn = appleSwitch.classList.toggle(\"isOn\");\r\n Array.from(switchTime.parentNode.parentNode.querySelectorAll(\".card-ccm\")).map((o) => { o.style.display = (isOn) ? \"none\" : \"inline-block\"; });\r\n Array.from(switchTime.parentNode.parentNode.querySelectorAll(\".card-ccy\")).map((o) => { o.style.display = (isOn) ? \"inline-block\" : \"none\"; });\r\n }, false);\r\n });\r\n // ---\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n\r\n activateInputPromoCode() {\r\n const _this = this;\r\n document.querySelector(\".promo-code-form input\").value = \"\";\r\n document.querySelector(\".promo-code-form button\").addEventListener(\"click\", () => {\r\n _this.renderSubscriptionData();\r\n });\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Globals from \"../Globals.js\";\r\nimport PageCommon from \"./PageCommon.js\";\r\nimport Playlists from \"./Playlists/Playlists.js\";\r\n\r\nexport default class SearchManager extends PageCommon {\r\n constructor() {\r\n super();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - constructor\");\r\n this.tracks = [];\r\n this.playlists = [];\r\n this.userManager = null;\r\n this.filters = null;\r\n this.pageName = \"\";\r\n\r\n this.dataStructure = {};\r\n\r\n this.searchModeActive = false;\r\n this.currentSearch = \"\";\r\n this.keywords = [];\r\n this.searchResults = [];\r\n this.searchPlaylistResults = [];\r\n this.tagsList = [];\r\n this.tagsDivider = \"&q[]=\";\r\n this.categoriesList = [];\r\n this.categoriesDivider = \"&filters[]=\";\r\n this.enterTyped = false;\r\n }\r\n init({ pageName, dataStructure, userManager }) {\r\n super.init();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - init\");\r\n this.dataStructure = dataStructure;\r\n this.tracks = dataStructure.tracks;\r\n this.playlists = dataStructure.playlists;\r\n this.filters = dataStructure.filters;\r\n this.userManager = userManager;\r\n this.pageName = pageName;\r\n this.searchSetup();\r\n window.localStorage.setItem(\"search_tags\", \"\");\r\n window.localStorage.setItem(\"search_categories\", \"\");\r\n this.setupSavedSearch();\r\n Globals.searchManager = this;\r\n }\r\n\r\n setupSavedSearch() {\r\n const urlParams = this.getUrlParams();\r\n if (!urlParams.get(\"kw\") && (window.location.pathname.indexOf(\"/find-music\") === 0 || window.location.pathname.indexOf(\"/match-video\") === 0)) {\r\n const savedTags = window.sessionStorage.getItem(\"search_tags\");\r\n const savedCategories = window.sessionStorage.getItem(\"search_categories\");\r\n if (savedTags || savedCategories) {\r\n let stringSearch = [];\r\n if (savedTags) stringSearch.push(savedTags);\r\n if (savedCategories) stringSearch.push(savedCategories);\r\n this.searchTracks(stringSearch.join(\",\"), \"tags\");\r\n }\r\n }\r\n }\r\n\r\n getKeywords(search) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - Fetching Keywords\");\r\n fetch(Globals.WS_URL +\"?mode=KEYWORDS&q=\" + window.encodeURIComponent(search))\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - Fetch Keywords OK\");\r\n this.keywords = result.data.keywords;\r\n this.emitEvent(\"keywords_ready\");\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n searchTracks(search, type) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - Searching Tracks\");\r\n document.querySelector(\"#sideMenu\").style.display = \"\";\r\n document.querySelector(\".keywords-list-container\").classList.remove(\"active\");\r\n this.createContentWrapper();\r\n const urlParams = this.getUrlParams();\r\n let query = \"\";\r\n if (search) {\r\n let queryQ = \"\";\r\n let queryFilters = \"\";\r\n search.split(\",\").map((tag) => {\r\n const encodedTag = window.encodeURIComponent(window.decodeURIComponent(tag)).replace(/%20/g, \" \");\r\n if (type === \"tags\") {\r\n queryQ += \"&q[]=\" + encodedTag;\r\n } else if (type === \"filters\") {\r\n queryFilters += \"&filters[]=\" + encodedTag;\r\n }\r\n this.createKeywordSearched(encodedTag, \"tag\");\r\n });\r\n query = `${queryQ}${queryFilters}`;\r\n } else {\r\n query = `${this.categoriesDivider}${this.categoriesList.join(this.categoriesDivider)}${this.tagsDivider}${this.tagsList.join(this.tagsDivider)}`;\r\n }\r\n if (document.querySelector(\".sync-tool\").style.display === \"none\") {\r\n history.pushState(history.state, document.title, `/find-music?kw=${this.tagsList.concat(this.categoriesList).join(\",\")}`);\r\n } else {\r\n history.pushState(history.state, document.title, `/match-video?kw=${this.tagsList.concat(this.categoriesList).join(\",\")}`);\r\n }\r\n if (this.tagsList.length > 0 || this.categoriesList.length > 0) {\r\n document.querySelector(\".fm-searchbar .reset\").style.display = \"\";\r\n }\r\n window.localStorage.setItem(\"search_tags\", this.tagsList);\r\n window.localStorage.setItem(\"search_categories\", this.categoriesList);\r\n window.sessionStorage.setItem(\"search_tags\", this.tagsList);\r\n window.sessionStorage.setItem(\"search_categories\", this.categoriesList);\r\n fetch(Globals.WS_URL +\"?mode=SEARCH\" + query)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"SearchManager - Search Tracks OK\");\r\n this.searchResults = result.data.search;\r\n this.searchPlaylistResults = result.data.search_playlist;\r\n this.emitEvent(\"search_results_ready\");\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n gtag(\r\n \"event\",\r\n (this.categoriesList.length > 0 ? \"{c} \" + this.categoriesList.join(\", \") + \" - \" : \"\") + (this.tagsList.length > 0 ? \"{k} \" + this.tagsList.join(\", \") : \"\"),\r\n { event_category: \"search\", event_label: \"Search\" }\r\n );\r\n }\r\n createContentWrapper() {\r\n const content = document.querySelector(\"#contentWrapper\");\r\n\r\n // if (!this.searchModeActive) {\r\n // setTimeout(() => (content.textContent = \"\"), 100);\r\n\r\n // const tracksListContainer = document.createElement(\"div\");\r\n // tracksListContainer.id = \"tracksSection\";\r\n // tracksListContainer.className = \"fm-section\";\r\n\r\n // const tracksList = document.createElement(\"div\");\r\n // tracksList.className = \"tracks-list\";\r\n // tracksList.innerHTML = `
`;\r\n\r\n // setTimeout(() => content.append(tracksListContainer), 100);\r\n\r\n // tracksListContainer.appendChild(tracksList);\r\n // } else {\r\n // content.querySelector(\"#tracksSection .tracks-list\").innerHTML = `
`;\r\n // }\r\n\r\n document.querySelector(\"#tracksSection\").style.display = \"\";\r\n document.querySelector(\"#tracksSection .fm-section-header\").style.display = \"\";\r\n content.querySelector(\"#tracksSection .tracks-list\").innerHTML = `
`;\r\n\r\n this.resetAllSections();\r\n }\r\n\r\n searchCategory(name) {\r\n const index = this.categoriesList.indexOf(name);\r\n\r\n this.resetAllSections();\r\n\r\n if (index > -1) {\r\n this.removeKeyword(name, \"filter\");\r\n } else {\r\n this.handleKeywordSearched(name, \"filter\");\r\n }\r\n }\r\n\r\n searchSetup() {\r\n const searchbar = document.querySelector(\".fm-searchbar\");\r\n const searchbarInput = searchbar.querySelector(\"input\");\r\n const keywordsContainer = document.querySelector(\".keywords-list-container\");\r\n setTimeout((keywordsContainer.scrollTop = 0), 100);\r\n let selectedDropdownItem = 0;\r\n let selectedItem = null;\r\n const _this = this;\r\n searchbarInput.addEventListener(\"keyup\", (event) => {\r\n event.preventDefault();\r\n _this.currentSearch = event.target.value;\r\n const keyCode = _this.getKeyCode(event);\r\n if (keyCode === \"Enter\") {\r\n if (_this.currentSearch) {\r\n _this.enterTyped = true;\r\n if (selectedItem && selectedDropdownItem > -1) {\r\n return _this.emitEvent(\"click\", null, selectedItem);\r\n } else {\r\n return _this.handleKeywordSearched(_this.currentSearch, \"tag\");\r\n }\r\n }\r\n return;\r\n } else if (keyCode === \"ArrowUp\" || keyCode === \"ArrowDown\") {\r\n const keywordsList = keywordsContainer.querySelectorAll(\".keyword\");\r\n if (keyCode === \"ArrowUp\" && selectedDropdownItem > 0) {\r\n selectedDropdownItem--;\r\n } else if (keyCode === \"ArrowDown\" && selectedDropdownItem < Array.from(keywordsList).length - 1) {\r\n selectedDropdownItem++;\r\n } else {\r\n return;\r\n }\r\n Array.from(keywordsList).map((keyword, index) => {\r\n if (keyword.classList.contains(\"active\")) {\r\n keyword.classList.remove(\"active\");\r\n }\r\n if (index === selectedDropdownItem) {\r\n keyword.classList.add(\"active\");\r\n searchbarInput.value = keyword.textContent;\r\n selectedItem = keyword;\r\n if (selectedItem.offsetTop > keywordsContainer.offsetHeight / 2) {\r\n keywordsContainer.scrollTop = selectedItem.offsetTop - keywordsContainer.offsetHeight / 2;\r\n }\r\n }\r\n });\r\n return;\r\n } else {\r\n _this.enterTyped = false;\r\n selectedDropdownItem = -1;\r\n setTimeout((keywordsContainer.scrollTop = 0), 100);\r\n }\r\n if (keyCode === \"ArrowUp\" || keyCode === \"ArrowDown\" || keyCode === \"ArrowLeft\" || keyCode === \"ArrowRight\") {\r\n return;\r\n }\r\n return _this.getKeywords(event.target.value);\r\n });\r\n const clearButton = searchbar.querySelector(\".reset button\");\r\n clearButton.addEventListener(\"click\", (event) => {\r\n _this.resetSearchList();\r\n if (!event.detail?.disableDefaultSearch) {\r\n return _this.searchTracks();\r\n }\r\n });\r\n if (searchbarInput.value !== \"\") {\r\n searchbar.querySelector(\".reset\").style.display = \"\";\r\n _this.getKeywords(searchbarInput.value);\r\n }\r\n document.addEventListener(\"keywords_ready\", (event) => {\r\n if (!_this.enterTyped) {\r\n _this.showKeywordsList();\r\n }\r\n });\r\n document.addEventListener(\"search_results_ready\", (event) => {\r\n _this.showSearchResults();\r\n });\r\n }\r\n\r\n hideKeywordList(event) {\r\n if (!event.target.classList.contains(\"keywords-list-container\")) {\r\n const container = document.querySelector(\".keywords-list-container\");\r\n container.classList.remove(\"active\");\r\n }\r\n }\r\n\r\n showKeywordsList() {\r\n const container = document.querySelector(\".keywords-list-container\");\r\n const list = container.querySelector(\".keywords-list\");\r\n\r\n list.textContent = \"\";\r\n if (this.currentSearch === \"\" || this.keywords.length === 0) {\r\n container.classList.remove(\"active\");\r\n }\r\n if (this.keywords.length > 0) {\r\n container.classList.add(\"active\");\r\n const modelId = \"#model-keywords-list\";\r\n const item = document.querySelector(`${modelId} .keyword`).cloneNode(true);\r\n this.keywords.map((keyword, index) => {\r\n const element = item.cloneNode(true);\r\n if (index === 0) {\r\n element.classList.add(\"active\");\r\n }\r\n element.textContent = keyword;\r\n const _this = this;\r\n element.addEventListener(\"click\", (event) => {\r\n _this.handleKeywordSearched(keyword, \"tag\");\r\n });\r\n list.appendChild(element);\r\n });\r\n setTimeout((container.scrollTop = 0), 100);\r\n document.body.removeEventListener(\"click\", this.hideKeywordList);\r\n document.body.addEventListener(\"click\", this.hideKeywordList);\r\n }\r\n }\r\n\r\n createKeywordSearched(keyword, prefix) {\r\n const _this = this;\r\n const container = document.querySelector(\".keywords-list-container\");\r\n const keywordsSelected = document.querySelector(\".keywords-selected\");\r\n const modelId = \"#model-keywords-selected\";\r\n const item = document.querySelector(`${modelId} .keyword-selected`).cloneNode(true);\r\n item.id = prefix + \"-\" + _this._normalizza_track_prop(window.decodeURIComponent(keyword));\r\n item.dataset.name = keyword;\r\n item.classList.add(prefix);\r\n item.querySelector(\".keyword-name\").textContent = window.decodeURIComponent(keyword);\r\n item.querySelector(\".remove-btn\").dataset.tag = prefix + \"-\" + _this._normalizza_track_prop(window.decodeURIComponent(keyword));\r\n\r\n item.querySelector(\".remove-btn\").addEventListener(\"click\", (event) => {\r\n _this.removeKeyword(keyword, prefix);\r\n });\r\n\r\n if (prefix === \"tag\") {\r\n _this.tagsList.push(keyword.replace(/%20/g, \" \"));\r\n gtag(\"event\", keyword, { event_category: \"tag\", event_label: \"Tag\" });\r\n } else {\r\n _this.categoriesList.push(keyword.replace(/%20/g, \" \"));\r\n gtag(\"event\", keyword, { event_category: \"category\", event_label: \"Category\" });\r\n }\r\n\r\n keywordsSelected.appendChild(item);\r\n\r\n document.querySelector(\".fm-searchbar input\").setAttribute(\"placeholder\", \"Add keyword to refine your search\");\r\n document.querySelector(\".fm-searchbar input\").value = \"\";\r\n container.classList.remove(\"active\");\r\n }\r\n\r\n handleKeywordSearched(keyword, prefix) {\r\n const _this = this;\r\n const container = document.querySelector(\".keywords-list-container\");\r\n const list = container.querySelector(\".keywords-list\");\r\n\r\n this.createKeywordSearched(window.encodeURIComponent(keyword), prefix);\r\n\r\n list.textContent = \"\";\r\n\r\n return _this.searchTracks();\r\n }\r\n\r\n removeKeyword(keyword, prefix) {\r\n const _this = this;\r\n const tag = document.querySelector(\"#\" + prefix + \"-\" + _this._normalizza_track_prop(window.decodeURIComponent(keyword)));\r\n if (prefix === \"tag\") {\r\n _this.tagsList.splice(_this.tagsList.indexOf(tag.dataset.name), 1);\r\n } else {\r\n _this.categoriesList.splice(_this.categoriesList.indexOf(tag.dataset.name), 1);\r\n _this.filters.totalSelected--;\r\n }\r\n\r\n if (_this.tagsList.length === 0 && _this.categoriesList.length === 0) {\r\n document.querySelector(\".fm-searchbar input\").setAttribute(\"placeholder\", \"Search by typing any keyword\");\r\n const searchbar = document.querySelector(\".fm-searchbar\");\r\n searchbar.querySelector(\".reset\").style.cssText = \";display: none !important;\";\r\n }\r\n\r\n tag.remove();\r\n\r\n const filtersMenuHeader = document.querySelector(\"#filtersMenu .fm-nav-header\");\r\n Array.from(document.querySelectorAll(\"#filtersMenu .nav-item\")).map((filter, index) => {\r\n let counter = filter.querySelectorAll(\"input:checked\").length;\r\n Array.from(filter.querySelectorAll(\".submenu-list .form-check-input\")).map((item) => {\r\n if (item.dataset.name === tag.dataset.name && item.checked) {\r\n item.checked = false;\r\n counter--;\r\n if (counter === 0) {\r\n filtersMenuHeader.querySelector(\".reset\").style.cssText = \";display: none !important;\";\r\n item.closest(\".nav-item\").querySelector(\".badge\").textContent = \"\";\r\n } else {\r\n filtersMenuHeader.querySelector(\".reset\").style.cssText = \";display: flex;\";\r\n item.closest(\".nav-item\").querySelector(\".badge\").textContent = counter;\r\n }\r\n _this.filters.data[index].selected--;\r\n }\r\n });\r\n });\r\n\r\n return _this.searchTracks();\r\n }\r\n\r\n setupPageForSearchResults() {\r\n if (document.querySelector(\"#playlistsSection\")) document.querySelector(\"#playlistsSection\").style.display = \"\";\r\n if (document.querySelector(\"#artistsBlock\")) document.querySelector(\"#artistsBlock\").remove();\r\n if (document.querySelector(\"#producersBlock\")) document.querySelector(\"#producersBlock\").remove();\r\n if (document.querySelector(\"#albumsBlock\")) document.querySelector(\"#albumsBlock\").remove();\r\n }\r\n\r\n showSearchResults() {\r\n if (!this.searchModeActive) {\r\n this.searchModeActive = true;\r\n this.setupPageForSearchResults();\r\n }\r\n\r\n const playlistSection = document.querySelector(\"#playlistsSection\");\r\n playlistSection.textContent = \"\";\r\n if (this.searchPlaylistResults.length > 0) {\r\n playlistSection.style.display = \"\";\r\n\r\n fetch(`${Globals.URL_FETCH_BLOCK}section-playlists-swiper.html`)\r\n .then((data) => data.text())\r\n .then((html) => {\r\n playlistSection.innerHTML = html;\r\n\r\n const playlistItems = this.searchPlaylistResults.reduce((total, id) => {\r\n const playlist = this.playlists.get({ id });\r\n if (playlist) {\r\n total.push(playlist.data);\r\n }\r\n return total;\r\n }, []);\r\n const playlists = new Playlists(playlistItems);\r\n playlists.renderFirstpageList();\r\n window.setSwiper();\r\n\r\n const links = playlistSection.querySelectorAll(\".swiper-slide a\");\r\n this.swapLinksToEvents(links, this.dataStructure, this.userManager);\r\n });\r\n } else {\r\n playlistSection.style.display = \"none\";\r\n }\r\n\r\n const tracksList = document.querySelector(\"#tracksSection .tracks-list\");\r\n\r\n fetch(`${Globals.URL_FETCH_BLOCK}tracks-list.html`)\r\n .then((data) => data.text())\r\n .then((html) => {\r\n tracksList.innerHTML = html;\r\n\r\n const tracksListBody = tracksList.querySelector(\".tracks-list-body\");\r\n tracksListBody.textContent = \"\";\r\n\r\n if (this.searchResults) {\r\n this.searchResults.map((id) => {\r\n const track = this.tracks.get({ id });\r\n if (track) {\r\n tracksListBody.appendChild(this.tracks.getItem(track));\r\n }\r\n });\r\n } else {\r\n this.tracks.renderFirstpageList();\r\n }\r\n\r\n this.emitEvent(\"search_result_rendered\");\r\n });\r\n }\r\n\r\n resetSearchList(list) {\r\n const _this = this;\r\n const searchbar = document.querySelector(\".fm-searchbar\");\r\n searchbar.querySelector(\".reset\").style.cssText = \";display: none !important;\";\r\n if (list === \"tags\") {\r\n Array.from(searchbar.querySelectorAll(\".keywords-selected .keyword-selected.tag\")).map((tag) => {\r\n tag.remove();\r\n });\r\n _this.tagsList = [];\r\n } else if (list === \"filters\") {\r\n Array.from(searchbar.querySelectorAll(\".keywords-selected .keyword-selected.filter\")).map((tag) => {\r\n tag.remove();\r\n });\r\n _this.categoriesList = [];\r\n } else {\r\n searchbar.querySelector(\".keywords-selected\").innerHTML = \"\";\r\n _this.tagsList = [];\r\n _this.categoriesList = [];\r\n }\r\n if (list !== \"tags\") {\r\n _this.filters.data.map((filter) => (filter.selected = 0));\r\n Array.from(document.querySelectorAll(\"#filtersMenu .submenu-list .form-check-input\")).map((item) => {\r\n item.checked = false;\r\n item.closest(\".nav-item\").querySelector(\".badge\").textContent = \"\";\r\n });\r\n document.querySelector(\"#filtersMenu .fm-nav-header .reset\").style.cssText = \";display: none !important;\";\r\n }\r\n document.querySelector(\".fm-searchbar input\").setAttribute(\"placeholder\", \"Search by typing any keyword\");\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"./PageCommon.js\";\r\n\r\nimport Globals from \"../Globals.js\";\r\nimport Pqp from \"../3x1010/Pqp\";\r\n\r\nexport default class PlayerManager extends PageCommon {\r\n constructor() {\r\n super();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PlayerManager - constructor\");\r\n\r\n this.tracks = null;\r\n this.userManager = null;\r\n this.playlists = [];\r\n this.artists = null;\r\n this.albums = null;\r\n\r\n this.track = null;\r\n this.trackElement = null;\r\n this.player = null;\r\n this.mobilePlayer = null;\r\n this.playingInterval = null;\r\n this.initialized = false;\r\n this.mouseMoving = false;\r\n this.autoload = false;\r\n }\r\n init({ tracks, userManager, playlists, artists, albums }) {\r\n super.init();\r\n this.tracks = tracks;\r\n this.userManager = userManager;\r\n this.playlists = playlists;\r\n this.artists = artists;\r\n this.albums = albums;\r\n this.trackEnded = false;\r\n const _this = this;\r\n document.addEventListener(\"track_clicked\", (event) => {\r\n window.localStorage.setItem(\"playing_track_id\", event.detail.id);\r\n _this.player = document.querySelector(\"#playerBlock\");\r\n _this.player.style.cssText = \"\";\r\n _this.mobilePlayer = document.querySelector(\".player-mobile\");\r\n const track = _this.tracks.get({ id: event.detail.id });\r\n\r\n if (track !== _this.track) {\r\n _this.autoload = event.detail.autoload ?? false;\r\n _this.track = track;\r\n try {\r\n _this.track.setupArtistsObject(_this.artists);\r\n _this.trackElement = event.detail.target;\r\n if (document.querySelector(\"#tracksSection .track-item.is-selected\")) {\r\n document.querySelector(\"#tracksSection .track-item.is-selected\").classList.remove(\"is-selected\");\r\n }\r\n if (_this.trackElement) {\r\n event.detail.target.classList.add(\"is-selected\");\r\n }\r\n if (event.detail.source === \"list\") {\r\n _this.sendTrackPlayCount(track);\r\n }\r\n return _this.getFullTrackInfo(event.detail.id);\r\n } catch (e) {\r\n console.log(\"[PlayerManager - Init] Track \" + event.detail.id +\" -- Error: \" + e);\r\n return {};\r\n }\r\n }\r\n\r\n const audio = _this.player.querySelector(\"audio\");\r\n if (audio.paused) {\r\n _this.emitEvent(\"track_play\");\r\n _this.setPlay(audio);\r\n } else {\r\n _this.emitEvent(\"track_pause\");\r\n _this.setPause(audio);\r\n }\r\n });\r\n document.addEventListener(\"video_play\", (event) => {\r\n if (_this.player) {\r\n const audio = _this.player.querySelector(\"audio\");\r\n _this.setPlay(audio);\r\n }\r\n });\r\n document.addEventListener(\"video_pause\", (event) => {\r\n if (_this.player) {\r\n const audio = _this.player.querySelector(\"audio\");\r\n _this.setPause(audio);\r\n }\r\n });\r\n\r\n document.addEventListener(\"audio_forward\", (event) => {\r\n if (_this.player) {\r\n _this.setPlayerTimeDSec(_this.player, +6);\r\n }\r\n });\r\n document.addEventListener(\"audio_backward\", (event) => {\r\n if (_this.player) {\r\n _this.setPlayerTimeDSec(_this.player, -6);\r\n }\r\n });\r\n document.addEventListener(\"audio_next\", (event) => {\r\n if (_this.player) {\r\n this.setNewTrack(\"next\"); \r\n }\r\n });\r\n document.addEventListener(\"audio_prev\", (event) => {\r\n if (_this.player) {\r\n this.setNewTrack(\"prev\");\r\n }\r\n });\r\n\r\n\r\n /* 221229 - Sticky Header */\r\n if (document.querySelector(\".fm-main-content\") && document.querySelector(\".szFindMusicPage\")) {\r\n const h = document.querySelector(\".szHeader\").offsetHeight - 1;\r\n // console.log(\">> \" + h);\r\n if (h > 0) document.querySelector(\".fm-main-content\").style.cssText += \";margin-top:\" + h + \"px\";\r\n }\r\n /* --- */\r\n\r\n }\r\n\r\n getFullTrackInfo(id) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Get full Track Info - Fetching\");\r\n const _this = this;\r\n fetch(`${Globals.WS_URL}?mode=TRACK&track_id=${id}`)\r\n // fetch(`/apisounzone/gettrack/` + id)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Get full Track Info - Fetch Data OK\");\r\n\r\n _this.track.data.Wave = result.data.tracks[0].Wave;\r\n\r\n this.show();\r\n this.trackEnded = false;\r\n if (!this.initialized) {\r\n this.setupEvents();\r\n this.setupTooltip();\r\n this.setupVolume();\r\n this.setupDropdown();\r\n this.initialized = true;\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n\r\n show() {\r\n this.player.classList.add(\"active\");\r\n this.player.querySelector(\".track-name\").textContent = this.track.data.Name;\r\n if (this.track.data.Artists[0]) {\r\n this.player.querySelector(\".track-artist\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(this.track.data.Artists[0].data.Name), [\r\n { key: \"id\", value: this.track.data.Artists[0].data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(this.track.data.Artists[0].data.Format) },\r\n ]);\r\n this.player.querySelector(\".track-artist\").textContent = this.track.data.Artists.map((artist) => artist && artist.data.Name).join(\", \");\r\n // this.player.querySelector(\".track-length\").textContent = this.track.data.MP3.LengthFMT;\r\n }\r\n\r\n const _this = this;\r\n this.drawWave(this.player);\r\n\r\n this.player.querySelector(\"audio\").src = this.track.data.MP3.Url;\r\n this.player.querySelector(\".inside-circle .play-img\").style.display = \"\";\r\n this.player.querySelector(\".inside-circle .pause-img\").style.display = \"none\";\r\n if (!this.initialized) {\r\n this.player.querySelector(\"audio\").addEventListener(\"loadstart\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LOAD START\");\r\n // _this.emitEvent(\"track_pause\");\r\n // _this.setPause(event.target);\r\n });\r\n this.player.querySelector(\"audio\").addEventListener(\"loadeddata\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LOADED DATA\");\r\n _this.updateTotalLength();\r\n _this.updateCurrentTime(this.player);\r\n _this.updateCurrentTime(this.mobilePlayer);\r\n });\r\n this.player.querySelector(\"audio\").addEventListener(\"progress\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PROGRESS\");\r\n });\r\n this.player.querySelector(\"audio\").addEventListener(\"canplay\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"CAN PLAY\");\r\n if (_this.autoload === false) {\r\n _this.emitEvent(\"track_play\");\r\n _this.setPlay(event.target);\r\n }\r\n });\r\n this.player.querySelector(\"audio\").addEventListener(\"canplaythrough\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"CAN PLAY THROUGH\");\r\n if (_this.autoload === false) {\r\n _this.emitEvent(\"track_play\");\r\n _this.setPlay(event.target);\r\n }\r\n });\r\n }\r\n this.player.querySelector(\"audio\").load();\r\n\r\n this.mobilePlayer.querySelector(\".track-item .tl-track\").textContent = this.track.data.Name;\r\n if (this.track.data.Artists[0]) {\r\n this.mobilePlayer.querySelector(\".track-item .tl-artist\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(this.track.data.Artists[0].data.Name), [\r\n { key: \"id\", value: this.track.data.Artists[0].data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(this.track.data.Artists[0].data.Format) },\r\n ]);\r\n this.mobilePlayer.querySelector(\".track-item .tl-artist\").innerHTML = this.track.data.Artists.map((artist) => artist && artist.data.Name).join(\", \");\r\n }\r\n this.mobilePlayer.querySelector(\".player-controls-wrapper .inside-circle .play-img\").style.display = \"\";\r\n this.mobilePlayer.querySelector(\".player-controls-wrapper .inside-circle .pause-img\").style.display = \"none\";\r\n\r\n let image = new Image();\r\n image.alt = this.track.data.Name;\r\n image.className = \"img-fluid\";\r\n const album = this.albums.data.filter((album) => album.data.Tracks.filter((track) => track === this.track.data.ID)[0])[0];\r\n if (!album && this.track.data.Artists[0]) {\r\n image.src = this.track.data.Artists[0].data.Image.Medium;\r\n } else if (album?.data?.Image.Medium) {\r\n image.src = album.data.Image.Medium;\r\n } else {\r\n image = null;\r\n }\r\n if (image) {\r\n this.mobilePlayer.querySelector(\".music-item-thumb .wrapper-img\").appendChild(image);\r\n }\r\n }\r\n\r\n setPlay(audio) {\r\n if (audio.src) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PLAY\");\r\n audio.play().catch((error) => Globals.SHOW_ALL_CONSOLE_LOG && console.log(\"ERROR\", error));\r\n if (!audio.paused) {\r\n this.startIntervalManager(this);\r\n this.player.querySelector(\".inside-circle .play-img\").style.display = \"none\";\r\n this.player.querySelector(\".inside-circle .pause-img\").style.display = \"\";\r\n this.mobilePlayer.querySelector(\".inside-circle .play-img\").style.display = \"none\";\r\n this.mobilePlayer.querySelector(\".inside-circle .pause-img\").style.display = \"\";\r\n if (document.querySelector(\".tracks-list .track-item.is-playing\")) {\r\n document.querySelector(\".tracks-list .track-item.is-playing\").classList.remove(\"is-playing\");\r\n }\r\n if (document.querySelector(\".tracks-list .track-item.is-selected\")) {\r\n document.querySelector(\".tracks-list .track-item.is-selected\").classList.add(\"is-playing\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n setPause(audio) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PAUSE\");\r\n clearInterval(this.playingInterval);\r\n audio.pause();\r\n this.player.querySelector(\".inside-circle .play-img\").style.display = \"\";\r\n this.player.querySelector(\".inside-circle .pause-img\").style.display = \"none\";\r\n this.player.querySelector(\".player-controls-wrapper .circle-wrap\").classList.remove(\"is-selected\");\r\n this.mobilePlayer.querySelector(\".inside-circle .play-img\").style.display = \"\";\r\n this.mobilePlayer.querySelector(\".inside-circle .pause-img\").style.display = \"none\";\r\n this.mobilePlayer.querySelector(\".player-controls-wrapper .circle-wrap\").classList.remove(\"is-selected\");\r\n if (document.querySelector(\".tracks-list .track-item.is-playing\")) {\r\n document.querySelector(\".tracks-list .track-item.is-playing\").classList.remove(\"is-playing\");\r\n }\r\n }\r\n\r\n setupEvents() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PlayerManager - setupEvents\");\r\n const wrapper = this.player.querySelector(\".player-controls-wrapper\");\r\n const audio = this.player.querySelector(\"audio\");\r\n wrapper.querySelector(\".prev\").addEventListener(\"click\", (event) => {\r\n this.setNewTrack(\"prev\");\r\n });\r\n wrapper.querySelector(\".next\").addEventListener(\"click\", (event) => {\r\n this.setNewTrack(\"next\");\r\n });\r\n wrapper.querySelector(\".play\").addEventListener(\"click\", (event) => {\r\n if (!audio.paused) {\r\n this.emitEvent(\"track_pause\");\r\n return this.setPause(audio);\r\n }\r\n this.setPlay(audio);\r\n this.emitEvent(\"track_play\");\r\n });\r\n\r\n const reduceBtn = this.mobilePlayer.querySelector(\".reduce-btn\");\r\n reduceBtn.addEventListener(\"click\", (event) => {\r\n this.mobilePlayer.classList.toggle(\"player-mobile--closed\");\r\n setTimeout(() => {\r\n this.drawWave(this.mobilePlayer);\r\n }, 200);\r\n });\r\n const mobileTrackTitle = this.mobilePlayer.querySelector(\".tl-track\");\r\n mobileTrackTitle.addEventListener(\"click\", (event) => {\r\n this.mobilePlayer.classList.toggle(\"player-mobile--closed\");\r\n setTimeout(() => {\r\n this.drawWave(this.mobilePlayer);\r\n }, 200);\r\n });\r\n const mobileTrackArtist = this.mobilePlayer.querySelector(\".tl-artist\");\r\n mobileTrackArtist.addEventListener(\"click\", (event) => {\r\n this.mobilePlayer.classList.toggle(\"player-mobile--closed\");\r\n setTimeout(() => {\r\n this.drawWave(this.mobilePlayer);\r\n }, 200);\r\n });\r\n\r\n const wrapperMobile = this.mobilePlayer.querySelector(\".player-controls-wrapper\");\r\n wrapperMobile.querySelector(\".prev\").addEventListener(\"click\", (event) => {\r\n this.setNewTrack(\"prev\");\r\n });\r\n wrapperMobile.querySelector(\".next\").addEventListener(\"click\", (event) => {\r\n this.setNewTrack(\"next\");\r\n });\r\n wrapperMobile.querySelector(\".play\").addEventListener(\"click\", (event) => {\r\n if (!audio.paused) {\r\n this.emitEvent(\"track_pause\");\r\n return this.setPause(audio);\r\n }\r\n this.setPlay(audio);\r\n this.emitEvent(\"track_play\");\r\n });\r\n\r\n this.emitEvent(\"player_ready\");\r\n }\r\n\r\n startIntervalManager(_this) {\r\n const audio = _this.player.querySelector(\"audio\");\r\n if (audio.paused) {\r\n const wrapper = _this.player.querySelector(\".player-controls-wrapper\");\r\n wrapper.querySelector(\".circle-wrap\").classList.add(\"is-selected\");\r\n }\r\n _this.updateCurrentTime(_this.player);\r\n _this.updateCurrentTime(_this.mobilePlayer);\r\n _this.updateCircleProgress(_this.player);\r\n _this.updateCircleProgress(_this.mobilePlayer);\r\n _this.playingInterval = setInterval(() => {\r\n _this.updateCurrentTime(_this.player);\r\n _this.updateCurrentTime(_this.mobilePlayer);\r\n _this.updateCircleProgress(_this.player);\r\n _this.updateCircleProgress(_this.mobilePlayer);\r\n }, 1000);\r\n }\r\n\r\n updateCurrentTime(player) {\r\n const audio = this.player.querySelector(\"audio\");\r\n player.querySelector(\".player-current-time\").textContent = this.formatTime(audio.currentTime);\r\n if (audio.currentTime === audio.duration) {\r\n if (!this.trackEnded) {\r\n this.trackEnded = true;\r\n clearInterval(this.playingInterval);\r\n this.setNewTrack(\"next\");\r\n }\r\n }\r\n }\r\n\r\n updateCircleProgress(player) {\r\n const wrapper = player.querySelector(\".player-controls-wrapper\");\r\n const audio = this.player.querySelector(\"audio\");\r\n const deg = (360 * (audio.currentTime / audio.duration)) / 2;\r\n wrapper.querySelector(\".circle-wrap .circle .mask.full\").style.transform = `rotate(${deg}deg)`;\r\n wrapper.querySelector(\".circle-wrap .circle .mask .fill\").style.transform = `rotate(${deg}deg)`;\r\n wrapper.querySelector(\".circle-wrap .circle .half .fill\").style.transform = `rotate(${deg}deg)`;\r\n\r\n const wave = player.querySelector(\".wave\");\r\n const x = (wave.getBoundingClientRect().width * audio.currentTime) / parseInt(audio.duration);\r\n wave.querySelector(\".cont2\").style.width = `${x}px`;\r\n }\r\n\r\n updateTotalLength() {\r\n const audio = this.player.querySelector(\"audio\");\r\n this.player.querySelector(\".track-length\").textContent = this.formatTime(audio.duration);\r\n this.mobilePlayer.querySelector(\".track-length\").textContent = this.formatTime(audio.duration);\r\n }\r\n\r\n setupTooltip() {\r\n const container = this.player.querySelector(\".wave-container\");\r\n const wave = container.querySelector(\".wave\");\r\n const tooltip = container.querySelector(\".tooltip\");\r\n wave.addEventListener(\"mousemove\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, wave);\r\n this.setTooltipPosition(x);\r\n });\r\n wave.addEventListener(\"mouseenter\", (event) => {\r\n tooltip.style.opacity = 1;\r\n });\r\n wave.addEventListener(\"mouseleave\", (event) => {\r\n this.setTooltipPosition(0);\r\n tooltip.style.opacity = 0;\r\n });\r\n wave.addEventListener(\"click\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, wave);\r\n this.setPlayerTime(this.player, x);\r\n });\r\n\r\n const mobileContainer = this.mobilePlayer.querySelector(\".wave-container\");\r\n const mobileWave = mobileContainer.querySelector(\".wave\");\r\n const mobileTooltip = mobileContainer.querySelector(\".tooltip\");\r\n mobileWave.addEventListener(\"mousemove\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, mobileWave);\r\n this.setTooltipPosition(x);\r\n });\r\n mobileWave.addEventListener(\"mouseenter\", (event) => {\r\n mobileTooltip.style.opacity = 1;\r\n });\r\n mobileWave.addEventListener(\"mouseleave\", (event) => {\r\n this.setTooltipPosition(0);\r\n mobileTooltip.style.opacity = 0;\r\n });\r\n mobileWave.addEventListener(\"click\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, mobileWave);\r\n this.setPlayerTime(this.mobilePlayer, x);\r\n });\r\n }\r\n\r\n setPlayerTime(player, x) {\r\n const container = player.querySelector(\".wave-container\");\r\n const wave = container.querySelector(\".wave\");\r\n const audio = this.player.querySelector(\"audio\");\r\n const time = (parseInt(audio.duration) * x) / wave.getBoundingClientRect().width;\r\n audio.currentTime = time;\r\n if (audio.paused) {\r\n this.setPlay(audio);\r\n this.emitEvent(\"track_play\");\r\n }\r\n }\r\n\r\n setPlayerTimePerc(player, np) {\r\n const audio = this.player.querySelector(\"audio\");\r\n audio.currentTime = audio.duration * np;\r\n if (audio.paused) {\r\n this.setPlay(audio);\r\n this.emitEvent(\"track_play\");\r\n }\r\n }\r\n\r\n setPlayerTimeDSec(player, sv) {\r\n const audio = this.player.querySelector(\"audio\");\r\n audio.currentTime += sv;\r\n if (audio.paused) {\r\n this.setPlay(audio);\r\n this.emitEvent(\"track_play\");\r\n }\r\n }\r\n\r\n setTooltipPosition(x) {\r\n const container = this.player.querySelector(\".wave-container\");\r\n const wave = container.querySelector(\".wave\");\r\n const tooltip = container.querySelector(\".tooltip\");\r\n\r\n const audio = this.player.querySelector(\"audio\");\r\n const positionTime = (parseInt(audio.duration) * x) / wave.getBoundingClientRect().width;\r\n\r\n const tooltipTime = this.formatTime(positionTime);\r\n\r\n tooltip.style.transform = `translateX(${x}px)`;\r\n tooltip.querySelector(\".time\").textContent = tooltipTime;\r\n wave.querySelector(\".cont3\").style.width = `${x}px`;\r\n\r\n const mobileContainer = this.mobilePlayer.querySelector(\".wave-container\");\r\n const mobileWave = mobileContainer.querySelector(\".wave\");\r\n const mobileTooltip = mobileContainer.querySelector(\".tooltip\");\r\n\r\n const mobilePositionTime = (parseInt(audio.duration) * x) / mobileWave.getBoundingClientRect().width;\r\n const mobileTooltipTime = this.formatTime(mobilePositionTime);\r\n\r\n mobileTooltip.style.transform = `translateX(${x}px)`;\r\n mobileTooltip.querySelector(\".time\").textContent = mobileTooltipTime;\r\n mobileWave.querySelector(\".cont3\").style.width = `${x}px`;\r\n }\r\n\r\n setupVolume() {\r\n const audio = this.player.querySelector(\"audio\");\r\n const wrapper = this.player.querySelector(\".player-volume-wrapper\");\r\n const volumeContainer = wrapper.querySelector(\".volume-bar-container\");\r\n const volumeBar = volumeContainer.querySelector(\".volume-bar\");\r\n const volumeLevel = volumeBar.getBoundingClientRect().width / volumeContainer.getBoundingClientRect().width;\r\n if (volumeLevel > 0) {\r\n audio.volume = volumeLevel;\r\n }\r\n wrapper.addEventListener(\"click\", (event) => {\r\n this.setVolume(event, volumeContainer, audio);\r\n });\r\n wrapper.addEventListener(\"mousedown\", (event) => {\r\n this.mouseMoving = true;\r\n });\r\n wrapper.addEventListener(\"mouseup\", (event) => {\r\n this.mouseMoving = false;\r\n });\r\n wrapper.addEventListener(\"mouseleave\", (event) => {\r\n this.mouseMoving = false;\r\n });\r\n wrapper.addEventListener(\"mousemove\", (event) => {\r\n if (this.mouseMoving) {\r\n this.setVolume(event, volumeContainer, audio);\r\n }\r\n });\r\n }\r\n\r\n setVolume(event, volumeContainer, audio) {\r\n const volumeBar = volumeContainer.querySelector(\".volume-bar\");\r\n const { x, y } = this.getMouseCoordinate(event, volumeContainer);\r\n let volume = x / volumeContainer.getBoundingClientRect().width;\r\n volumeBar.style.width = `${volume * 100}%`;\r\n if (volume < 0) volume = 0;\r\n else if (volume > 1) volume = 1;\r\n audio.volume = volume;\r\n }\r\n\r\n setNewTrack(button) {\r\n if (this.trackElement) {\r\n const prevTrack = this.trackElement.previousSibling;\r\n const nextTrack = this.trackElement.nextSibling;\r\n let target = prevTrack;\r\n if (button === \"next\") {\r\n target = nextTrack;\r\n }\r\n if (target) {\r\n this.trackElement.classList.remove(\"is-selected\");\r\n this.trackElement.classList.remove(\"is-playing\");\r\n this.emitEvent(\"track_clicked\", { detail: { id: target.dataset.id, target } });\r\n }\r\n }\r\n }\r\n\r\n setupDropdown() {\r\n const _this = this;\r\n\r\n this.player.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n this.player.querySelector(\".dropdown .icon-plus\").addEventListener(\"click\", (event) => {\r\n this.player.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n });\r\n\r\n // this.player.querySelector(\".dropdown .dropdown-menu .add-to-playlist\").addEventListener(\"click\", (event) => {\r\n // event.preventDefault();\r\n // event.stopPropagation();\r\n // this.player.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.toggle(\"show\");\r\n // });\r\n\r\n let menuItem = jQuery(this.player.querySelector(\".dropdown .dropdown-menu .add-to-playlist\"));\r\n let menuItemToShow = jQuery(this.player.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\")).show();\r\n this.menuItemToShowStatus = false;\r\n menuItemToShow.on(\"mouseenter\", () => {\r\n this.menuItemToShowStatus = true;\r\n });\r\n menuItemToShow.on(\"mouseleave\", () => {\r\n this.menuItemToShowStatus = false;\r\n menuItemToShow.hide();\r\n });\r\n if (Pqp.isMobile()) {\r\n menuItem.on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (menuItemToShow.is(\":visible\")) {\r\n menuItemToShow.hide();\r\n } else {\r\n menuItemToShow.show();\r\n }\r\n });\r\n } else {\r\n menuItem.on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n }\r\n if (!Pqp.isMobile()) {\r\n menuItem.on(\"mouseenter\", () => {\r\n menuItemToShow.show();\r\n });\r\n menuItem.on(\"mouseleave\", () => {\r\n requestAnimationFrame(() => {\r\n if (!this.menuItemToShowStatus) {\r\n menuItemToShow.hide();\r\n }\r\n });\r\n });\r\n }\r\n menuItemToShow.hide();\r\n\r\n this.player.querySelector(\".dropdown .dropdown-submenu .create-link\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (_this.userManager.userLogged) {\r\n jQuery(\"#playlistModal\").modal(\"show\");\r\n document.querySelector(\"#playlistModal input[name=plTrackId]\").value = _this.track.data.ID;\r\n } else {\r\n jQuery(\"#notLoggedModal\").modal(\"show\");\r\n }\r\n });\r\n\r\n this.player.querySelector(\".dropdown .dropdown-menu .licenses-add\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n _this.emitEvent(\"add_track_to_licenses\", { detail: { track: _this.track.data } });\r\n });\r\n\r\n this.player.querySelector(\".dropdown .dropdown-menu .download\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (_this.userManager.userLogged) {\r\n _this.requestDownload(_this.userManager, _this.track.data);\r\n } else {\r\n // jQuery(\"#notLoggedModal\").modal(\"show\");\r\n window.location.href = \"/pricing\";\r\n }\r\n });\r\n\r\n this.player.querySelector(\".dropdown .dropdown-menu .match-video\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n _this.emitEvent(\"match_video_to_track\", { detail: { track: _this.track.data } });\r\n // if (_this.userManager.userLogged) {\r\n // _this.emitEvent(\"match_video_to_track\", { detail: { track: _this.track.data } });\r\n // } else {\r\n // jQuery(\"#notLoggedModal\").modal(\"show\");\r\n // }\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n this.mobilePlayer.querySelector(\".dropdown .icon-plus\").addEventListener(\"click\", (event) => {\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.remove(\"show\");\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .add-to-playlist\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .dropdown-playlist\").classList.toggle(\"show\");\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-submenu .create-link\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (_this.userManager.userLogged) {\r\n jQuery(\"#playlistModal\").modal(\"show\");\r\n document.querySelector(\"#playlistModal input[name=plTrackId]\").value = _this.track.data.ID;\r\n } else {\r\n jQuery(\"#notLoggedModal\").modal(\"show\");\r\n }\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .licenses-add\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n _this.emitEvent(\"add_track_to_licenses\", { detail: { track: _this.track.data } });\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .download\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (_this.userManager.userLogged) {\r\n _this.requestDownload(_this.userManager, _this.track.data);\r\n } else {\r\n // jQuery(\"#notLoggedModal\").modal(\"show\");\r\n window.location.href = \"/pricing\";\r\n }\r\n });\r\n\r\n this.mobilePlayer.querySelector(\".dropdown .dropdown-menu .match-video\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n window.location.href = \"/match-video-mobile\";\r\n });\r\n\r\n this.updateDropdown();\r\n }\r\n\r\n updateDropdown() {\r\n const _this = this;\r\n if (this.player && this.mobilePlayer) {\r\n let list = this.player.querySelector(\".dropdown .dropdown-myplaylists\");\r\n list.textContent = \"\";\r\n let mobileList = this.mobilePlayer.querySelector(\".dropdown .dropdown-myplaylists\");\r\n mobileList.textContent = \"\";\r\n if (this.userManager.userPlaylists.length > 0) {\r\n const userPlaylists = this.playlists.getAddTrackMyPlaylistList(this.userManager);\r\n userPlaylists.map((playlist) => {\r\n const item = playlist.cloneNode(true);\r\n const button = item.querySelector(\"a\");\r\n button.addEventListener(\"click\", (event) => {\r\n this.playlists.addTrackToPlaylist(event.currentTarget.dataset.id, this.track.data);\r\n });\r\n list.appendChild(item);\r\n mobileList.appendChild(item.cloneNode(true));\r\n });\r\n const found = this.userManager.userPlaylists.filter((playlist) => playlist.Tracks.indexOf(this.track.data.ID) > -1);\r\n if (found.length === 0) {\r\n this.player.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n this.mobilePlayer.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n } else {\r\n if (this.player.querySelector(\".remove-playlist .remove-link\")) {\r\n this.player.querySelector(\".remove-playlist .remove-link\").addEventListener(\"click\", (event) => {\r\n _this.playlists.showRemoveTrackDialog(_this.track.data.ID, found[0]);\r\n });\r\n }\r\n if (this.mobilePlayer.querySelector(\".remove-playlist .remove-link\")) {\r\n this.mobilePlayer.querySelector(\".remove-playlist .remove-link\").addEventListener(\"click\", (event) => {\r\n _this.playlists.showRemoveTrackDialog(_this.track.data.ID, found[0]);\r\n });\r\n }\r\n }\r\n } else {\r\n this.player.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n this.mobilePlayer.querySelectorAll(\".remove-playlist\").forEach((el) => (el.style.display = \"none\"));\r\n }\r\n }\r\n }\r\n\r\n drawWave(player) {\r\n var waveWidth = 1024;\r\n var waveHeight = 64;\r\n var waveBarW = 1;\r\n var waveMaxBars = Math.round(waveWidth / waveBarW);\r\n var waveA = new Array();\r\n\r\n const decodedWave = atob(this.track.data.Wave);\r\n\r\n for (let k = 0; k < decodedWave.length; k++) {\r\n waveA.push(decodedWave.charCodeAt(k));\r\n }\r\n\r\n let colw = player.querySelector(\".wave\").getBoundingClientRect().width;\r\n\r\n var waveCurBars = Math.floor(colw / waveBarW);\r\n if (waveCurBars > waveWidth) {\r\n waveCurBars = waveWidth;\r\n }\r\n\r\n var wbit = Math.floor(waveWidth / waveCurBars);\r\n player.querySelector(\".wave\").setAttribute(\"wbit\", wbit);\r\n\r\n var canvas = document.getElementById(\"waveCanvas\");\r\n var cw = (canvas.width = player.querySelector(\".wave\").getBoundingClientRect().width);\r\n var ch = (canvas.height = 64);\r\n\r\n var ctx = canvas.getContext(\"2d\");\r\n\r\n var contStyleA = [\"\", \"rgb(254,195,196)\", \"rgb(253,132,136)\", \"rgb(253,76,87)\"];\r\n\r\n var a = 0.9;\r\n var contStyleB = [\"\", \"rgba(254,195,196,\" + a + \")\", \"rgba(253,132,136,\" + a + \")\", \"rgba(253,76,87,\" + a + \")\"];\r\n\r\n for (var ck = 1; ck < 4; ck++) {\r\n ctx.fillStyle = \"rgba(0,0,0,0)\";\r\n ctx.fillRect(0, 0, cw, ch);\r\n\r\n ctx.fillStyle = contStyleA[ck];\r\n\r\n for (let k = 0; k < colw; k++) {\r\n ctx.fillStyle = k % 4 == 3 ? contStyleB[ck] : contStyleA[ck];\r\n\r\n let t;\r\n // Average\r\n let v = 0;\r\n for (let q = 0; q < wbit; q++) {\r\n t = Math.floor((waveWidth * k) / colw);\r\n t = t < 0 ? 0 : t >= waveA.length ? waveA.length - 1 : t;\r\n v += waveA[t];\r\n }\r\n v = v / wbit;\r\n // Max\r\n let e = 0;\r\n for (let q = 0; q < wbit; q++) {\r\n t = Math.floor((waveWidth * k) / colw);\r\n t = t < 0 ? 0 : t >= waveA.length ? waveA.length - 1 : t;\r\n if (waveA[t] > e) e = waveA[t];\r\n }\r\n\r\n t = (v + e) / 2;\r\n\r\n v = waveHeight - v / 2;\r\n // ---\r\n if (waveBarW == 1) {\r\n ctx.fillRect(k * waveBarW, v, 1, waveHeight - v + waveBarW * 2);\r\n } else {\r\n ctx.roundRect(k * waveBarW, v, waveBarW - 1, waveHeight - v + waveBarW * 2, 1.5).fill();\r\n }\r\n }\r\n\r\n var dataUrl = canvas.toDataURL();\r\n player.querySelector(\".wave .cont\" + ck).style.backgroundImage = \"url(\" + dataUrl + \")\";\r\n if (ck !== 1) {\r\n player.querySelector(\".wave .cont\" + ck).style.width = \"0px\";\r\n }\r\n }\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n }\r\n\r\n sendTrackPlayCount(track) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PlayerManager - Sending Track play count\");\r\n const token = this.getCookie(\"user_token\");\r\n fetch(`${Globals.WS_URL}?mode=TRACK.PLAY&token=${token}&track_id=${track.data.ID}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PlayerManager - Track play count OK\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport Pqp from \"../../3x1010/Pqp\";\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nimport Globals from \"../../Globals.js\";\r\n\r\nexport default class Profile extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {};\r\n this.subscriptionType = [\r\n {\r\n type: \"1\",\r\n name: \"Free Trial\",\r\n },\r\n {\r\n type: \"2\",\r\n name: \"Standard\",\r\n },\r\n {\r\n type: \"4\",\r\n name: \"Pro\",\r\n },\r\n {\r\n type: \"5\",\r\n name: \"Enterprise\",\r\n },\r\n ];\r\n this.tracks = null;\r\n this.artists = null;\r\n this.countries = null;\r\n this.paymentUrl = {\r\n return_url_ok: `${window.location.origin}/thank-you?payment=OK`,\r\n return_url_err: `${window.location.origin}/profile?payment=ERROR`,\r\n };\r\n }\r\n init({ user, tracks, artists, countries }) {\r\n super.init();\r\n if (user) {\r\n user.subscriptions.sort((a, b) => a.dt1 - b.dt1);\r\n }\r\n this.data = user;\r\n this.tracks = tracks;\r\n this.artists = artists;\r\n this.countries = countries;\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n showPage({ payment }) {\r\n if (payment) {\r\n const modal = \"#profileUpdateStatusModal\";\r\n document.querySelector(`${modal} .medium-title`).textContent = \"Subscription\";\r\n if (payment === \"OK\") {\r\n document.querySelector(`${modal} .message`).textContent = \"Payment OK\";\r\n } else {\r\n document.querySelector(`${modal} .message`).textContent = \"Payment ERROR\";\r\n }\r\n jQuery(modal).modal(\"show\");\r\n setTimeout(() => jQuery(modal).modal(\"hide\"), 3000);\r\n }\r\n this.renderPage();\r\n this.setupEvents();\r\n }\r\n\r\n setupEvents() {\r\n const _this = this;\r\n Array.from(document.querySelectorAll(\".user-main-info .btn-edit\")).map((button) => {\r\n button.addEventListener(\"click\", () => {\r\n _this.updateEditModal();\r\n });\r\n });\r\n document.querySelector(\".user-main-info .wrapper-img\").addEventListener(\"click\", () => {\r\n _this.updateEditModal();\r\n });\r\n\r\n const modalId = \"#profileEditModal\";\r\n const modal = document.querySelector(modalId);\r\n modal.querySelector(\".save\").addEventListener(\"click\", () => {\r\n _this.data.first_name = modal.querySelector(\".user-name\").value;\r\n _this.data.last_name = modal.querySelector(\".user-surname\").value;\r\n _this.sendUpdateProfile();\r\n });\r\n modal.querySelector(\".file-input\").addEventListener(\"change\", (event) => {\r\n const preview = modal.querySelector(\".imagePreview\");\r\n const file = event.target.files[0];\r\n this.avatarFile = file;\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n preview.style.backgroundImage = `url('${event.target.result}')`;\r\n this.data.avatar = event.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n\r\n Array.from(document.querySelectorAll(\".form-control\")).map((item) => {\r\n if (item.tagName === \"INPUT\") {\r\n item.addEventListener(\"keyup\", (event) => {\r\n event.target.parentElement.style.color = \"\";\r\n if (event.target.value === \"\" && event.target.required) {\r\n event.target.parentElement.style.color = \"red\";\r\n }\r\n });\r\n } else if (item.tagName === \"SELECT\") {\r\n item.addEventListener(\"change\", (event) => {\r\n event.target.parentElement.style.color = \"\";\r\n if (event.target.value === \"\" && event.target.required) {\r\n event.target.parentElement.style.color = \"red\";\r\n }\r\n });\r\n }\r\n });\r\n\r\n document.querySelector(\".user-company-info .save\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n\r\n _this.data.social.youtube = document.querySelector(\".social-block .social-youtube input\").value;\r\n _this.data.social.facebook = document.querySelector(\".social-block .social-facebook input\").value;\r\n _this.data.social.instagram = document.querySelector(\".social-block .social-instagram input\").value;\r\n _this.data.social.twitch = document.querySelector(\".social-block .social-twitch input\").value;\r\n _this.data.social.twitter = document.querySelector(\".social-block .social-twitter input\").value;\r\n _this.data.social.tiktok = document.querySelector(\".social-block .social-tiktok input\").value;\r\n\r\n const company = document.querySelector(\".user-company-info\");\r\n _this.data.is_company = company.querySelector(\".account-type select\").value === \"company\" ? 1 : 0;\r\n _this.data.cod_fisc = company.querySelector(\".personal-code input\").value;\r\n _this.data.billing.address = company.querySelector(\".company-address input\").value;\r\n _this.data.billing.zip = company.querySelector(\".company-zipcode input\").value;\r\n _this.data.billing.city = company.querySelector(\".company-city input\").value;\r\n _this.data.billing.country = company.querySelector(\".company-country select\").value;\r\n _this.data.company.name = company.querySelector(\".company-name input\").value;\r\n _this.data.company.vat = company.querySelector(\".company-vat input\").value;\r\n _this.data.company.fe_code = company.querySelector(\".company-code input\").value;\r\n _this.data.company.pec = company.querySelector(\".company-pec input\").value;\r\n let errorFlag = false;\r\n if (_this.data.billing.country === \"\") {\r\n company.querySelector(\".company-country\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.is_company) {\r\n if (_this.data.company.name === \"\") {\r\n company.querySelector(\".company-name\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.is_italy || _this.data.is_eurozone) {\r\n if (_this.data.billing.address === \"\") {\r\n company.querySelector(\".company-address\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.billing.zip === \"\") {\r\n company.querySelector(\".company-zipcode\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.billing.city === \"\") {\r\n company.querySelector(\".company-city\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.company.vat === \"\") {\r\n company.querySelector(\".company-vat\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n }\r\n if (_this.data.is_italy) {\r\n if (_this.data.company.fe_code === \"\") {\r\n company.querySelector(\".company-code\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n if (_this.data.company.pec === \"\") {\r\n company.querySelector(\".company-pec\").style.color = \"red\";\r\n errorFlag = true;\r\n }\r\n }\r\n }\r\n if (!errorFlag) {\r\n _this.sendUpdateProfile();\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n renderPage() {\r\n this.renderDetails();\r\n this.renderCompany();\r\n this.renderSubscriptions();\r\n this.renderLicenses();\r\n this.renderDownloads();\r\n }\r\n\r\n renderDetails() {\r\n const detail = document.querySelector(\".user-main-info\");\r\n const image = detail.querySelector(\".wrapper-img\");\r\n const name = detail.querySelector(\".user-name\");\r\n const email = detail.querySelector(\".user-email\");\r\n\r\n name.textContent = `${this.data.first_name} ${this.data.last_name}`;\r\n email.textContent = this.data.email;\r\n\r\n if (image.querySelector(\"img\")) {\r\n image.querySelector(\"img\").src = this.data.avatar;\r\n } else {\r\n const imageEl = new Image();\r\n imageEl.src = this.data.avatar;\r\n image.appendChild(imageEl);\r\n }\r\n\r\n // ---\r\n\r\n const social_block = document.querySelector(\".social-block\");\r\n social_block.querySelector(\".social-youtube input\").value = this.data.social.youtube;\r\n social_block.querySelector(\".social-facebook input\").value = this.data.social.facebook;\r\n social_block.querySelector(\".social-instagram input\").value = this.data.social.instagram;\r\n social_block.querySelector(\".social-twitch input\").value = this.data.social.twitch;\r\n social_block.querySelector(\".social-twitter input\").value = this.data.social.twitter;\r\n social_block.querySelector(\".social-tiktok input\").value = this.data.social.tiktok;\r\n\r\n // ---\r\n\r\n }\r\n\r\n renderCompany() {\r\n const company = document.querySelector(\".user-company-info\");\r\n const accountType = company.querySelector(\".account-type select\");\r\n const personalCode = company.querySelector(\".personal-code input\");\r\n const companyAddress = company.querySelector(\".company-address input\");\r\n const companyZipcode = company.querySelector(\".company-zipcode input\");\r\n const companyCity = company.querySelector(\".company-city input\");\r\n const companyCountry = company.querySelector(\".company-country select\");\r\n const companyName = company.querySelector(\".company-name input\");\r\n const companyVat = company.querySelector(\".company-vat input\");\r\n const companyCode = company.querySelector(\".company-code input\");\r\n const companyPec = company.querySelector(\".company-pec input\");\r\n\r\n this.countries.map((country) => {\r\n const option = document.createElement(\"option\");\r\n option.value = country.ID;\r\n option.textContent = country.Name;\r\n companyCountry.appendChild(option);\r\n });\r\n\r\n this.handleFields();\r\n\r\n accountType.value = this.data.is_company ? \"company\" : \"private\";\r\n personalCode.value = this.data.cod_fisc;\r\n companyAddress.value = this.data.billing.address;\r\n companyZipcode.value = this.data.billing.zip;\r\n companyCity.value = this.data.billing.city;\r\n companyCountry.value = this.data.billing.country;\r\n companyName.value = this.data.company.name;\r\n companyVat.value = this.data.company.vat;\r\n companyCode.value = this.data.company.fe_code;\r\n companyPec.value = this.data.company.pec;\r\n\r\n accountType.addEventListener(\"change\", (event) => {\r\n this.data.is_company = event.currentTarget.value === \"company\" ? 1 : 0;\r\n this.handleFields();\r\n });\r\n companyCountry.addEventListener(\"change\", (event) => {\r\n if (event.currentTarget.value) {\r\n const country = this.countries.filter((item) => item.ID == event.currentTarget.value)[0];\r\n if (country) {\r\n this.data.is_italy = country.Name === \"Italy\" ? 1 : 0;\r\n this.data.is_eurozone = country.euro_zone ? 1 : 0;\r\n this.handleFields();\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cProfile - Can't find country\", \"color: red\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n handleFields() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cProfile - Handle data changed\", \"color: orange\", this.data);\r\n const company = document.querySelector(\".user-company-info\");\r\n company.querySelector(\".account-type\").style.display = \"none\";\r\n company.querySelector(\".personal-code\").style.display = \"none\";\r\n company.querySelector(\".company-address\").style.display = \"none\";\r\n company.querySelector(\".company-address .required\").style.display = \"none\";\r\n company.querySelector(\".company-address input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-zipcode\").style.display = \"none\";\r\n company.querySelector(\".company-zipcode .required\").style.display = \"none\";\r\n company.querySelector(\".company-zipcode input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-city\").style.display = \"none\";\r\n company.querySelector(\".company-city .required\").style.display = \"none\";\r\n company.querySelector(\".company-city input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-country\").style.display = \"none\";\r\n company.querySelector(\".company-country select\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-name\").style.display = \"none\";\r\n company.querySelector(\".company-name input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-vat\").style.display = \"none\";\r\n company.querySelector(\".company-vat input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-code\").style.display = \"none\";\r\n company.querySelector(\".company-code input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-pec\").style.display = \"none\";\r\n company.querySelector(\".company-pec input\").removeAttribute(\"required\");\r\n company.querySelector(\".company-block\").style.display = \"\";\r\n if (this.data.is_company && this.data.is_italy) {\r\n company.querySelector(\".account-type\").style.display = \"\";\r\n company.querySelector(\".company-address\").style.display = \"\";\r\n company.querySelector(\".company-address .required\").style.display = \"\";\r\n company.querySelector(\".company-address input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-zipcode\").style.display = \"\";\r\n company.querySelector(\".company-zipcode .required\").style.display = \"\";\r\n company.querySelector(\".company-zipcode input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-city\").style.display = \"\";\r\n company.querySelector(\".company-city .required\").style.display = \"\";\r\n company.querySelector(\".company-city input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-country\").style.display = \"\";\r\n company.querySelector(\".company-name\").style.display = \"\";\r\n company.querySelector(\".company-name input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-vat\").style.display = \"\";\r\n company.querySelector(\".company-vat input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-code\").style.display = \"\";\r\n company.querySelector(\".company-code input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-pec\").style.display = \"\";\r\n company.querySelector(\".company-pec input\").setAttribute(\"required\", true);\r\n this.data.cod_fisc = \"\";\r\n } else if (this.data.is_company && this.data.is_eurozone) {\r\n company.querySelector(\".account-type\").style.display = \"\";\r\n company.querySelector(\".company-address\").style.display = \"\";\r\n company.querySelector(\".company-address .required\").style.display = \"\";\r\n company.querySelector(\".company-address input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-zipcode\").style.display = \"\";\r\n company.querySelector(\".company-zipcode .required\").style.display = \"\";\r\n company.querySelector(\".company-zipcode input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-city\").style.display = \"\";\r\n company.querySelector(\".company-city .required\").style.display = \"\";\r\n company.querySelector(\".company-city input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-country\").style.display = \"\";\r\n company.querySelector(\".company-name\").style.display = \"\";\r\n company.querySelector(\".company-name input\").setAttribute(\"required\", true);\r\n company.querySelector(\".company-vat\").style.display = \"\";\r\n company.querySelector(\".company-vat input\").setAttribute(\"required\", true);\r\n this.data.cod_fisc = \"\";\r\n this.data.company.fe_code = \"\";\r\n this.data.company.pec = \"\";\r\n } else if (this.data.is_company) {\r\n company.querySelector(\".account-type\").style.display = \"\";\r\n company.querySelector(\".company-address\").style.display = \"\";\r\n company.querySelector(\".company-zipcode\").style.display = \"\";\r\n company.querySelector(\".company-city\").style.display = \"\";\r\n company.querySelector(\".company-country\").style.display = \"\";\r\n company.querySelector(\".company-name\").style.display = \"\";\r\n company.querySelector(\".company-name input\").setAttribute(\"required\", true);\r\n this.data.cod_fisc = \"\";\r\n this.data.company.vat = \"\";\r\n this.data.company.fe_code = \"\";\r\n this.data.company.pec = \"\";\r\n } else if (this.data.is_italy) {\r\n company.querySelector(\".account-type\").style.display = \"\";\r\n company.querySelector(\".personal-code\").style.display = \"\";\r\n company.querySelector(\".company-address\").style.display = \"\";\r\n company.querySelector(\".company-zipcode\").style.display = \"\";\r\n company.querySelector(\".company-city\").style.display = \"\";\r\n company.querySelector(\".company-country\").style.display = \"\";\r\n company.querySelector(\".company-block\").style.display = \"none\";\r\n this.data.company.name = \"\";\r\n this.data.company.vat = \"\";\r\n this.data.company.fe_code = \"\";\r\n this.data.company.pec = \"\";\r\n } else {\r\n company.querySelector(\".account-type\").style.display = \"\";\r\n company.querySelector(\".company-address\").style.display = \"\";\r\n company.querySelector(\".company-zipcode\").style.display = \"\";\r\n company.querySelector(\".company-city\").style.display = \"\";\r\n company.querySelector(\".company-country\").style.display = \"\";\r\n company.querySelector(\".company-block\").style.display = \"none\";\r\n this.data.cod_fisc = \"\";\r\n this.data.company.name = \"\";\r\n this.data.company.vat = \"\";\r\n this.data.company.fe_code = \"\";\r\n this.data.company.pec = \"\";\r\n }\r\n }\r\n\r\n renderSubscriptions() {\r\n const subscriptions = document.querySelector(\".user-sub-info\");\r\n\r\n const subActive = subscriptions.querySelector(\".active-sub\");\r\n subActive.querySelector(\"button\").addEventListener(\"click\", () => {\r\n window.location.href = \"/pricing\";\r\n });\r\n\r\n const subExpire = subscriptions.querySelector(\".expire-sub\");\r\n let lastDateExpired = 0;\r\n if (this.data.autorenew.active) {\r\n const token = this.getCookie(\"user_token\");\r\n let url = `${Globals.WS_URL}?mode=UNSUBSCRIBE&token=${token}&return_url=` + window.location.href;\r\n \r\n subExpire.querySelector(\"button\").addEventListener(\"click\", () => {\r\n if (confirm(\"Are you sure you want to unsubscribe from Sounzone?\")) {\r\n window.location.href = url;\r\n }\r\n });\r\n } else {\r\n subExpire.querySelector(\"label\").innerHTML = \"Subscription expiration date\";\r\n subExpire.querySelector(\"button\").style.display = \"none\";\r\n }\r\n\r\n const subsList = subscriptions.querySelector(\".subs-list\");\r\n\r\n this.data.subscriptions.map((subscription) => {\r\n //const type = this.subscriptionType.filter((type) => type.type === subscription.type)[0];\r\n const type = this.subscriptionType.filter((type) => type.type === \"\" + subscription.type)[0]; // castato a stringa\r\n if (type && type.name) {\r\n const dt1 = this.extractDate(subscription.dt1);\r\n const dt2 = this.extractDate(subscription.dt2);\r\n\r\n if (dt2 > new Date()) {\r\n subActive.querySelector(\".subs-name\").textContent = type.name;\r\n subActive.style.display = \"block\";\r\n subExpire.querySelector(\".subs-expire\").textContent = this.formatDate(dt2);\r\n subExpire.style.display = \"block\";\r\n } else {\r\n /*\r\n if (lastDateExpired === 0 || dt2 < lastDateExpired) {\r\n lastDateExpired = dt2;\r\n subExpire.querySelector(\".subs-expire\").textContent = this.formatDate(dt2);\r\n subExpire.style.display = \"block\";\r\n }\r\n */\r\n }\r\n\r\n const subscriptionItem = document.querySelector(\"#model-profile-subscription-item .subs-item\").cloneNode(true);\r\n subscriptionItem.querySelector(\".name\").textContent = type.name;\r\n if (dt2 > new Date()) {\r\n subscriptionItem.querySelector(\".expired\").textContent = `valid until ${this.formatDate(dt2)}`;\r\n } else {\r\n subscriptionItem.querySelector(\".expired\").textContent = `expired ${this.formatDate(dt2)}`;\r\n }\r\n subsList.appendChild(subscriptionItem);\r\n }\r\n });\r\n }\r\n\r\n renderLicenses() {\r\n const licenses = document.querySelector(\".licenses-history\");\r\n const licensesList = licenses.querySelector(\".tracks-list .tracks-list-body\");\r\n\r\n this.data.orders.map((license) => {\r\n const licenseItem = document.querySelector(\"#model-profile-license-item .track-item\").cloneNode(true);\r\n\r\n licenseItem.querySelector(\".order-number\").textContent = license.id;\r\n licenseItem.querySelector(\".order-tracks\").textContent = license.tracks > 1 ? `${license.tracks} Tracks` : `${license.tracks} Track`;\r\n licenseItem.querySelector(\".order-license-type\").textContent = license.license;\r\n licenseItem.querySelector(\".order-price\").textContent = `€ ${license.tot}`;\r\n licenseItem.querySelector(\".tl-actions a\").href = license.pdf;\r\n\r\n licensesList.appendChild(licenseItem);\r\n });\r\n }\r\n\r\n renderDownloads() {\r\n const downloads = document.querySelector(\".downloads-history\");\r\n const downloadsList = downloads.querySelector(\".tracks-list .tracks-list-body\");\r\n\r\n this.data.downloads.map((download) => {\r\n const downloadItem = document.querySelector(\"#model-profile-download-item .track-item\").cloneNode(true);\r\n\r\n const track = this.tracks.get({ id: download });\r\n\r\n if (track) {\r\n downloadItem.querySelector(\".tl-track\").textContent = track.data.Name;\r\n track.setupArtistsObject(this.artists);\r\n if (track.data.Artists.length > 0) {\r\n if (track.data.Artists[0]) {\r\n downloadItem.querySelector(\".tl-artist\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(track.data.Artists[0].data.Name), [\r\n { key: \"id\", value: track.data.Artists[0].data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(track.data.Artists[0].data.Format) },\r\n ]);\r\n }\r\n downloadItem.querySelector(\".tl-artist\").innerHTML = track.data.Artists.map((artist) => {\r\n if (artist) {\r\n return artist.get().Name;\r\n }\r\n return \"\";\r\n }).join(\", \");\r\n }\r\n downloadItem.querySelector(\".tl-length\").textContent = track.data.MP3.LengthFMT;\r\n\r\n downloadItem.querySelector(\".dropdown .dropdown-menu .download\").href = track.data.MP3.Url;\r\n\r\n downloadItem.querySelector(\".dropdown .dropdown-menu .match-video\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (Pqp.isMobile()) {\r\n window.location.href = \"/match-video-mobile\";\r\n } else {\r\n track.emitEvent(\"match_video_to_track\", { detail: { track: track.data } });\r\n }\r\n });\r\n\r\n downloadsList.appendChild(downloadItem);\r\n }\r\n });\r\n }\r\n\r\n updateEditModal() {\r\n const modalId = \"#profileEditModal\";\r\n const modal = document.querySelector(modalId);\r\n const image = modal.querySelector(`.user-main-info .wrapper-img`);\r\n const name = modal.querySelector(`input.user-name`);\r\n const surname = modal.querySelector(`input.user-surname`);\r\n\r\n setTimeout(() => {\r\n name.value = this.data.first_name;\r\n surname.value = this.data.last_name;\r\n image.querySelector(\".imagePreview\").style.backgroundImage = `url(${this.data.avatar})`;\r\n }, 100);\r\n }\r\n\r\n // sendUpdateProfile() {\r\n // const token = this.getCookie(\"user_token\");\r\n // const modalId = \"#profileUpdateStatusModal\";\r\n // this.showUpdateStatusModal();\r\n // jQuery(modalId).modal(\"show\");\r\n // if (token) {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update\");\r\n // let url = `${Globals.WS_URL}?mode=USERDATA.UPDATE&token=${token}&user_data=${JSON.stringify(this.data)}`;\r\n // fetch(url)\r\n // .then(this.handleResponse)\r\n // .then((result) => {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n // if (result.updated) {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update OK\");\r\n // this.userLogged = result.user;\r\n // this.renderDetails();\r\n // this.renderCompany();\r\n // this.showUpdateStatusModal(\"Updated\");\r\n // setTimeout(() => jQuery(modalId).modal(\"hide\"), 2000);\r\n // } else {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update ERROR\");\r\n // this.showUpdateStatusModal(\"ERROR\");\r\n // }\r\n // })\r\n // .catch((error) => Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message }));\r\n // } else {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile Update - Token NOT present\");\r\n // }\r\n // }\r\n\r\n sendUpdateProfile() {\r\n const token = this.getCookie(\"user_token\");\r\n const modalId = \"#profileUpdateStatusModal\";\r\n this.showUpdateStatusModal(\"\");\r\n jQuery(modalId).modal(\"show\");\r\n if (token) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update\");\r\n const data = {\r\n token,\r\n user_data: JSON.stringify({\r\n ID: this.data.ID,\r\n first_name: this.data.first_name,\r\n last_name: this.data.last_name,\r\n is_company: this.data.is_company,\r\n cod_fisc: this.data.cod_fisc,\r\n billing: {\r\n address: this.data.billing.address,\r\n zip: this.data.billing.zip,\r\n city: this.data.billing.city,\r\n country: this.data.billing.country,\r\n },\r\n company: {\r\n name: this.data.company.name,\r\n vat: this.data.company.vat,\r\n fe_code: this.data.company.fe_code,\r\n pec: this.data.company.pec,\r\n },\r\n social: {\r\n youtube: this.data.social.youtube,\r\n facebook: this.data.social.facebook,\r\n instagram: this.data.social.instagram,\r\n twitch: this.data.social.twitch,\r\n twitter: this.data.social.twitter,\r\n tiktok: this.data.social.tiktok,\r\n },\r\n }),\r\n avatar: this.avatarFile,\r\n };\r\n\r\n let url = `${Globals.WS_URL}?mode=USERDATA.UPDATE`;\r\n\r\n const formData = new FormData();\r\n\r\n for (const name in data) {\r\n formData.append(name, data[name]);\r\n }\r\n\r\n const args = {\r\n method: \"POST\",\r\n header: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n body: formData,\r\n };\r\n\r\n fetch(url, args)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (result.updated) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update OK\");\r\n this.userLogged = result.user;\r\n this.renderDetails();\r\n this.renderCompany();\r\n this.showUpdateStatusModal(\"Updated\");\r\n setTimeout(() => jQuery(modalId).modal(\"hide\"), 2000);\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Update ERROR\");\r\n this.showUpdateStatusModal(\"ERROR\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile Update - Token NOT present\");\r\n }\r\n }\r\n\r\n showUpdateStatusModal(text) {\r\n const modalId = \"#profileUpdateStatusModal\";\r\n const modal = document.querySelector(modalId);\r\n const message = modal.querySelector(`.message`);\r\n message.textContent = \"\";\r\n if (text) {\r\n jQuery(`${modalId} .js-preloader`).hide();\r\n message.textContent = text;\r\n } else {\r\n jQuery(`${modalId} .js-preloader`).show();\r\n }\r\n }\r\n\r\n buyFreeTrial() {\r\n const token = this.getCookie(\"user_token\");\r\n let url = `${Globals.WS_URL}?mode=PAYMENT&token=${token}&return_url_ok=${this.paymentUrl.return_url_ok}&return_url_err=${this.paymentUrl.return_url_err}&output=1&contract=1.T`;\r\n window.location.href = url;\r\n }\r\n\r\n buySubscription(forceToken) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Profile - Subscription Link Setup\");\r\n if (this.data || forceToken) {\r\n const token = this.getCookie(\"user_token\") || forceToken;\r\n let basePaymentUrl = `${Globals.WS_URL}?mode=PAYMENT&token=${token}&return_url_ok=${this.paymentUrl.return_url_ok}&return_url_err=${this.paymentUrl.return_url_err}&output=1`;\r\n Array.from(document.querySelectorAll(\".price-card .payment-send\")).map((link) => {\r\n let url = basePaymentUrl;\r\n if (link.dataset.cc) {\r\n if (link.dataset.cc === \"1\") {\r\n link.closest(\".cards-group\").remove();\r\n return false;\r\n } else {\r\n url += `&contract=${link.dataset.cc}`;\r\n }\r\n link.href = url;\r\n link.removeAttribute(\"data-toggle\");\r\n }\r\n });\r\n } else {\r\n Array.from(document.querySelectorAll(\".price-card .payment-send\")).map((link) => {\r\n if (link.dataset.cc) {\r\n link.href = \"#loginModal\";\r\n link.dataset.toggle = \"modal\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\nimport Globals from \"../../Globals.js\";\r\n\r\nexport default class ArtistProfile extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {};\r\n this.tracks = null;\r\n this.artists = null;\r\n this.playlists = null;\r\n this.countries = null;\r\n }\r\n init({ user, tracks, artists, playlists, countries }) {\r\n super.init();\r\n user.subscriptions.sort((a, b) => a.dt1 - b.dt1);\r\n this.data = user;\r\n this.tracks = tracks;\r\n this.artists = artists;\r\n this.playlists = playlists;\r\n this.countries = countries;\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n showPage() {\r\n this.renderPage();\r\n this.setupEvents();\r\n }\r\n\r\n setupEvents() {\r\n const _this = this;\r\n Array.from(document.querySelectorAll(\".user-main-info .btn-edit\")).map((button) => {\r\n button.addEventListener(\"click\", () => {\r\n _this.updateEditModal();\r\n });\r\n });\r\n document.querySelector(\".user-main-info .wrapper-img\").addEventListener(\"click\", () => {\r\n _this.updateEditModal();\r\n });\r\n\r\n const modalId = \"#artistProfileEditModal\";\r\n const modal = document.querySelector(modalId);\r\n modal.querySelector(\".save\").addEventListener(\"click\", () => {\r\n _this.artist.name = modal.querySelector(\".artist-name\").value;\r\n _this.artist.description = modal.querySelector(\".artist-description\").value;\r\n _this.sendUpdateProfile();\r\n });\r\n modal.querySelector(\".file-input\").addEventListener(\"change\", (event) => {\r\n const preview = modal.querySelector(\".imagePreview\");\r\n const file = event.target.files[0];\r\n this.avatarFile = file;\r\n const reader = new FileReader();\r\n reader.onload = (event) => {\r\n preview.style.backgroundImage = `url('${event.target.result}')`;\r\n this.data.avatar = event.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n renderPage() {\r\n const token = this.getCookie(\"user_token\");\r\n if (this.data && this.data.is_artist && token) {\r\n fetch(`${Globals.WS_URL}?mode=ARTISTDATA&token=${token}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (result.artist && result.artist.ID !== 0) {\r\n this.artist = result.artist;\r\n this.artist.Image.Medium = this.artist.Image.Medium.replace(/\\s/g, \"%20\");\r\n this.artist.Image.High = this.artist.Image.High.replace(/\\s/g, \"%20\");\r\n this.artist.Wallpaper = this.artist.Wallpaper.replace(/\\s/g, \"%20\");\r\n this.renderDetails();\r\n this.renderPlaylists();\r\n this.renderTracks();\r\n this.renderDocuments();\r\n } else {\r\n window.location.href = \"/find-music\";\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log(\"Artist Profile - Render Page\", { message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n window.location.href = \"/find-music\";\r\n }\r\n }\r\n\r\n renderDetails() {\r\n const detail = document.querySelector(\".user-main-info\");\r\n const image = detail.querySelector(\".wrapper-img\");\r\n const name = detail.querySelector(\".album-name\");\r\n const description = detail.querySelector(\".album-bio .extract-description\");\r\n\r\n name.textContent = `${this.artist.name}`;\r\n description.textContent = this.artist.description;\r\n\r\n if (image.querySelector(\"img\")) {\r\n image.querySelector(\"img\").src = this.artist.Image.Medium;\r\n } else {\r\n const imageEl = new Image();\r\n imageEl.src = this.artist.Image.Medium;\r\n image.appendChild(imageEl);\r\n }\r\n }\r\n\r\n renderTracks() {\r\n const tracks = document.querySelector(\".licenses-history\");\r\n const tracksList = tracks.querySelector(\".tracks-list .tracks-list-body\");\r\n\r\n // this.artist.tracks = [\r\n // {\r\n // id: 38,\r\n // download_count: 0,\r\n // play_count: 0,\r\n // playlist_count: 0,\r\n // },\r\n // ];\r\n this.artist.tracks.map((trackObj) => {\r\n const track = this.tracks.get({ id: trackObj.id });\r\n if (track) {\r\n const trackItem = document.querySelector(\"#model-artist-profile-track-item .track-item\").cloneNode(true);\r\n trackItem.querySelector(\".title\").textContent = track.data.Name;\r\n trackItem.querySelector(\".downloads\").textContent = trackObj.download_count;\r\n trackItem.querySelector(\".plays\").textContent = trackObj.play_count;\r\n trackItem.querySelector(\".playlists\").textContent = trackObj.playlist_count;\r\n tracksList.appendChild(trackItem);\r\n }\r\n });\r\n }\r\n\r\n renderPlaylists() {\r\n const playlists = document.querySelector(\".playlists-history\");\r\n const playlistsList = playlists.querySelector(\".swiper-wrapper\");\r\n\r\n // this.artist.playlist = [1986];\r\n this.artist.playlist.map((playlistID) => {\r\n const playlist = this.playlists.get({ id: playlistID });\r\n if (playlist) {\r\n playlistsList.appendChild(playlist.renderSwiperListItem());\r\n }\r\n });\r\n }\r\n\r\n renderDocuments() {\r\n const documents = document.querySelector(\".documents-history\");\r\n const documentsList = documents.querySelector(\".tracks-list .tracks-list-body\");\r\n\r\n this.artist.documents.map((doc) => {\r\n const item = document.querySelector(\"#model-artist-profile-documents-item .track-item\").cloneNode(true);\r\n\r\n item.querySelector(\".name\").textContent = doc.name;\r\n item.querySelector(\".tl-actions a\").href = doc.file;\r\n\r\n // 250113 - Disabled reports for now...\r\n // 250203 - Reenabled reports\r\n documentsList.appendChild(item); \r\n });\r\n }\r\n\r\n updateEditModal() {\r\n const modalId = \"#artistProfileEditModal\";\r\n const modal = document.querySelector(modalId);\r\n const image = modal.querySelector(`.user-main-info .wrapper-img`);\r\n const name = modal.querySelector(`input.artist-name`);\r\n const description = modal.querySelector(`textarea.artist-description`);\r\n\r\n setTimeout(() => {\r\n name.value = this.artist.name;\r\n description.value = this.artist.description;\r\n image.querySelector(\".imagePreview\").style.backgroundImage = `url(${this.artist.Image.Medium})`;\r\n }, 100);\r\n }\r\n\r\n // sendUpdateProfile() {\r\n // const token = this.getCookie(\"user_token\");\r\n // const modalId = \"#profileUpdateStatusModal\";\r\n // this.showUpdateStatusModal();\r\n // jQuery(modalId).modal(\"show\");\r\n // if (token) {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile - Update\");\r\n // let url = `${Globals.WS_URL}?mode=ARTISTDATA.UPDATE&token=${token}&artist_data=${JSON.stringify(this.artist)}`;\r\n // if (this.avatar) {\r\n // url += `&avatar=\"${this.avatar}\"`;\r\n // }\r\n // fetch(url)\r\n // .then(this.handleResponse)\r\n // .then((result) => {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n // if (result.updated) {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile - Update OK\");\r\n // this.renderDetails();\r\n // this.showUpdateStatusModal(\"Updated\");\r\n // setTimeout(() => jQuery(modalId).modal(\"hide\"), 2000);\r\n // }\r\n // })\r\n // .catch((error) => Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message }));\r\n // } else {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile Update - Token NOT present\");\r\n // }\r\n // }\r\n\r\n sendUpdateProfile() {\r\n const token = this.getCookie(\"user_token\");\r\n const modalId = \"#artistProfileUpdateStatusModal\";\r\n this.showUpdateStatusModal(\"\");\r\n jQuery(modalId).modal(\"show\");\r\n if (token) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile - Update\");\r\n const data = {\r\n token,\r\n artist_data: JSON.stringify({\r\n ID: this.artist.ID,\r\n name: this.artist.name,\r\n description: this.artist.description,\r\n }),\r\n avatar: this.avatarFile,\r\n };\r\n\r\n let url = `${Globals.WS_URL}?mode=ARTISTDATA.UPDATE`;\r\n\r\n const formData = new FormData();\r\n\r\n for (const name in data) {\r\n formData.append(name, data[name]);\r\n }\r\n\r\n const args = {\r\n method: \"POST\",\r\n header: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n body: formData,\r\n };\r\n\r\n fetch(url, args)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (result.updated) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile - Update OK\");\r\n this.renderDetails();\r\n this.showUpdateStatusModal(\"Updated\");\r\n setTimeout(() => jQuery(modalId).modal(\"hide\"), 2000);\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile - Update ERROR\");\r\n this.showUpdateStatusModal(\"ERROR\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Artist Profile Update - Token NOT present\");\r\n }\r\n }\r\n\r\n showUpdateStatusModal(text) {\r\n const modalId = \"#profileUpdateStatusModal\";\r\n const modal = document.querySelector(modalId);\r\n const message = modal.querySelector(`.message`);\r\n if (text) {\r\n jQuery(`${modalId} .js-preloader`).hide();\r\n message.textContent = text;\r\n } else {\r\n jQuery(`${modalId} .js-preloader`).show();\r\n }\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"./PageCommon.js\";\r\nimport Profile from \"./Profiles/Profile.js\";\r\nimport ArtistProfile from \"./Profiles/ArtistProfile.js\";\r\n\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class UserManager extends PageCommon {\r\n constructor() {\r\n super();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"UserManager - constructor\");\r\n this.userLogged = null;\r\n this.userPlaylists = [];\r\n this.dataManager = null;\r\n\r\n Globals.userManager = this;\r\n\r\n this.profiles = {\r\n profile: new Profile(),\r\n artistProfile: new ArtistProfile(),\r\n };\r\n }\r\n\r\n setDataManager(dataManager) {\r\n this.dataManager = dataManager;\r\n }\r\n\r\n setCurrentUser({ loadDataManager }) {\r\n const token = this.getCookie(\"user_token\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - Set Current user\", \"color: orange\");\r\n if (token) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - Token present, making call\", \"color: orange\");\r\n fetch(`${Globals.WS_URL}?mode=USERDATA&token=${token}&rand=${Date.now()}`)\r\n // fetch(`/apisounzone/getUserData/?token=${token}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - User Data Result\", \"color: orange\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (result.user && result.user.ID !== 0) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - OK\", \"color: orange\");\r\n this.userLogged = result.user;\r\n this.setMyplaylists({ loadDataManager });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - No User Data\", \"color: orange\");\r\n this.deleteCookie(\"user_token\");\r\n this.emitEvent(\"user_ready\", { detail: { loadDataManager: loadDataManager } });\r\n }\r\n })\r\n .catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cUserdata - ERROR USER REQUEST\", \"color: orange\", { message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%Userdata - Token NOT present\", \"color: orange\");\r\n this.emitEvent(\"user_ready\", { detail: { loadDataManager: loadDataManager } });\r\n }\r\n }\r\n\r\n setMyplaylists({ loadDataManager }) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getMyplaylists\");\r\n const token = this.getCookie(\"user_token\");\r\n if (token) {\r\n fetch(`${Globals.WS_URL}?mode=PLAYLIST.LIST&token=${token}`)\r\n // fetch(`/apisounzone/getmyplaylist/?token=` + token)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getMyplaylists ERROR: \" + result.error);\r\n return;\r\n }\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getMyplaylists OK\");\r\n this.userPlaylists = result.data.playlists;\r\n this.emitEvent(\"user_ready\", { detail: { loadDataManager: loadDataManager } });\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Playlists - getMyplaylists NO TOKEN\");\r\n }\r\n }\r\n\r\n setUserEvents() {\r\n if (window.localStorage.getItem(\"licenses_tracks\") && window.localStorage.getItem(\"licenses_tracks\") !== \"\") {\r\n let licenses_tracks = window.localStorage.getItem(\"licenses_tracks\").split(\",\");\r\n document.querySelector(\"#mainMenu .licenses .nav-link .badge\").textContent = licenses_tracks.length === 0 ? \"\" : licenses_tracks.length;\r\n }\r\n\r\n if (this.userLogged) {\r\n\r\n // 220403\r\n let ftnum = document.querySelectorAll(\".ftNoUserMode\");\r\n for (let i = 0; i < ftnum.length; i++) ftnum[i].style.display = \"none\";\r\n\r\n document.querySelector(\"nav .nav-item.login\").style.display = \"none\";\r\n document.querySelector(\"nav .user-controls .logout\").style.display = \"\";\r\n if (!this.userLogged.is_artist && document.querySelector(\"nav .user-controls .artist-profile\")) {\r\n document.querySelector(\"nav .user-controls .artist-profile\").remove();\r\n }\r\n this.checkSubscriptionsValidity();\r\n\r\n // 220405\r\n if (!this.isActiveSubscription()) {\r\n let ftum = document.querySelectorAll(\".ftUserMode\");\r\n for (let i = 0; i < ftum.length; i++) ftum[i].style.display = \"block\";\r\n } else {\r\n let fts = document.querySelectorAll(\".ftSub\");\r\n for (let i = 0; i < fts.length; i++) fts[i].style.display = \"block\";\r\n }\r\n\r\n } else {\r\n if (document.querySelector(\"nav .user-controls\")) {\r\n document.querySelector(\"nav .user-controls\").remove();\r\n }\r\n if (document.querySelector(\"#playlistsMenu\")) {\r\n document.querySelector(\"#playlistsMenu li a\").href = \"#notLoggedModal\";\r\n }\r\n }\r\n this.registrationEvent();\r\n this.loginEvent();\r\n this.logoutEvent();\r\n }\r\n\r\n isActiveSubscription() {\r\n let valid = false;\r\n if (this.userLogged.subscriptions.length > 0) {\r\n this.userLogged.subscriptions.map((subscription) => {\r\n const dt1 = this.extractDate(subscription.dt1);\r\n const dt2 = this.extractDate(subscription.dt2);\r\n if (dt2 > new Date() && subscription.type!=\"0\") {\r\n valid = true;\r\n }\r\n });\r\n }\r\n return valid;\r\n }\r\n\r\n checkSubscriptionsValidity() {\r\n if (document.querySelector(\"nav .subscribe-controls .register\")) {\r\n document.querySelector(\"nav .subscribe-controls .register\").remove();\r\n }\r\n const valid = this.isActiveSubscription();\r\n if (valid) {\r\n if (document.querySelector(\"nav .subscribe-controls .mysubscriptions\")) {\r\n document.querySelector(\"nav .subscribe-controls .mysubscriptions\").style.display = \"\";\r\n }\r\n return;\r\n }\r\n if (document.querySelector(\"nav .subscribe-controls .subscribe\")) {\r\n document.querySelector(\"nav .subscribe-controls .subscribe\").style.display = \"\";\r\n }\r\n }\r\n\r\n registrationEvent() {\r\n const _this = this;\r\n const registerModal = document.querySelector(\"#registerModal\");\r\n const form = registerModal.querySelector(\".form-container form\");\r\n\r\n this.dataManager.dataStructure.countries.map((country) => {\r\n const option = document.createElement(\"option\");\r\n option.value = country.ID;\r\n option.textContent = country.Name;\r\n form.querySelector(\"select#s-country\").appendChild(option);\r\n });\r\n\r\n form.addEventListener(\"submit\", (event) => {\r\n event.preventDefault();\r\n\r\n const data = new FormData(event.target);\r\n const email = data.get(\"s-email\");\r\n const password = data.get(\"s-pwd\");\r\n const fullname = data.get(\"s-name\");\r\n const privacy = form.querySelector(\"input#s-privacy\");\r\n const is_company = form.querySelector(\"select#s-is_company\").value === \"company\" ? 1 : 0;\r\n const country = form.querySelector(\"select#s-country\").value;\r\n\r\n if (email === \"\") {\r\n return this.errorManager(form, \"Registration - Error email field empty\");\r\n }\r\n if (password === \"\") {\r\n return this.errorManager(form, \"Registration - Error password field empty\");\r\n }\r\n if (fullname === \"\") {\r\n return this.errorManager(form, \"Registration - Error name field empty\");\r\n }\r\n if (!privacy || privacy.checked === false) {\r\n return this.errorManager(form, \"Registration - Error privacy field not checked\");\r\n }\r\n if (country === \"\") {\r\n return this.errorManager(form, \"Registration - Error country field empty\");\r\n }\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Registration - Start\");\r\n\r\n fetch(\r\n `${Globals.WS_URL}?mode=REGISTER&user_email=${email}&user_password=${password}&user_fullname=${fullname}&user_is_company=${is_company}&user_country=${country}`\r\n )\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (result.error) {\r\n return this.errorManager(form, `Registration - ERROR: ${result.error}`);\r\n }\r\n if (result.user) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Registration - OK\");\r\n this.userLogged = result.user;\r\n if (this.userLogged.token !== \"\" && this.userLogged.token !== false) {\r\n gtag(\"event\", \"conversion\", { \"send_to\": \"AW-658118760/hm1pCMPH89oCEOiw6LkC\", 'transaction_id': \"\" });\r\n /*\r\n this.showSubscriptionModal();\r\n this.dataManager.renderSubscriptionData();\r\n return this.setCookie(\"user_token\", this.userLogged.token);\r\n //*/\r\n this.setCookie(\"user_token\", this.userLogged.token);\r\n // ---\r\n setTimeout(() => {\r\n window.location.href = \"/free-trial\";\r\n }, 1000);\r\n } else {\r\n return this.errorManager(form, \"Registration - Error NO token in response\");\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n });\r\n\r\n registerModal.querySelector(\".social-login-container button.facebook\").addEventListener(\"click\", () => {\r\n _this.socialLogin(\"facebook\");\r\n });\r\n registerModal.querySelector(\".social-login-container button.google\").addEventListener(\"click\", () => {\r\n _this.socialLogin(\"google\");\r\n });\r\n }\r\n\r\n showSubscriptionModal() {\r\n const showSubscriptionRegisterModal = document.querySelector(\"#showSubscriptionRegisterModal\");\r\n jQuery(\"#showSubscriptionRegisterModal\").modal(\"show\");\r\n Array.from(showSubscriptionRegisterModal.querySelectorAll(\".finish-register\")).map((item) => {\r\n item.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n window.location.reload();\r\n });\r\n });\r\n this.profiles.profile.buySubscription(this.userLogged.token);\r\n }\r\n\r\n loginEvent() {\r\n const _this = this;\r\n const loginModal = document.querySelector(\"#loginModal\");\r\n const form = loginModal.querySelector(\".form-container form\");\r\n form.addEventListener(\"submit\", (event) => {\r\n event.preventDefault();\r\n\r\n const data = new FormData(event.target);\r\n const email = data.get(\"s-email\");\r\n const password = data.get(\"s-pwd\");\r\n\r\n if (email === \"\") {\r\n return this.errorManager(form, \"Login - Error email field empty\");\r\n }\r\n if (password === \"\") {\r\n return this.errorManager(form, \"Login - Error password field empty\");\r\n }\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Login - Start\");\r\n\r\n const dafUrl = Globals.WS_URL +\"?mode=LOGIN&user_email=\" + email +\"&user_password=\" + escape(password);\r\n\r\n fetch(dafUrl)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Login - Response\");\r\n if (result.error) {\r\n return this.errorManager(form, `Login - ERROR: ${result.error}`);\r\n }\r\n if (result.user) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Login - OK\");\r\n this.userLogged = result.user;\r\n if (this.userLogged.token !== \"\" && this.userLogged.token !== false) {\r\n window.location.reload();\r\n return this.setCookie(\"user_token\", this.userLogged.token);\r\n } else {\r\n return this.errorManager(form, \"Login - Error NO token in response\");\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n });\r\n\r\n loginModal.querySelector(\".social-login-container button.facebook\").addEventListener(\"click\", () => {\r\n _this.socialLogin(\"facebook\");\r\n });\r\n loginModal.querySelector(\".social-login-container button.google\").addEventListener(\"click\", () => {\r\n _this.socialLogin(\"google\");\r\n });\r\n }\r\n\r\n logoutEvent() {\r\n const logoutButton = document.querySelector(\"nav .user-controls .logout\");\r\n if (logoutButton) {\r\n logoutButton.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Logout - Start\");\r\n\r\n const token = this.getCookie(\"user_token\");\r\n this.deleteCookie(\"user_token\");\r\n\r\n // window.localStorage.removeItem(\"licenses_tracks\");\r\n\r\n fetch(`${Globals.WS_URL}?mode=LOGOUT&token=${token}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Logout - OK\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n window.location.reload();\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n });\r\n }\r\n }\r\n\r\n errorManager(form, error) {\r\n form.querySelector(\".error-wrapper\").textContent = error;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(error);\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"./PageCommon.js\";\r\n\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class VideoManager extends PageCommon {\r\n constructor() {\r\n super();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - constructor\");\r\n\r\n this.indexedDB = null;\r\n\r\n this.youtubePlayer = null;\r\n this.videoContainer = null;\r\n\r\n this.readyToRun = false;\r\n this.playingInterval = null;\r\n this.retryCounter = 0;\r\n this.maxRetry = 10;\r\n\r\n this.supportedVideoType = [\"video/mp4\", \"video/quicktime\", \"video/ogg\", \"video/webm\"];\r\n this.maxVideoMB = 5000;\r\n this.autoload = false;\r\n }\r\n run({ indexedDB }) {\r\n this.readyToRun = true;\r\n this.indexedDB = indexedDB;\r\n const _this = this;\r\n document.addEventListener(\"video_found\", (event) => {\r\n document.querySelector(\".sync-tool\").style.display = \"\";\r\n const videoFromDB = event.detail;\r\n if (videoFromDB) {\r\n _this.setupSeek();\r\n _this.loadUploadedVideo(videoFromDB.file, videoFromDB.name);\r\n }\r\n });\r\n document.addEventListener(\"youtube_video_found\", (event) => {\r\n document.querySelector(\".sync-tool\").style.display = \"\";\r\n this.autoload = true;\r\n // this.setupIframe(event.detail.url);\r\n this.setupYoutubeVideo(event.detail.url);\r\n });\r\n }\r\n init() {\r\n super.init();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - init\");\r\n this.videoContainer = document.querySelector(\"#videoBlock\");\r\n this.setupEvents();\r\n }\r\n\r\n setupEvents() {\r\n const _this = this;\r\n // this.videoContainer.querySelector(\".url-container input\").addEventListener(\"keyup\", (event) => {\r\n // if (event.target.value != \"\") {\r\n // const keyCode = this.getKeyCode(event);\r\n // if (keyCode === \"Enter\") {\r\n // return this.setupIframe(event.target.value);\r\n // }\r\n // return (_this.videoContainer.querySelector(\".sync-controls button\").disabled = false);\r\n // }\r\n // _this.videoContainer.querySelector(\".sync-controls button\").disabled = true;\r\n // });\r\n this.videoContainer.querySelector(\".url-container input\").addEventListener(\"keyup\", (event) => {\r\n if (event.target.value != \"\") {\r\n const keyCode = this.getKeyCode(event);\r\n if (keyCode === \"Enter\") {\r\n return this.setupYoutubeVideo(event.target.value);\r\n }\r\n return (_this.videoContainer.querySelector(\".sync-controls button\").disabled = false);\r\n }\r\n _this.videoContainer.querySelector(\".sync-controls button\").disabled = true;\r\n });\r\n this.videoContainer.querySelector(\".sync-controls button\").addEventListener(\"click\", (event) => {\r\n // const youtubeUrl = _this.videoContainer.querySelector(\".url-container input\").value;\r\n // if (youtubeUrl) {\r\n // this.setupYoutubeSeek();\r\n // return this.setupIframe(youtubeUrl);\r\n // }\r\n const youtubeUrl = _this.videoContainer.querySelector(\".url-container input\").value;\r\n if (youtubeUrl) {\r\n return this.setupYoutubeVideo(youtubeUrl);\r\n }\r\n this.setupSeek();\r\n const uploadedVideo = _this.videoContainer.querySelector(\".drop-container input\").files[0];\r\n return this.setupUploadedVideo(uploadedVideo);\r\n });\r\n this.videoContainer.addEventListener(\"drop\", (event) => {\r\n event.preventDefault();\r\n const input = event.currentTarget.querySelector(\"input\");\r\n input.files = event.dataTransfer.files;\r\n _this.videoContainer.querySelector(\".sync-controls button\").disabled = false;\r\n _this.emitEvent(\"click\", null, _this.videoContainer.querySelector(\".sync-controls button\"));\r\n });\r\n this.videoContainer.addEventListener(\"dragover\", (event) => {\r\n event.preventDefault();\r\n event.currentTarget.classList.add(\"dropping\");\r\n });\r\n this.videoContainer.addEventListener(\"dragleave\", (event) => {\r\n event.preventDefault();\r\n event.currentTarget.classList.remove(\"dropping\");\r\n });\r\n this.videoContainer.querySelector(\".drop-container input\").addEventListener(\"change\", (event) => {\r\n event.preventDefault();\r\n _this.videoContainer.classList.add(\"dropping\");\r\n _this.videoContainer.querySelector(\".sync-controls button\").disabled = false;\r\n _this.emitEvent(\"click\", null, _this.videoContainer.querySelector(\".sync-controls button\"));\r\n });\r\n this.videoContainer.querySelector(\".play-video\").addEventListener(\"click\", (event) => {\r\n const video = _this.videoContainer.querySelector(\"video\");\r\n if (!video.paused) {\r\n this.emitEvent(\"video_pause\");\r\n return this.setPause(video);\r\n }\r\n this.setPlay(video);\r\n this.emitEvent(\"video_play\");\r\n });\r\n document.addEventListener(\"track_play\", (event) => {\r\n if (_this.youtubePlayer) {\r\n _this.youtubePlayer.playVideo();\r\n } else {\r\n const video = _this.videoContainer.querySelector(\"video\");\r\n this.setPlay(video);\r\n }\r\n });\r\n document.addEventListener(\"track_pause\", (event) => {\r\n if (_this.youtubePlayer) {\r\n _this.youtubePlayer.pauseVideo();\r\n } else {\r\n const video = _this.videoContainer.querySelector(\"video\");\r\n _this.setPause(video);\r\n }\r\n });\r\n this.videoContainer.querySelector(\"button.change-video\").addEventListener(\"click\", (event) => {\r\n _this.resetVideo();\r\n $(document.body).trigger(\"sticky_kit:recalc\");\r\n });\r\n\r\n this.videoContainer.querySelector(\"button.ai-video\").addEventListener(\"click\", (event) => { // PF - VIDEO TOOL AI 2307\r\n const videoElement = document.getElementById(\"uploadedVideo\");\r\n var cw = videoElement.videoWidth;\r\n var ch = videoElement.videoHeight;\r\n const sv = cw / 1024;\r\n if (sv > 1) {\r\n cw /= sv;\r\n ch /= sv;\r\n }\r\n const canvas = Object.assign(document.createElement(\"canvas\"), { width: cw, height: ch });\r\n canvas.getContext(\"2d\").drawImage(videoElement, 0, 0, canvas.width, canvas.height);\r\n // const image = new Image();\r\n // console.log(canvas.toDataURL(\"image/jpeg\",0.75));\r\n const url_ai = 'https://sounzone.com/szwsai/';\r\n const imgDataStr = canvas.toDataURL(\"image/jpeg\", 0.75);\r\n // const formData = new FormData(); formData.append('imgData', imgDataStr );\r\n const data = {\r\n imgData: imgDataStr,\r\n _u: \"\"+(new Date()),\r\n };\r\n const formData = new URLSearchParams(data).toString();\r\n\r\n fetch(url_ai, {\r\n method: 'POST',\r\n headers: {\r\n // 'Content-Type': 'application/json',\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: formData, // JSON.stringify(data),\r\n })\r\n .then(response => response.json())\r\n .then(result => {\r\n document.querySelector(\".ai-debug\").innerHTML = result.ta2.join(\",   \");\r\n /* \r\n console.log(result);\r\n console.log(\"--- AI -------------------------------------------------- BEGIN \");\r\n console.log(\"Elements found by AI: \" + result.ta.join(\", \"));\r\n console.log(\"Tag System Output: \" + result.ka.join(\", \"));\r\n console.log(\"--- AI -------------------------------------------------- END \");\r\n //*/\r\n if (result.ka.length > 0) {\r\n try {\r\n Globals.searchManager.resetSearchList(\"\");\r\n } catch (error) {\r\n console.error(\"[JS] \"+error);\r\n }\r\n result.ka.forEach((element, index, array) => {\r\n Globals.searchManager.createKeywordSearched(element, \"tag\");\r\n // console.log(`Element at index ${index}: ${element}`);\r\n });\r\n Globals.searchManager.searchTracks();\r\n }\r\n // console.log(\"Done!\");\r\n // Handle the response here\r\n })\r\n .catch(error => {\r\n // Handle errors here\r\n });\r\n // const newTab = window.open(); newTab.document.write(image.outerHTML);\r\n });\r\n\r\n this.videoContainer.querySelector(\"button.hide-video\").addEventListener(\"click\", () => {\r\n /*_this.emitEvent(\"video_pause\");\r\n clearInterval(_this.playingInterval);\r\n if (_this.youtubePlayer) {\r\n _this.youtubePlayer.pauseVideo();\r\n } else {\r\n const video = _this.videoContainer.querySelector(\"video\");\r\n _this.setPause(video);\r\n }*/\r\n _this.videoContainer.querySelector(\".video-container\").classList.add(\"compressed\");\r\n $(document.body).trigger(\"sticky_kit:recalc\");\r\n });\r\n this.videoContainer.querySelector(\"button.show-video\").addEventListener(\"click\", () => {\r\n _this.videoContainer.querySelector(\".video-container\").classList.remove(\"compressed\");\r\n $(document.body).trigger(\"sticky_kit:recalc\");\r\n });\r\n this.videoContainer.querySelector(\"button.fullscreen-btn\").addEventListener(\"click\", () => {\r\n _this.showVideoFullscreen();\r\n });\r\n }\r\n\r\n resetVideo() {\r\n this.videoContainer.querySelector(\".video-container\").style.display = \"none\";\r\n this.videoContainer.querySelector(\".drop-container\").classList.remove(\"dropping\");\r\n this.videoContainer.querySelector(\".drop-container input\").files = new DataTransfer().files;\r\n this.videoContainer.querySelector(\".url-container input\").value = \"\";\r\n this.videoContainer.querySelector(\".sync-tool-content\").classList.remove(\"hide\");\r\n this.videoContainer.querySelector(\".sync-controls button\").disabled = true;\r\n this.videoContainer.querySelector(\"#localVideo\").classList.remove(\"playing\");\r\n this.videoContainer.querySelector(\"#localVideo\").style.display = \"none\";\r\n this.videoContainer.querySelector(\"#youtubeVideo\").style.display = \"none\";\r\n this.emitEvent(\"video_pause\");\r\n clearInterval(this.playingInterval);\r\n if (this.youtubePlayer) {\r\n this.youtubePlayer.pauseVideo();\r\n } else {\r\n const video = this.videoContainer.querySelector(\"video\");\r\n this.setPause(video);\r\n video.src = \"\";\r\n }\r\n this.youtubePlayer = null;\r\n this.videoContainer.querySelector(\"#youtubeVideo\").remove();\r\n const youtubeVideo = document.createElement(\"div\");\r\n youtubeVideo.id = \"youtubeVideo\";\r\n this.videoContainer.querySelector(\".video-wrapper\").appendChild(youtubeVideo);\r\n this.indexedDB.delete(1);\r\n window.localStorage.removeItem(\"youtube_video_url\");\r\n document.querySelector(\".sync-tool .wrapper-img\").style.display = \"\";\r\n\r\n // document.querySelector(\".fm-main-content\").style.cssText += \";margin-top:460px\"; /* 221229 - Sticky Header */\r\n }\r\n\r\n parseUrlYoutube(url) {\r\n return /^.*(?:(?:youtu\\.be\\/|v\\/|vi\\/|u\\/\\w\\/|embed\\/)|(?:(?:watch)?\\?v(?:i)?=|\\&v(?:i)?=))([^#\\&\\?]*).*/.exec(url)[1];\r\n }\r\n\r\n addYoutubeAPI() {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - Add Youtube API\");\r\n var tag = document.createElement(\"script\");\r\n tag.src = \"https://www.youtube.com/iframe_api\";\r\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n }\r\n\r\n setupIframe(url) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - Setup iframe\");\r\n this.videoContainer.querySelector(\".sync-tool-content\").classList.add(\"hide\");\r\n this.videoContainer.querySelector(\".video-container\").style.display = \"\";\r\n this.videoContainer.querySelector(\"#youtubeVideo\").style.display = \"block\";\r\n const _this = this;\r\n this.youtubePlayer = new YT.Player(\"youtubeVideo\", {\r\n videoId: _this.parseUrlYoutube(url),\r\n events: {\r\n onReady: (event) => _this.onPlayerReady(event),\r\n onStateChange: (event) => _this.onPlayerStateChange(event),\r\n },\r\n playerVars: {\r\n autoplay: 0,\r\n controls: 0,\r\n disablekb: 1,\r\n fs: 0,\r\n loop: 0,\r\n modestbranding: 1,\r\n showtitle: 0,\r\n rel: 0,\r\n showinfo: 0,\r\n mute: 1,\r\n autohide: 1,\r\n share: 0,\r\n },\r\n });\r\n }\r\n\r\n onYouTubeIframeAPIReady() {\r\n if (this.readyToRun) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - Youtube API Ready\");\r\n this.init();\r\n } else if (this.retryCounter < this.maxRetry) {\r\n this.retryCounter++;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - Retry \" + this.retryCounter);\r\n setTimeout(() => {\r\n this.onYouTubeIframeAPIReady();\r\n }, 1000);\r\n } else {\r\n this.retryCounter = 0;\r\n }\r\n }\r\n\r\n onPlayerReady(event) {\r\n const _this = this;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"VideoManager - Youtube Video Ready\");\r\n if (!_this.autoload) {\r\n event.target.playVideo();\r\n }\r\n _this.autoload = false;\r\n }\r\n\r\n onPlayerStateChange(event) {\r\n const _this = this;\r\n if (event.data == YT.PlayerState.PLAYING) {\r\n this.emitEvent(\"video_play\");\r\n _this.startYoutubeIntervalManager(_this, event.target);\r\n } else if (event.data == YT.PlayerState.PAUSED) {\r\n this.emitEvent(\"video_pause\");\r\n clearInterval(_this.playingInterval);\r\n }\r\n }\r\n\r\n startYoutubeIntervalManager(_this, video) {\r\n _this.updateYoutubeCurrentTime(_this, video);\r\n _this.playingInterval = setInterval(() => {\r\n _this.updateYoutubeCurrentTime(_this, video);\r\n }, 1000);\r\n }\r\n\r\n updateYoutubeCurrentTime(_this, video) {\r\n _this.videoContainer.querySelector(\".current-timeline\").textContent = _this.formatTime(video.getCurrentTime());\r\n const timeline = _this.videoContainer.querySelector(\".timeline\");\r\n const x = (timeline.getBoundingClientRect().width * video.getCurrentTime()) / parseInt(video.getDuration());\r\n timeline.querySelector(\".bar2\").style.width = `${x}px`;\r\n _this.videoContainer.querySelector(\".seek-timeline\").textContent = _this.formatTime(video.getDuration());\r\n }\r\n\r\n setupYoutubeSeek() {\r\n const container = this.videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n timeline.addEventListener(\"mousemove\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, timeline);\r\n this.setYoutubeSeekPosition(x);\r\n });\r\n timeline.addEventListener(\"mouseleave\", (event) => {\r\n this.setYoutubeSeekPosition(0);\r\n });\r\n timeline.addEventListener(\"click\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, timeline);\r\n this.setYoutubeSeekTime(this.videoContainer, x);\r\n });\r\n }\r\n\r\n setYoutubeSeekPosition(x) {\r\n const container = this.videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n\r\n const video = this.youtubePlayer;\r\n const positionTime = (parseInt(video.getDuration()) * x) / timeline.getBoundingClientRect().width;\r\n\r\n const seekTime = this.formatTime(positionTime);\r\n container.querySelector(\".seek-timeline\").textContent = seekTime;\r\n\r\n timeline.querySelector(\".bar3\").style.width = `${x}px`;\r\n }\r\n\r\n setYoutubeSeekTime(videoContainer, x) {\r\n const container = videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n const video = this.youtubePlayer;\r\n const time = (parseInt(video.getDuration()) * x) / timeline.getBoundingClientRect().width;\r\n video.seekTo(parseInt(time));\r\n if (video === YT.PlayerState.PLAYING) {\r\n video.playVideo();\r\n this.emitEvent(\"video_play\");\r\n }\r\n }\r\n\r\n // LOCAL VIDEO\r\n setupSeek() {\r\n const container = this.videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n timeline.addEventListener(\"mousemove\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, timeline);\r\n this.setSeekPosition(x);\r\n });\r\n timeline.addEventListener(\"mouseleave\", (event) => {\r\n this.setSeekPosition(0);\r\n });\r\n timeline.addEventListener(\"click\", (event) => {\r\n const { x, y } = this.getMouseCoordinate(event, timeline);\r\n this.setSeekTime(this.videoContainer, x);\r\n });\r\n }\r\n\r\n setSeekTime(videoContainer, x) {\r\n const container = videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n const video = videoContainer.querySelector(\"video\");\r\n const time = (parseInt(video.duration) * x) / timeline.getBoundingClientRect().width;\r\n video.currentTime = time;\r\n if (!video.paused) {\r\n this.setPlay(video);\r\n this.emitEvent(\"video_play\");\r\n }\r\n }\r\n\r\n setPlay(video) {\r\n if (video.src) {\r\n video.play().catch((error) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"ERROR\", error);\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"VIDEO UPLOAD\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = error.message;\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 4000);\r\n this.resetVideo();\r\n });\r\n if (!video.paused) {\r\n this.videoContainer.querySelector(\"#localVideo\").classList.add(\"playing\");\r\n return this.startIntervalManager(this);\r\n }\r\n this.videoContainer.querySelector(\"#localVideo\").classList.remove(\"playing\");\r\n }\r\n }\r\n\r\n setPause(video) {\r\n this.videoContainer.querySelector(\"#localVideo\").classList.remove(\"playing\");\r\n clearInterval(this.playingInterval);\r\n video.pause();\r\n }\r\n\r\n startIntervalManager(_this) {\r\n _this.updateCurrentTime(_this.videoContainer);\r\n _this.playingInterval = setInterval(() => {\r\n _this.updateCurrentTime(_this.videoContainer);\r\n }, 1000);\r\n }\r\n\r\n updateCurrentTime(videoContainer) {\r\n const video = videoContainer.querySelector(\"video\");\r\n videoContainer.querySelector(\".current-timeline\").textContent = this.formatTime(video.currentTime);\r\n const timeline = videoContainer.querySelector(\".timeline\");\r\n const x = (timeline.getBoundingClientRect().width * video.currentTime) / parseInt(video.duration);\r\n timeline.querySelector(\".bar2\").style.width = `${x}px`;\r\n videoContainer.querySelector(\".seek-timeline\").textContent = this.formatTime(video.duration);\r\n }\r\n\r\n setSeekPosition(x) {\r\n const container = this.videoContainer.querySelector(\".timeline-container\");\r\n const timeline = container.querySelector(\".timeline\");\r\n\r\n const video = this.videoContainer.querySelector(\"video\");\r\n const positionTime = (parseInt(video.duration) * x) / timeline.getBoundingClientRect().width;\r\n\r\n const seekTime = this.formatTime(positionTime);\r\n container.querySelector(\".seek-timeline\").textContent = seekTime;\r\n\r\n timeline.querySelector(\".bar3\").style.width = `${x}px`;\r\n }\r\n\r\n setupUploadedVideo(file) {\r\n // var reader = new FileReader();\r\n const _this = this;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(file);\r\n if (file.type.indexOf(\"video/\") === -1) {\r\n const modal = \"#videoErrorModal\";\r\n document.querySelector(`${modal} .message`).textContent = \"Video format not supported. Please load another video.\";\r\n jQuery(modal).modal(\"show\");\r\n return;\r\n }\r\n // if (file.size > this.maxVideoMB * 1000000) {\r\n // const modal = \"#videoErrorModal\";\r\n // document.querySelector(`${modal} .message`).textContent = `Video size over ${this.maxVideoMB}MB. Please load another video.`;\r\n // jQuery(modal).modal(\"show\");\r\n // return;\r\n // }\r\n // reader.onload = (event) => {\r\n // const src = event.target.result;\r\n // console.log(src);\r\n // _this.loadUploadedVideo(src, file.name);\r\n // // _this.indexedDB.add(src, file.name);\r\n // };\r\n // reader.readAsDataURL(file);\r\n\r\n const src = window.URL.createObjectURL(file);\r\n _this.loadUploadedVideo(src, file.name);\r\n }\r\n\r\n loadUploadedVideo(src, name) {\r\n const video = this.videoContainer.querySelector(\"video#uploadedVideo\");\r\n this.videoContainer.querySelector(\".sync-tool-content\").classList.add(\"hide\");\r\n this.videoContainer.querySelector(\".video-container\").style.display = \"\";\r\n this.videoContainer.querySelector(\"#localVideo\").style.display = \"block\";\r\n\r\n // document.querySelector(\".fm-main-content\").style.cssText += \";margin-top:650px\"; /* 221229 - Sticky Header */\r\n\r\n // fetch(src)\r\n // .then((res) => res.blob()) // Gets the response and returns it as a blob\r\n // .then((blob) => {\r\n // // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(blob);\r\n // video.src = URL.createObjectURL(blob);\r\n\r\n // video.muted = \"muted\";\r\n\r\n // this.videoContainer.querySelector(\".actions .video-name\").textContent = name;\r\n\r\n // this.setPlay(video);\r\n // this.emitEvent(\"video_play\");\r\n // });\r\n\r\n video.src = src;\r\n video.load();\r\n\r\n video.muted = \"muted\";\r\n\r\n this.videoContainer.querySelector(\".actions .video-name\").textContent = name;\r\n\r\n // this.setPlay(video);\r\n // this.emitEvent(\"video_play\");\r\n }\r\n\r\n qsToJson(queryString) {\r\n let res = {};\r\n let params = queryString.split(\"&\");\r\n let keyValuePair, key, value;\r\n for (let i in params) {\r\n keyValuePair = params[i].split(\"=\");\r\n key = keyValuePair[0];\r\n value = keyValuePair[1];\r\n res[key] = decodeURIComponent(value);\r\n }\r\n return res;\r\n }\r\n\r\n setupYoutubeVideo(url) {\r\n const _this = this;\r\n window.localStorage.setItem(\"youtube_video_url\", url);\r\n fetch(`${Globals.WS_URL}?mode=YOUTUBE&url=${url}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.video && result.video.url) {\r\n _this.setupSeek();\r\n _this.loadUploadedVideo(result.video.url, result.video.title);\r\n return;\r\n }\r\n\r\n throw { message: \"NOT FOUND\" };\r\n\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log({ message: \"try setupIframe\" });\r\n // _this.setupIframe(url);\r\n })\r\n .catch((error) => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"VIDEO UPLOAD\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = error.message;\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 2000);\r\n this.resetVideo();\r\n\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log({ message: \"try setupIframe\" });\r\n // _this.setupIframe(url);\r\n });\r\n }\r\n\r\n showVideoFullscreen() {\r\n const video = this.videoContainer.querySelector(\"video\");\r\n if (video.mozRequestFullScreen) {\r\n video.mozRequestFullScreen();\r\n } else if (video.webkitRequestFullScreen) {\r\n video.webkitRequestFullScreen();\r\n }\r\n }\r\n}\r\n","import PageCommon from \"./PageCommon\";\r\n\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class IndexedDBManager extends PageCommon {\r\n constructor() {\r\n super();\r\n this.windowIndexedDB = null;\r\n\r\n this.idb = null;\r\n this.dbName = \"\";\r\n }\r\n init({ windowIndexedDB, dbName }) {\r\n super.init();\r\n this.windowIndexedDB = windowIndexedDB;\r\n this.dbName = dbName;\r\n }\r\n open() {\r\n const _this = this;\r\n const request = this.windowIndexedDB.open(this.dbName, 1);\r\n request.onerror = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database failed to open\");\r\n };\r\n request.onsuccess = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database opened successfully\");\r\n _this.idb = request.result;\r\n _this.emitEvent(\"idb_ready\");\r\n };\r\n request.onupgradeneeded = (event) => {\r\n _this.idb = event.target.result;\r\n let objectStore = _this.idb.createObjectStore(_this.dbName, { keyPath: \"id\" });\r\n objectStore.createIndex(\"file\", \"file\", { unique: false });\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database setup complete\");\r\n };\r\n }\r\n\r\n add(item, name) {\r\n const newItem = { id: 1, file: item, name: name };\r\n\r\n const transaction = this.idb.transaction(this.dbName, \"readwrite\");\r\n const objectStore = transaction.objectStore(this.dbName);\r\n\r\n const request = objectStore.add(newItem);\r\n request.onsuccess = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database Item saved\");\r\n };\r\n transaction.oncomplete = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Transaction completed: database modification finished.\");\r\n };\r\n transaction.onerror = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Transaction not opened due to error\");\r\n };\r\n }\r\n\r\n read(id) {\r\n const objectStore = this.idb.transaction(this.dbName).objectStore(this.dbName);\r\n const request = objectStore.get(id);\r\n request.onsuccess = () => {\r\n if (request.result) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database file loaded\");\r\n this.emitEvent(\"video_found\", { detail: request.result });\r\n } else {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database can't find the video\");\r\n }\r\n };\r\n }\r\n\r\n delete(id) {\r\n if (this.idb) {\r\n let transaction = this.idb.transaction(this.dbName, \"readwrite\");\r\n let objectStore = transaction.objectStore(this.dbName);\r\n let request = objectStore.delete(id);\r\n transaction.oncomplete = () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"Database \" + id + \" deleted.\");\r\n };\r\n }\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"../PageCommon\";\r\n\r\nexport default class LicensesTrack extends PageCommon {\r\n constructor(props) {\r\n super();\r\n this.data = {\r\n id: parseInt(props.id),\r\n single_licence: true,\r\n digital: 0,\r\n media: [],\r\n format: 0,\r\n time: 0,\r\n zone: [],\r\n exclusive: 0,\r\n prj_name: \"\",\r\n prj_client: \"\",\r\n };\r\n this.price = {\r\n single_license: 0,\r\n digital: 0,\r\n offline: 0,\r\n };\r\n }\r\n\r\n set(object) {\r\n this.data = Object.keys(this.data).map((field) => (this.data[field] = object[field]));\r\n }\r\n\r\n get() {\r\n return this.data;\r\n }\r\n\r\n dispose() {\r\n this.data = {};\r\n }\r\n}\r\n","\"use strict\";\r\n\r\nimport PageCommon from \"./PageCommon\";\r\nimport LicensesTrack from \"./Tracks/LicensesTrack\";\r\n\r\nimport Globals from \"../Globals.js\";\r\n\r\nexport default class LicensesManager extends PageCommon {\r\n constructor() {\r\n super();\r\n\r\n this.page = {};\r\n this.prices = [];\r\n this.licensesTracks = [];\r\n this.total = 0;\r\n this.timeSteps = 1; // Months number\r\n this.territoryLicensesTrackSelected = null;\r\n this.exclusiveTypes = [\"Full\", \"Product Area\"];\r\n this.artistTypes = [\"Producer\", \"Artist\", \"Maker\"];\r\n\r\n this.tracks = null;\r\n this.artists = null;\r\n this.artists_formats = null;\r\n this.userLogged = null;\r\n\r\n this.areas = [];\r\n this.continents = [];\r\n this.countries = [];\r\n this.national = [];\r\n this.world = [];\r\n\r\n this.isWorking = false;\r\n\r\n this.singleLicense = 0;\r\n\r\n this.paymentUrl = {\r\n return_url_ok: `${window.location.origin}/thank-you?payment=OK`,\r\n return_url_err: `${window.location.origin}/licenses?payment=ERROR`,\r\n };\r\n\r\n this.redirectIfEmptyUrl = \"/find-music\";\r\n }\r\n init({ pageName, tracks, artists, artists_formats, userManager }) {\r\n super.init();\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - init\");\r\n\r\n this.pageName = pageName;\r\n this.tracks = tracks;\r\n this.artists = artists;\r\n this.artists_formats = artists_formats;\r\n this.userManager = userManager;\r\n this.userLogged = userManager.userLogged;\r\n\r\n this.isVatString = \"\";\r\n if (this.userLogged) {\r\n if (this.userLogged.is_italy || (this.userLogged.is_company === false && this.userLogged.is_eurozone === true)) {\r\n this.isVatString = \"+ VAT\";\r\n }\r\n }\r\n\r\n const _this = this;\r\n\r\n this.updateMenuLicensesTable();\r\n\r\n if (pageName !== \"licenses\") {\r\n document.addEventListener(\"add_track_to_licenses\", (event) => {\r\n const track = event.detail.track;\r\n let licenses_tracks = window.localStorage.getItem(\"licenses_tracks\");\r\n if (licenses_tracks && licenses_tracks !== \"\") {\r\n licenses_tracks = licenses_tracks.split(\",\");\r\n if (licenses_tracks.indexOf(track.ID.toString()) > -1) {\r\n const modal = \"#licensesStatusModal\";\r\n document.querySelector(`${modal} .message`).textContent = \"ALREADY ADDED\";\r\n jQuery(modal).modal(\"show\");\r\n setTimeout(() => jQuery(modal).modal(\"hide\"), 3000);\r\n return;\r\n }\r\n } else {\r\n licenses_tracks = [];\r\n }\r\n licenses_tracks.push(track.ID);\r\n window.localStorage.setItem(\"licenses_tracks\", licenses_tracks.join(\",\"));\r\n document.querySelector(\"#mainMenu .licenses .nav-link .badge\").textContent = licenses_tracks.length === 0 ? \"\" : licenses_tracks.length;\r\n _this.addTrack(track);\r\n /* // Modal\r\n const modal = \"#licensesStatusModal\";\r\n document.querySelector(`${modal} .message`).textContent = \"ADDED\";\r\n jQuery(modal).modal(\"show\");\r\n setTimeout(() => jQuery(modal).modal(\"hide\"), 3000);\r\n //*/\r\n location.href = \"/licenses\";\r\n });\r\n }\r\n\r\n const modal = \"#territoryProceedModal\";\r\n document.querySelector(`${modal} button.proceed`).addEventListener(\"click\", (event) => {\r\n const licensesSingleTrack = document.querySelector(`#licensesSingleItem${_this.territoryLicensesTrackSelected.data.id}`);\r\n licensesSingleTrack.querySelector(\".tags-list\").style.display = \"none\";\r\n licensesSingleTrack.querySelector(\".add-territory\").style.display = \"none\";\r\n const worldWide = _this.page.Zones.filter((item) => item.name === \"Worldwide\")[0];\r\n _this.territoryLicensesTrackSelected.data.zone = [];\r\n _this.territoryLicensesTrackSelected.data.zone.push(worldWide.ID);\r\n _this.requestPriceUpdate(_this.territoryLicensesTrackSelected.data.id);\r\n });\r\n document.querySelector(`${modal} button.cancel`).addEventListener(\"click\", (event) => {\r\n const licensesSingleTrack = document.querySelector(`#licensesSingleItem${_this.territoryLicensesTrackSelected.data.id}`);\r\n licensesSingleTrack.querySelector(\".territory-worldwide\").checked = false;\r\n licensesSingleTrack.querySelector(\".tags-list\").style.display = \"flex\";\r\n licensesSingleTrack.querySelector(\".add-territory\").style.display = \"flex\";\r\n });\r\n }\r\n\r\n updateMenuLicensesTable() {\r\n const licensesEmptyElement = document.querySelector(\"#mainMenu .licenses-empty\");\r\n const licensesListElement = document.querySelector(\"#mainMenu .licenses-list\");\r\n\r\n licensesEmptyElement.style.display = \"\";\r\n licensesListElement.style.display = \"none\";\r\n licensesListElement.querySelector(\".tracks-list-body\").textContent = \"\";\r\n\r\n if (this.userLogged || window.localStorage.getItem(\"licenses_tracks\") !== \"\") {\r\n licensesListElement.querySelector(\".calculate\").style.display = \"\";\r\n licensesListElement.querySelector(\".login\").style.display = \"none\";\r\n } else {\r\n licensesListElement.querySelector(\".calculate\").style.display = \"none\";\r\n licensesListElement.querySelector(\".login\").style.display = \"\";\r\n }\r\n\r\n if (window.localStorage.getItem(\"licenses_tracks\") && window.localStorage.getItem(\"licenses_tracks\") !== \"\") {\r\n const tracks_data = window.localStorage.getItem(\"licenses_tracks\").split(\",\");\r\n tracks_data.map((id) => {\r\n const track = this.tracks.get({ id });\r\n track.setupArtistsObject(this.artists);\r\n this.addTrack(track.data);\r\n });\r\n }\r\n }\r\n\r\n addTrack(track) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Add Track\");\r\n\r\n const _this = this;\r\n\r\n document.querySelector(\"#mainMenu .licenses-empty\").style.display = \"none\";\r\n document.querySelector(\"#mainMenu .licenses-list\").style.display = \"\";\r\n\r\n const modelId = \"#model-licenses-track-list\";\r\n const licensesItem = document.querySelector(`${modelId} .track-item`).cloneNode(true);\r\n licensesItem.querySelector(\".tl-track\").textContent = track.Name;\r\n\r\n if (track.Artists.length > 0) {\r\n if (track.Artists[0]) {\r\n licensesItem.querySelector(\".tl-artist\").href = this.setUrlParams(\"/artist/\" + this._normalizza_track_prop(track.Artists[0].data.Name), [\r\n { key: \"id\", value: track.Artists[0].data.ID },\r\n { key: \"format\", value: this._normalizza_track_prop(track.Artists[0].data.Format) },\r\n ]);\r\n } else {\r\n licensesItem.querySelector(\".tl-artist\").href = \"javascript:void(0)\";\r\n }\r\n licensesItem.querySelector(\".tl-artist\").innerHTML = track.Artists.map((artist) => {\r\n if (artist) {\r\n return artist.get().Name;\r\n }\r\n return \"\";\r\n }).join(\", \");\r\n }\r\n\r\n licensesItem.querySelector(\".tl-length\").textContent = track.MP3.LengthFMT;\r\n\r\n licensesItem.querySelector(\"button.remove-btn\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n licensesItem.remove();\r\n const licenses_tracks = window.localStorage.getItem(\"licenses_tracks\").split(\",\");\r\n licenses_tracks.splice(licenses_tracks.indexOf(track.ID.toString()), 1);\r\n window.localStorage.setItem(\"licenses_tracks\", licenses_tracks.join(\",\"));\r\n document.querySelector(\"#mainMenu .licenses .nav-link .badge\").textContent = licenses_tracks.length === 0 ? \"\" : licenses_tracks.length;\r\n if (document.querySelector(\"#mainMenu .licenses-list .tracks-list-body\").childNodes.length === 0) {\r\n document.querySelector(\"#mainMenu .licenses-empty\").style.display = \"\";\r\n document.querySelector(\"#mainMenu .licenses-list\").style.display = \"none\";\r\n }\r\n if (_this.pageName === \"licenses\") {\r\n window.location.reload();\r\n }\r\n });\r\n\r\n document.querySelector(\"#mainMenu .licenses-list .tracks-list-body\").appendChild(licensesItem);\r\n }\r\n\r\n getPageData({ payment }) {\r\n const _this = this;\r\n const token = this.getCookie(\"user_token\");\r\n const urlParams = this.getUrlParams();\r\n if (urlParams.get(\"force-track\")) {\r\n const licensesTrack = new LicensesTrack({ id: urlParams.get(\"force-track\") });\r\n this.licensesTracks.push(licensesTrack);\r\n window.history.replaceState(null, \"\", \"licenses\");\r\n } else if (window.localStorage.getItem(\"licenses_tracks\") === \"\" || window.localStorage.getItem(\"licenses_tracks\") === null) {\r\n const randomTrack = this.shuffle(this.tracks.data)[0].data.ID;\r\n const licensesTrack = new LicensesTrack({ id: randomTrack });\r\n this.licensesTracks.push(licensesTrack);\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"NOTICE\";\r\n document.querySelector(\"#genericStatusModal .message\").innerHTML =\r\n \"We've added a random track to the calculator for you to explore our pricings with.
You can find the right one with our search tools later.\";\r\n jQuery(\"#genericStatusModal\").modal(\"show\");\r\n setTimeout(() => {\r\n document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n }, 10000);\r\n } else if (window.localStorage.getItem(\"licenses_tracks\")) {\r\n window.localStorage\r\n .getItem(\"licenses_tracks\")\r\n .split(\",\")\r\n .map((id) => {\r\n const licensesTrack = new LicensesTrack({ id });\r\n _this.licensesTracks.push(licensesTrack);\r\n });\r\n }\r\n\r\n if (payment) {\r\n const modal = \"#licensesStatusModal\";\r\n if (payment === \"OK\") {\r\n window.localStorage.setItem(\"licenses_tracks\", \"\");\r\n document.querySelector(\"#mainMenu .licenses .nav-link .badge\").textContent = \"\";\r\n document.querySelector(`${modal} .message`).textContent = \"Payment OK\";\r\n setTimeout(() => {\r\n window.location.href = this.redirectIfEmptyUrl;\r\n }, 2000);\r\n } else {\r\n document.querySelector(`${modal} .message`).textContent = \"Payment ERROR\";\r\n }\r\n jQuery(modal).modal(\"show\");\r\n setTimeout(() => jQuery(modal).modal(\"hide\"), 3000);\r\n } else {\r\n setTimeout(() => {\r\n document.querySelector(\"#licensesTracksList\").innerHTML = `
`;\r\n jQuery(\"#licensesTracksList .js-preloader\").show();\r\n\r\n let url = `${Globals.WS_URL}?mode=ADVCALC`;\r\n if (token) {\r\n url = `${url}&token=${token}`;\r\n }\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Fetching Page data\");\r\n fetch(url)\r\n //fetch(`/apisounzone/getadvcal/`+token)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (result.error) {\r\n window.location.href = this.redirectIfEmptyUrl;\r\n }\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Fetch Page data OK\");\r\n this.page = result.data;\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(this.page);\r\n this.setupTerritoryModals();\r\n this.getPrice();\r\n if (token) {\r\n document.querySelector(\"#licensesPanel .quotation\").addEventListener(\"click\", (event) => {\r\n _this.requestQuotation();\r\n });\r\n document.querySelector(\"#licensesPanel .buy\").addEventListener(\"click\", (event) => {\r\n _this.requestBuy();\r\n });\r\n } else {\r\n document.querySelector(\"#licensesPanel .quotation\").setAttribute(\"data-target\", \"#loginModal\");\r\n document.querySelector(\"#licensesPanel .quotation\").setAttribute(\"data-toggle\", \"modal\");\r\n document.querySelector(\"#licensesPanel .buy\").setAttribute(\"data-target\", \"#loginModal\");\r\n document.querySelector(\"#licensesPanel .buy\").setAttribute(\"data-toggle\", \"modal\");\r\n }\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }, 200);\r\n }\r\n }\r\n\r\n updateSummary() {\r\n document.querySelector(\"#licensesPanel .total\").textContent =\r\n this.licensesTracks.length > 1 ? `${this.licensesTracks.length} TRACKS` : `${this.licensesTracks.length} TRACK`;\r\n if (!this.userLogged || !this.userManager.isActiveSubscription()) {\r\n document.querySelector(\"#licensesPanel .licenses-save\").style.display = \"\";\r\n }\r\n }\r\n\r\n setupTerritoryModals() {\r\n const _this = this;\r\n\r\n const primary = this.page.Zones.filter((item) => item.parent === 0);\r\n primary.map((parent) => {\r\n if (parent.name === \"Areas\") {\r\n this.areas = this.page.Zones.filter((item) => item.parent === parent.ID);\r\n } else if (parent.name === \"Continents\") {\r\n this.continents = this.page.Zones.filter((item) => item.parent === parent.ID);\r\n } else if (parent.name === \"Countries\") {\r\n this.countries = this.page.Zones.filter((item) => item.parent === parent.ID);\r\n } else if (parent.name === \"National\") {\r\n this.national = parent;\r\n } else if (parent.name === \"World\") {\r\n this.world = parent;\r\n }\r\n });\r\n\r\n const territoryModal = document.querySelector(\"#territoryModal\");\r\n this.countries.map((country) => {\r\n const modelId = \"#model-licenses-territory-checkbox\";\r\n const countryItem = document.querySelector(`${modelId} .form-check`).cloneNode(true);\r\n countryItem.querySelector(\".form-check-input\").value = country.ID;\r\n countryItem.querySelector(\".form-check-input\").id = `countryLicenses${country.ID}`;\r\n countryItem.querySelector(\".form-check-label\").textContent = country.name;\r\n countryItem.querySelector(\".form-check-label\").setAttribute(\"for\", `countryLicenses${country.ID}`);\r\n\r\n countryItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n _this.setZoneValue(event.target);\r\n });\r\n\r\n territoryModal.querySelector(\"#nations .territory-checkbox-list\").appendChild(countryItem);\r\n });\r\n this.areas.map((area) => {\r\n const modelId = \"#model-licenses-territory-checkbox\";\r\n const areaItem = document.querySelector(`${modelId} .form-check`).cloneNode(true);\r\n areaItem.querySelector(\".form-check-input\").value = area.ID;\r\n areaItem.querySelector(\".form-check-input\").id = `areaLicenses${area.ID}`;\r\n areaItem.querySelector(\".form-check-label\").textContent = area.name;\r\n areaItem.querySelector(\".form-check-label\").setAttribute(\"for\", `areaLicenses${area.ID}`);\r\n\r\n areaItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n _this.setZoneValue(event.target);\r\n });\r\n\r\n territoryModal.querySelector(\"#areas .territory-checkbox-list\").appendChild(areaItem);\r\n });\r\n this.continents.map((continent) => {\r\n const modelId = \"#model-licenses-territory-checkbox\";\r\n const continentItem = document.querySelector(`${modelId} .form-check`).cloneNode(true);\r\n continentItem.querySelector(\".form-check-input\").value = continent.ID;\r\n continentItem.querySelector(\".form-check-input\").id = `continentLicenses${continent.ID}`;\r\n continentItem.querySelector(\".form-check-label\").textContent = continent.name;\r\n continentItem.querySelector(\".form-check-label\").setAttribute(\"for\", `continentLicenses${continent.ID}`);\r\n\r\n continentItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n _this.setZoneValue(event.target);\r\n });\r\n\r\n territoryModal.querySelector(\"#continents .territory-checkbox-list\").appendChild(continentItem);\r\n });\r\n\r\n territoryModal.querySelector(\".total-selected\").addEventListener(\"click\", () => {\r\n _this.requestPriceUpdate(_this.territoryLicensesTrackSelected.data.id);\r\n setTimeout(() => {\r\n // territoryModal.querySelector(`.nav-item.areas a.nav-link`).classList.remove(\"active\");\r\n territoryModal.querySelector(`.tab-content #areas`).classList.remove(\"active\", \"show\");\r\n territoryModal.querySelector(`.nav-item.continents a.nav-link`).classList.remove(\"active\");\r\n territoryModal.querySelector(`.tab-content #continents`).classList.remove(\"active\", \"show\");\r\n territoryModal.querySelector(`.nav-item.nations a.nav-link`).classList.add(\"active\");\r\n territoryModal.querySelector(`.tab-content #nations`).classList.add(\"active\", \"show\");\r\n }, 500);\r\n });\r\n }\r\n\r\n setZoneValue(target) {\r\n const licensesTrack = this.territoryLicensesTrackSelected;\r\n if (target.checked) {\r\n licensesTrack.data.zone.push(target.value);\r\n } else {\r\n licensesTrack.data.zone.splice(licensesTrack.data.zone.indexOf(target.value), 1);\r\n }\r\n this.updateTerritoryModal();\r\n territoryModal.querySelector(\".total-selected\").disabled = licensesTrack.data.zone.length > 0 ? false : true;\r\n }\r\n\r\n updateTerritoryModal() {\r\n const licensesTrack = this.territoryLicensesTrackSelected;\r\n const territoryModal = document.querySelector(\"#territoryModal\");\r\n\r\n this.updateTerritoryTab(territoryModal, \"nations\");\r\n // this.updateTerritoryTab(territoryModal, \"areas\");\r\n this.updateTerritoryTab(territoryModal, \"continents\");\r\n\r\n if (licensesTrack.data.zone.length > 0) {\r\n territoryModal.querySelector(\".total-selected .counter\").textContent = `(${licensesTrack.data.zone.length})`;\r\n }\r\n }\r\n\r\n updateTerritoryTab(territoryModal, tab) {\r\n const inputs = territoryModal.querySelectorAll(`#${tab} .form-check-input`);\r\n let counter = 0;\r\n Array.from(inputs).map((input) => {\r\n if (this.territoryLicensesTrackSelected.data.zone.indexOf(input.value) > -1) {\r\n input.checked = true;\r\n counter++;\r\n } else {\r\n input.checked = false;\r\n }\r\n });\r\n if (counter > 0) {\r\n territoryModal.querySelector(`.nav-item.${tab} .counter`).textContent = `(${counter})`;\r\n } else {\r\n territoryModal.querySelector(`.nav-item.${tab} .counter`).textContent = \"\";\r\n }\r\n }\r\n\r\n getPrice(update) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Fetching Price\");\r\n const token = this.getCookie(\"user_token\");\r\n const tracks_data = this.licensesTracks.map((licensesTrack) => licensesTrack.data);\r\n fetch(`${Globals.WS_URL}?mode=ADVCALC.PRICE&token=${token}&tracks_data=${JSON.stringify(tracks_data)}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Fetch Price OK\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n let _new = false;\r\n if (this.total === 0) {\r\n _new = true;\r\n }\r\n this.total = result.prices.total;\r\n this.prices = result.prices.tracks;\r\n this.prices.map((item, index) => {\r\n const track = this.tracks.get({ id: item.id });\r\n const licensesTrack = this.licensesTracks.filter((item) => item.data.id === track.data.ID)[0];\r\n // PQP (non mi è chiaro molto questo pezzo ma probabilmente gli altri valori non servono al renderSingleItem)\r\n licensesTrack.price.single_included = item.single_included;\r\n if (!update) {\r\n track.setupArtistsObject(this.artists);\r\n this.renderSingleItem(track.data, index, licensesTrack);\r\n }\r\n licensesTrack.price.digital = item.digital;\r\n licensesTrack.price.offline = item.offline;\r\n licensesTrack.price.single_license = item.single_licence;\r\n // PQP\r\n licensesTrack.price.digital_included = item.digital_included;\r\n\r\n this.updateSingleItem(licensesTrack);\r\n });\r\n this.updateTotal();\r\n if (_new) {\r\n this.emitEvent(\"all_data_loaded\");\r\n }\r\n jQuery(\".js-preloader\").hide();\r\n this.isWorking = false;\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n this.isWorking = false;\r\n });\r\n }\r\n\r\n updateTotal() {\r\n const licensesPanel = document.querySelector(\"#licensesPanel\");\r\n licensesPanel.querySelector(\".amount .price\").textContent = `€ ${this.formatPrice(this.total)}`;\r\n licensesPanel.querySelector(\".amount .vat\").textContent = this.isVatString;\r\n if (this.userLogged) {\r\n licensesPanel.querySelector(\".btns-container .quotation\").disabled = true;\r\n licensesPanel.querySelector(\".btns-container .buy\").disabled = true;\r\n if (this.checkLicensesTracksPrices() && this.checkLicensesTracksValidity()) {\r\n licensesPanel.querySelector(\".btns-container .quotation\").disabled = false;\r\n licensesPanel.querySelector(\".btns-container .buy\").disabled = false;\r\n }\r\n }\r\n this.updateSummary();\r\n }\r\n\r\n renderSingleItem(track, index, licensesTrack) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Render Single Item\");\r\n\r\n const _this = this;\r\n\r\n const modelId = \"#model-licenses-single-item\";\r\n const licensesSingleTrack = document.querySelector(`${modelId} .licenses-single-track`).cloneNode(true);\r\n\r\n licensesSingleTrack.id = `licensesSingleItem${track.ID}`;\r\n licensesSingleTrack.querySelector(\".delete\").addEventListener(\"click\", (event) => {\r\n // this.isWorking = true;\r\n if (this.isWorking) {\r\n // alert(\"Work in progress, please wait\");\r\n return;\r\n }\r\n this.isWorking = true;\r\n // ---\r\n event.preventDefault();\r\n licensesSingleTrack.remove();\r\n _this.licensesTracks.splice(_this.licensesTracks.indexOf(licensesTrack), 1);\r\n const tracks_data = window.localStorage.getItem(\"licenses_tracks\").split(\",\");\r\n tracks_data.splice(tracks_data.indexOf(track.ID.toString()), 1);\r\n window.localStorage.setItem(\"licenses_tracks\", tracks_data.join(\",\"));\r\n document.querySelector(\"#mainMenu .licenses .nav-link .badge\").textContent = tracks_data.length === 0 ? \"\" : tracks_data.length;\r\n _this.updateMenuLicensesTable();\r\n _this.getPrice(true);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".licenses-track-info .title .info-content\").innerHTML = track.Name;\r\n licensesSingleTrack.querySelector(\".licenses-track-info .artist .info-content\").innerHTML = track.Artists.map((artist) => {\r\n if (artist) {\r\n return artist.get().Name;\r\n }\r\n return \"\";\r\n }).join(\", \");\r\n licensesSingleTrack.querySelector(\".licenses-track-info .length .info-content\").textContent = track.MP3.LengthFMT;\r\n licensesSingleTrack.querySelector(\".licenses-track-info .catalogue .info-content\").textContent = track.Artists[0].data.Format;\r\n\r\n licensesSingleTrack.querySelector(\".license-data input[name=pjName]\").addEventListener(\"keyup\", (event) => {\r\n licensesTrack.data.prj_name = _this.cleanInput(event.target.value);\r\n event.target.classList.remove(\"is-invalid\");\r\n _this.updateTotal();\r\n });\r\n licensesSingleTrack.querySelector(\".license-data input[name=client]\").addEventListener(\"keyup\", (event) => {\r\n licensesTrack.data.prj_client = _this.cleanInput(event.target.value);\r\n event.target.classList.remove(\"is-invalid\");\r\n _this.updateTotal();\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".standard-license\").classList.add(\"active\");\r\n licensesSingleTrack.querySelector(\".standard-license .group-selector input\").name = `licenseType-${licensesTrack.data.id}`;\r\n licensesSingleTrack.querySelector(\".standard-license .group-selector input\").checked = true;\r\n licensesTrack.data.single_licence = true;\r\n licensesTrack.price.single_license = this.page.SingleLicence.price;\r\n if (licensesTrack.price.single_included) {\r\n licensesSingleTrack.querySelector(\".standard-license .total\").style.display = \"none\";\r\n licensesSingleTrack.querySelector(\".standard-license .price\").innerHTML = `Included`;\r\n } else {\r\n licensesSingleTrack.querySelector(\".standard-license .total\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".standard-license .price\").textContent = `€ ${this.formatPrice(this.page.SingleLicence.price)}`;\r\n licensesSingleTrack.querySelector(\".standard-license .vat\").textContent = this.isVatString;\r\n }\r\n licensesSingleTrack.querySelector(\".standard-license .group-selector input\").addEventListener(\"click\", () => {\r\n licensesSingleTrack.querySelector(\".standard-license\").classList.add(\"active\");\r\n licensesSingleTrack.querySelector(\".commercial-license\").classList.remove(\"active\");\r\n licensesTrack.data.single_licence = true;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".commercial-license\").classList.remove(\"active\");\r\n licensesSingleTrack.querySelector(\".commercial-license .group-selector input\").name = `licenseType-${licensesTrack.data.id}`;\r\n licensesSingleTrack.querySelector(\".commercial-license .group-selector input\").checked = false;\r\n licensesSingleTrack.querySelector(\".commercial-license .group-selector input\").addEventListener(\"click\", () => {\r\n licensesSingleTrack.querySelector(\".commercial-license\").classList.add(\"active\");\r\n licensesSingleTrack.querySelector(\".standard-license\").classList.remove(\"active\");\r\n licensesTrack.data.single_licence = false;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n // ---\r\n\r\n if (this.userLogged) {\r\n // console.log(this.userLogged);\r\n if (this.userLogged.cc == 4) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Auto select commercial\");\r\n // document.querySelector(\".license-box-label.commercial-license\").click();\r\n licensesSingleTrack.querySelector(\".commercial-license .group-selector input\").checked = true;\r\n // ---\r\n licensesSingleTrack.querySelector(\".commercial-license\").classList.add(\"active\");\r\n licensesSingleTrack.querySelector(\".standard-license\").classList.remove(\"active\");\r\n licensesTrack.data.single_licence = false;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n }\r\n }\r\n\r\n // ---\r\n\r\n licensesSingleTrack.querySelector(\".reset-digital\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n const inputs = licensesSingleTrack.querySelectorAll(\".digital-list input\");\r\n Array.from(inputs).map((input) => {\r\n input.checked = false;\r\n });\r\n licensesSingleTrack.querySelector(\".licenses-block-subtitle .text-muted\").textContent = \"\";\r\n licensesTrack.data.digital = 0;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n this.page.Digital.map((digital) => {\r\n const modelId = \"#model-licenses-single-digital-item\";\r\n const digitalItem = document.querySelector(`${modelId} .item`).cloneNode(true);\r\n digitalItem.querySelector(\".form-check-input\").value = digital.ID;\r\n digitalItem.querySelector(\".form-check-input\").id = `digitalLicenses${track.ID}${digital.ID}`;\r\n digitalItem.querySelector(\".form-check-input\").name = `digitalLicenses${track.ID}`;\r\n digitalItem.querySelector(\".form-check-label\").textContent = digital.name;\r\n digitalItem.querySelector(\".form-check-label\").setAttribute(\"for\", `digitalLicenses${track.ID}${digital.ID}`);\r\n\r\n digitalItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n licensesSingleTrack.querySelector(\".licenses-block-subtitle .text-muted\").textContent = digital.description;\r\n licensesTrack.data.digital = event.target.value;\r\n Array.from(licensesSingleTrack.querySelectorAll(\".media-list input\")).map((input) => {\r\n if (input.dataset.exclusive === \"true\" && licensesTrack.data.media.indexOf(input.dataset.id) > -1) {\r\n input.checked = false;\r\n licensesTrack.data.media.splice(licensesTrack.data.media.indexOf(input.dataset.id), 1);\r\n }\r\n });\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".digital-list\").appendChild(digitalItem);\r\n });\r\n\r\n this.page.Media.map((media) => {\r\n const modelId = \"#model-licenses-single-media-item\";\r\n const mediaItem = document.querySelector(`${modelId} .item`).cloneNode(true);\r\n mediaItem.querySelector(\".form-check-input\").value = media.ID;\r\n mediaItem.querySelector(\".form-check-input\").id = `mediaLicenses${media.ID}`;\r\n mediaItem.querySelector(\".form-check-input\").dataset.id = media.ID;\r\n mediaItem.querySelector(\".form-check-input\").dataset.exclusive = media.exclusive;\r\n mediaItem.querySelector(\".form-check-label .name\").textContent = media.name;\r\n mediaItem.querySelector(\".form-check-label .info\").setAttribute(\"title\", media.description.replace(/<\\/?[^>]+(>|$)/g, \"\"));\r\n // mediaItem.querySelector(\".form-check-label .icon-info .desc\").textContent = media.description; // 220913 - Popup Info\r\n mediaItem.querySelector(\".form-check-label\").setAttribute(\"for\", `mediaLicenses${media.ID}`);\r\n\r\n mediaItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n if (event.target.checked) {\r\n if (event.target.dataset.exclusive === \"true\") {\r\n Array.from(licensesSingleTrack.querySelectorAll(\".media-list input\")).map((input) => {\r\n if (input.dataset.id !== event.target.dataset.id) {\r\n input.checked = false;\r\n licensesTrack.data.media.splice(licensesTrack.data.media.indexOf(event.target.dataset.id), 1);\r\n }\r\n });\r\n /* // No Digital on All Media Package (752)\r\n Array.from(licensesSingleTrack.querySelectorAll(\".digital-list input\")).map((input) => {\r\n input.checked = false;\r\n });\r\n licensesTrack.data.digital = 0;\r\n //*/\r\n } else {\r\n Array.from(licensesSingleTrack.querySelectorAll(\".media-list input\")).map((input) => {\r\n if (input.dataset.exclusive === \"true\" && licensesTrack.data.media.indexOf(input.dataset.id) > -1) {\r\n input.checked = false;\r\n licensesTrack.data.media.splice(licensesTrack.data.media.indexOf(input.dataset.id), 1);\r\n }\r\n });\r\n }\r\n licensesTrack.data.media.push(event.target.value);\r\n } else {\r\n licensesTrack.data.media.splice(licensesTrack.data.media.indexOf(event.target.value), 1);\r\n }\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".media-list\").appendChild(mediaItem);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".offline .period-calc .minus\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n if (licensesTrack.data.time !== 0) {\r\n licensesTrack.data.time -= _this.timeSteps;\r\n licensesSingleTrack.querySelector(\".offline .period-calc .period-value\").textContent = `${licensesTrack.data.time} months`;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n }\r\n });\r\n licensesSingleTrack.querySelector(\".offline .period-calc .plus\").addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n licensesTrack.data.time += _this.timeSteps;\r\n licensesSingleTrack.querySelector(\".offline .period-calc .period-value\").textContent = `${licensesTrack.data.time} months`;\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".add-territory\").addEventListener(\"click\", (event) => {\r\n _this.territoryLicensesTrackSelected = licensesTrack;\r\n _this.updateTerritoryModal();\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".territory-worldwide\").addEventListener(\"click\", (event) => {\r\n if (event.target.checked) {\r\n const modal = \"#territoryProceedModal\";\r\n jQuery(modal).modal(\"show\");\r\n _this.territoryLicensesTrackSelected = licensesTrack;\r\n } else {\r\n licensesTrack.data.zone = [];\r\n licensesSingleTrack.querySelector(\".tags-list\").textContent = \"\";\r\n licensesSingleTrack.querySelector(\".tags-list\").style.display = \"flex\";\r\n licensesSingleTrack.querySelector(\".add-territory\").style.display = \"flex\";\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n }\r\n });\r\n\r\n // licensesSingleTrack.querySelector(\".reset-exclusive\").addEventListener(\"click\", (event) => {\r\n // event.preventDefault();\r\n // const inputs = licensesSingleTrack.querySelectorAll(\".exclusive-list input\");\r\n // Array.from(inputs).map((input) => {\r\n // input.checked = false;\r\n // });\r\n // licensesTrack.data.exclusive = 0;\r\n // _this.requestPriceUpdate(licensesTrack.data.id);\r\n // });\r\n\r\n // this.exclusiveTypes.map((name, index) => {\r\n // const modelId = \"#model-licenses-single-exclusive-item\";\r\n // const exclusiveItem = document.querySelector(`${modelId} .item`).cloneNode(true);\r\n // exclusiveItem.querySelector(\".form-check-input\").value = index;\r\n // exclusiveItem.querySelector(\".form-check-input\").id = `exclusiveLicenses${track.ID}${index}`;\r\n // exclusiveItem.querySelector(\".form-check-input\").name = `exclusiveLicenses${track.ID}`;\r\n // exclusiveItem.querySelector(\".form-check-label\").textContent = name;\r\n // exclusiveItem.querySelector(\".form-check-label\").setAttribute(\"for\", `exclusiveLicenses${track.ID}${index}`);\r\n\r\n // exclusiveItem.querySelector(\".form-check-input\").addEventListener(\"click\", (event) => {\r\n // licensesTrack.data.exclusive = event.target.value;\r\n // _this.requestPriceUpdate(licensesTrack.data.id);\r\n // });\r\n\r\n // licensesSingleTrack.querySelector(\".exclusive-list\").appendChild(exclusiveItem);\r\n // });\r\n\r\n document.querySelector(\"#licensesTracksList\").appendChild(licensesSingleTrack);\r\n }\r\n\r\n requestPriceUpdate(id) {\r\n // jQuery(`#licensesSingleItem${id} .js-preloader`).show();\r\n this.getPrice(true);\r\n }\r\n\r\n updateSingleItem(licensesTrack) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Update Single Item\");\r\n\r\n const licensesSingleTrack = document.querySelector(`#licensesSingleItem${licensesTrack.data.id}`);\r\n\r\n const allLicenses = document.querySelectorAll(\"#licensesTracksList .licenses-single-track\");\r\n const index = Array.from(allLicenses).indexOf(licensesSingleTrack);\r\n licensesSingleTrack.querySelector(\".single-track-title\").textContent = `Track #${index + 1}`;\r\n\r\n Array.from(licensesSingleTrack.querySelectorAll(\".license-data input\")).map((input) => {\r\n if (input.name === \"pjName\") input.value = licensesTrack.data.prj_name;\r\n if (input.name === \"client\") input.value = licensesTrack.data.prj_client;\r\n });\r\n //debugger\r\n if (licensesTrack.price.digital !== 0) {\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .label\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .price\").textContent = `€ ${this.formatPrice(licensesTrack.price.digital)}`;\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .vat\").textContent = this.isVatString;\r\n } else {\r\n if (licensesTrack.price.digital_included) {\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .label\").style.display = \"\";\r\n // licensesSingleTrack.querySelector(\".digital .licenses-total-amount .price\").innerHTML = `Included`;\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .price\").innerHTML = `€ ${this.formatPrice(0)}`;\r\n } else {\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount\").style.display = \"none\";\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .label\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".digital .licenses-total-amount .price\").textContent = \"\";\r\n }\r\n }\r\n\r\n if (licensesTrack.price.offline !== 0) {\r\n licensesSingleTrack.querySelector(\".offline .licenses-total-amount\").style.display = \"\";\r\n licensesSingleTrack.querySelector(\".offline .licenses-total-amount .price\").textContent = `€ ${this.formatPrice(licensesTrack.price.offline)}`;\r\n licensesSingleTrack.querySelector(\".offline .licenses-total-amount .vat\").textContent = this.isVatString;\r\n } else {\r\n licensesSingleTrack.querySelector(\".offline .licenses-total-amount\").style.display = \"none\";\r\n licensesSingleTrack.querySelector(\".offline .licenses-total-amount .price\").textContent = \"\";\r\n }\r\n\r\n licensesSingleTrack.querySelector(\".tags-list\").textContent = \"\";\r\n if (licensesTrack.data.zone.length > 0) {\r\n licensesTrack.data.zone.map((zoneId) => {\r\n const modelId = \"#model-licenses-single-tag-territory-item\";\r\n const zoneItem = document.querySelector(`${modelId} .tag-item`).cloneNode(true);\r\n\r\n const zone = this.page.Zones.filter((zone) => zone.ID === parseInt(zoneId))[0];\r\n\r\n zoneItem.querySelector(\".name\").textContent = zone.name;\r\n\r\n const _this = this;\r\n\r\n zoneItem.querySelector(\".remove-tag-btn\").addEventListener(\"click\", () => {\r\n zoneItem.remove();\r\n licensesTrack.data.zone.splice(licensesTrack.data.zone.indexOf(zoneId), 1);\r\n _this.requestPriceUpdate(licensesTrack.data.id);\r\n });\r\n\r\n licensesSingleTrack.querySelector(\".tags-list\").appendChild(zoneItem);\r\n });\r\n }\r\n }\r\n\r\n requestQuotation() {\r\n if (this.checkLicensesTracksValidity()) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Request Quotation\");\r\n const token = this.getCookie(\"user_token\");\r\n const tracks_data = this.licensesTracks.map((licensesTrack) => licensesTrack.data);\r\n fetch(`${Globals.WS_URL}?mode=ADVCALC.QUOTATION&token=${token}&tracks_data=${JSON.stringify(tracks_data)}`)\r\n .then(this.handleResponse)\r\n .then((result) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Request Quotation OK\");\r\n this.download(result.pdf_url);\r\n })\r\n .catch((error) => {\r\n Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message });\r\n jQuery(\".js-critical-error\").show();\r\n });\r\n }\r\n }\r\n\r\n requestBuy() {\r\n if (this.checkLicensesTracksValidity()) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Request Buy\");\r\n const token = this.getCookie(\"user_token\");\r\n const tracks_data = this.licensesTracks.map((licensesTrack) => licensesTrack.data);\r\n const url = `${Globals.WS_URL}?mode=ADVCALC.PAYMENT&token=${token}&tracks_data=${JSON.stringify(tracks_data)}&return_url_ok=${\r\n this.paymentUrl.return_url_ok\r\n }&return_url_err=${this.paymentUrl.return_url_err}`;\r\n // fetch(\r\n // url\r\n // )\r\n // .then(this.handleResponse)\r\n // .then((result) => {\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"LicensesManager - Request Buy OK\");\r\n // if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(result);\r\n // })\r\n // .catch((error) => Globals.SHOW_ALL_CONSOLE_LOG && console.log({ message: error.message }));\r\n window.open(url, \"_self\");\r\n } else {\r\n const modal = \"#licensesStatusModal\";\r\n document.querySelector(`${modal} .message`).textContent = \"ERROR: check the data entered\";\r\n jQuery(modal).modal(\"show\");\r\n setTimeout(() => jQuery(modal).modal(\"hide\"), 3000);\r\n }\r\n }\r\n\r\n checkLicensesTracksValidity() {\r\n let valid = true;\r\n this.licensesTracks.map((licensesTrack) => {\r\n if (licensesTrack.data.prj_name === \"\" || licensesTrack.data.prj_client === \"\") {\r\n if (valid) {\r\n valid = false;\r\n }\r\n if (licensesTrack.data.prj_name === \"\") {\r\n document.querySelector(`#licensesSingleItem${licensesTrack.data.id} input[name=\"pjName\"]`).classList.add(\"is-invalid\");\r\n }\r\n if (licensesTrack.data.prj_client === \"\") {\r\n document.querySelector(`#licensesSingleItem${licensesTrack.data.id} input[name=\"client\"]`).classList.add(\"is-invalid\");\r\n }\r\n }\r\n });\r\n return valid;\r\n }\r\n\r\n checkLicensesTracksPrices() {\r\n let valid = true;\r\n this.licensesTracks.map((licensesTrack) => {\r\n if (licensesTrack.price.digital === 0 && licensesTrack.price.offline === 0 && licensesTrack.price.single_license === 0) {\r\n if (valid) {\r\n valid = false;\r\n }\r\n }\r\n });\r\n return valid;\r\n }\r\n}\r\n","import Globals from \"../Globals.js\";\r\nimport DataManager from \"./DataManager.js\";\r\nimport PageCommon from \"./PageCommon.js\";\r\nimport SearchManager from \"./SearchManager.js\";\r\nimport PlayerManager from \"./PlayerManager.js\";\r\nimport UserManager from \"./UserManager.js\";\r\nimport VideoManager from \"./VideoManager.js\";\r\nimport IndexedDBManager from \"./IndexedDBManager.js\";\r\nimport LicensesManager from \"./LicensesManager.js\";\r\n\r\nexport default class PageShow extends PageCommon {\r\n constructor() {\r\n super();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PageShow - constructor\");\r\n this.pageName = \"\";\r\n this.renderedHTML = [];\r\n this.dataManager = new DataManager();\r\n this.searchManager = new SearchManager();\r\n this.playerManager = new PlayerManager();\r\n this.videoManager = new VideoManager();\r\n this.userManager = new UserManager();\r\n this.indexedDBManager = new IndexedDBManager();\r\n this.licensesManager = new LicensesManager();\r\n\r\n this.scrollOffsetCompress = 10;\r\n this.timeoutUploadedVideo = 3600;\r\n }\r\n\r\n init({ pageName }) {\r\n super.init();\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PageShow - init\");\r\n\r\n this.showPreloader(true);\r\n\r\n this.resetUploadedVideo();\r\n\r\n this.pageName = pageName;\r\n\r\n const _this = this;\r\n\r\n document.addEventListener(\"user_ready\", (event) => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cPageShow - User Ready\", \"color: orange\");\r\n if (event.detail.loadDataManager) {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cPageShow - Init DataManager\", \"color: orange\");\r\n _this.dataManager.init();\r\n }\r\n });\r\n\r\n document.addEventListener(\"data_ready\", () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cPageShow - Data Ready\", \"color: orange\");\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(_this.dataManager.dataStructure);\r\n _this.showPage();\r\n _this.showPreloader(false);\r\n if (this.pageName !== \"licenses\") {\r\n _this.setFrontendFunctions();\r\n }\r\n _this.autoFillPlayerFromLocalStorage();\r\n _this.autoLoadVideo();\r\n });\r\n\r\n document.addEventListener(\"playlists_update\", () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PageShow - User Ready\");\r\n _this.reloadMyplaylist();\r\n });\r\n\r\n document.addEventListener(\"page_rendered\", () => {\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"PageShow - Page Rendered\");\r\n\r\n const token = this.getCookie(\"user_token\");\r\n const urlParams = this.getUrlParams();\r\n\r\n if (!token && urlParams.get(\"token\")) {\r\n this.setCookie(\"user_token\", urlParams.get(\"token\"));\r\n urlParams.delete(\"token\");\r\n console.log(urlParams);\r\n window.location.search = urlParams.toString();\r\n }\r\n\r\n _this.userManager.setDataManager(_this.dataManager);\r\n\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cPageShow - Set Current User\", \"color: orange\");\r\n _this.userManager.setCurrentUser({ loadDataManager: true });\r\n\r\n _this.videoManager.run({ indexedDB: _this.indexedDBManager });\r\n\r\n /* // --- Random HP Background\r\n const hpCanvasBk = document.querySelectorAll(\".hp-canvas\");\r\n if (hpCanvasBk.length == 1) hpCanvasBk[0].style.backgroundImage = \"url('/dist/assets/\" + (Math.floor(Math.random() * 5) + 2) + \".jpg')\";\r\n //*/\r\n });\r\n\r\n document.addEventListener(\"all_data_loaded\", () => {\r\n _this.setFrontendFunctions();\r\n });\r\n\r\n this.renderPage();\r\n }\r\n\r\n autoFillPlayerFromLocalStorage() {\r\n if (window.localStorage.getItem(\"playing_track_id\")) {\r\n const id = window.localStorage.getItem(\"playing_track_id\");\r\n const target = Array.from(document.querySelectorAll(\".track-item\")).filter((item) => item.dataset.id === id)[0];\r\n this.emitEvent(\"track_clicked\", { detail: { id, target, autoload: true } });\r\n } else {\r\n if (document.querySelector(\"#playerBlock\")) {\r\n document.querySelector(\"#playerBlock\").style.cssText += \";display:none !important;\";\r\n }\r\n }\r\n }\r\n\r\n resetUploadedVideo() {\r\n const lastPageLoaded = window.localStorage.getItem(\"last_page_loaded_timestamp\");\r\n const now = parseInt(new Date().getTime() / 1000);\r\n\r\n window.localStorage.setItem(\"last_page_loaded_timestamp\", now);\r\n\r\n if (now > +lastPageLoaded + this.timeoutUploadedVideo) {\r\n window.localStorage.setItem(\"delete_indexDB\", true);\r\n }\r\n }\r\n\r\n autoLoadVideo() {\r\n const _this = this;\r\n document.addEventListener(\"player_ready\", () => {\r\n _this.indexedDBManager.open();\r\n document.addEventListener(\"idb_ready\", () => {\r\n const deleteIndexDBForTimeout = window.localStorage.getItem(\"delete_indexDB\");\r\n if (deleteIndexDBForTimeout) {\r\n _this.indexedDBManager.delete(1);\r\n window.localStorage.removeItem(\"delete_indexDB\");\r\n } else {\r\n _this.indexedDBManager.read(1);\r\n }\r\n });\r\n\r\n const youtubeUrl = window.localStorage.getItem(\"youtube_video_url\");\r\n if (youtubeUrl) {\r\n _this.emitEvent(\"youtube_video_found\", { detail: { url: youtubeUrl } });\r\n if (_this.pageName === \"find-music\") {\r\n document.body.classList.add(\"video-uploaded\");\r\n }\r\n }\r\n\r\n // AI Video\r\n /*\r\n if (window.location.origin === \"https://sz-web01-test.azurewebsites.net\" || window.location.origin.indexOf(\"https://localhost\") >= 0) {\r\n const li = document.createElement(\"li\");\r\n li.className = \"nav-item\";\r\n const link = document.createElement(\"a\");\r\n link.className = \"nav-link d-none d-md-block\";\r\n link.href = \"/match-video-ai\";\r\n link.textContent = \"AI TOOL\";\r\n li.append(link);\r\n document.querySelector(\".navbar-nav .nav-item:nth-child(2)\").after(li);\r\n }\r\n //*/\r\n\r\n });\r\n }\r\n\r\n setupIndexedDB(windowIndexedDB) {\r\n this.indexedDBManager.init({ windowIndexedDB, dbName: \"videos_db\" });\r\n }\r\n\r\n isStaticPage(page) {\r\n return (\r\n [\r\n \"index\",\r\n \"team-pricing\",\r\n \"licenses\",\r\n \"pricing\",\r\n \"profile\",\r\n \"artist-profile\",\r\n \"support\",\r\n \"faq\",\r\n \"faq-artist\",\r\n \"become-an-artist\",\r\n \"team-licensing\",\r\n \"privacy\",\r\n \"free-trial\",\r\n \"about-us\",\r\n \"ask-us\",\r\n \"placements\",\r\n \"thank-you\",\r\n \"tutorial\",\r\n \"match-video-mobile\",\r\n \"match-video-ai\",\r\n ].indexOf(page) > -1\r\n );\r\n }\r\n\r\n renderPage() {\r\n const path = this.pageName === \"index\" ? \"Pages/\" : \"\";\r\n\r\n // Common\r\n this.injectHTML(\".library-template\", \"library-template.html\");\r\n this.injectHTML(\".main-header\", \"main-header.html\", path, [\r\n {\r\n id: \"#playlistsHeaderSection\",\r\n file: \"section-playlists-header.html\",\r\n },\r\n ]);\r\n this.injectHTML(\".fm-searchbar-container\", \"searchbar-container.html\");\r\n this.injectHTML(\".sync-tool-container\", \"sync-tool.html\", null, [\r\n {\r\n id: \"#videoBlock\",\r\n file: \"video.html\",\r\n },\r\n ]);\r\n this.injectHTML(\"#playerBlock\", \"player.html\");\r\n this.injectHTML(\"#mobilePlayerBlock\", \"mobilePlayer.html\");\r\n this.injectHTML(\".fm-nav-container\", \"nav-container.html\");\r\n this.injectHTML(\".main-footer\", \"main-footer.html\", path);\r\n\r\n // Find Music\r\n this.injectHTML(\"#playlistsSection\", \"section-playlists-swiper.html\");\r\n this.injectHTML(\"#tracksSection .tracks-list\", \"tracks-list.html\");\r\n this.injectHTML(\"#producersBlock\", \"block-producers.html\");\r\n this.injectHTML(\"#artistsBlock\", \"block-artists.html\");\r\n this.injectHTML(\"#albumsBlock\", \"block-albums.html\");\r\n this.injectHTML(\"#labelsBlock\", \"block-labels.html\");\r\n\r\n // Artist\r\n this.injectHTML(\"#artistSection\", \"section-artist-single.html\");\r\n // Artists\r\n this.injectHTML(\"#artistsListSection\", \"section-artists-list.html\");\r\n\r\n // Playlist\r\n this.injectHTML(\"#playlistSection\", \"section-playlist-single.html\");\r\n // Playlists\r\n this.injectHTML(\"#playlistsListSection\", \"section-playlists-list.html\");\r\n\r\n // Album\r\n this.injectHTML(\"#albumSection\", \"section-album-single.html\");\r\n // Albums\r\n this.injectHTML(\"#albumsListSection\", \"section-albums-list.html\");\r\n\r\n // Label\r\n this.injectHTML(\"#labelSection\", \"section-label-single.html\");\r\n // Labels\r\n this.injectHTML(\"#labelsListSection\", \"section-labels-list.html\");\r\n\r\n // Modal\r\n this.injectHTML(\"#modals\", \"modals.html\", null, [\r\n {\r\n id: \"#playlistModal\",\r\n file: \"modal-playlist-create.html\",\r\n },\r\n {\r\n id: \"#playlistDeleteModal\",\r\n file: \"modal-playlist-delete.html\",\r\n },\r\n {\r\n id: \"#playlistRemoveTrackModal\",\r\n file: \"modal-playlist-remove-track.html\",\r\n },\r\n {\r\n id: \"#playlistAddTrackOKModal\",\r\n file: \"modal-playlist-add-track-ok.html\",\r\n },\r\n {\r\n id: \"#playlistAddTrackERRORModal\",\r\n file: \"modal-playlist-add-track-error.html\",\r\n },\r\n {\r\n id: \"#loginModal\",\r\n file: \"modal-login.html\",\r\n path: path,\r\n },\r\n {\r\n id: \"#registerModal\",\r\n file: \"modal-register.html\",\r\n path: path,\r\n },\r\n {\r\n id: \"#showSubscriptionRegisterModal\",\r\n file: \"modal-showsubscription-register.html\",\r\n path: path,\r\n },\r\n {\r\n id: \"#notLoggedModal\",\r\n file: \"modal-not-logged.html\",\r\n },\r\n {\r\n id: \"#artistModal\",\r\n file: \"modal-artist.html\",\r\n },\r\n {\r\n id: \"#loadingModal\",\r\n file: \"modal-loading.html\",\r\n },\r\n {\r\n id: \"#videoErrorModal\",\r\n file: \"modal-video-error.html\",\r\n },\r\n {\r\n id: \"#licensesStatusModal\",\r\n file: \"modal-licenses-status.html\",\r\n },\r\n {\r\n id: \"#territoryModal\",\r\n file: \"modal-territory.html\",\r\n },\r\n {\r\n id: \"#territoryProceedModal\",\r\n file: \"modal-territory-proceed.html\",\r\n },\r\n {\r\n id: \"#profileEditModal\",\r\n file: \"modal-profile-edit.html\",\r\n },\r\n {\r\n id: \"#artistProfileEditModal\",\r\n file: \"modal-artist-profile-edit.html\",\r\n },\r\n {\r\n id: \"#profileUpdateStatusModal\",\r\n file: \"modal-profile-update-status.html\",\r\n },\r\n {\r\n id: \"#genericStatusModal\",\r\n file: \"modal-generic-status.html\",\r\n },\r\n ]);\r\n }\r\n\r\n injectHTML(element, file, path, group) {\r\n const container = document.querySelector(element);\r\n if (container) {\r\n this.renderedHTML.push(element);\r\n fetch(`${Globals.URL_FETCH_BLOCK}${file}`)\r\n .then((data) => data.text())\r\n .then((html) => {\r\n let content = html;\r\n if (path) {\r\n content = html\r\n .replace(/href=\\\"(?!index.html)([a-zA-Z0-9.\\-]*)\\\"/g, `href=\\\"${path}$1\\\"`)\r\n .replace(/img src=\"..\\/assets/g, 'img src=\"assets')\r\n .replace(/href=\\\"..\\/index.html\\\"/g, `href=\\\"index.html\\\"`);\r\n }\r\n container.innerHTML = content;\r\n if (group) {\r\n group.map(({ id, file, path }) => {\r\n this.injectHTML(id, file, path);\r\n });\r\n }\r\n this.renderedHTML.splice(this.renderedHTML.indexOf(element), 1);\r\n if (this.renderedHTML.length === 0) {\r\n this.emitEvent(\"page_rendered\");\r\n }\r\n return;\r\n })\r\n .catch((error) => Globals.SHOW_ALL_CONSOLE_LOG && console.log(\"ERROR injectHTML\", file, error));\r\n }\r\n }\r\n\r\n showPage() {\r\n const dataStructure = this.dataManager.dataStructure;\r\n const urlParams = this.getUrlParams();\r\n\r\n const _this = this;\r\n\r\n if (!this.isStaticPage(this.pageName)) {\r\n dataStructure.filters.renderList(this.searchManager);\r\n dataStructure.playlists.renderMyplaylistsList(this.userManager);\r\n dataStructure.tracks.setUserManager(this.userManager);\r\n dataStructure.tracks.setPlaylists(dataStructure.playlists);\r\n document.body.addEventListener(\"keydown\", (event) => {\r\n if (event.target.tagName !== \"INPUT\" && event.target.tagName !== \"TEXTAREA\") {\r\n const keyCode = _this.getKeyCode(event);\r\n if (keyCode === \"Space\") {\r\n event.preventDefault();\r\n const audio = _this.playerManager.player.querySelector(\"audio\");\r\n if (audio.paused) {\r\n _this.emitEvent(\"track_play\");\r\n _this.emitEvent(\"video_play\");\r\n } else {\r\n _this.emitEvent(\"track_pause\");\r\n _this.emitEvent(\"video_pause\");\r\n }\r\n return true;\r\n }\r\n else if (keyCode === \"ArrowLeft\") {\r\n _this.emitEvent(\"audio_backward\");\r\n }\r\n else if (keyCode === \"ArrowRight\") {\r\n _this.emitEvent(\"audio_forward\");\r\n }\r\n else if (keyCode === \"ArrowUp\") {\r\n _this.emitEvent(\"audio_prev\");\r\n if (_this.playerManager.player) event.preventDefault();\r\n }\r\n else if (keyCode === \"ArrowDown\") {\r\n _this.emitEvent(\"audio_next\");\r\n if (_this.playerManager.player) event.preventDefault();\r\n }\r\n }\r\n return false;\r\n });\r\n document.querySelector(\".fm-searchbar\").classList.add(\"fm-searchbar--small\");\r\n // window.addEventListener(\"scroll\", () => {\r\n // if (window.scrollY >= _this.scrollOffsetCompress) {\r\n // document.querySelector(\".fm-searchbar\").classList.add(\"fm-searchbar--small\");\r\n // } else {\r\n // document.querySelector(\".fm-searchbar\").classList.remove(\"fm-searchbar--small\");\r\n // }\r\n // });\r\n }\r\n\r\n document.addEventListener(\"match_video_to_track\", (event) => {\r\n const id = event.detail.track.ID;\r\n if (document.querySelector(\"#playerBlock\")) {\r\n const target = Array.from(document.querySelectorAll(\"#tracksSection .track-item\")).filter((item) => item.dataset.id === id)[0];\r\n document.querySelector(\".sync-tool\").style.display = \"\";\r\n document.querySelector(\"#playerBlock\").style.display = \"\";\r\n _this.emitEvent(\"track_clicked\", { detail: { id, target, autoload: true } });\r\n } else {\r\n window.localStorage.setItem(\"playing_track_id\", id);\r\n return (window.location.href = \"/match-video\");\r\n }\r\n });\r\n\r\n this.licensesManager.init({\r\n pageName: this.pageName,\r\n tracks: dataStructure.tracks,\r\n artists: dataStructure.artists,\r\n artists_formats: dataStructure.artists_formats,\r\n userManager: this.userManager,\r\n });\r\n\r\n if (window.location.pathname !== \"/\") {\r\n const mainMenu = document.querySelector(\"#mainMenu\");\r\n const menuItems = mainMenu.querySelectorAll(\".nav-item\");\r\n Array.from(menuItems).map((item) => {\r\n const link = item.querySelector(\"a.nav-link\");\r\n if (link.href.indexOf(\"#\") === -1 && link.href.startsWith(window.location.href)) {\r\n link.classList.add(\"active\");\r\n } else {\r\n const sublinks = item.querySelectorAll(\"a.dropdown-item\");\r\n Array.from(sublinks).map((sublink) => {\r\n if (sublink.href.indexOf(\"#\") === -1 && sublink.href.startsWith(window.location.href)) {\r\n link.classList.add(\"active\");\r\n sublink.classList.add(\"active\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n switch (this.pageName) {\r\n case \"find-music\":\r\n case \"match-video\":\r\n if (this.pageName === \"match-video\") {\r\n document.querySelector(\".sync-tool\").style.display = \"\";\r\n }\r\n dataStructure.tracks.renderFirstpageList();\r\n dataStructure.playlists.renderFirstpageList();\r\n dataStructure.artists.renderFirstpageList(\"producers\");\r\n dataStructure.artists.renderFirstpageList(\"artists\");\r\n dataStructure.albums.renderFirstpageList();\r\n dataStructure.labels.renderFirstpageList();\r\n this.setupNavigation(\r\n [\r\n \"#sideMenu a\",\r\n \"#playlistsMenu a\",\r\n \"#contentWrapper #playlistsSection a\",\r\n \"#contentWrapper #tracksSection a\",\r\n \"#producersBlock a\",\r\n \"#artistsBlock a\",\r\n \"#albumsBlock a\",\r\n \"#labelsBlock a\",\r\n ],\r\n false\r\n );\r\n // window.addEventListener(\"beforeunload\", (event) => {\r\n // const video = document.querySelector(\"video#uploadedVideo\");\r\n // if (video.src.startsWith(\"blob:\")) {\r\n // event.preventDefault();\r\n // event.returnValue = `You exiting from the page. The video will need to be uploaded again.`;\r\n // document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"NOTICE\";\r\n // document.querySelector(\"#genericStatusModal .message\").innerHTML = \"You exiting from the page. The video will need to be uploaded again.\";\r\n // jQuery(\"#genericStatusModal\").modal(\"show\");\r\n // setTimeout(() => {\r\n // document.querySelector(\"#genericStatusModal .medium-title\").textContent = \"\";\r\n // document.querySelector(\"#genericStatusModal .message\").textContent = \"\";\r\n // jQuery(\"#genericStatusModal\").modal(\"hide\");\r\n // }, 10000);\r\n // }\r\n //});\r\n\r\n // if (this.userManager.userLogged) {\r\n // if (this.userManager.isActiveSubscription()) {\r\n document.querySelector(\"#videoBlock .video-container .ai-video\").style.display = \"flex\";\r\n // }\r\n // }\r\n\r\n break;\r\n case \"artist\":\r\n dataStructure.artists.renderSingle(urlParams.get(\"id\"), dataStructure.tracks);\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #artistSection a\", \"#contentWrapper #tracksSection a\"], true);\r\n break;\r\n case \"artists\":\r\n dataStructure.artists.renderList(urlParams.get(\"format\"), \"artistsList\");\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #artistsListSection a\"], true);\r\n document.querySelector(\"#tracksSection\").style.display = \"none\";\r\n break;\r\n case \"playlist\":\r\n dataStructure.playlists.renderSingle(urlParams.get(\"id\"), dataStructure.tracks, this.userManager);\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #playlistSection a\"], true);\r\n // Fix per lentezza caricamento dati\r\n setTimeout(() => {\r\n this.setupNavigation([\"#contentWrapper #tracksSection a\"], true);\r\n }, 1000);\r\n break;\r\n case \"playlists\":\r\n dataStructure.playlists.renderList();\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #playlistsListSection a\"], false);\r\n document.querySelector(\"#tracksSection\").style.display = \"none\";\r\n break;\r\n case \"album\":\r\n dataStructure.albums.renderSingle(urlParams.get(\"id\"), dataStructure.tracks);\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #albumSection a\", \"#contentWrapper #tracksSection a\"], true);\r\n break;\r\n case \"albums\":\r\n dataStructure.albums.renderList();\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #albumsListSection a\"], true);\r\n document.querySelector(\"#tracksSection\").style.display = \"none\";\r\n break;\r\n case \"label\":\r\n dataStructure.labels.renderSingle(urlParams.get(\"id\"), dataStructure.tracks);\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #labelSection a\", \"#contentWrapper #tracksSection a\"], true);\r\n break;\r\n case \"labels\":\r\n dataStructure.labels.renderList();\r\n this.setupNavigation([\"#sideMenu a\", \"#playlistsMenu a\", \"#contentWrapper #labelsListSection a\"], true);\r\n document.querySelector(\"#tracksSection\").style.display = \"none\";\r\n break;\r\n case \"licenses\":\r\n this.licensesManager.getPageData({ payment: urlParams.get(\"payment\") });\r\n break;\r\n case \"profile\":\r\n if (!this.userManager.userLogged) {\r\n window.location.href = \"/find-music\";\r\n return;\r\n }\r\n this.userManager.profiles.profile.init({\r\n user: this.userManager.userLogged,\r\n tracks: dataStructure.tracks,\r\n artists: dataStructure.artists,\r\n countries: dataStructure.countries,\r\n });\r\n this.userManager.profiles.profile.showPage({ payment: urlParams.get(\"payment\") });\r\n break;\r\n case \"artist-profile\":\r\n if (!this.userManager.userLogged || !this.userManager.userLogged.is_artist) {\r\n window.location.href = \"/find-music\";\r\n return;\r\n }\r\n this.userManager.profiles.artistProfile.init({\r\n user: this.userManager.userLogged,\r\n tracks: dataStructure.tracks,\r\n artists: dataStructure.artists,\r\n playlists: dataStructure.playlists,\r\n countries: dataStructure.countries,\r\n });\r\n this.userManager.profiles.artistProfile.showPage();\r\n break;\r\n case \"faq\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n this.dataManager.renderFaqData();\r\n break;\r\n case \"faq-artist\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n this.dataManager.renderFaqArtistData();\r\n break;\r\n case \"index\":\r\n this.dataManager.renderPlacementsData(1);\r\n case \"pricing\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n this.dataManager.activateInputPromoCode();\r\n this.dataManager.renderSubscriptionData();\r\n if (window.location.hash && this.pageName === \"pricing\") {\r\n setTimeout(() => {\r\n document.getElementById(window.location.hash.substring(1)).scrollIntoView();\r\n }, 100);\r\n }\r\n break;\r\n case \"free-trial\":\r\n if (Globals.SHOW_ALL_CONSOLE_LOG) console.log(\"%cFree Trial\", \"color: orange\");\r\n if (this.userManager.userLogged) {\r\n document.querySelector(\".free-trial .ftUserMode\").addEventListener(\"click\", () => {\r\n this.userManager.profiles.profile.buyFreeTrial();\r\n });\r\n }\r\n document.querySelector(\".form-container .reg-intro\").innerHTML = 'Register for 30 days free trial';\r\n break;\r\n case \"thank-you\":\r\n if (urlParams.has(\"order\")) {\r\n document.querySelector(\".thank-you-lic\").style.display = \"\";\r\n (\"\" + urlParams.get(\"digital\")).split(\",\").forEach((el) => {\r\n switch (el) {\r\n case \"3693\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/wL0zCODUmNsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"3705\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/-4WACNGDndsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"3706\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/a_XaCJGLndsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"3708\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/oGOWCJDd9NoCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"3694\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/62aoCKfu9NoCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n }\r\n });\r\n (\"\" + urlParams.get(\"single\")).split(\",\").forEach((el) => {\r\n if (el == \"1\") gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/2tCHCOW-pOUDEOiw6LkC\", 'transaction_id': \"\" });\r\n });\r\n } else if (urlParams.has(\"contract\")) {\r\n if (urlParams.get(\"contract\") == \"1.T\") {\r\n document.querySelector(\".thank-you-free\").style.display = \"\";\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/aPQZCLHBmcsBEOiw6LkC\", 'transaction_id': \"\" });\r\n } else {\r\n document.querySelector(\".thank-you-sub\").style.display = \"\";\r\n switch (urlParams.get(\"contract\")) {\r\n case \"2.M\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/wXzDCOeOmdsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"2.Y\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/mZNRCNHQnNsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n case \"4.M\":\r\n gtag('event', 'conversion', { 'send_to': 'AW-658118760/9HAlCKOmpOUDEOiw6LkC', 'transaction_id': '' });\r\n break;\r\n case \"4.Y\":\r\n gtag(\"event\", \"conversion\", { 'send_to': \"AW-658118760/tpQBCI7hnNsCEOiw6LkC\", 'transaction_id': \"\" });\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n case \"ask-us\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n let subscription = true;\r\n if (this.userManager.userLogged && this.userManager.profiles.profile.data.subscriptions) {\r\n //subscription = this.userManager.profiles.profile.data.subscriptions.filter((sub) => sub.type === 4)[0];\r\n subscription = this.userManager.profiles.profile.data.subscriptions.filter((sub) => sub.type === \"4\")[0]; // Confronto con stringa\r\n }\r\n if (this.userManager.userLogged && subscription) {\r\n document.querySelector(\".ask-us-unlogged\").style.display = \"none\";\r\n document.querySelector(\".ask-us-logged\").style.display = \"\";\r\n const form = document.querySelector(\".ask-us-logged form\");\r\n\r\n form.querySelector(\"input[type=file]\").addEventListener(\"change\", (event) => {\r\n form.querySelector(\".custom-file-input .not-uploaded\").style.display = \"none\";\r\n form.querySelector(\".custom-file-input .uploaded .filename\").textContent = event.target.files[0].name;\r\n form.querySelector(\".custom-file-input .uploaded\").style.display = \"\";\r\n });\r\n\r\n form.addEventListener(\"submit\", (event) => {\r\n event.preventDefault();\r\n const formData = new FormData(form);\r\n this.sendAskusData(this.userManager, formData);\r\n });\r\n } else {\r\n this.dataManager.renderSubscriptionData();\r\n }\r\n break;\r\n case \"placements\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n this.dataManager.renderPlacementsData(0);\r\n break;\r\n case \"team-pricing\":\r\n case \"support\":\r\n case \"become-an-artist\":\r\n case \"team-licensing\":\r\n case \"about-us\":\r\n case \"tutorial\":\r\n case \"match-video-ai\":\r\n document.querySelector(\".ai-tool-req-link\");\r\n // ---\r\n const atrl = document.querySelector(\".ai-tool-req-link\");\r\n if (atrl != null && typeof atrl !== 'undefined') { \r\n if (this.userManager.userLogged) {\r\n atrl.href = \"?mode=TOOL.REQ&token=\" + this.getCookie(\"user_token\");\r\n } else {\r\n atrl.setAttribute(\"data-target\", \"#loginModal\");\r\n atrl.setAttribute(\"data-toggle\", \"modal\");\r\n }\r\n }\r\n break;\r\n case \"match-video-mobile\":\r\n this.userManager.profiles.profile.init({ user: this.userManager.userLogged, tracks: dataStructure.tracks, artists: dataStructure.artists });\r\n this.userManager.profiles.profile.buySubscription();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (urlParams.get(\"kw\")) {\r\n this.searchManager.searchTracks(urlParams.get(\"kw\"), \"tags\");\r\n }\r\n dataStructure.playlists.renderHeaderList(3);\r\n dataStructure.filters.renderHeaderList(\"Genre\", 3);\r\n dataStructure.filters.renderHeaderList(\"Mood\", 3);\r\n }\r\n\r\n setupNavigation(elements, showSideMenu) {\r\n this.setupNavigationLinks(elements);\r\n if (showSideMenu) {\r\n document.querySelector(\"#sideMenu\").style.display = \"\";\r\n }\r\n document.addEventListener(\"search_result_rendered\", () => {\r\n this.setupNavigationLinks([\"#tracksSection a\"]);\r\n });\r\n window.addEventListener(\"popstate\", (event) => {\r\n if (!Globals.isRemoveTrackFromPlaylist) window.location.reload();\r\n });\r\n }\r\n\r\n setupNavigationLinks(elements) {\r\n elements.map((element) => {\r\n const links = document.querySelectorAll(element);\r\n this.swapLinksToEvents(links, this.dataManager.dataStructure, this.userManager);\r\n });\r\n }\r\n\r\n setFrontendFunctions() {\r\n let trg = jQuery(\"#loginModal\");\r\n if (trg.hasClass(\"alreadyInited\")) {\r\n return;\r\n }\r\n trg.addClass(\"alreadyInited\");\r\n\r\n bindEvents();\r\n setPlugins();\r\n\r\n this.userManager.setUserEvents();\r\n if (!this.isStaticPage(this.pageName)) {\r\n this.searchManager.init({\r\n pageName: this.pageName,\r\n dataStructure: this.dataManager.dataStructure,\r\n userManager: this.userManager,\r\n });\r\n this.playerManager.init({\r\n tracks: this.dataManager.dataStructure.tracks,\r\n playlists: this.dataManager.dataStructure.playlists,\r\n artists: this.dataManager.dataStructure.artists,\r\n albums: this.dataManager.dataStructure.albums,\r\n userManager: this.userManager,\r\n });\r\n if (this.userManager.userLogged) {\r\n this.dataManager.dataStructure.playlists.setupNewPlaylist();\r\n }\r\n }\r\n }\r\n\r\n reloadMyplaylist() {\r\n this.userManager.setCurrentUser({ loadDataManager: false });\r\n document.addEventListener(\"user_ready\", (event) => {\r\n this.dataManager.dataStructure.playlists.renderMyplaylistsList(this.userManager);\r\n this.playerManager.updateDropdown();\r\n\r\n const urlParams = this.getUrlParams();\r\n\r\n if (urlParams.get(\"kw\")) {\r\n this.searchManager.searchTracks(null, \"tags\");\r\n }\r\n\r\n switch (this.pageName) {\r\n case \"find-music\":\r\n case \"match-video\":\r\n this.dataManager.dataStructure.tracks.renderFirstpageList();\r\n this.setupNavigationLinks([\"#playlistsMenu a\"]);\r\n break;\r\n case \"artist\":\r\n this.dataManager.dataStructure.artists.renderSingle(urlParams.get(\"id\"), this.dataManager.dataStructure.tracks);\r\n break;\r\n case \"artists\":\r\n this.dataManager.dataStructure.artists.renderList(urlParams.get(\"format\"), \"artistsList\");\r\n break;\r\n case \"playlist\":\r\n this.dataManager.dataStructure.playlists.renderSingle(urlParams.get(\"id\"), this.dataManager.dataStructure.tracks, this.userManager);\r\n break;\r\n case \"playlists\":\r\n this.dataManager.dataStructure.playlists.renderList();\r\n break;\r\n case \"album\":\r\n this.dataManager.dataStructure.albums.renderSingle(urlParams.get(\"id\"), this.dataManager.dataStructure.tracks);\r\n break;\r\n case \"albums\":\r\n this.dataManager.dataStructure.albums.renderList();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import \"../scss/styles.scss\";\r\nimport PageDefault from \"./pages/PageDefault.js\";\r\nimport PageShow from \"./pages/PageShow.js\";\r\n\r\nexport default class FactoryManager {\r\n\tstatic factory(cls) {\r\n\t\treturn new FactoryManager.classes[cls]();\r\n\t}\r\n}\r\n\r\nFactoryManager.classes = { PageDefault, PageShow };\r\n","\"use strict\";\n\n/* eslint-env browser */\n\n/*\n eslint-disable\n no-console,\n func-names\n*/\nvar normalizeUrl = require('./normalize-url');\n\nvar srcByModuleId = Object.create(null);\nvar noDocument = typeof document === 'undefined';\nvar forEach = Array.prototype.forEach;\n\nfunction debounce(fn, time) {\n var timeout = 0;\n return function () {\n var self = this; // eslint-disable-next-line prefer-rest-params\n\n var args = arguments;\n\n var functionCall = function functionCall() {\n return fn.apply(self, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(functionCall, time);\n };\n}\n\nfunction noop() {}\n\nfunction getCurrentScriptUrl(moduleId) {\n var src = srcByModuleId[moduleId];\n\n if (!src) {\n if (document.currentScript) {\n src = document.currentScript.src;\n } else {\n var scripts = document.getElementsByTagName('script');\n var lastScriptTag = scripts[scripts.length - 1];\n\n if (lastScriptTag) {\n src = lastScriptTag.src;\n }\n }\n\n srcByModuleId[moduleId] = src;\n }\n\n return function (fileMap) {\n if (!src) {\n return null;\n }\n\n var splitResult = src.split(/([^\\\\/]+)\\.js$/);\n var filename = splitResult && splitResult[1];\n\n if (!filename) {\n return [src.replace('.js', '.css')];\n }\n\n if (!fileMap) {\n return [src.replace('.js', '.css')];\n }\n\n return fileMap.split(',').map(function (mapRule) {\n var reg = new RegExp(\"\".concat(filename, \"\\\\.js$\"), 'g');\n return normalizeUrl(src.replace(reg, \"\".concat(mapRule.replace(/{fileName}/g, filename), \".css\")));\n });\n };\n}\n\nfunction updateCss(el, url) {\n if (!url) {\n if (!el.href) {\n return;\n } // eslint-disable-next-line\n\n\n url = el.href.split('?')[0];\n }\n\n if (!isUrlRequest(url)) {\n return;\n }\n\n if (el.isLoaded === false) {\n // We seem to be about to replace a css link that hasn't loaded yet.\n // We're probably changing the same file more than once.\n return;\n }\n\n if (!url || !(url.indexOf('.css') > -1)) {\n return;\n } // eslint-disable-next-line no-param-reassign\n\n\n el.visited = true;\n var newEl = el.cloneNode();\n newEl.isLoaded = false;\n newEl.addEventListener('load', function () {\n if (newEl.isLoaded) {\n return;\n }\n\n newEl.isLoaded = true;\n el.parentNode.removeChild(el);\n });\n newEl.addEventListener('error', function () {\n if (newEl.isLoaded) {\n return;\n }\n\n newEl.isLoaded = true;\n el.parentNode.removeChild(el);\n });\n newEl.href = \"\".concat(url, \"?\").concat(Date.now());\n\n if (el.nextSibling) {\n el.parentNode.insertBefore(newEl, el.nextSibling);\n } else {\n el.parentNode.appendChild(newEl);\n }\n}\n\nfunction getReloadUrl(href, src) {\n var ret; // eslint-disable-next-line no-param-reassign\n\n href = normalizeUrl(href, {\n stripWWW: false\n }); // eslint-disable-next-line array-callback-return\n\n src.some(function (url) {\n if (href.indexOf(src) > -1) {\n ret = url;\n }\n });\n return ret;\n}\n\nfunction reloadStyle(src) {\n if (!src) {\n return false;\n }\n\n var elements = document.querySelectorAll('link');\n var loaded = false;\n forEach.call(elements, function (el) {\n if (!el.href) {\n return;\n }\n\n var url = getReloadUrl(el.href, src);\n\n if (!isUrlRequest(url)) {\n return;\n }\n\n if (el.visited === true) {\n return;\n }\n\n if (url) {\n updateCss(el, url);\n loaded = true;\n }\n });\n return loaded;\n}\n\nfunction reloadAll() {\n var elements = document.querySelectorAll('link');\n forEach.call(elements, function (el) {\n if (el.visited === true) {\n return;\n }\n\n updateCss(el);\n });\n}\n\nfunction isUrlRequest(url) {\n // An URL is not an request if\n // It is not http or https\n if (!/^https?:/i.test(url)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = function (moduleId, options) {\n if (noDocument) {\n console.log('no window.document found, will not HMR CSS');\n return noop;\n }\n\n var getScriptSrc = getCurrentScriptUrl(moduleId);\n\n function update() {\n var src = getScriptSrc(options.filename);\n var reloaded = reloadStyle(src);\n\n if (options.locals) {\n console.log('[HMR] Detected local css modules. Reload all css');\n reloadAll();\n return;\n }\n\n if (reloaded) {\n console.log('[HMR] css reload %s', src.join(' '));\n } else {\n console.log('[HMR] Reload all css');\n reloadAll();\n }\n }\n\n return debounce(update, 50);\n};","\"use strict\";\n\n/* eslint-disable */\nfunction normalizeUrl(pathComponents) {\n return pathComponents.reduce(function (accumulator, item) {\n switch (item) {\n case '..':\n accumulator.pop();\n break;\n\n case '.':\n break;\n\n default:\n accumulator.push(item);\n }\n\n return accumulator;\n }, []).join('/');\n}\n\nmodule.exports = function (urlString) {\n urlString = urlString.trim();\n\n if (/^data:/i.test(urlString)) {\n return urlString;\n }\n\n var protocol = urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : '';\n var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/');\n var host = components[0].toLowerCase().replace(/\\.$/, '');\n components[0] = '';\n var path = normalizeUrl(components);\n return protocol + host + path;\n};","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n // 1738589254368\n var cssReload = require(\"C:/Users/pow/Dropbox (Personal)/Lavori/GAAR/2106_GAAR_SounzoneV2/dev.sounzone.it/Sounzone/wwwroot/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"publicPath\":\"./\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n ","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\tif (cachedModule.error !== undefined) throw cachedModule.error;\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\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\ttry {\n\t\tvar execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ };\n\t\t__webpack_require__.i.forEach(function(handler) { handler(execOptions); });\n\t\tmodule = execOptions.module;\n\t\texecOptions.factory.call(module.exports, module, module.exports, execOptions.require);\n\t} catch(e) {\n\t\tmodule.error = e;\n\t\tthrow e;\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n// expose the module execution interceptor\n__webpack_require__.i = [];\n\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};","// This function allow to reference all chunks\n__webpack_require__.hu = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + __webpack_require__.h() + \".hot-update.js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"../css/styles.css\";\n};","__webpack_require__.hmrF = () => (\"app.\" + __webpack_require__.h() + \".hot-update.json\");","__webpack_require__.h = () => (\"8ca40a4b8cdc429a3f1f\")","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var currentModuleData = {};\nvar installedModules = __webpack_require__.c;\n\n// module and require creation\nvar currentChildModule;\nvar currentParents = [];\n\n// status\nvar registeredStatusHandlers = [];\nvar currentStatus = \"idle\";\n\n// while downloading\nvar blockingPromises = 0;\nvar blockingPromisesWaiting = [];\n\n// The update info\nvar currentUpdateApplyHandlers;\nvar queuedInvalidatedModules;\n\n// eslint-disable-next-line no-unused-vars\n__webpack_require__.hmrD = currentModuleData;\n\n__webpack_require__.i.push(function (options) {\n\tvar module = options.module;\n\tvar require = createRequire(options.require, options.id);\n\tmodule.hot = createModuleHotObject(options.id, module);\n\tmodule.parents = currentParents;\n\tmodule.children = [];\n\tcurrentParents = [];\n\toptions.require = require;\n});\n\n__webpack_require__.hmrC = {};\n__webpack_require__.hmrI = {};\n\nfunction createRequire(require, moduleId) {\n\tvar me = installedModules[moduleId];\n\tif (!me) return require;\n\tvar fn = function (request) {\n\t\tif (me.hot.active) {\n\t\t\tif (installedModules[request]) {\n\t\t\t\tvar parents = installedModules[request].parents;\n\t\t\t\tif (parents.indexOf(moduleId) === -1) {\n\t\t\t\t\tparents.push(moduleId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentParents = [moduleId];\n\t\t\t\tcurrentChildModule = request;\n\t\t\t}\n\t\t\tif (me.children.indexOf(request) === -1) {\n\t\t\t\tme.children.push(request);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"[HMR] unexpected require(\" +\n\t\t\t\t\trequest +\n\t\t\t\t\t\") from disposed module \" +\n\t\t\t\t\tmoduleId\n\t\t\t);\n\t\t\tcurrentParents = [];\n\t\t}\n\t\treturn require(request);\n\t};\n\tvar createPropertyDescriptor = function (name) {\n\t\treturn {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn require[name];\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\trequire[name] = value;\n\t\t\t}\n\t\t};\n\t};\n\tfor (var name in require) {\n\t\tif (Object.prototype.hasOwnProperty.call(require, name) && name !== \"e\") {\n\t\t\tObject.defineProperty(fn, name, createPropertyDescriptor(name));\n\t\t}\n\t}\n\tfn.e = function (chunkId) {\n\t\treturn trackBlockingPromise(require.e(chunkId));\n\t};\n\treturn fn;\n}\n\nfunction createModuleHotObject(moduleId, me) {\n\tvar _main = currentChildModule !== moduleId;\n\tvar hot = {\n\t\t// private stuff\n\t\t_acceptedDependencies: {},\n\t\t_acceptedErrorHandlers: {},\n\t\t_declinedDependencies: {},\n\t\t_selfAccepted: false,\n\t\t_selfDeclined: false,\n\t\t_selfInvalidated: false,\n\t\t_disposeHandlers: [],\n\t\t_main: _main,\n\t\t_requireSelf: function () {\n\t\t\tcurrentParents = me.parents.slice();\n\t\t\tcurrentChildModule = _main ? undefined : moduleId;\n\t\t\t__webpack_require__(moduleId);\n\t\t},\n\n\t\t// Module API\n\t\tactive: true,\n\t\taccept: function (dep, callback, errorHandler) {\n\t\t\tif (dep === undefined) hot._selfAccepted = true;\n\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n\t\t\telse if (typeof dep === \"object\" && dep !== null) {\n\t\t\t\tfor (var i = 0; i < dep.length; i++) {\n\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function () {};\n\t\t\t\t\thot._acceptedErrorHandlers[dep[i]] = errorHandler;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thot._acceptedDependencies[dep] = callback || function () {};\n\t\t\t\thot._acceptedErrorHandlers[dep] = errorHandler;\n\t\t\t}\n\t\t},\n\t\tdecline: function (dep) {\n\t\t\tif (dep === undefined) hot._selfDeclined = true;\n\t\t\telse if (typeof dep === \"object\" && dep !== null)\n\t\t\t\tfor (var i = 0; i < dep.length; i++)\n\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n\t\t\telse hot._declinedDependencies[dep] = true;\n\t\t},\n\t\tdispose: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\taddDisposeHandler: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\tremoveDisposeHandler: function (callback) {\n\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n\t\t},\n\t\tinvalidate: function () {\n\t\t\tthis._selfInvalidated = true;\n\t\t\tswitch (currentStatus) {\n\t\t\t\tcase \"idle\":\n\t\t\t\t\tcurrentUpdateApplyHandlers = [];\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tsetStatus(\"ready\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ready\":\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"prepare\":\n\t\t\t\tcase \"check\":\n\t\t\t\tcase \"dispose\":\n\t\t\t\tcase \"apply\":\n\t\t\t\t\t(queuedInvalidatedModules = queuedInvalidatedModules || []).push(\n\t\t\t\t\t\tmoduleId\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// ignore requests in error states\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// Management API\n\t\tcheck: hotCheck,\n\t\tapply: hotApply,\n\t\tstatus: function (l) {\n\t\t\tif (!l) return currentStatus;\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\taddStatusHandler: function (l) {\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\tremoveStatusHandler: function (l) {\n\t\t\tvar idx = registeredStatusHandlers.indexOf(l);\n\t\t\tif (idx >= 0) registeredStatusHandlers.splice(idx, 1);\n\t\t},\n\n\t\t//inherit from previous dispose call\n\t\tdata: currentModuleData[moduleId]\n\t};\n\tcurrentChildModule = undefined;\n\treturn hot;\n}\n\nfunction setStatus(newStatus) {\n\tcurrentStatus = newStatus;\n\tvar results = [];\n\n\tfor (var i = 0; i < registeredStatusHandlers.length; i++)\n\t\tresults[i] = registeredStatusHandlers[i].call(null, newStatus);\n\n\treturn Promise.all(results);\n}\n\nfunction unblock() {\n\tif (--blockingPromises === 0) {\n\t\tsetStatus(\"ready\").then(function () {\n\t\t\tif (blockingPromises === 0) {\n\t\t\t\tvar list = blockingPromisesWaiting;\n\t\t\t\tblockingPromisesWaiting = [];\n\t\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\t\tlist[i]();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction trackBlockingPromise(promise) {\n\tswitch (currentStatus) {\n\t\tcase \"ready\":\n\t\t\tsetStatus(\"prepare\");\n\t\t/* fallthrough */\n\t\tcase \"prepare\":\n\t\t\tblockingPromises++;\n\t\t\tpromise.then(unblock, unblock);\n\t\t\treturn promise;\n\t\tdefault:\n\t\t\treturn promise;\n\t}\n}\n\nfunction waitForBlockingPromises(fn) {\n\tif (blockingPromises === 0) return fn();\n\treturn new Promise(function (resolve) {\n\t\tblockingPromisesWaiting.push(function () {\n\t\t\tresolve(fn());\n\t\t});\n\t});\n}\n\nfunction hotCheck(applyOnUpdate) {\n\tif (currentStatus !== \"idle\") {\n\t\tthrow new Error(\"check() is only allowed in idle status\");\n\t}\n\treturn setStatus(\"check\")\n\t\t.then(__webpack_require__.hmrM)\n\t\t.then(function (update) {\n\t\t\tif (!update) {\n\t\t\t\treturn setStatus(applyInvalidatedModules() ? \"ready\" : \"idle\").then(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn setStatus(\"prepare\").then(function () {\n\t\t\t\tvar updatedModules = [];\n\t\t\t\tcurrentUpdateApplyHandlers = [];\n\n\t\t\t\treturn Promise.all(\n\t\t\t\t\tObject.keys(__webpack_require__.hmrC).reduce(function (\n\t\t\t\t\t\tpromises,\n\t\t\t\t\t\tkey\n\t\t\t\t\t) {\n\t\t\t\t\t\t__webpack_require__.hmrC[key](\n\t\t\t\t\t\t\tupdate.c,\n\t\t\t\t\t\t\tupdate.r,\n\t\t\t\t\t\t\tupdate.m,\n\t\t\t\t\t\t\tpromises,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers,\n\t\t\t\t\t\t\tupdatedModules\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn promises;\n\t\t\t\t\t},\n\t\t\t\t\t[])\n\t\t\t\t).then(function () {\n\t\t\t\t\treturn waitForBlockingPromises(function () {\n\t\t\t\t\t\tif (applyOnUpdate) {\n\t\t\t\t\t\t\treturn internalApply(applyOnUpdate);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn setStatus(\"ready\").then(function () {\n\t\t\t\t\t\t\t\treturn updatedModules;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n}\n\nfunction hotApply(options) {\n\tif (currentStatus !== \"ready\") {\n\t\treturn Promise.resolve().then(function () {\n\t\t\tthrow new Error(\n\t\t\t\t\"apply() is only allowed in ready status (state: \" +\n\t\t\t\t\tcurrentStatus +\n\t\t\t\t\t\")\"\n\t\t\t);\n\t\t});\n\t}\n\treturn internalApply(options);\n}\n\nfunction internalApply(options) {\n\toptions = options || {};\n\n\tapplyInvalidatedModules();\n\n\tvar results = currentUpdateApplyHandlers.map(function (handler) {\n\t\treturn handler(options);\n\t});\n\tcurrentUpdateApplyHandlers = undefined;\n\n\tvar errors = results\n\t\t.map(function (r) {\n\t\t\treturn r.error;\n\t\t})\n\t\t.filter(Boolean);\n\n\tif (errors.length > 0) {\n\t\treturn setStatus(\"abort\").then(function () {\n\t\t\tthrow errors[0];\n\t\t});\n\t}\n\n\t// Now in \"dispose\" phase\n\tvar disposePromise = setStatus(\"dispose\");\n\n\tresults.forEach(function (result) {\n\t\tif (result.dispose) result.dispose();\n\t});\n\n\t// Now in \"apply\" phase\n\tvar applyPromise = setStatus(\"apply\");\n\n\tvar error;\n\tvar reportError = function (err) {\n\t\tif (!error) error = err;\n\t};\n\n\tvar outdatedModules = [];\n\tresults.forEach(function (result) {\n\t\tif (result.apply) {\n\t\t\tvar modules = result.apply(reportError);\n\t\t\tif (modules) {\n\t\t\t\tfor (var i = 0; i < modules.length; i++) {\n\t\t\t\t\toutdatedModules.push(modules[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all([disposePromise, applyPromise]).then(function () {\n\t\t// handle errors in accept handlers and self accepted module load\n\t\tif (error) {\n\t\t\treturn setStatus(\"fail\").then(function () {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\n\t\tif (queuedInvalidatedModules) {\n\t\t\treturn internalApply(options).then(function (list) {\n\t\t\t\toutdatedModules.forEach(function (moduleId) {\n\t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n\t\t\t\t});\n\t\t\t\treturn list;\n\t\t\t});\n\t\t}\n\n\t\treturn setStatus(\"idle\").then(function () {\n\t\t\treturn outdatedModules;\n\t\t});\n\t});\n}\n\nfunction applyInvalidatedModules() {\n\tif (queuedInvalidatedModules) {\n\t\tif (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = [];\n\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\tqueuedInvalidatedModules.forEach(function (moduleId) {\n\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\tmoduleId,\n\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t\tqueuedInvalidatedModules = undefined;\n\t\treturn true;\n\t}\n}","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\nvar currentUpdatedModulesList;\nvar waitingUpdateResolves = {};\nfunction loadUpdateChunk(chunkId, updatedModulesList) {\n\tcurrentUpdatedModulesList = updatedModulesList;\n\treturn new Promise((resolve, reject) => {\n\t\twaitingUpdateResolves[chunkId] = resolve;\n\t\t// start update chunk loading\n\t\tvar url = __webpack_require__.p + __webpack_require__.hu(chunkId);\n\t\t// create error before stack unwound to get useful stacktrace later\n\t\tvar error = new Error();\n\t\tvar loadingEnded = (event) => {\n\t\t\tif(waitingUpdateResolves[chunkId]) {\n\t\t\t\twaitingUpdateResolves[chunkId] = undefined\n\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\terror.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\terror.type = errorType;\n\t\t\t\terror.request = realSrc;\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\t\t__webpack_require__.l(url, loadingEnded);\n\t});\n}\n\nself[\"webpackHotUpdateFactoryManager\"] = (chunkId, moreModules, runtime) => {\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\tcurrentUpdate[moduleId] = moreModules[moduleId];\n\t\t\tif(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId);\n\t\t}\n\t}\n\tif(runtime) currentUpdateRuntime.push(runtime);\n\tif(waitingUpdateResolves[chunkId]) {\n\t\twaitingUpdateResolves[chunkId]();\n\t\twaitingUpdateResolves[chunkId] = undefined;\n\t}\n};\n\nvar currentUpdateChunks;\nvar currentUpdate;\nvar currentUpdateRemovedChunks;\nvar currentUpdateRuntime;\nfunction applyHandler(options) {\n\tif (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr;\n\tcurrentUpdateChunks = undefined;\n\tfunction getAffectedModuleEffects(updateModuleId) {\n\t\tvar outdatedModules = [updateModuleId];\n\t\tvar outdatedDependencies = {};\n\n\t\tvar queue = outdatedModules.map(function (id) {\n\t\t\treturn {\n\t\t\t\tchain: [id],\n\t\t\t\tid: id\n\t\t\t};\n\t\t});\n\t\twhile (queue.length > 0) {\n\t\t\tvar queueItem = queue.pop();\n\t\t\tvar moduleId = queueItem.id;\n\t\t\tvar chain = queueItem.chain;\n\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\tif (\n\t\t\t\t!module ||\n\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (module.hot._selfDeclined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"self-declined\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (module.hot._main) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"unaccepted\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n\t\t\t\tvar parentId = module.parents[i];\n\t\t\t\tvar parent = __webpack_require__.c[parentId];\n\t\t\t\tif (!parent) continue;\n\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"declined\",\n\t\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\tparentId: parentId\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n\t\t\t\t\tif (!outdatedDependencies[parentId])\n\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdelete outdatedDependencies[parentId];\n\t\t\t\toutdatedModules.push(parentId);\n\t\t\t\tqueue.push({\n\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\tid: parentId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: \"accepted\",\n\t\t\tmoduleId: updateModuleId,\n\t\t\toutdatedModules: outdatedModules,\n\t\t\toutdatedDependencies: outdatedDependencies\n\t\t};\n\t}\n\n\tfunction addAllToSet(a, b) {\n\t\tfor (var i = 0; i < b.length; i++) {\n\t\t\tvar item = b[i];\n\t\t\tif (a.indexOf(item) === -1) a.push(item);\n\t\t}\n\t}\n\n\t// at begin all updates modules are outdated\n\t// the \"outdated\" status can propagate to parents if they don't accept the children\n\tvar outdatedDependencies = {};\n\tvar outdatedModules = [];\n\tvar appliedUpdate = {};\n\n\tvar warnUnexpectedRequire = function warnUnexpectedRequire(module) {\n\t\tconsole.warn(\n\t\t\t\"[HMR] unexpected require(\" + module.id + \") to disposed module\"\n\t\t);\n\t};\n\n\tfor (var moduleId in currentUpdate) {\n\t\tif (__webpack_require__.o(currentUpdate, moduleId)) {\n\t\t\tvar newModuleFactory = currentUpdate[moduleId];\n\t\t\t/** @type {TODO} */\n\t\t\tvar result;\n\t\t\tif (newModuleFactory) {\n\t\t\t\tresult = getAffectedModuleEffects(moduleId);\n\t\t\t} else {\n\t\t\t\tresult = {\n\t\t\t\t\ttype: \"disposed\",\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\t/** @type {Error|false} */\n\t\t\tvar abortError = false;\n\t\t\tvar doApply = false;\n\t\t\tvar doDispose = false;\n\t\t\tvar chainInfo = \"\";\n\t\t\tif (result.chain) {\n\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n\t\t\t}\n\t\t\tswitch (result.type) {\n\t\t\t\tcase \"self-declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\t\" in \" +\n\t\t\t\t\t\t\t\tresult.parentId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"unaccepted\":\n\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n\t\t\t\t\tif (!options.ignoreUnaccepted)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"accepted\":\n\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n\t\t\t\t\tdoApply = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"disposed\":\n\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n\t\t\t\t\tdoDispose = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n\t\t\t}\n\t\t\tif (abortError) {\n\t\t\t\treturn {\n\t\t\t\t\terror: abortError\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (doApply) {\n\t\t\t\tappliedUpdate[moduleId] = newModuleFactory;\n\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n\t\t\t\t\tif (__webpack_require__.o(result.outdatedDependencies, moduleId)) {\n\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n\t\t\t\t\t\taddAllToSet(\n\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (doDispose) {\n\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n\t\t\t}\n\t\t}\n\t}\n\tcurrentUpdate = undefined;\n\n\t// Store self accepted outdated modules to require them later by the module system\n\tvar outdatedSelfAcceptedModules = [];\n\tfor (var j = 0; j < outdatedModules.length; j++) {\n\t\tvar outdatedModuleId = outdatedModules[j];\n\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\tif (\n\t\t\tmodule &&\n\t\t\t(module.hot._selfAccepted || module.hot._main) &&\n\t\t\t// removed self-accepted modules should not be required\n\t\t\tappliedUpdate[outdatedModuleId] !== warnUnexpectedRequire &&\n\t\t\t// when called invalidate self-accepting is not possible\n\t\t\t!module.hot._selfInvalidated\n\t\t) {\n\t\t\toutdatedSelfAcceptedModules.push({\n\t\t\t\tmodule: outdatedModuleId,\n\t\t\t\trequire: module.hot._requireSelf,\n\t\t\t\terrorHandler: module.hot._selfAccepted\n\t\t\t});\n\t\t}\n\t}\n\n\tvar moduleOutdatedDependencies;\n\n\treturn {\n\t\tdispose: function () {\n\t\t\tcurrentUpdateRemovedChunks.forEach(function (chunkId) {\n\t\t\t\tdelete installedChunks[chunkId];\n\t\t\t});\n\t\t\tcurrentUpdateRemovedChunks = undefined;\n\n\t\t\tvar idx;\n\t\t\tvar queue = outdatedModules.slice();\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tvar moduleId = queue.pop();\n\t\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\t\tif (!module) continue;\n\n\t\t\t\tvar data = {};\n\n\t\t\t\t// Call dispose handlers\n\t\t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n\t\t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n\t\t\t\t\tdisposeHandlers[j].call(null, data);\n\t\t\t\t}\n\t\t\t\t__webpack_require__.hmrD[moduleId] = data;\n\n\t\t\t\t// disable module (this disables requires from this module)\n\t\t\t\tmodule.hot.active = false;\n\n\t\t\t\t// remove module from cache\n\t\t\t\tdelete __webpack_require__.c[moduleId];\n\n\t\t\t\t// when disposing there is no need to call dispose handler\n\t\t\t\tdelete outdatedDependencies[moduleId];\n\n\t\t\t\t// remove \"parents\" references from all children\n\t\t\t\tfor (j = 0; j < module.children.length; j++) {\n\t\t\t\t\tvar child = __webpack_require__.c[module.children[j]];\n\t\t\t\t\tif (!child) continue;\n\t\t\t\t\tidx = child.parents.indexOf(moduleId);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tchild.parents.splice(idx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// remove outdated dependency from module children\n\t\t\tvar dependency;\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tmodule = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tidx = module.children.indexOf(dependency);\n\t\t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tapply: function (reportError) {\n\t\t\t// insert new code\n\t\t\tfor (var updateModuleId in appliedUpdate) {\n\t\t\t\tif (__webpack_require__.o(appliedUpdate, updateModuleId)) {\n\t\t\t\t\t__webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// run new runtime modules\n\t\t\tfor (var i = 0; i < currentUpdateRuntime.length; i++) {\n\t\t\t\tcurrentUpdateRuntime[i](__webpack_require__);\n\t\t\t}\n\n\t\t\t// call accept handlers\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tvar callbacks = [];\n\t\t\t\t\t\tvar errorHandlers = [];\n\t\t\t\t\t\tvar dependenciesForCallbacks = [];\n\t\t\t\t\t\tfor (var j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tvar dependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tvar acceptCallback =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedDependencies[dependency];\n\t\t\t\t\t\t\tvar errorHandler =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedErrorHandlers[dependency];\n\t\t\t\t\t\t\tif (acceptCallback) {\n\t\t\t\t\t\t\t\tif (callbacks.indexOf(acceptCallback) !== -1) continue;\n\t\t\t\t\t\t\t\tcallbacks.push(acceptCallback);\n\t\t\t\t\t\t\t\terrorHandlers.push(errorHandler);\n\t\t\t\t\t\t\t\tdependenciesForCallbacks.push(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var k = 0; k < callbacks.length; k++) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcallbacks[k].call(null, moduleOutdatedDependencies);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (typeof errorHandlers[k] === \"function\") {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\terrorHandlers[k](err, {\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k]\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Load self accepted modules\n\t\t\tfor (var o = 0; o < outdatedSelfAcceptedModules.length; o++) {\n\t\t\t\tvar item = outdatedSelfAcceptedModules[o];\n\t\t\t\tvar moduleId = item.module;\n\t\t\t\ttry {\n\t\t\t\t\titem.require(moduleId);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (typeof item.errorHandler === \"function\") {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\titem.errorHandler(err, {\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\tmodule: __webpack_require__.c[moduleId]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\ttype: \"self-accept-errored\",\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn outdatedModules;\n\t\t}\n\t};\n}\n__webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) {\n\tif (!currentUpdate) {\n\t\tcurrentUpdate = {};\n\t\tcurrentUpdateRuntime = [];\n\t\tcurrentUpdateRemovedChunks = [];\n\t\tapplyHandlers.push(applyHandler);\n\t}\n\tif (!__webpack_require__.o(currentUpdate, moduleId)) {\n\t\tcurrentUpdate[moduleId] = __webpack_require__.m[moduleId];\n\t}\n};\n__webpack_require__.hmrC.jsonp = function (\n\tchunkIds,\n\tremovedChunks,\n\tremovedModules,\n\tpromises,\n\tapplyHandlers,\n\tupdatedModulesList\n) {\n\tapplyHandlers.push(applyHandler);\n\tcurrentUpdateChunks = {};\n\tcurrentUpdateRemovedChunks = removedChunks;\n\tcurrentUpdate = removedModules.reduce(function (obj, key) {\n\t\tobj[key] = false;\n\t\treturn obj;\n\t}, {});\n\tcurrentUpdateRuntime = [];\n\tchunkIds.forEach(function (chunkId) {\n\t\tif (\n\t\t\t__webpack_require__.o(installedChunks, chunkId) &&\n\t\t\tinstalledChunks[chunkId] !== undefined\n\t\t) {\n\t\t\tpromises.push(loadUpdateChunk(chunkId, updatedModulesList));\n\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t} else {\n\t\t\tcurrentUpdateChunks[chunkId] = false;\n\t\t}\n\t});\n\tif (__webpack_require__.f) {\n\t\t__webpack_require__.f.jsonpHmr = function (chunkId, promises) {\n\t\t\tif (\n\t\t\t\tcurrentUpdateChunks &&\n\t\t\t\t__webpack_require__.o(currentUpdateChunks, chunkId) &&\n\t\t\t\t!currentUpdateChunks[chunkId]\n\t\t\t) {\n\t\t\t\tpromises.push(loadUpdateChunk(chunkId));\n\t\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t\t}\n\t\t};\n\t}\n};\n\n__webpack_require__.hmrM = () => {\n\tif (typeof fetch === \"undefined\") throw new Error(\"No browser support: need fetch API\");\n\treturn fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => {\n\t\tif(response.status === 404) return; // no update available\n\t\tif(!response.ok) throw new Error(\"Failed to fetch update manifest \" + response.statusText);\n\t\treturn response.json();\n\t});\n};\n\n// no on chunks loaded\n\n// no jsonp function","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(190);\n"],"names":["inProgress","dataWebpackPrefix","createStylesheet","findStylesheet","oldTags","newTags","applyHandler","Globals","_classCallCheck","key","value","App","e","Env","BaseUrl","API_KEY","URL_FETCH_BLOCK","isRemoveTrackFromPlaylist","WS_URL","searchManager","userManager","SHOW_TRACKING_DATA","SHOW_ALL_CONSOLE_LOG","Pqp","xValue","level","colors","console","isNullOrEmpty","length","log","a","String","Number","Array","undefined","name","match","RegExp","exec","window","location","search","decodeURIComponent","replace","o","j","x","i","parseInt","Math","random","max","min","floor","nProb","nSpace","nProd","range","nMin","nMax","rangeInt","str","fnd","repl","safeReplace","input","sep","sepdec","num","minus","out","dotPos","split","dotU","dotD","commaFlag","substring","mCf","nSomma","nConta","cCifra","nPuntatore","nNp","nNd","nCf1","aNumLet","aNumeri1","aNumeri2","push","charAt","_ascan","_parteInt","nNumero","aTmp","lTrovato","sString","sCode","sTmp","charCodeAt","sChar","_removeZero","substr","fromCharCode","nQuanti","n","s","s1","toUpperCase","_soloCharNumber","sControllo","_carCon","sRet","c","uEncode8","uDecode8","k","ret","toString","u","dt","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","email","test","rep","replaceWith","sb","found","sLen","rLen","lMoltiBr","chars","lBarraEnne","lHodor","lorem","lUid","lNoPunteggiatura","lTitle","lEmail","consonanti","doppie","mediane","iniziali","vocali","nomi","cognomi","punteggiatura","chiusura","domini","_typeof","oTmp","lName","rnd","shuffle","isNumber","trace","lNoBr","frase","len","stepNome","lastUno","contaDoppie","lPrimo","ln","lastVocale","word","lOk","check","indexOf","lCondExit","cc","nextPun","lastPunto","lBr","lVirg","finale","tot","jQuery","trim","toLowerCase","tmp","cnt","uid","r","diacriticsMap","defaultDiacriticsRemovalap","letters","base","newStr","mobile","navigator","userAgent","platform","maxTouchPoints","lIpaddone","isMobile","innerHeight","innerWidth","PageCommon","flag","hide","show","_normalizza_track_prop","event","category","label","additional","event_category","event_label","gtag","dec","buf","unshift","join","_ref","words","filter","_","index","price","toFixed","eventName","data","target","CustomEvent","dispatchEvent","document","cname","token","d","Date","setTime","getTime","expires","toUTCString","cookie","concat","ca","queryString","URLSearchParams","page","array","pathname","pop","baseUrl","origin","startsWith","url","URL","urlParams","map","_ref2","append","response","_this","text","then","JSON","parse","ok","includes","status","deleteCookie","error","message","statusText","Promise","reject","code","keyIdentifier","keyCode","wave","pageX","getBoundingClientRect","left","y","pageY","top","time","toLocaleString","minimumIntegerDigits","element","createElement","href","filename","download","body","appendChild","click","removeChild","string","year","month","day","hour","minute","second","date","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","byteArray","Uint8Array","Blob","type","track","_this2","userLogged","this","getCookie","querySelector","textContent","modal","fetch","ID","handleResponse","result","enabled","setTimeout","Name","shares","share","logo","jsSocials","shareIn","showLabel","on","err","from","querySelectorAll","link","classList","add","copyLink","className","copyText","id","style","opacity","position","addEventListener","select","setSelectionRange","msg","execCommand","span","social","return_url","links","dataStructure","_this3","contains","dataset","item","fields","preventDefault","currentTarget","format","history","pushState","state","title","emitEvent","detail","disableDefaultSearch","display","resetAllSections","playlists","renderList","loadedLinks","swapLinksToEvents","renderSingle","tracks","artists","albums","labels","scrollTo","formData","args","method","header","askus","ms","promise","resolve","timer","Error","clearTimeout","reason","PageDefault","_PageCommon","_inherits","_super","call","_get","_getPrototypeOf","prototype","showPreloader","obj","Symbol","iterator","constructor","_defineProperties","props","descriptor","enumerable","configurable","writable","Object","defineProperty","hint","prim","toPrimitive","res","TypeError","_toPrimitive","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","getPrototypeOf","Album","subClass","superClass","create","Constructor","protoProps","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","arguments","apply","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","instance","Description","Image","High","Medium","Tracks","isNew","object","keys","field","cloneNode","setUrlParams","src","alt","innerHTML","container","_this4","extract","sliceWords","extractDescriptionWords","shareItem","list","get","getItem","Albums","firstpage","album","renderSwiperListItem","renderListItem","renderSingleItem","Label","Labels","remove","Artist","formats","Wallpaper","Format","artistId","removeEventListener","Artists","producers","artist","section","Playlist","parent","button","showRemoveDialog","Playlists","playlist","contentWrapper","userPlaylists","json","playlistItem","orderedTracks","changeTracksPlaylist","dragging","forEach","trackItem","draggable","closest","current","currentPosition","draggingPosition","parentNode","insertBefore","nextSibling","editPlaylist","renderAddTrackMyplaylistItem","_this5","renderMyplaylistItem","elements","renderHeaderListItem","limit","getFull","_this6","FormData","playlist_name","track_id","_this7","removePlaylist","_this8","getUrlParams","_this9","removeTrackFromPlaylist","splice","_this10","reload","Track","MP3","Length","LengthFMT","Url","Wave","artistsConverted","badge","setupArtistsObject","aid","af","stopPropagation","source","tagName","menuItem","menuItemToShow","menuItemToShowStatus","is","requestAnimationFrame","getAddTrackMyPlaylistList","addTrackToPlaylist","el","showRemoveTrackDialog","requestDownload","b","_arrayLikeToArray","arr","arr2","Filter","Tags","isArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","selected","filterRow","submenuList","submenuRow","rowName","rowLink","subFilterName","subRow","subRowName","searchCategory","checked","setAttribute","wrapper","Filters","totalSelected","eventsSet","filtersMenu","filtersList","resetSearchList","searchTracks","_filter","DataManager","artists_formats","filters","countries","keywords","searchResults","maxRetry","retryCounter","timeoutGetAll","getData","debug","parseData","promiseTimeout","getDataPromise","firstpageTracks","firstpageArtists","firstpageProducers","pm","page_placements","accordion","plaItem","backgroundImage","img","open","content","marT","marW","styleSheets","insertRule","cssRules","faq","page_faq_ss","modelId","faqItem","titleItem","textItem","page_faq_tl","page_faq","paramPromoCode","inputCode","ref","SingleLicence","singleLicense","card","showPrice","formatPrice","pricing","cards","yearPrice","prices","switchTimesA","switchTime","onclick","isOn","toggle","renderSubscriptionData","property","receiver","hasOwnProperty","_superPropBase","desc","getOwnPropertyDescriptor","SearchManager","pageName","searchModeActive","currentSearch","searchPlaylistResults","tagsList","tagsDivider","categoriesList","categoriesDivider","enterTyped","searchSetup","localStorage","setItem","setupSavedSearch","savedTags","sessionStorage","savedCategories","stringSearch","encodeURIComponent","createContentWrapper","query","queryQ","queryFilters","tag","encodedTag","createKeywordSearched","search_playlist","removeKeyword","handleKeywordSearched","searchbar","searchbarInput","keywordsContainer","scrollTop","selectedDropdownItem","selectedItem","getKeyCode","getKeywords","keywordsList","keyword","offsetTop","offsetHeight","_event$detail","showKeywordsList","showSearchResults","hideKeywordList","prefix","keywordsSelected","cssText","filtersMenuHeader","counter","setupPageForSearchResults","playlistSection","html","playlistItems","reduce","total","renderFirstpageList","setSwiper","tracksList","tracksListBody","PlayerManager","trackElement","player","mobilePlayer","playingInterval","initialized","mouseMoving","autoload","trackEnded","_event$detail$autoloa","sendTrackPlayCount","getFullTrackInfo","audio","paused","setPlay","setPause","setPlayerTimeDSec","setNewTrack","h","setupEvents","setupTooltip","setupVolume","setupDropdown","_album$data","drawWave","updateTotalLength","updateCurrentTime","load","image","play","startIntervalManager","clearInterval","pause","wrapperMobile","updateCircleProgress","setInterval","formatTime","currentTime","duration","deg","transform","width","tooltip","_this7$getMouseCoordi","getMouseCoordinate","setTooltipPosition","_this7$getMouseCoordi2","setPlayerTime","mobileContainer","mobileWave","mobileTooltip","_this7$getMouseCoordi3","_this7$getMouseCoordi4","np","sv","positionTime","tooltipTime","mobilePositionTime","mobileTooltipTime","volumeContainer","volumeLevel","volume","setVolume","volumeBar","_this$getMouseCoordin","prevTrack","previousSibling","nextTrack","updateDropdown","mobileList","waveWidth","waveA","round","decodedWave","colw","waveCurBars","wbit","canvas","getElementById","cw","ch","height","ctx","getContext","contStyleA","contStyleB","ck","fillStyle","fillRect","t","v","q","waveBarW","dataUrl","toDataURL","clearRect","Profile","subscriptionType","paymentUrl","return_url_ok","return_url_err","user","subscriptions","sort","dt1","payment","renderPage","updateEditModal","first_name","last_name","sendUpdateProfile","preview","file","files","avatarFile","reader","FileReader","onload","avatar","readAsDataURL","parentElement","color","required","youtube","facebook","instagram","twitch","twitter","tiktok","company","is_company","cod_fisc","billing","address","zip","city","country","vat","fe_code","pec","errorFlag","is_italy","is_eurozone","renderDetails","renderCompany","renderSubscriptions","renderLicenses","renderDownloads","imageEl","social_block","accountType","personalCode","companyAddress","companyZipcode","companyCity","companyCountry","companyName","companyVat","companyCode","companyPec","option","handleFields","euro_zone","removeAttribute","subActive","subExpire","autorenew","active","confirm","subsList","subscription","extractDate","dt2","formatDate","subscriptionItem","licensesList","orders","license","licenseItem","pdf","downloadsList","downloads","downloadItem","surname","modalId","showUpdateStatusModal","user_data","stringify","updated","forceToken","basePaymentUrl","ArtistProfile","description","is_artist","renderPlaylists","renderTracks","renderDocuments","trackObj","download_count","play_count","playlist_count","playlistsList","playlistID","documentsList","documents","doc","artist_data","UserManager","dataManager","profiles","profile","artistProfile","loadDataManager","now","setMyplaylists","licenses_tracks","ftnum","checkSubscriptionsValidity","isActiveSubscription","fts","ftum","registrationEvent","loginEvent","logoutEvent","valid","registerModal","form","password","fullname","privacy","errorManager","setCookie","socialLogin","showSubscriptionRegisterModal","buySubscription","loginModal","dafUrl","escape","logoutButton","VideoManager","indexedDB","youtubePlayer","videoContainer","readyToRun","supportedVideoType","maxVideoMB","videoFromDB","setupSeek","loadUploadedVideo","setupYoutubeVideo","disabled","youtubeUrl","uploadedVideo","setupUploadedVideo","dataTransfer","video","playVideo","pauseVideo","resetVideo","$","trigger","videoElement","videoWidth","videoHeight","assign","drawImage","imgData","_u","headers","ta2","ka","showVideoFullscreen","DataTransfer","youtubeVideo","removeItem","firstScriptTag","getElementsByTagName","YT","Player","videoId","parseUrlYoutube","events","onReady","onPlayerReady","onStateChange","onPlayerStateChange","playerVars","autoplay","controls","disablekb","fs","loop","modestbranding","showtitle","rel","showinfo","mute","autohide","init","onYouTubeIframeAPIReady","PlayerState","PLAYING","startYoutubeIntervalManager","PAUSED","updateYoutubeCurrentTime","getCurrentTime","timeline","getDuration","_this6$getMouseCoordi","setYoutubeSeekPosition","_this6$getMouseCoordi2","setYoutubeSeekTime","seekTime","seekTo","setSeekPosition","setSeekTime","createObjectURL","muted","keyValuePair","params","mozRequestFullScreen","webkitRequestFullScreen","IndexedDBManager","windowIndexedDB","idb","dbName","request","onerror","onsuccess","onupgradeneeded","createObjectStore","keyPath","createIndex","unique","newItem","transaction","objectStore","oncomplete","LicensesTrack","single_licence","digital","media","zone","exclusive","prj_name","prj_client","single_license","offline","LicensesManager","licensesTracks","timeSteps","territoryLicensesTrackSelected","exclusiveTypes","artistTypes","areas","continents","national","world","isWorking","redirectIfEmptyUrl","isVatString","updateMenuLicensesTable","addTrack","licensesSingleTrack","worldWide","Zones","requestPriceUpdate","licensesEmptyElement","licensesListElement","licensesItem","childNodes","licensesTrack","replaceState","randomTrack","setupTerritoryModals","getPrice","requestQuotation","requestBuy","territoryModal","countryItem","setZoneValue","area","areaItem","continent","continentItem","updateTerritoryModal","updateTerritoryTab","tab","inputs","update","tracks_data","_new","single_included","digital_included","updateSingleItem","updateTotal","licensesPanel","checkLicensesTracksPrices","checkLicensesTracksValidity","updateSummary","cleanInput","Digital","digitalItem","Media","mediaItem","allLicenses","zoneId","zoneItem","pdf_url","PageShow","renderedHTML","playerManager","videoManager","indexedDBManager","licensesManager","scrollOffsetCompress","timeoutUploadedVideo","resetUploadedVideo","showPage","setFrontendFunctions","autoFillPlayerFromLocalStorage","autoLoadVideo","reloadMyplaylist","setDataManager","setCurrentUser","run","lastPageLoaded","read","path","injectHTML","group","isStaticPage","renderMyplaylistsList","setUserManager","setPlaylists","menuItems","sublinks","sublink","setupNavigation","getPageData","renderFaqData","renderFaqArtistData","renderPlacementsData","activateInputPromoCode","hash","scrollIntoView","buyFreeTrial","has","sub","sendAskusData","atrl","renderHeaderList","showSideMenu","setupNavigationLinks","trg","hasClass","addClass","bindEvents","setPlugins","setUserEvents","setupNewPlaylist","FactoryManager","cls","classes","normalizeUrl","srcByModuleId","noDocument","noop","updateCss","isUrlRequest","isLoaded","visited","newEl","reloadAll","module","exports","moduleId","options","fn","timeout","getScriptSrc","currentScript","scripts","lastScriptTag","fileMap","splitResult","mapRule","reg","getCurrentScriptUrl","reloaded","loaded","stripWWW","some","getReloadUrl","reloadStyle","locals","urlString","protocol","components","host","accumulator","cssReload","hot","dispose","accept","__webpack_module_cache__","__webpack_require__","cachedModule","execOptions","factory","__webpack_modules__","require","handler","m","definition","hu","chunkId","miniCssF","hmrF","g","globalThis","Function","prop","l","done","script","needAttach","getAttribute","charset","nc","onScriptComplete","prev","doneFns","head","currentChildModule","currentUpdateApplyHandlers","queuedInvalidatedModules","currentModuleData","installedModules","currentParents","registeredStatusHandlers","currentStatus","blockingPromises","blockingPromisesWaiting","setStatus","newStatus","results","all","unblock","hotCheck","applyOnUpdate","hmrM","updatedModules","hmrC","promises","internalApply","applyInvalidatedModules","hotApply","errors","disposePromise","applyPromise","reportError","outdatedModules","modules","hmrI","hmrD","me","_main","parents","children","warn","createPropertyDescriptor","set","trackBlockingPromise","createRequire","_acceptedDependencies","_acceptedErrorHandlers","_declinedDependencies","_selfAccepted","_selfDeclined","_selfInvalidated","_disposeHandlers","_requireSelf","dep","callback","errorHandler","decline","addDisposeHandler","removeDisposeHandler","idx","invalidate","addStatusHandler","removeStatusHandler","scriptUrl","importScripts","fullhref","linkTag","errorType","realHref","existingLinkTags","dataHref","existingStyleTags","oldTag","miniCss","chunkIds","removedChunks","removedModules","applyHandlers","updatedModulesList","as","currentUpdatedModulesList","currentUpdateChunks","currentUpdate","currentUpdateRemovedChunks","currentUpdateRuntime","installedChunks","hmrS_jsonp","waitingUpdateResolves","loadUpdateChunk","realSrc","getAffectedModuleEffects","updateModuleId","outdatedDependencies","queue","chain","queueItem","parentId","addAllToSet","f","jsonpHmr","appliedUpdate","warnUnexpectedRequire","newModuleFactory","abortError","doApply","doDispose","chainInfo","onDeclined","ignoreDeclined","onUnaccepted","ignoreUnaccepted","onAccepted","onDisposed","moduleOutdatedDependencies","outdatedSelfAcceptedModules","outdatedModuleId","dependency","disposeHandlers","child","callbacks","errorHandlers","dependenciesForCallbacks","acceptCallback","dependencyId","err2","onErrored","originalError","ignoreErrored","moreModules","runtime","jsonp","__webpack_exports__"],"sourceRoot":""}