code: function buttonGroupComponent($parse) {
    return {
      restrict: 'A',
      controller: 'ngeoBtnGroupController',
      /**
       * @param {angular.IScope} scope Scope.
       * @param {JQuery} element Element.
       * @param {angular.IAttributes} attrs Attributes.
       * @param {angular.IController=} controller Controller.
       */
      link: (scope, element, attrs, controller) => {
        if (!controller) {
          throw new Error('Missing controller');
        }
        const setActive = $parse(attrs.ngeoBtnGroupActive).assign;
  
        if (setActive) {
          scope.$watch(
            // return true if at least one button is active otherwise false
            () => controller.buttons_.some(buttonModel => buttonModel(scope) === true),
            (newValue) => {
              setActive(scope, newValue);
            }
          );
        }
      }
    };
  }
docs: Provides two directives: ngeo-btn-group and ngeo-btn.
  
  The ngeo-btn-group directive allows creating "toggle" groups. It works with
  the ngeo-btn directive.
  
  Example:
  
  <div ngeo-btn-group>
  <button ngeo-btn class="btn" ng-model="ctrl.drawPoint.active"></button>
  <button ngeo-btn class="btn" ng-model="ctrl.drawLine.active"></button>
  </div>
  
  In that example the ngeo-btn are combined together in a "toggle group",
  where activating a button will deactivate the others.
  
  One can use `ng-model` directive at the group level in order to know if
  a button is active.
  
  Example:
  
  <div ngeo-btn-group ngeo-btn-group-active="ctrl.drawToolActive">
  
  See our live example: [../examples/interactionbtngroup.html](../examples/interactionbtngroup.html)
  
  @htmlAttribute {*} ngeo-btn-group-active Any property of the scope.
  Tells whether at least one button of the group is active.
  @param {angular.IParseService} $parse Angular parse service.
  @return {angular.IDirective} The directive specs.
  @ngInject
  @ngdoc directive
  @ngname ngeoBtnGroup