hunk.code_window:   '$scope',
     'LocalStorage',
     'StateManager',
     'EndpointProvider',
     'ThemeManager',
     function ($scope, LocalStorage, StateManager, EndpointProvider) {
       /**
        * Sidebar Toggle & Cookie Control
        */
       var mobileView = 992;
  
hunk.labels: keep keep keep keep keep replace keep keep keep keep
hunk.after_edit:   function ($scope, LocalStorage, StateManager, EndpointProvider, ThemeManager) {
  
hunk.file_path: app/portainer/views/main/mainController.js
hunk.type: replace
file: import _ from 'lodash-es';
  
  export class EdgeGroupFormController {
    /* @ngInject */
    constructor(EndpointService, $async, $scope) {
      this.EndpointService = EndpointService;
      this.$async = $async;
  
      this.endpoints = {
        state: {
          limit: '10',
          filter: '',
          pageNumber: 1,
          totalCount: 0,
        },
        value: null,
      };
  
      this.associateEndpoint = this.associateEndpoint.bind(this);
      this.dissociateEndpoint = this.dissociateEndpoint.bind(this);
      this.getDynamicEndpointsAsync = this.getDynamicEndpointsAsync.bind(this);
      this.getDynamicEndpoints = this.getDynamicEndpoints.bind(this);
  
      $scope.$watch(
        () => this.model,
        () => {
          if (this.model.Dynamic) {
            this.getDynamicEndpoints();
          }
        },
        true
      );
    }
  
    associateEndpoint(endpoint) {
      if (!_.includes(this.model.Endpoints, endpoint.Id)) {
        this.model.Endpoints = [...this.model.Endpoints, endpoint.Id];
      }
    }
  
    dissociateEndpoint(endpoint) {
      this.model.Endpoints = _.filter(this.model.Endpoints, (id) => id !== endpoint.Id);
    }
  
    getDynamicEndpoints() {
      return this.$async(this.getDynamicEndpointsAsync);
    }
  
    async getDynamicEndpointsAsync() {
      const { pageNumber, limit, search } = this.endpoints.state;
      const start = (pageNumber - 1) * limit + 1;
      const query = { search, types: [4, 7], tagIds: this.model.TagIds, tagsPartialMatch: this.model.PartialMatch };
  
      const response = await this.EndpointService.endpoints(start, limit, query);
  
      const totalCount = parseInt(response.totalCount, 10);
      this.endpoints.value = response.value;
      this.endpoints.state.totalCount = totalCount;
    }
  }
  