text: (function (angular) {
  
      const SECTION_NAME = "remote-debug";
  
      angular
          .module("BrowserSync")
          .controller("RemoteDebugController", [
              "options",
              "Socket",
              "pagesConfig",
              RemoteDebugController
          ]);
  
      /**
       * @param options
       * @param Socket
       * @param pagesConfig
       */
      function RemoteDebugController(options, Socket, pagesConfig) {
  
          var ctrl         = this;
          ctrl.options     = options.bs;
          ctrl.uiOptions   = options.ui;
          ctrl.clientFiles = options.ui.clientFiles || {};
          ctrl.section     = pagesConfig[SECTION_NAME];
          ctrl.overlayGrid = options.ui[SECTION_NAME]["overlay-grid"];
          ctrl.items = [];
  
          if (Object.keys(ctrl.clientFiles).length) {
              Object.keys(ctrl.clientFiles).forEach(function (key) {
                  if (ctrl.clientFiles[key].context === SECTION_NAME) {
                      ctrl.items.push(ctrl.clientFiles[key]);
                  }
              });
          }
  
          ctrl.toggleClientFile = function (item) {
              if (item.name === "weinre") {
                  return ctrl.toggleWeinre(item);
              }
              if (item.active) {
                  return ctrl.enable(item);
              }
              return ctrl.disable(item);
          };
  
          ctrl.toggleWeinre = function (item) {
              Socket.uiEvent({
                  namespace: SECTION_NAME + ":weinre",
                  event: "toggle",
                  data: item.active
              });
          };
  
          ctrl.toggleOverlayGrid = function (item) {
              var ns = SECTION_NAME + ":overlay-grid";
              Socket.uiEvent({
                  namespace: ns,
                  event: "toggle",
                  data: item.active
              });
          };
  
          ctrl.enable = function (item) {
              Socket.uiEvent({
                  namespace: SECTION_NAME + ":files",
                  event: "enableFile",
                  data: item
              });
          };
  
          ctrl.disable = function (item) {
              Socket.uiEvent({
                  namespace: SECTION_NAME + ":files",
                  event: "disableFile",
                  data: item
              });
          };
      }
  
      /**
       * Display the snippet when in snippet mode
       */
      angular
          .module("BrowserSync")
          .directive("noCache", function () {
              return {
                  restrict: "E",
                  replace: true,
                  scope: {
                      "options": "="
                  },
                  templateUrl: "no-cache.html",
                  controller: ["$scope", "Socket", noCacheDirectiveControlller],
                  controllerAs: "ctrl"
              };
          });
  
      /**
       * @param $scope
       * @param Socket
       */
      function noCacheDirectiveControlller ($scope, Socket) {
  
          var ctrl = this;
  
          ctrl.noCache = $scope.options[SECTION_NAME]["no-cache"];
  
          ctrl.toggleLatency = function (item) {
              Socket.emit("ui:no-cache", {
                  event: "toggle",
                  data: item.active
              });
          };
      }
  
  
      /**
       * Display the snippet when in snippet mode
       */
      angular
          .module("BrowserSync")
          .directive("compression", function () {
              return {
                  restrict: "E",
                  replace: true,
                  scope: {
                      "options": "="
                  },
                  templateUrl: "compression.html",
                  controller: ["$scope", "Socket", compressionDirectiveControlller],
                  controllerAs: "ctrl"
              };
          });
  
      /**
       * @param $scope
       * @param Socket
       */
      function compressionDirectiveControlller ($scope, Socket) {
  
          var ctrl = this;
  
          ctrl.compression = $scope.options[SECTION_NAME]["compression"];
  
          ctrl.toggleLatency = function (item) {
              Socket.emit("ui:compression", {
                  event: "toggle",
                  data: item.active
              });
          };
      }
  
  })(angular);
  
  