/**
 * @fileoverview Setup the paths and load the Developer Gadgets components
 * @author Ryan Thibodeaux
 * @version 1.0.0
 */

/*
 * Copyright (c) 2017, Ryan Thibodeaux. All Rights Reserved
 * see included LICENSE file (BSD 3-clause) in the app's root directory
 */

(function() {
  "use strict";

  // configure the RequrieJS paths
  require.config({
    paths: {
      "appBase"     : "../app/metricator-for-nmon",
      "TogglePanel" : "../app/metricator-for-nmon/components/togglepanel/togglepanel",
    }
  });

}).call(this);


// from app/developer_gadgets/components/togglepanel/wrapper.js
/*
 * Copyright (c) 2016-2017, OctoInsight Inc., All rights reserved.
 * Authored by Ryan Thibodeaux
 * see included LICENSE file (BSD 3-clause) in the folder components/togglepanel
 */

/*
 * This file implements the autodiscover function
 * that finds panels in SimpleXML that should
 * be turned into Toggle Panels based on their
 * HTML IDs matching a specific pattern.
 */

(function() {
  require([
    "underscore",
    "jquery",
    "splunkjs/mvc",
    "TogglePanel",
], function(_, $, mvc, TogglePanel) {

    "use strict";

    const regex = /_togglepanel/i;
    const regexHide = /_togglepanel_true/i;

    _(mvc.Components.toJSON())
      .chain()
      .filter(function(el) {
        var id = $(el).attr("id");
        var dom = $(el).attr("$el");
        if (typeof id !== "undefined" && typeof dom !== "undefined") {
          if (id.match(regex) !== null && dom.hasClass('dashboard-cell')) {
            return el;
          }
        }
      }).each(function(el) {
        var id = $(el).attr("id");
        var hide = (id.match(regexHide) !== null ? true : false);
        new TogglePanel(id).setup(hide);
      });

  });
}).call(this);
