[ Index ]

PHP Cross Reference of BuddyPress

title

Body

[close]

/src/bp-core/js/ -> dynamic-widget-block.js (source)

   1  // modules are defined as an array
   2  // [ module function, map of requires ]
   3  //
   4  // map of requires is short require name -> numeric require
   5  //
   6  // anything defined in a previous bundle is accessed via the
   7  // orig method which is the require for previous bundles
   8  parcelRequire = (function (modules, cache, entry, globalName) {
   9    // Save the require from previous bundle to this closure if any
  10    var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
  11    var nodeRequire = typeof require === 'function' && require;
  12  
  13    function newRequire(name, jumped) {
  14      if (!cache[name]) {
  15        if (!modules[name]) {
  16          // if we cannot find the module within our internal map or
  17          // cache jump to the current global require ie. the last bundle
  18          // that was added to the page.
  19          var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
  20          if (!jumped && currentRequire) {
  21            return currentRequire(name, true);
  22          }
  23  
  24          // If there are other bundles on this page the require from the
  25          // previous one is saved to 'previousRequire'. Repeat this as
  26          // many times as there are bundles until the module is found or
  27          // we exhaust the require chain.
  28          if (previousRequire) {
  29            return previousRequire(name, true);
  30          }
  31  
  32          // Try the node require function if it exists.
  33          if (nodeRequire && typeof name === 'string') {
  34            return nodeRequire(name);
  35          }
  36  
  37          var err = new Error('Cannot find module \'' + name + '\'');
  38          err.code = 'MODULE_NOT_FOUND';
  39          throw err;
  40        }
  41  
  42        localRequire.resolve = resolve;
  43        localRequire.cache = {};
  44  
  45        var module = cache[name] = new newRequire.Module(name);
  46  
  47        modules[name][0].call(module.exports, localRequire, module, module.exports, this);
  48      }
  49  
  50      return cache[name].exports;
  51  
  52      function localRequire(x){
  53        return newRequire(localRequire.resolve(x));
  54      }
  55  
  56      function resolve(x){
  57        return modules[name][1][x] || x;
  58      }
  59    }
  60  
  61    function Module(moduleName) {
  62      this.id = moduleName;
  63      this.bundle = newRequire;
  64      this.exports = {};
  65    }
  66  
  67    newRequire.isParcelRequire = true;
  68    newRequire.Module = Module;
  69    newRequire.modules = modules;
  70    newRequire.cache = cache;
  71    newRequire.parent = previousRequire;
  72    newRequire.register = function (id, exports) {
  73      modules[id] = [function (require, module) {
  74        module.exports = exports;
  75      }, {}];
  76    };
  77  
  78    var error;
  79    for (var i = 0; i < entry.length; i++) {
  80      try {
  81        newRequire(entry[i]);
  82      } catch (e) {
  83        // Save first error but execute all entries
  84        if (!error) {
  85          error = e;
  86        }
  87      }
  88    }
  89  
  90    if (entry.length) {
  91      // Expose entry point to Node, AMD or browser globals
  92      // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
  93      var mainExports = newRequire(entry[entry.length - 1]);
  94  
  95      // CommonJS
  96      if (typeof exports === "object" && typeof module !== "undefined") {
  97        module.exports = mainExports;
  98  
  99      // RequireJS
 100      } else if (typeof define === "function" && define.amd) {
 101       define(function () {
 102         return mainExports;
 103       });
 104  
 105      // <script>
 106      } else if (globalName) {
 107        this[globalName] = mainExports;
 108      }
 109    }
 110  
 111    // Override the current require with this new one
 112    parcelRequire = newRequire;
 113  
 114    if (error) {
 115      // throw error from earlier, _after updating parcelRequire_
 116      throw error;
 117    }
 118  
 119    return newRequire;
 120  })({"eNhW":[function(require,module,exports) {
 121  /**
 122   * WordPress dependencies.
 123   */
 124  const {
 125    url: {
 126      addQueryArgs
 127    }
 128  } = wp;
 129  /**
 130   * External dependencies.
 131   */
 132  
 133  const {
 134    template
 135  } = lodash; // Use the bp global.
 136  
 137  window.bp = window.bp || {};
 138  /**
 139   * Generic class to be used by Dynamic Widget Blocks.
 140   *
 141   * @since 9.0.0
 142   */
 143  
 144  bp.dynamicWidgetBlock = class bpDynamicWidgetBlock {
 145    constructor(settings, blocks) {
 146      const {
 147        path,
 148        root,
 149        nonce
 150      } = settings;
 151      this.path = path;
 152      this.root = root;
 153      this.nonce = nonce, this.blocks = blocks;
 154      this.blocks.forEach((block, i) => {
 155        const {
 156          type
 157        } = block.query_args || 'active';
 158        const {
 159          body
 160        } = block.preloaded || [];
 161        this.blocks[i].items = {
 162          'active': [],
 163          'newest': [],
 164          'popular': [],
 165          'alphabetical': []
 166        };
 167  
 168        if (!this.blocks[i].items[type].length && body && body.length) {
 169          this.blocks[i].items[type] = body;
 170        }
 171      });
 172    }
 173  
 174    useTemplate(tmpl) {
 175      const options = {
 176        evaluate: /<#([\s\S]+?)#>/g,
 177        interpolate: /\{\{\{([\s\S]+?)\}\}\}/g,
 178        escape: /\{\{([^\}]+?)\}\}(?!\})/g,
 179        variable: 'data'
 180      };
 181      return template(document.querySelector('#tmpl-' + tmpl).innerHTML, options);
 182    }
 183  
 184    loop() {// This method needs to be overriden.
 185    }
 186  
 187    getItems(type = 'active', blockIndex = 0) {
 188      this.blocks[blockIndex].query_args.type = type;
 189  
 190      if (this.blocks[blockIndex].items[type].length) {
 191        this.loop(this.blocks[blockIndex].items[type], this.blocks[blockIndex].selector, type);
 192      } else {
 193        fetch(addQueryArgs(this.root + this.path, this.blocks[blockIndex].query_args), {
 194          method: 'GET',
 195          headers: {
 196            'X-WP-Nonce': this.nonce
 197          }
 198        }).then(response => response.json()).then(data => {
 199          this.blocks[blockIndex].items[type] = data;
 200          this.loop(this.blocks[blockIndex].items[type], this.blocks[blockIndex].selector, type);
 201        });
 202      }
 203    }
 204  
 205  };
 206  },{}]},{},["eNhW"], null)


Generated: Tue May 9 01:01:24 2023 Cross-referenced by PHPXref 0.7.1