![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/pub/static/frontend/Magento/blank/en_US/mage/requirejs/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ var storageShim = { _data: {}, /** * Sets value of the specified item. * * @param {String} key - Key of the property. * @param {*} value - Properties' value. */ setItem: function (key, value) { 'use strict'; this._data[key] = value + ''; }, /** * Retrieves specified item. * * @param {String} key - Key of the property to be retrieved. */ getItem: function (key) { 'use strict'; return this._data[key]; }, /** * Removes specified item. * * @param {String} key - Key of the property to be removed. */ removeItem: function (key) { 'use strict'; delete this._data[key]; }, /** * Removes all items. */ clear: function () { 'use strict'; this._data = {}; } }; define('buildTools', [ ], function () { 'use strict'; var storage, storeName = 'buildDisabled'; try { storage = window.localStorage; } catch (e) { storage = storageShim; } return { isEnabled: storage.getItem(storeName) === null, /** * Removes base url from the provided string * * @param {String} url - Url to be processed. * @param {Object} config - RequiereJs config object. * @returns {String} String without base url. */ removeBaseUrl: function (url, config) { var urlParts, baseUrlParts, baseUrl = config.baseUrl || '', index = url.indexOf(baseUrl); if (~index) { url = url.substring(baseUrl.length - index); } else { baseUrlParts = baseUrl.split('/'); baseUrlParts = baseUrlParts.slice(0, -5); // slice area/vendor/theme/locale/empty chunk baseUrl = baseUrlParts.join('/'); url = url.substring(baseUrl.length); urlParts = url.split('/'); urlParts = urlParts.slice(5); // slice empty chunk/area/vendor/theme/locale/ url = urlParts.join('/'); } return url; }, /** * Enables build usage. */ on: function () { storage.removeItem(storeName); location.reload(); }, /** * Disables build usage. */ off: function () { storage.setItem(storeName, 'true'); location.reload(); } }; }); /** * Module responsible for collecting statistics * data regarding modules that have been loader via bundle. */ define('statistician', [ ], function () { 'use strict'; var storage, stringify = JSON.stringify.bind(JSON); try { storage = window.localStorage; } catch (e) { storage = storageShim; } /** * Removes duplicated entries of array, returning new one. * * @param {Array} arr * @returns {Array} */ function uniq(arr) { return arr.filter(function (entry, i) { return arr.indexOf(entry) >= i; }); } /** * Takes first array passed, removes all * entries which further arrays contain. * * @returns {Array} Modified array */ function difference() { var args = Array.prototype.slice.call(arguments), target = args.splice(0, 1)[0]; return target.filter(function (entry) { return !args.some(function (arr) { return !!~arr.indexOf(entry); }); }); } /** * Stringifies 'data' parameter and sets it under 'key' namespace to localStorage. * * @param {*} data * @param {String} key */ function set(data, key) { storage.setItem(key, stringify(data)); } /** * Gets item from localStorage by 'key' parameter, JSON.parse's it if defined. * Else, returns empty array. * * @param {String} key * @returns {Array} */ function getModules(key) { var plain = storage.getItem(key); return plain ? JSON.parse(plain) : []; } /** * Concats 'modules' array with one that was previously stored by 'key' parameter * in localStorage, removes duplicated entries from resulting array and writes * it to 'key' namespace of localStorage via 'set' function. * * @param {Array} modules * @param {String} key */ function storeModules(modules, key) { var old = getModules(key); set(uniq(old.concat(modules)), key); } /** * Creates Blob, writes passed data to it, then creates ObjectURL string * with blob data. In parallel, creates 'a' element, writes resulting ObjectURL * to it's href property and fileName parameter as it's download prop. * Clicks on 'a' and cleans up file data. * * @param {String} fileName * @param {Object} data */ function upload(fileName, data) { var a = document.createElement('a'), blob, url; a.style = 'display: none'; document.body.appendChild(a); blob = new Blob([JSON.stringify(data)], { type: 'octet/stream' }); url = window.URL.createObjectURL(blob); a.href = url; a.download = fileName; a.click(); window.URL.revokeObjectURL(url); } return { /** * Stores keys of 'modules' object to localStorage under 'all' namespace. * * @param {Object} modules */ collect: function (modules) { storeModules(Object.keys(modules), 'all'); }, /** * Wraps 'module' in empty array and stores it to localStorage by 'used' namespace. * * @param {String} module */ utilize: function (module) { storeModules([module], 'used'); }, /** * Returns modules, stores under 'all' namespace in localStorage via * getModules function. * * @return {Array} */ getAll: function () { return getModules('all'); }, /** * Returns modules, stores under 'used' namespace in localStorage via * getModules function. * * @return {Array} */ getUsed: function () { return getModules('used'); }, /** * Returns difference between arrays stored under 'all' and 'used'. * * @return {Array} */ getUnused: function () { var all = getModules('all'), used = getModules('used'); return difference(all, used); }, /** * Clears "all" and "used" namespaces of localStorage. */ clear: function () { storage.removeItem('all'); storage.removeItem('used'); }, /** * Create blob containing stats data and download it */ export: function () { upload('Magento Bundle Statistics', { used: this.getUsed(), unused: this.getUnused(), all: this.getAll() }); } }; }); /** * Extension of a requirejs 'load' method * to load files from a build object. */ define('jsbuild', [ 'module', 'buildTools', 'statistician' ], function (module, tools, statistician) { 'use strict'; var build = module.config() || {}; if (!tools.isEnabled) { return; } require._load = require.load; statistician.collect(build); /** * Overrides requirejs main loading method to provide * support of scripts initialization from a bundle object. * * @param {Object} context * @param {String} moduleName * @param {String} url */ require.load = function (context, moduleName, url) { var relative = tools.removeBaseUrl(url, context.config), data = build[relative]; if (data) { statistician.utilize(relative); new Function(data)(); context.completeLoad(moduleName); } else { require._load.apply(require, arguments); } }; }); /** * Extension of a requirejs text plugin * to load files from a build object. */ define('text', [ 'module', 'buildTools', 'mage/requirejs/text' ], function (module, tools, text) { 'use strict'; var build = module.config() || {}; if (!tools.isEnabled) { return text; } text._load = text.load; /** * Overrides load method of a 'text' plugin to provide support * of loading files from a build object. * * @param {String} name * @param {Function} req * @param {Function} onLoad * @param {Object} config */ text.load = function (name, req, onLoad, config) { var url = req.toUrl(name), relative = tools.removeBaseUrl(url, config), data = build[relative]; data ? onLoad(data) : text._load.apply(text, arguments); }; return text; });