-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.da7cedbd.js.map
1 lines (1 loc) · 116 KB
/
index.da7cedbd.js.map
1
{"mappings":"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","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-21771dedfb1a2052.js","src/js/particleapp.js","src/js/particles.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"ab9e37d9da7cedbd\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: {|[string]: mixed|};\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array<string> | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise<void>;\ndeclare var __parcel__importScripts__: (string) => Promise<void>;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData[moduleName],\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData[moduleName] = undefined;\n}\nmodule.bundle.Module = Module;\nmodule.bundle.hotData = {};\nvar checkedAssets /*: {|[string]: boolean|} */, assetsToDispose /*: Array<[ParcelRequire, string]> */, assetsToAccept /*: Array<[ParcelRequire, string]> */;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\nfunction getPort() {\n return HMR_PORT || location.port;\n}\n\n// eslint-disable-next-line no-redeclare\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws';\n var ws;\n try {\n ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');\n } catch (err) {\n if (err.message) {\n console.error(err.message);\n }\n ws = {};\n }\n\n // Web extension context\n var extCtx = typeof browser === 'undefined' ? typeof chrome === 'undefined' ? null : chrome : browser;\n\n // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n var supportsSourceURL = false;\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n }\n\n // $FlowFixMe\n ws.onmessage = async function (event /*: {data: string, ...} */) {\n checkedAssets = {} /*: {|[string]: boolean|} */;\n assetsToAccept = [];\n assetsToDispose = [];\n var data /*: HMRMessage */ = JSON.parse(event.data);\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH);\n\n // Handle HMR Update\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n if (handled) {\n console.clear();\n\n // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n await hmrApplyUpdates(assets);\n\n // Dispose all old assets.\n let processedAssets = {} /*: {|[string]: boolean|} */;\n for (let i = 0; i < assetsToDispose.length; i++) {\n let id = assetsToDispose[i][1];\n if (!processedAssets[id]) {\n hmrDispose(assetsToDispose[i][0], id);\n processedAssets[id] = true;\n }\n }\n\n // Run accept callbacks. This will also re-execute other disposed assets in topological order.\n processedAssets = {};\n for (let i = 0; i < assetsToAccept.length; i++) {\n let id = assetsToAccept[i][1];\n if (!processedAssets[id]) {\n hmrAccept(assetsToAccept[i][0], id);\n processedAssets[id] = true;\n }\n }\n } else fullReload();\n }\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html);\n // $FlowFixMe\n document.body.appendChild(overlay);\n }\n }\n };\n ws.onerror = function (e) {\n if (e.message) {\n console.error(e.message);\n }\n };\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '<div style=\"background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;\">';\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n<a href=\"/__parcel_launch_editor?file=${encodeURIComponent(frame.location)}\" style=\"text-decoration: underline; color: #888\" onclick=\"fetch(this.href); return false\">${frame.location}</a>\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n <div>\n <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n 🚨 ${diagnostic.message}\n </div>\n <pre>${stack}</pre>\n <div>\n ${diagnostic.hints.map(hint => '<div>💡 ' + hint + '</div>').join('')}\n </div>\n ${diagnostic.documentation ? `<div>📝 <a style=\"color: violet\" href=\"${diagnostic.documentation}\" target=\"_blank\">Learn more</a></div>` : ''}\n </div>\n `;\n }\n errorHTML += '</div>';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\nfunction getParents(bundle, id) /*: Array<[ParcelRequire, string]> */{\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n var parents = [];\n var k, d, dep;\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n return parents;\n}\nfunction updateLink(link) {\n var href = link.getAttribute('href');\n if (!href) {\n return;\n }\n var newLink = link.cloneNode();\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n newLink.setAttribute('href',\n // $FlowFixMe\n href.split('?')[0] + '?' + Date.now());\n // $FlowFixMe\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href /*: string */ = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n cssTimeout = null;\n }, 50);\n}\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n return new Promise((resolve, reject) => {\n var _document$head;\n script.onload = () => resolve(script);\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 || _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension fix\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3 && typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n (_document$head2 = document.head) === null || _document$head2 === void 0 || _document$head2.removeChild(script);\n }\n });\n }\n }\n}\nfunction hmrApply(bundle /*: ParcelRequire */, asset /*: HMRAsset */) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n }\n\n // $FlowFixMe\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n }\n\n // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n delete modules[id];\n delete bundle.cache[id];\n\n // Now delete the orphans.\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\nfunction hmrAcceptCheck(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n }\n\n // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n parents.push(...p);\n }\n }\n return accepted;\n}\nfunction hmrAcceptCheckOne(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n if (checkedAssets[id]) {\n return true;\n }\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToDispose.push([bundle, id]);\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n assetsToAccept.push([bundle, id]);\n return true;\n }\n}\nfunction hmrDispose(bundle /*: ParcelRequire */, id /*: string */) {\n var cached = bundle.cache[id];\n bundle.hotData[id] = {};\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData[id];\n }\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData[id]);\n });\n }\n delete bundle.cache[id];\n}\nfunction hmrAccept(bundle /*: ParcelRequire */, id /*: string */) {\n // Execute the module.\n bundle(id);\n\n // Run the accept callbacks in the new version of the module.\n var cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n if (assetsToAlsoAccept && assetsToAccept.length) {\n assetsToAlsoAccept.forEach(function (a) {\n hmrDispose(a[0], a[1]);\n });\n\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n}","import './particles'\r\n\r\nparticlesJS(\"particles-dark\",\r\n{\r\n \"fps_limit\": 30,\r\n \"particles\":{\r\n \"number\":{\r\n \"value\": 80\r\n },\r\n \"color\":{\r\n \"value\": \"#fff\"\r\n },\r\n \"shape\":{\r\n \"type\": \"circle\"\r\n },\r\n \"opacity\":{\r\n \"value\":1,\r\n \"random\":true,\r\n \"anim\":{\r\n \"enable\":true,\r\n \"speed\":0.5\r\n }\r\n },\r\n \"size\":{\r\n \"value\":1,\r\n \"random\":false,\r\n \"anim\":{\r\n \"enable\": false,\r\n \"speed\": 0\r\n }\r\n },\r\n \"line_linked\":{\r\n \"enabled\": true,\r\n \"distance\": 100,\r\n \"color\":\"#fff\",\r\n \"width\":1\r\n },\r\n \"move\":{\r\n \"enable\":true,\r\n \"speed\":0.6,\r\n \"direction\":\"none\",\r\n \"straight\":false,\r\n \"random\":true,\r\n \"out_mode\": \"bounce\"\r\n }\r\n },\r\n \"interactivity\":{\r\n \"events\":{\r\n \"onhover\":{\r\n \"enable\":true,\r\n \"mode\": \"bubble\"\r\n },\r\n \"onclick\":{\r\n \"enable\":false,\r\n \"mode\": \"push\"\r\n }\r\n },\r\n \"modes\":{\r\n \"repulse\":{\r\n \"distance\":300,\r\n \"duration\":0.8\r\n },\r\n \"bubble\":{\r\n \"distance\":300,\r\n \"size\":2\r\n }\r\n },\r\n \"detect_on\": \"window\"\r\n }\r\n });\r\n\r\n/* particlesJS(\"particles-light\",\r\n{\r\n \"particles\":{\r\n \"number\":{\r\n \"value\": 80\r\n },\r\n \"color\":{\r\n \"value\": \"#000\"\r\n },\r\n \"shape\":{\r\n //\"stroke\": {\r\n // \"width\": 1,\r\n // \"color\": \"#000\"\r\n //},\r\n \"type\": \"circle\"\r\n },\r\n \"opacity\":{\r\n \"value\":1,\r\n \"random\":true,\r\n \"anim\":{\r\n \"enable\":true,\r\n \"speed\":0.5\r\n }\r\n },\r\n \"size\":{\r\n \"value\":3,\r\n \"random\":true,\r\n \"anim\":{\r\n \"enable\": true,\r\n \"speed\": 0.1\r\n }\r\n },\r\n \"line_linked\":{\r\n \"enabled\": true,\r\n \"distance\": 40,\r\n \"color\":\"#000\",\r\n \"width\":1\r\n },\r\n \"move\":{\r\n \"enable\":true,\r\n \"speed\":0.6,\r\n \"direction\":\"none\",\r\n \"straight\":false,\r\n \"random\":true,\r\n \"out_mode\": \"bounce\"\r\n }\r\n },\r\n \"interactivity\":{\r\n \"events\":{\r\n \"onhover\":{\r\n \"enable\":true,\r\n \"mode\": \"grab bubble\"\r\n },\r\n \"onclick\":{\r\n \"enable\":true,\r\n \"mode\": \"push\"\r\n }\r\n },\r\n \"modes\":{\r\n \"grab\":{\r\n \"distance\":100\r\n },\r\n \"repulse\":{\r\n \"distance\":100,\r\n \"duration\":5\r\n },\r\n \"bubble\":{\r\n \"distance\":200,\r\n \"size\":4\r\n }\r\n },\r\n \"detect_on\": \"window\"\r\n }\r\n });*/","/* -----------------------------------------------\r\n/* Author : Vincent Garreau - vincentgarreau.com\r\n/* MIT license: http://opensource.org/licenses/MIT\r\n/* Demo / Generator : vincentgarreau.com/particles.js\r\n/* GitHub : github.com/VincentGarreau/particles.js\r\n/* How to use? : Check the GitHub README\r\n/* v2.0.0\r\n/* ----------------------------------------------- */\r\n\r\nvar pJS = function(tag_id, params){\r\n\r\n var canvas_el = document.querySelector('#'+tag_id+' > .particles-js-canvas-el');\r\n \r\n /* particles.js variables with default values */\r\n this.pJS = {\r\n canvas: {\r\n el: canvas_el,\r\n w: canvas_el.offsetWidth,\r\n h: canvas_el.offsetHeight\r\n },\r\n particles: {\r\n number: {\r\n value: 400,\r\n density: {\r\n enable: true,\r\n value_area: 800\r\n }\r\n },\r\n color: {\r\n value: '#fff'\r\n },\r\n shape: {\r\n type: 'circle',\r\n stroke: {\r\n width: 0,\r\n color: '#ff0000'\r\n },\r\n polygon: {\r\n nb_sides: 5\r\n },\r\n image: {\r\n src: '',\r\n width: 100,\r\n height: 100\r\n }\r\n },\r\n opacity: {\r\n value: 1,\r\n random: false,\r\n anim: {\r\n enable: false,\r\n speed: 2,\r\n opacity_min: 0,\r\n sync: false\r\n }\r\n },\r\n size: {\r\n value: 20,\r\n random: false,\r\n anim: {\r\n enable: false,\r\n speed: 20,\r\n size_min: 0,\r\n sync: false\r\n }\r\n },\r\n line_linked: {\r\n enable: true,\r\n distance: 100,\r\n color: '#fff',\r\n opacity: 1,\r\n width: 1\r\n },\r\n move: {\r\n enable: true,\r\n speed: 2,\r\n direction: 'none',\r\n random: false,\r\n straight: false,\r\n out_mode: 'out',\r\n bounce: false,\r\n attract: {\r\n enable: false,\r\n rotateX: 3000,\r\n rotateY: 3000\r\n }\r\n },\r\n array: []\r\n },\r\n interactivity: {\r\n detect_on: 'canvas',\r\n events: {\r\n onhover: {\r\n enable: true,\r\n mode: 'grab'\r\n },\r\n onclick: {\r\n enable: true,\r\n mode: 'push'\r\n },\r\n resize: true\r\n },\r\n modes: {\r\n grab:{\r\n distance: 100,\r\n line_linked:{\r\n opacity: 1\r\n }\r\n },\r\n bubble:{\r\n distance: 200,\r\n size: 80,\r\n duration: 0.4\r\n },\r\n repulse:{\r\n distance: 200,\r\n duration: 0.4\r\n },\r\n push:{\r\n particles_nb: 4\r\n },\r\n remove:{\r\n particles_nb: 2\r\n }\r\n },\r\n mouse:{}\r\n },\r\n retina_detect: false,\r\n fn: {\r\n interact: {},\r\n modes: {},\r\n vendors:{}\r\n },\r\n tmp: {}\r\n };\r\n \r\n var pJS = this.pJS;\r\n \r\n /* params settings */\r\n if(params){\r\n Object.deepExtend(pJS, params);\r\n }\r\n \r\n pJS.tmp.obj = {\r\n size_value: pJS.particles.size.value,\r\n size_anim_speed: pJS.particles.size.anim.speed,\r\n move_speed: pJS.particles.move.speed,\r\n line_linked_distance: pJS.particles.line_linked.distance,\r\n line_linked_width: pJS.particles.line_linked.width,\r\n mode_grab_distance: pJS.interactivity.modes.grab.distance,\r\n mode_bubble_distance: pJS.interactivity.modes.bubble.distance,\r\n mode_bubble_size: pJS.interactivity.modes.bubble.size,\r\n mode_repulse_distance: pJS.interactivity.modes.repulse.distance\r\n };\r\n \r\n \r\n pJS.fn.retinaInit = function(){\r\n \r\n if(pJS.retina_detect && window.devicePixelRatio > 1){\r\n pJS.canvas.pxratio = window.devicePixelRatio; \r\n pJS.tmp.retina = true;\r\n } \r\n else{\r\n pJS.canvas.pxratio = 1;\r\n pJS.tmp.retina = false;\r\n }\r\n \r\n pJS.canvas.w = pJS.canvas.el.offsetWidth * pJS.canvas.pxratio;\r\n pJS.canvas.h = pJS.canvas.el.offsetHeight * pJS.canvas.pxratio;\r\n \r\n pJS.particles.size.value = pJS.tmp.obj.size_value * pJS.canvas.pxratio;\r\n pJS.particles.size.anim.speed = pJS.tmp.obj.size_anim_speed * pJS.canvas.pxratio;\r\n pJS.particles.move.speed = pJS.tmp.obj.move_speed * pJS.canvas.pxratio;\r\n pJS.particles.line_linked.distance = pJS.tmp.obj.line_linked_distance * pJS.canvas.pxratio;\r\n pJS.interactivity.modes.grab.distance = pJS.tmp.obj.mode_grab_distance * pJS.canvas.pxratio;\r\n pJS.interactivity.modes.bubble.distance = pJS.tmp.obj.mode_bubble_distance * pJS.canvas.pxratio;\r\n pJS.particles.line_linked.width = pJS.tmp.obj.line_linked_width * pJS.canvas.pxratio;\r\n pJS.interactivity.modes.bubble.size = pJS.tmp.obj.mode_bubble_size * pJS.canvas.pxratio;\r\n pJS.interactivity.modes.repulse.distance = pJS.tmp.obj.mode_repulse_distance * pJS.canvas.pxratio;\r\n \r\n };\r\n \r\n \r\n \r\n /* ---------- pJS functions - canvas ------------ */\r\n \r\n pJS.fn.canvasInit = function(){\r\n pJS.canvas.ctx = pJS.canvas.el.getContext('2d');\r\n };\r\n \r\n pJS.fn.canvasSize = function(){\r\n \r\n pJS.canvas.el.width = pJS.canvas.w;\r\n pJS.canvas.el.height = pJS.canvas.h;\r\n \r\n if(pJS && pJS.interactivity.events.resize){\r\n \r\n window.addEventListener('resize', function(){\r\n \r\n pJS.canvas.w = pJS.canvas.el.offsetWidth;\r\n pJS.canvas.h = pJS.canvas.el.offsetHeight;\r\n \r\n /* resize canvas */\r\n if(pJS.tmp.retina){\r\n pJS.canvas.w *= pJS.canvas.pxratio;\r\n pJS.canvas.h *= pJS.canvas.pxratio;\r\n }\r\n \r\n pJS.canvas.el.width = pJS.canvas.w;\r\n pJS.canvas.el.height = pJS.canvas.h;\r\n \r\n /* repaint canvas on anim disabled */\r\n if(!pJS.particles.move.enable){\r\n pJS.fn.particlesEmpty();\r\n pJS.fn.particlesCreate();\r\n pJS.fn.particlesDraw();\r\n pJS.fn.vendors.densityAutoParticles();\r\n }\r\n \r\n /* density particles enabled */\r\n pJS.fn.vendors.densityAutoParticles();\r\n \r\n });\r\n \r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.canvasPaint = function(){\r\n pJS.canvas.ctx.fillRect(0, 0, pJS.canvas.w, pJS.canvas.h);\r\n };\r\n \r\n pJS.fn.canvasClear = function(){\r\n pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h);\r\n };\r\n \r\n \r\n /* --------- pJS functions - particles ----------- */\r\n \r\n pJS.fn.particle = function(color, opacity, position){\r\n \r\n /* size */\r\n this.radius = (pJS.particles.size.random ? Math.random() : 1) * pJS.particles.size.value;\r\n if(pJS.particles.size.anim.enable){\r\n this.size_status = false;\r\n this.vs = pJS.particles.size.anim.speed / 100;\r\n if(!pJS.particles.size.anim.sync){\r\n this.vs = this.vs * Math.random();\r\n }\r\n }\r\n \r\n /* position */\r\n this.x = position ? position.x : Math.random() * pJS.canvas.w;\r\n this.y = position ? position.y : Math.random() * pJS.canvas.h;\r\n \r\n /* check position - into the canvas */\r\n if(this.x > pJS.canvas.w - this.radius*2) this.x = this.x - this.radius;\r\n else if(this.x < this.radius*2) this.x = this.x + this.radius;\r\n if(this.y > pJS.canvas.h - this.radius*2) this.y = this.y - this.radius;\r\n else if(this.y < this.radius*2) this.y = this.y + this.radius;\r\n \r\n /* check position - avoid overlap */\r\n if(pJS.particles.move.bounce){\r\n pJS.fn.vendors.checkOverlap(this, position);\r\n }\r\n \r\n /* color */\r\n this.color = {};\r\n if(typeof(color.value) == 'object'){\r\n \r\n if(color.value instanceof Array){\r\n var color_selected = color.value[Math.floor(Math.random() * pJS.particles.color.value.length)];\r\n this.color.rgb = hexToRgb(color_selected);\r\n }else{\r\n if(color.value.r != undefined && color.value.g != undefined && color.value.b != undefined){\r\n this.color.rgb = {\r\n r: color.value.r,\r\n g: color.value.g,\r\n b: color.value.b\r\n }\r\n }\r\n if(color.value.h != undefined && color.value.s != undefined && color.value.l != undefined){\r\n this.color.hsl = {\r\n h: color.value.h,\r\n s: color.value.s,\r\n l: color.value.l\r\n }\r\n }\r\n }\r\n \r\n }\r\n else if(color.value == 'random'){\r\n this.color.rgb = {\r\n r: (Math.floor(Math.random() * (255 - 0 + 1)) + 0),\r\n g: (Math.floor(Math.random() * (255 - 0 + 1)) + 0),\r\n b: (Math.floor(Math.random() * (255 - 0 + 1)) + 0)\r\n }\r\n }\r\n else if(typeof(color.value) == 'string'){\r\n this.color = color;\r\n this.color.rgb = hexToRgb(this.color.value);\r\n }\r\n \r\n /* opacity */\r\n this.opacity = (pJS.particles.opacity.random ? Math.random() : 1) * pJS.particles.opacity.value;\r\n if(pJS.particles.opacity.anim.enable){\r\n this.opacity_status = false;\r\n this.vo = pJS.particles.opacity.anim.speed / 100;\r\n if(!pJS.particles.opacity.anim.sync){\r\n this.vo = this.vo * Math.random();\r\n }\r\n }\r\n \r\n /* animation - velocity for speed */\r\n var velbase = {}\r\n switch(pJS.particles.move.direction){\r\n case 'top':\r\n velbase = { x:0, y:-1 };\r\n break;\r\n case 'top-right':\r\n velbase = { x:0.5, y:-0.5 };\r\n break;\r\n case 'right':\r\n velbase = { x:1, y:-0 };\r\n break;\r\n case 'bottom-right':\r\n velbase = { x:0.5, y:0.5 };\r\n break;\r\n case 'bottom':\r\n velbase = { x:0, y:1 };\r\n break;\r\n case 'bottom-left':\r\n velbase = { x:-0.5, y:1 };\r\n break;\r\n case 'left':\r\n velbase = { x:-1, y:0 };\r\n break;\r\n case 'top-left':\r\n velbase = { x:-0.5, y:-0.5 };\r\n break;\r\n default:\r\n velbase = { x:0, y:0 };\r\n break;\r\n }\r\n \r\n if(pJS.particles.move.straight){\r\n this.vx = velbase.x;\r\n this.vy = velbase.y;\r\n if(pJS.particles.move.random){\r\n this.vx = this.vx * (Math.random());\r\n this.vy = this.vy * (Math.random());\r\n }\r\n }else{\r\n this.vx = velbase.x + Math.random()-0.5;\r\n this.vy = velbase.y + Math.random()-0.5;\r\n }\r\n \r\n // var theta = 2.0 * Math.PI * Math.random();\r\n // this.vx = Math.cos(theta);\r\n // this.vy = Math.sin(theta);\r\n \r\n this.vx_i = this.vx;\r\n this.vy_i = this.vy;\r\n \r\n \r\n \r\n /* if shape is image */\r\n \r\n var shape_type = pJS.particles.shape.type;\r\n if(typeof(shape_type) == 'object'){\r\n if(shape_type instanceof Array){\r\n var shape_selected = shape_type[Math.floor(Math.random() * shape_type.length)];\r\n this.shape = shape_selected;\r\n }\r\n }else{\r\n this.shape = shape_type;\r\n }\r\n \r\n if(this.shape == 'image'){\r\n var sh = pJS.particles.shape;\r\n this.img = {\r\n src: sh.image.src,\r\n ratio: sh.image.width / sh.image.height\r\n }\r\n if(!this.img.ratio) this.img.ratio = 1;\r\n if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg != undefined){\r\n pJS.fn.vendors.createSvgImg(this);\r\n if(pJS.tmp.pushing){\r\n this.img.loaded = false;\r\n }\r\n }\r\n }\r\n \r\n \r\n \r\n };\r\n \r\n \r\n pJS.fn.particle.prototype.draw = function() {\r\n \r\n var p = this;\r\n \r\n if(p.radius_bubble != undefined){\r\n var radius = p.radius_bubble; \r\n }else{\r\n var radius = p.radius;\r\n }\r\n \r\n if(p.opacity_bubble != undefined){\r\n var opacity = p.opacity_bubble;\r\n }else{\r\n var opacity = p.opacity;\r\n }\r\n \r\n if(p.color.rgb){\r\n var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+opacity+')';\r\n }else{\r\n var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+opacity+')';\r\n }\r\n \r\n pJS.canvas.ctx.fillStyle = color_value;\r\n pJS.canvas.ctx.beginPath();\r\n \r\n switch(p.shape){\r\n \r\n case 'circle':\r\n pJS.canvas.ctx.arc(p.x, p.y, radius, 0, Math.PI * 2, false);\r\n break;\r\n \r\n case 'edge':\r\n pJS.canvas.ctx.rect(p.x-radius, p.y-radius, radius*2, radius*2);\r\n break;\r\n \r\n case 'triangle':\r\n pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x-radius, p.y+radius / 1.66, radius*2, 3, 2);\r\n break;\r\n \r\n case 'polygon':\r\n pJS.fn.vendors.drawShape(\r\n pJS.canvas.ctx,\r\n p.x - radius / (pJS.particles.shape.polygon.nb_sides/3.5), // startX\r\n p.y - radius / (2.66/3.5), // startY\r\n radius*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength\r\n pJS.particles.shape.polygon.nb_sides, // sideCountNumerator\r\n 1 // sideCountDenominator\r\n );\r\n break;\r\n \r\n case 'star':\r\n pJS.fn.vendors.drawShape(\r\n pJS.canvas.ctx,\r\n p.x - radius*2 / (pJS.particles.shape.polygon.nb_sides/4), // startX\r\n p.y - radius / (2*2.66/3.5), // startY\r\n radius*2*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength\r\n pJS.particles.shape.polygon.nb_sides, // sideCountNumerator\r\n 2 // sideCountDenominator\r\n );\r\n break;\r\n \r\n case 'image':\r\n \r\n function draw(){\r\n pJS.canvas.ctx.drawImage(\r\n img_obj,\r\n p.x-radius,\r\n p.y-radius,\r\n radius*2,\r\n radius*2 / p.img.ratio\r\n );\r\n }\r\n \r\n if(pJS.tmp.img_type == 'svg'){\r\n var img_obj = p.img.obj;\r\n }else{\r\n var img_obj = pJS.tmp.img_obj;\r\n }\r\n \r\n if(img_obj){\r\n draw();\r\n }\r\n \r\n break;\r\n \r\n }\r\n \r\n pJS.canvas.ctx.closePath();\r\n \r\n if(pJS.particles.shape.stroke.width > 0){\r\n pJS.canvas.ctx.strokeStyle = pJS.particles.shape.stroke.color;\r\n pJS.canvas.ctx.lineWidth = pJS.particles.shape.stroke.width;\r\n pJS.canvas.ctx.stroke();\r\n }\r\n \r\n pJS.canvas.ctx.fill();\r\n \r\n };\r\n \r\n \r\n pJS.fn.particlesCreate = function(){\r\n for(var i = 0; i < pJS.particles.number.value; i++) {\r\n pJS.particles.array.push(new pJS.fn.particle(pJS.particles.color, pJS.particles.opacity.value));\r\n }\r\n };\r\n \r\n pJS.fn.particlesUpdate = function(){\r\n \r\n for(var i = 0; i < pJS.particles.array.length; i++){\r\n \r\n /* the particle */\r\n var p = pJS.particles.array[i];\r\n \r\n // var d = ( dx = pJS.interactivity.mouse.click_pos_x - p.x ) * dx + ( dy = pJS.interactivity.mouse.click_pos_y - p.y ) * dy;\r\n // var f = -BANG_SIZE / d;\r\n // if ( d < BANG_SIZE ) {\r\n // var t = Math.atan2( dy, dx );\r\n // p.vx = f * Math.cos(t);\r\n // p.vy = f * Math.sin(t);\r\n // }\r\n \r\n /* move the particle */\r\n if(pJS.particles.move.enable){\r\n var ms = pJS.particles.move.speed/2;\r\n p.x += p.vx * ms;\r\n p.y += p.vy * ms;\r\n }\r\n \r\n /* change opacity status */\r\n if(pJS.particles.opacity.anim.enable) {\r\n if(p.opacity_status == true) {\r\n if(p.opacity >= pJS.particles.opacity.value) p.opacity_status = false;\r\n p.opacity += p.vo;\r\n }else {\r\n if(p.opacity <= pJS.particles.opacity.anim.opacity_min) p.opacity_status = true;\r\n p.opacity -= p.vo;\r\n }\r\n if(p.opacity < 0) p.opacity = 0;\r\n }\r\n \r\n /* change size */\r\n if(pJS.particles.size.anim.enable){\r\n if(p.size_status == true){\r\n if(p.radius >= pJS.particles.size.value) p.size_status = false;\r\n p.radius += p.vs;\r\n }else{\r\n if(p.radius <= pJS.particles.size.anim.size_min) p.size_status = true;\r\n p.radius -= p.vs;\r\n }\r\n if(p.radius < 0) p.radius = 0;\r\n }\r\n \r\n /* change particle position if it is out of canvas */\r\n if(pJS.particles.move.out_mode == 'bounce'){\r\n var new_pos = {\r\n x_left: p.radius,\r\n x_right: pJS.canvas.w,\r\n y_top: p.radius,\r\n y_bottom: pJS.canvas.h\r\n }\r\n }else{\r\n var new_pos = {\r\n x_left: -p.radius,\r\n x_right: pJS.canvas.w + p.radius,\r\n y_top: -p.radius,\r\n y_bottom: pJS.canvas.h + p.radius\r\n }\r\n }\r\n \r\n if(p.x - p.radius > pJS.canvas.w){\r\n p.x = new_pos.x_left;\r\n p.y = Math.random() * pJS.canvas.h;\r\n }\r\n else if(p.x + p.radius < 0){\r\n p.x = new_pos.x_right;\r\n p.y = Math.random() * pJS.canvas.h;\r\n }\r\n if(p.y - p.radius > pJS.canvas.h){\r\n p.y = new_pos.y_top;\r\n p.x = Math.random() * pJS.canvas.w;\r\n }\r\n else if(p.y + p.radius < 0){\r\n p.y = new_pos.y_bottom;\r\n p.x = Math.random() * pJS.canvas.w;\r\n }\r\n \r\n /* out of canvas modes */\r\n switch(pJS.particles.move.out_mode){\r\n case 'bounce':\r\n if (p.x + p.radius > pJS.canvas.w) p.vx = -p.vx;\r\n else if (p.x - p.radius < 0) p.vx = -p.vx;\r\n if (p.y + p.radius > pJS.canvas.h) p.vy = -p.vy;\r\n else if (p.y - p.radius < 0) p.vy = -p.vy;\r\n break;\r\n }\r\n \r\n /* events */\r\n if(isInArray('grab', pJS.interactivity.events.onhover.mode)){\r\n pJS.fn.modes.grabParticle(p);\r\n }\r\n \r\n if(isInArray('bubble', pJS.interactivity.events.onhover.mode) || isInArray('bubble', pJS.interactivity.events.onclick.mode)){\r\n pJS.fn.modes.bubbleParticle(p);\r\n }\r\n \r\n if(isInArray('repulse', pJS.interactivity.events.onhover.mode) || isInArray('repulse', pJS.interactivity.events.onclick.mode)){\r\n pJS.fn.modes.repulseParticle(p);\r\n }\r\n \r\n /* interaction auto between particles */\r\n if(pJS.particles.line_linked.enable || pJS.particles.move.attract.enable){\r\n for(var j = i + 1; j < pJS.particles.array.length; j++){\r\n var p2 = pJS.particles.array[j];\r\n \r\n /* link particles */\r\n if(pJS.particles.line_linked.enable){\r\n pJS.fn.interact.linkParticles(p,p2);\r\n }\r\n \r\n /* attract particles */\r\n if(pJS.particles.move.attract.enable){\r\n pJS.fn.interact.attractParticles(p,p2);\r\n }\r\n \r\n /* bounce particles */\r\n if(pJS.particles.move.bounce){\r\n pJS.fn.interact.bounceParticles(p,p2);\r\n }\r\n \r\n }\r\n }\r\n \r\n \r\n }\r\n \r\n };\r\n \r\n pJS.fn.particlesDraw = function(){\r\n \r\n /* clear canvas */\r\n pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h);\r\n \r\n /* update each particles param */\r\n pJS.fn.particlesUpdate();\r\n \r\n /* draw each particle */\r\n for(var i = 0; i < pJS.particles.array.length; i++){\r\n var p = pJS.particles.array[i];\r\n p.draw();\r\n }\r\n \r\n };\r\n \r\n pJS.fn.particlesEmpty = function(){\r\n pJS.particles.array = [];\r\n };\r\n \r\n pJS.fn.particlesRefresh = function(){\r\n \r\n /* init all */\r\n cancelRequestAnimFrame(pJS.fn.checkAnimFrame);\r\n cancelRequestAnimFrame(pJS.fn.drawAnimFrame);\r\n pJS.tmp.source_svg = undefined;\r\n pJS.tmp.img_obj = undefined;\r\n pJS.tmp.count_svg = 0;\r\n pJS.fn.particlesEmpty();\r\n pJS.fn.canvasClear();\r\n \r\n /* restart */\r\n pJS.fn.vendors.start();\r\n \r\n };\r\n \r\n \r\n /* ---------- pJS functions - particles interaction ------------ */\r\n \r\n pJS.fn.interact.linkParticles = function(p1, p2){\r\n \r\n var dx = p1.x - p2.x,\r\n dy = p1.y - p2.y,\r\n dist = Math.sqrt(dx*dx + dy*dy);\r\n \r\n /* draw a line between p1 and p2 if the distance between them is under the config distance */\r\n if(dist <= pJS.particles.line_linked.distance){\r\n \r\n var opacity_line = pJS.particles.line_linked.opacity - (dist / (1/pJS.particles.line_linked.opacity)) / pJS.particles.line_linked.distance;\r\n \r\n if(opacity_line > 0){ \r\n \r\n /* style */\r\n var color_line = pJS.particles.line_linked.color_rgb_line;\r\n pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')';\r\n pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width;\r\n //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */\r\n \r\n /* path */\r\n pJS.canvas.ctx.beginPath();\r\n pJS.canvas.ctx.moveTo(p1.x, p1.y);\r\n pJS.canvas.ctx.lineTo(p2.x, p2.y);\r\n pJS.canvas.ctx.stroke();\r\n pJS.canvas.ctx.closePath();\r\n \r\n }\r\n \r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.interact.attractParticles = function(p1, p2){\r\n \r\n /* condensed particles */\r\n var dx = p1.x - p2.x,\r\n dy = p1.y - p2.y,\r\n dist = Math.sqrt(dx*dx + dy*dy);\r\n \r\n if(dist <= pJS.particles.line_linked.distance){\r\n \r\n var ax = dx/(pJS.particles.move.attract.rotateX*1000),\r\n ay = dy/(pJS.particles.move.attract.rotateY*1000);\r\n \r\n p1.vx -= ax;\r\n p1.vy -= ay;\r\n \r\n p2.vx += ax;\r\n p2.vy += ay;\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n \r\n pJS.fn.interact.bounceParticles = function(p1, p2){\r\n \r\n var dx = p1.x - p2.x,\r\n dy = p1.y - p2.y,\r\n dist = Math.sqrt(dx*dx + dy*dy),\r\n dist_p = p1.radius+p2.radius;\r\n \r\n if(dist <= dist_p){\r\n p1.vx = -p1.vx;\r\n p1.vy = -p1.vy;\r\n \r\n p2.vx = -p2.vx;\r\n p2.vy = -p2.vy;\r\n }\r\n \r\n }\r\n \r\n \r\n /* ---------- pJS functions - modes events ------------ */\r\n \r\n pJS.fn.modes.pushParticles = function(nb, pos){\r\n \r\n pJS.tmp.pushing = true;\r\n \r\n for(var i = 0; i < nb; i++){\r\n if (pos) {\r\n pJS.particles.array.shift();\r\n }\r\n pJS.particles.array.push(\r\n new pJS.fn.particle(\r\n pJS.particles.color,\r\n pJS.particles.opacity.value,\r\n {\r\n 'x': pos ? pos.pos_x : Math.random() * pJS.canvas.w,\r\n 'y': pos ? pos.pos_y : Math.random() * pJS.canvas.h\r\n }\r\n )\r\n )\r\n if(i == nb-1){\r\n if(!pJS.particles.move.enable){\r\n pJS.fn.particlesDraw();\r\n }\r\n pJS.tmp.pushing = false;\r\n }\r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.modes.removeParticles = function(nb){\r\n \r\n pJS.particles.array.splice(0, nb);\r\n if(!pJS.particles.move.enable){\r\n pJS.fn.particlesDraw();\r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.modes.bubbleParticle = function(p){\r\n \r\n /* on hover event */\r\n if(pJS.interactivity.events.onhover.enable && isInArray('bubble', pJS.interactivity.events.onhover.mode)){\r\n \r\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\r\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\r\n dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse),\r\n ratio = 1 - dist_mouse / pJS.interactivity.modes.bubble.distance;\r\n \r\n function init(){\r\n p.opacity_bubble = p.opacity;\r\n p.radius_bubble = p.radius;\r\n }\r\n \r\n /* mousemove - check ratio */\r\n if(dist_mouse <= pJS.interactivity.modes.bubble.distance){\r\n \r\n if(ratio >= 0 && pJS.interactivity.status == 'mousemove'){\r\n \r\n /* size */\r\n if(pJS.interactivity.modes.bubble.size != pJS.particles.size.value){\r\n \r\n if(pJS.interactivity.modes.bubble.size > pJS.particles.size.value){\r\n var size = p.radius + (pJS.interactivity.modes.bubble.size*ratio);\r\n if(size >= 0){\r\n p.radius_bubble = size;\r\n }\r\n }else{\r\n var dif = p.radius - pJS.interactivity.modes.bubble.size,\r\n size = p.radius - (dif*ratio);\r\n if(size > 0){\r\n p.radius_bubble = size;\r\n }else{\r\n p.radius_bubble = 0;\r\n }\r\n }\r\n \r\n }\r\n \r\n /* opacity */\r\n if(pJS.interactivity.modes.bubble.opacity != pJS.particles.opacity.value){\r\n \r\n if(pJS.interactivity.modes.bubble.opacity > pJS.particles.opacity.value){\r\n var opacity = pJS.interactivity.modes.bubble.opacity*ratio;\r\n if(opacity > p.opacity && opacity <= pJS.interactivity.modes.bubble.opacity){\r\n p.opacity_bubble = opacity;\r\n }\r\n }else{\r\n var opacity = p.opacity - (pJS.particles.opacity.value-pJS.interactivity.modes.bubble.opacity)*ratio;\r\n if(opacity < p.opacity && opacity >= pJS.interactivity.modes.bubble.opacity){\r\n p.opacity_bubble = opacity;\r\n }\r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n }else{\r\n init();\r\n }\r\n \r\n \r\n /* mouseleave */\r\n if(pJS.interactivity.status == 'mouseleave'){\r\n init();\r\n }\r\n \r\n }\r\n \r\n /* on click event */\r\n else if(pJS.interactivity.events.onclick.enable && isInArray('bubble', pJS.interactivity.events.onclick.mode)){\r\n \r\n \r\n if(pJS.tmp.bubble_clicking){\r\n var dx_mouse = p.x - pJS.interactivity.mouse.click_pos_x,\r\n dy_mouse = p.y - pJS.interactivity.mouse.click_pos_y,\r\n dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse),\r\n time_spent = (new Date().getTime() - pJS.interactivity.mouse.click_time)/1000;\r\n \r\n if(time_spent > pJS.interactivity.modes.bubble.duration){\r\n pJS.tmp.bubble_duration_end = true;\r\n }\r\n \r\n if(time_spent > pJS.interactivity.modes.bubble.duration*2){\r\n pJS.tmp.bubble_clicking = false;\r\n pJS.tmp.bubble_duration_end = false;\r\n }\r\n }\r\n \r\n \r\n function process(bubble_param, particles_param, p_obj_bubble, p_obj, id){\r\n \r\n if(bubble_param != particles_param){\r\n \r\n if(!pJS.tmp.bubble_duration_end){\r\n if(dist_mouse <= pJS.interactivity.modes.bubble.distance){\r\n if(p_obj_bubble != undefined) var obj = p_obj_bubble;\r\n else var obj = p_obj;\r\n if(obj != bubble_param){\r\n var value = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration);\r\n if(id == 'size') p.radius_bubble = value;\r\n if(id == 'opacity') p.opacity_bubble = value;\r\n }\r\n }else{\r\n if(id == 'size') p.radius_bubble = undefined;\r\n if(id == 'opacity') p.opacity_bubble = undefined;\r\n }\r\n }else{\r\n if(p_obj_bubble != undefined){\r\n var value_tmp = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration),\r\n dif = bubble_param - value_tmp;\r\n value = bubble_param + dif;\r\n if(id == 'size') p.radius_bubble = value;\r\n if(id == 'opacity') p.opacity_bubble = value;\r\n }\r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n if(pJS.tmp.bubble_clicking){\r\n /* size */\r\n process(pJS.interactivity.modes.bubble.size, pJS.particles.size.value, p.radius_bubble, p.radius, 'size');\r\n /* opacity */\r\n process(pJS.interactivity.modes.bubble.opacity, pJS.particles.opacity.value, p.opacity_bubble, p.opacity, 'opacity');\r\n }\r\n \r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.modes.repulseParticle = function(p){\r\n \r\n if(pJS.interactivity.events.onhover.enable && isInArray('repulse', pJS.interactivity.events.onhover.mode) && pJS.interactivity.status == 'mousemove') {\r\n \r\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\r\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\r\n dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse);\r\n \r\n var normVec = {x: dx_mouse/dist_mouse, y: dy_mouse/dist_mouse},\r\n repulseRadius = pJS.interactivity.modes.repulse.distance,\r\n velocity = 100,\r\n repulseFactor = clamp((1/repulseRadius)*(-1*Math.pow(dist_mouse/repulseRadius,2)+1)*repulseRadius*velocity, 0, 50);\r\n \r\n var pos = {\r\n x: p.x + normVec.x * repulseFactor,\r\n y: p.y + normVec.y * repulseFactor\r\n }\r\n \r\n if(pJS.particles.move.out_mode == 'bounce'){\r\n if(pos.x - p.radius > 0 && pos.x + p.radius < pJS.canvas.w) p.x = pos.x;\r\n if(pos.y - p.radius > 0 && pos.y + p.radius < pJS.canvas.h) p.y = pos.y;\r\n }else{\r\n p.x = pos.x;\r\n p.y = pos.y;\r\n }\r\n \r\n }\r\n \r\n \r\n else if(pJS.interactivity.events.onclick.enable && isInArray('repulse', pJS.interactivity.events.onclick.mode)) {\r\n \r\n if(!pJS.tmp.repulse_finish){\r\n pJS.tmp.repulse_count++;\r\n if(pJS.tmp.repulse_count == pJS.particles.array.length){\r\n pJS.tmp.repulse_finish = true;\r\n }\r\n }\r\n \r\n if(pJS.tmp.repulse_clicking){\r\n \r\n var repulseRadius = Math.pow(pJS.interactivity.modes.repulse.distance/6, 3);\r\n \r\n var dx = pJS.interactivity.mouse.click_pos_x - p.x,\r\n dy = pJS.interactivity.mouse.click_pos_y - p.y,\r\n d = dx*dx + dy*dy;\r\n \r\n var force = -repulseRadius / d * 1;\r\n \r\n function process(){\r\n \r\n var f = Math.atan2(dy,dx);\r\n p.vx = force * Math.cos(f);\r\n p.vy = force * Math.sin(f);\r\n \r\n if(pJS.particles.move.out_mode == 'bounce'){\r\n var pos = {\r\n x: p.x + p.vx,\r\n y: p.y + p.vy\r\n }\r\n if (pos.x + p.radius > pJS.canvas.w) p.vx = -p.vx;\r\n else if (pos.x - p.radius < 0) p.vx = -p.vx;\r\n if (pos.y + p.radius > pJS.canvas.h) p.vy = -p.vy;\r\n else if (pos.y - p.radius < 0) p.vy = -p.vy;\r\n }\r\n \r\n }\r\n \r\n // default\r\n if(d <= repulseRadius){\r\n process();\r\n }\r\n \r\n // bang - slow motion mode\r\n // if(!pJS.tmp.repulse_finish){\r\n // if(d <= repulseRadius){\r\n // process();\r\n // }\r\n // }else{\r\n // process();\r\n // }\r\n \r\n \r\n }else{\r\n \r\n if(pJS.tmp.repulse_clicking == false){\r\n \r\n p.vx = p.vx_i;\r\n p.vy = p.vy_i;\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n pJS.fn.modes.grabParticle = function(p){\r\n \r\n if(pJS.interactivity.events.onhover.enable && pJS.interactivity.status == 'mousemove'){\r\n \r\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\r\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\r\n dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse);\r\n \r\n /* draw a line between the cursor and the particle if the distance between them is under the config distance */\r\n if(dist_mouse <= pJS.interactivity.modes.grab.distance){\r\n \r\n var opacity_line = pJS.interactivity.modes.grab.line_linked.opacity - (dist_mouse / (1/pJS.interactivity.modes.grab.line_linked.opacity)) / pJS.interactivity.modes.grab.distance;\r\n \r\n if(opacity_line > 0){\r\n \r\n /* style */\r\n var color_line = pJS.particles.line_linked.color_rgb_line;\r\n pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')';\r\n pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width;\r\n //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */\r\n \r\n /* path */\r\n pJS.canvas.ctx.beginPath();\r\n pJS.canvas.ctx.moveTo(p.x, p.y);\r\n pJS.canvas.ctx.lineTo(pJS.interactivity.mouse.pos_x, pJS.interactivity.mouse.pos_y);\r\n pJS.canvas.ctx.stroke();\r\n pJS.canvas.ctx.closePath();\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n \r\n };\r\n \r\n \r\n \r\n /* ---------- pJS functions - vendors ------------ */\r\n \r\n pJS.fn.vendors.eventsListeners = function(){\r\n \r\n /* events target element */\r\n if(pJS.interactivity.detect_on == 'window'){\r\n pJS.interactivity.el = window;\r\n }else{\r\n pJS.interactivity.el = pJS.canvas.el;\r\n }\r\n \r\n \r\n /* detect mouse pos - on hover / click event */\r\n if(pJS.interactivity.events.onhover.enable || pJS.interactivity.events.onclick.enable){\r\n \r\n /* el on mousemove */\r\n pJS.interactivity.el.addEventListener('mousemove', function(e){\r\n \r\n if(pJS.interactivity.el == window){\r\n var pos_x = e.clientX,\r\n pos_y = e.clientY;\r\n }\r\n else{\r\n var pos_x = e.offsetX || e.clientX,\r\n pos_y = e.offsetY || e.clientY;\r\n }\r\n \r\n pJS.interactivity.mouse.pos_x = pos_x;\r\n pJS.interactivity.mouse.pos_y = pos_y;\r\n \r\n if(pJS.tmp.retina){\r\n pJS.interactivity.mouse.pos_x *= pJS.canvas.pxratio;\r\n pJS.interactivity.mouse.pos_y *= pJS.canvas.pxratio;\r\n }\r\n \r\n pJS.interactivity.status = 'mousemove';\r\n \r\n });\r\n \r\n /* el on onmouseleave */\r\n pJS.interactivity.el.addEventListener('mouseleave', function(e){\r\n \r\n pJS.interactivity.mouse.pos_x = null;\r\n pJS.interactivity.mouse.pos_y = null;\r\n pJS.interactivity.status = 'mouseleave';\r\n \r\n });\r\n \r\n }\r\n \r\n /* on click event */\r\n if(pJS.interactivity.events.onclick.enable){\r\n \r\n pJS.interactivity.el.addEventListener('click', function(){\r\n \r\n pJS.interactivity.mouse.click_pos_x = pJS.interactivity.mouse.pos_x;\r\n pJS.interactivity.mouse.click_pos_y = pJS.interactivity.mouse.pos_y;\r\n pJS.interactivity.mouse.click_time = new Date().getTime();\r\n \r\n if(pJS.interactivity.events.onclick.enable){\r\n \r\n switch(pJS.interactivity.events.onclick.mode){\r\n \r\n case 'push':\r\n if(pJS.particles.move.enable){\r\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse);\r\n }else{\r\n if(pJS.interactivity.modes.push.particles_nb == 1){\r\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse);\r\n }\r\n else if(pJS.interactivity.modes.push.particles_nb > 1){\r\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb);\r\n }\r\n }\r\n break;\r\n \r\n case 'remove':\r\n pJS.fn.modes.removeParticles(pJS.interactivity.modes.remove.particles_nb);\r\n break;\r\n \r\n case 'bubble':\r\n pJS.tmp.bubble_clicking = true;\r\n break;\r\n \r\n case 'repulse':\r\n pJS.tmp.repulse_clicking = true;\r\n pJS.tmp.repulse_count = 0;\r\n pJS.tmp.repulse_finish = false;\r\n setTimeout(function(){\r\n pJS.tmp.repulse_clicking = false;\r\n }, pJS.interactivity.modes.repulse.duration*1000)\r\n break;\r\n \r\n }\r\n \r\n }\r\n \r\n });\r\n \r\n }\r\n \r\n \r\n };\r\n \r\n pJS.fn.vendors.densityAutoParticles = function(){\r\n \r\n if(pJS.particles.number.density.enable){\r\n \r\n /* calc area */\r\n var area = pJS.canvas.el.width * pJS.canvas.el.height / 1000;\r\n if(pJS.tmp.retina){\r\n area = area/(pJS.canvas.pxratio*2);\r\n }\r\n \r\n /* calc number of particles based on density area */\r\n var nb_particles = area * pJS.particles.number.value / pJS.particles.number.density.value_area;\r\n \r\n /* add or remove X particles */\r\n var missing_particles = pJS.particles.array.length - nb_particles;\r\n if(missing_particles < 0) pJS.fn.modes.pushParticles(Math.abs(missing_particles));\r\n else pJS.fn.modes.removeParticles(missing_particles);\r\n \r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.checkOverlap = function(p1, position){\r\n for(var i = 0; i < pJS.particles.array.length; i++){\r\n var p2 = pJS.particles.array[i];\r\n \r\n var dx = p1.x - p2.x,\r\n dy = p1.y - p2.y,\r\n dist = Math.sqrt(dx*dx + dy*dy);\r\n \r\n if(dist <= p1.radius + p2.radius){\r\n p1.x = position ? position.x : Math.random() * pJS.canvas.w;\r\n p1.y = position ? position.y : Math.random() * pJS.canvas.h;\r\n pJS.fn.vendors.checkOverlap(p1);\r\n }\r\n }\r\n };\r\n \r\n \r\n pJS.fn.vendors.createSvgImg = function(p){\r\n \r\n /* set color to svg element */\r\n var svgXml = pJS.tmp.source_svg,\r\n rgbHex = /#([0-9A-F]{3,6})/gi,\r\n coloredSvgXml = svgXml.replace(rgbHex, function (m, r, g, b) {\r\n if(p.color.rgb){\r\n var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+p.opacity+')';\r\n }else{\r\n var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+p.opacity+')';\r\n }\r\n return color_value;\r\n });\r\n \r\n /* prepare to create img with colored svg */\r\n var svg = new Blob([coloredSvgXml], {type: 'image/svg+xml;charset=utf-8'}),\r\n DOMURL = window.URL || window.webkitURL || window,\r\n url = DOMURL.createObjectURL(svg);\r\n \r\n /* create particle img obj */\r\n var img = new Image();\r\n img.addEventListener('load', function(){\r\n p.img.obj = img;\r\n p.img.loaded = true;\r\n DOMURL.revokeObjectURL(url);\r\n pJS.tmp.count_svg++;\r\n });\r\n img.src = url;\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.destroypJS = function(){\r\n cancelAnimationFrame(pJS.fn.drawAnimFrame);\r\n canvas_el.remove();\r\n pJSDom = null;\r\n };\r\n \r\n \r\n pJS.fn.vendors.drawShape = function(c, startX, startY, sideLength, sideCountNumerator, sideCountDenominator){\r\n \r\n // By Programming Thomas - https://programmingthomas.wordpress.com/2013/04/03/n-sided-shapes/\r\n var sideCount = sideCountNumerator * sideCountDenominator;\r\n var decimalSides = sideCountNumerator / sideCountDenominator;\r\n var interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides;\r\n var interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180; // convert to radians\r\n c.save();\r\n c.beginPath();\r\n c.translate(startX, startY);\r\n c.moveTo(0,0);\r\n for (var i = 0; i < sideCount; i++) {\r\n c.lineTo(sideLength,0);\r\n c.translate(sideLength,0);\r\n c.rotate(interiorAngle);\r\n }\r\n //c.stroke();\r\n c.fill();\r\n c.restore();\r\n \r\n };\r\n \r\n pJS.fn.vendors.exportImg = function(){\r\n window.open(pJS.canvas.el.toDataURL('image/png'), '_blank');\r\n };\r\n \r\n \r\n pJS.fn.vendors.loadImg = function(type){\r\n \r\n pJS.tmp.img_error = undefined;\r\n \r\n if(pJS.particles.shape.image.src != ''){\r\n \r\n if(type == 'svg'){\r\n \r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', pJS.particles.shape.image.src);\r\n xhr.onreadystatechange = function (data) {\r\n if(xhr.readyState == 4){\r\n if(xhr.status == 200){\r\n pJS.tmp.source_svg = data.currentTarget.response;\r\n pJS.fn.vendors.checkBeforeDraw();\r\n }else{\r\n console.log('Error pJS - Image not found');\r\n pJS.tmp.img_error = true;\r\n }\r\n }\r\n }\r\n xhr.send();\r\n \r\n }else{\r\n \r\n var img = new Image();\r\n img.addEventListener('load', function(){\r\n pJS.tmp.img_obj = img;\r\n pJS.fn.vendors.checkBeforeDraw();\r\n });\r\n img.src = pJS.particles.shape.image.src;\r\n \r\n }\r\n \r\n }else{\r\n console.log('Error pJS - No image.src');\r\n pJS.tmp.img_error = true;\r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.draw = function(){\r\n \r\n if(pJS.particles.shape.type == 'image'){\r\n \r\n if(pJS.tmp.img_type == 'svg'){\r\n \r\n if(pJS.tmp.count_svg >= pJS.particles.number.value){\r\n pJS.fn.particlesDraw();\r\n if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);\r\n else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\r\n }else{\r\n //console.log('still loading...');\r\n if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\r\n }\r\n \r\n }else{\r\n \r\n if(pJS.tmp.img_obj != undefined){\r\n pJS.fn.particlesDraw();\r\n if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);\r\n else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\r\n }else{\r\n if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\r\n }\r\n \r\n }\r\n \r\n }else{\r\n pJS.fn.particlesDraw();\r\n if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);\r\n else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.checkBeforeDraw = function(){\r\n \r\n // if shape is image\r\n if(pJS.particles.shape.type == 'image'){\r\n \r\n if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg == undefined){\r\n pJS.tmp.checkAnimFrame = requestAnimFrame(check);\r\n }else{\r\n //console.log('images loaded! cancel check');\r\n cancelRequestAnimFrame(pJS.tmp.checkAnimFrame);\r\n if(!pJS.tmp.img_error){\r\n pJS.fn.vendors.init();\r\n pJS.fn.vendors.draw();\r\n }\r\n \r\n }\r\n \r\n }else{\r\n pJS.fn.vendors.init();\r\n pJS.fn.vendors.draw();\r\n }\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.init = function(){\r\n \r\n /* init canvas + particles */\r\n pJS.fn.retinaInit();\r\n pJS.fn.canvasInit();\r\n pJS.fn.canvasSize();\r\n pJS.fn.canvasPaint();\r\n pJS.fn.particlesCreate();\r\n pJS.fn.vendors.densityAutoParticles();\r\n \r\n /* particles.line_linked - convert hex colors to rgb */\r\n pJS.particles.line_linked.color_rgb_line = hexToRgb(pJS.particles.line_linked.color);\r\n \r\n };\r\n \r\n \r\n pJS.fn.vendors.start = function(){\r\n \r\n if(isInArray('image', pJS.particles.shape.type)){\r\n pJS.tmp.img_type = pJS.particles.shape.image.src.substr(pJS.particles.shape.image.src.length - 3);\r\n pJS.fn.vendors.loadImg(pJS.tmp.img_type);\r\n }else{\r\n pJS.fn.vendors.checkBeforeDraw();\r\n }\r\n \r\n };\r\n \r\n \r\n \r\n \r\n /* ---------- pJS - start ------------ */\r\n \r\n \r\n pJS.fn.vendors.eventsListeners();\r\n \r\n pJS.fn.vendors.start();\r\n \r\n \r\n \r\n };\r\n \r\n /* ---------- global functions - vendors ------------ */\r\n \r\n Object.deepExtend = function(destination, source) {\r\n for (var property in source) {\r\n if (source[property] && source[property].constructor &&\r\n source[property].constructor === Object) {\r\n destination[property] = destination[property] || {};\r\n arguments.callee(destination[property], source[property]);\r\n } else {\r\n destination[property] = source[property];\r\n }\r\n }\r\n return destination;\r\n };\r\n \r\n window.requestAnimFrame = (function(){\r\n return window.requestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.oRequestAnimationFrame ||\r\n window.msRequestAnimationFrame ||\r\n function(callback){\r\n window.setTimeout(callback, 1000 / 60);\r\n };\r\n })();\r\n \r\n window.cancelRequestAnimFrame = ( function() {\r\n return window.cancelAnimationFrame ||\r\n window.webkitCancelRequestAnimationFrame ||\r\n window.mozCancelRequestAnimationFrame ||\r\n window.oCancelRequestAnimationFrame ||\r\n window.msCancelRequestAnimationFrame ||\r\n clearTimeout\r\n } )();\r\n \r\n function hexToRgb(hex){\r\n // By Tim Down - http://stackoverflow.com/a/5624139/3493650\r\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n hex = hex.replace(shorthandRegex, function(m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n };\r\n \r\n function clamp(number, min, max) {\r\n return Math.min(Math.max(number, min), max);\r\n };\r\n \r\n function isInArray(value, array) {\r\n return array.indexOf(value) > -1;\r\n }\r\n \r\n \r\n /* ---------- particles.js functions - start ------------ */\r\n \r\n window.pJSDom = [];\r\n \r\n window.particlesJS = function(tag_id, params){\r\n \r\n //console.log(params);\r\n \r\n /* no string id? so it's object params, and set the id with default id */\r\n if(typeof(tag_id) != 'string'){\r\n params = tag_id;\r\n tag_id = 'particles-js';\r\n }\r\n \r\n /* no id? set the id to default id */\r\n if(!tag_id){\r\n tag_id = 'particles-js';\r\n }\r\n \r\n /* pJS elements */\r\n var pJS_tag = document.getElementById(tag_id),\r\n pJS_canvas_class = 'particles-js-canvas-el',\r\n exist_canvas = pJS_tag.getElementsByClassName(pJS_canvas_class);\r\n \r\n /* remove canvas if exists into the pJS target tag */\r\n if(exist_canvas.length){\r\n while(exist_canvas.length > 0){\r\n pJS_tag.removeChild(exist_canvas[0]);\r\n }\r\n }\r\n \r\n /* create canvas element */\r\n var canvas_el = document.createElement('canvas');\r\n canvas_el.className = pJS_canvas_class;\r\n \r\n /* set size canvas */\r\n canvas_el.style.width = \"100%\";\r\n canvas_el.style.height = \"100%\";\r\n \r\n /* append canvas */\r\n var canvas = document.getElementById(tag_id).appendChild(canvas_el);\r\n \r\n /* launch particle.js */\r\n if(canvas != null){\r\n pJSDom.push(new pJS(tag_id, params));\r\n }\r\n \r\n };\r\n \r\n window.particlesJS.load = function(tag_id, path_config_json, callback){\r\n \r\n /* load json config */\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', path_config_json);\r\n xhr.onreadystatechange = function (data) {\r\n if(xhr.readyState == 4){\r\n if(xhr.status == 200){\r\n var params = JSON.parse(data.currentTarget.response);\r\n window.particlesJS(tag_id, params);\r\n if(callback) callback();\r\n }else{\r\n console.log('Error pJS - XMLHttpRequest status: '+xhr.status);\r\n console.log('Error pJS - File config not found');\r\n }\r\n }\r\n };\r\n xhr.send();\r\n \r\n };"],"names":[],"version":3,"file":"index.da7cedbd.js.map","sourceRoot":"/__parcel_source_root/"}