%PDF- %PDF-
Direktori : /var/www/html/qendrasteps/wp-content/themes/tm-heli/core/kirki/controls/js/src/ |
Current File : /var/www/html/qendrasteps/wp-content/themes/tm-heli/core/kirki/controls/js/src/kirki.util.js |
/* global ajaxurl */ var kirki = kirki || {}; kirki = jQuery.extend( kirki, { /** * A collection of utility methods. * * @since 3.0.17 */ util: { /** * A collection of utility methods for webfonts. * * @since 3.0.17 */ webfonts: { /** * Google-fonts related methods. * * @since 3.0.17 */ google: { /** * An object containing all Google fonts. * * to set this call this.setFonts(); * * @since 3.0.17 */ fonts: {}, /** * Init for google-fonts. * * @since 3.0.17 * @returns {null} */ initialize: function() { var self = this; self.setFonts(); }, /** * Set fonts in this.fonts * * @since 3.0.17 * @returns {null} */ setFonts: function() { var self = this; // No need to run if we already have the fonts. if ( ! _.isEmpty( self.fonts ) ) { return; } // Make an AJAX call to set the fonts object (alpha). jQuery.post( ajaxurl, { 'action': 'kirki_fonts_google_all_get' }, function( response ) { // Get fonts from the JSON array. self.fonts = JSON.parse( response ); } ); }, /** * Gets all properties of a font-family. * * @since 3.0.17 * @param {string} family - The font-family we're interested in. * @returns {Object} */ getFont: function( family ) { var self = this, fonts = self.getFonts(); if ( 'undefined' === typeof fonts[ family ] ) { return false; } return fonts[ family ]; }, /** * Gets all properties of a font-family. * * @since 3.0.17 * @param {string} order - How to order the fonts (alpha|popularity|trending). * @param {int} number - How many to get. 0 for all. * @returns {Object} */ getFonts: function( order, category, number ) { var self = this, ordered = {}, categorized = {}, plucked = {}; // Make sure order is correct. order = order || 'alpha'; order = ( 'alpha' !== order && 'popularity' !== order && 'trending' !== order ) ? 'alpha' : order; // Make sure number is correct. number = number || 0; number = parseInt( number, 10 ); // Order fonts by the 'order' argument. if ( 'alpha' === order ) { ordered = jQuery.extend( {}, self.fonts.items ); } else { _.each( self.fonts.order[ order ], function( family ) { ordered[ family ] = self.fonts.items[ family ]; } ); } // If we have a category defined get only the fonts in that category. if ( '' === category || ! category ) { categorized = ordered; } else { _.each( ordered, function( font, family ) { if ( category === font.category ) { categorized[ family ] = font; } } ); } // If we only want a number of font-families get the 1st items from the results. if ( 0 < number ) { _.each( _.first( _.keys( categorized ), number ), function( family ) { plucked[ family ] = categorized[ family ]; } ); return plucked; } return categorized; }, /** * Gets the variants for a font-family. * * @since 3.0.17 * @param {string} family - The font-family we're interested in. * @returns {Array} */ getVariants: function( family ) { var self = this, font = self.getFont( family ); // Early exit if font was not found. if ( ! font ) { return false; } // Early exit if font doesn't have variants. if ( _.isUndefined( font.variants ) ) { return false; } // Return the variants. return font.variants; }, /** * Get the subsets for a font-family. * * @since 3.0.17 * @param {string} family - The font-family we're interested in. * @returns {Object} */ getSubsets: function( family ) { var self = this, font = self.getFont( family ); // Early exit if font was not found. if ( ! font ) { return false; } // Early exit if font doesn't have subsets. if ( _.isUndefined( font.subsets ) ) { return false; } // Return the variants. return font.subsets; } }, /** * Standard fonts related methods. * * @since 3.0.17 */ standard: { /** * An object containing all Standard fonts. * * to set this call this.setFonts(); * * @since 3.0.17 */ fonts: {}, /** * Init for google-fonts. * * @since 3.0.17 * @returns {null} */ initialize: function() { var self = this; self.setFonts(); }, /** * Set fonts in this.fonts * * @since 3.0.17 * @returns {null} */ setFonts: function() { var self = this; // No need to run if we already have the fonts. if ( ! _.isEmpty( self.fonts ) ) { return; } // Make an AJAX call to set the fonts object. jQuery.post( ajaxurl, { 'action': 'kirki_fonts_standard_all_get' }, function( response ) { // Get fonts from the JSON array. self.fonts = JSON.parse( response ); } ); }, /** * Gets the variants for a font-family. * * @since 3.0.17 * @returns {Array} */ getVariants: function( family ) { // jshint ignore: line return ['regular', 'italic', '700', '700italic']; } }, /** * Figure out what this font-family is (google/standard) * * @since 3.0.20 * @param {string} family - The font-family. * @returns {string|false} - Returns string if found (google|standard) * and false in case the font-family is an arbitrary value * not found anywhere in our font definitions. */ getFontType: function( family ) { var self = this; // Check for standard fonts first. if ( 'undefined' !== typeof self.standard.fonts[ family ] || ( 'undefined' !== typeof self.standard.fonts.stack && 'undefined' !== typeof self.standard.fonts.stack[ family ] ) ) { return 'standard'; } // Check in googlefonts. if ( 'undefined' !== typeof self.google.fonts.items[ family ] ) { return 'google'; } return false; } } } } );