File manager - Edit - /usr/local/cpanel/base/cjt/analytics.js
Back
/* # cpanel - share/libraries/cjt2/src/util/analytics.js # Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited */ /* global window: true, define: false */ (function() { "use strict"; /** * @typedef {Object} AnalyticsState * @property {Boolean} enable - true to enable analytics logging, false otherwise. * * @function AnalyticsState * @constructor * @param {Object} [options] Optional set of initializaton options. * @param {Boolean} [options.enable] If true, analytics logging will be enabled. */ function AnalyticsState(options) { if( !(this instanceof AnalyticsState) ) { return new AnalyticsState(options); } this.update(this.DEFAULTS); this.update(options); } // Only properties that exist on this default object can be set via update() AnalyticsState.prototype.DEFAULTS = { enable: true, }; /** * Given an object containing valid AnalyticsState properties, this method will * update the values of the AnalyticsState instance to the values provided by * said object. * * @method update * @param {Object} options The options and values to change. * @return {AnalyticsState} The updated AnalyticsState instance. */ AnalyticsState.prototype.update = function(options) { var self = this; options = _parseOptions(options); // Only update properties that are present in DEFAULTS var propNames = Object.keys( self.DEFAULTS ); propNames.forEach(function(propName) { if(options.hasOwnProperty(propName)) { self[propName] = options[propName]; } }); return self; }; /** * Serializes the AnalyticsState object into a JSON blob. * * @method serialize * @return {String} A JSON string representing the analytics state. */ AnalyticsState.prototype.serialize = function() { return JSON.stringify( this ); }; function _parseOptions(options) { if(!options) { return {}; } if(options.hasOwnProperty("enable")) { options.enable = Boolean(options.enable); } return options; } // This is the actual return value var Analytics = { _constructor: AnalyticsState, // For testing purposes /** * Create an analytics state instance that carries the current client state. * * @method create * @static * @param {Object} [options] Optional set of initialization options. * @return {AnalyticsState} A new analytics state object. */ create: function create(options) { return new AnalyticsState(options); }, /** * Test whether an object was created by the create method. * * @method isAnalyticsStateInstance * @static * @param {Object} thingToTest The object to test. * @return {Boolean} True if it is an instance of AnalyticsState. */ isAnalyticsStateInstance: function(thingToTest) { return (thingToTest instanceof AnalyticsState); }, }; if ( typeof define === "function" && define.amd ) { define([], function() { return Analytics; }); } else { if (!window.CPANEL) { window.CPANEL = {}; } window.CPANEL.Analytics = Analytics; } }());
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.05 |
proxy
|
phpinfo
|
Settings