<commit_before>'use strict';

// NOTE: this is a pseudo directive.

/**
 * @ngdoc directive
 * @name ng.directive:ngAnimate
 *
 * @description
 * Директива `ngAnimate` работает как атрибут, который прилагается к уже существующим директивам.
 * Он воспроизводит эффект выполнения DOM-манипуляций. Это позволяет воспроизводить сложную анимацию 
 * не обременя директиву, которая её использует, деталями анимации. Директивы
 * `ngRepeat`, `ngInclude`, `ngSwitch`, `ngShow`, `ngHide` и `ngView` уже поддерживают директиву `ngAnimate`.
 * Пользовательские директивы могут воспроизводить анимацию с помощью сервиса {@link ng.$animator $animator}.
 *
 * Ниже показано для каких событий поддерживается анимация в ng-директивах:
 *
 * | Директива                                                        | Поддерживаемая анимация               |<br/>
 * |================                                                  |======================                 |<br/>
 * | {@link ng.directive:ngRepeat#animations ngRepeat}                | enter, leave and move                 |<br/>
 * | {@link ng.directive:ngView#animations ngView}                    | enter and leave                       |<br/>
 * | {@link ng.directive:ngInclude#animations ngInclude}              | enter and leave                       |<br/>
 * | {@link ng.directive:ngSwitch#animations ngSwitch}                | enter and leave                       |<br/>
 * | {@link ng.directive:ngIf#animations ngIf}                        | enter and leave                       |<br/>
 * | {@link ng.directive:ngShow#animations ngShow & ngHide}           | show and hide                         |<br/>
 *
 * Подробную информацию об использовании анимации можно найти на странице каждой директивы.
 *
 * Ниже приведен пример директивы, использующей атрибут ngAnimate:
 *
 * <pre>
 * <!-- Также можно использовать data-ng-animate, ng:animate или x-ng-animate -->
 * <ANY ng-directive ng-animate="{event1: 'animation-name', event2: 'animation-name-2'}"></ANY>
 *
 * <!-- Также можно использовать короткую запись -->
 * <ANY ng-directive ng-animate=" 'animation' "></ANY>
 * <!-- которая раскрывается в -->
 * <ANY ng-directive ng-animate="{ enter: 'animation-enter', leave: 'animation-leave', ...}"></ANY>
 *
 * <!-- имейте в виду, что в ng-animate могут использоваться выражения -->
 * <ANY ng-directive ng-animate=" computeCurrentAnimation() "></ANY>
 * </pre>
 *
 * Атрибуты `event1` and `event2` относятся к конкретным событиям анимации в директиве, на которой они назначены.
 *
 * Имейте ввиду, что при показе анимации, ни один потомок такой анимации не может быть анимаирован.
 *
 * <h2>CSS-анимация</h2>
 * По умолчанию ngAnimate задействует для события анимации два CSS-класса DOM-элемента. Но вы, разработчики, 
 * должны гарантировать, что что анимация будет происходить с использованием кросс-браузерных CSS3-переходов
 * известных как CSS-анимация.
 * 
 * Код ниже показывает как осуществить CSS-анимацию, используя **CSS переходы** c ngAnimate:
 *
 * <pre>
 * <style type="text/css">
 * /&#42;
 *  CSS-класс animate-enter является именем события, 
 *  подставленным в атрибут ngAnimate.
 * &#42;/
 * .animate-enter-setup {
 *  -webkit-transition: 1s linear all; /&#42; Safari/Chrome &#42;/
 *  -moz-transition: 1s linear all; /&#42; Firefox &#42;/
 *  -ms-transition: 1s linear all; /&#42; IE10 &#42;/
 *  -o-transition: 1s linear all; /&#42; Opera &#42;/
 *  transition: 1s linear all; /&#42; Future Browsers &#42;/
 *
 *  /&#42; Подготовка кода анимации &#42;/
 *  opacity: 0;
 * }
 *
 * /&#42;
 *  Имейте в виду, что можно совместить оба CSS-класса
 *  вместе, чтобы избежать любых конфликтов CSS
 * &#42;/
 * .animate-enter-setup.animate-enter-start {
 *  /&#42; Код анимации &#42;/
 *  opacity: 1;
 * }
 * </style>
 *
 * <div ng-directive ng-animate="{enter: 'animate-enter'}"></div>
 * </pre>
 * 
 * Код ниже показывает как осуществить CSS-анимацию, используя **CSS переходы** c ngAnimate: 
 * 
 * <pre>
 * <style type="text/css">
 * .animate-enter-setup {
 *    -webkit-animation: enter_sequence 1s linear;
 *    -moz-animation: enter_sequence 1s linear;
 *    -o-animation: enter_sequence 1s linear;
 *    animation: enter_sequence 1s linear;
 *  }
 * &#64-webkit-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 *  }
 * &#64-moz-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 *  }
 * &#64-o-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 * }
 * &#64keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 * }
 * </style>
 * 
 * <div ng-directive ng-animate="{enter: 'animate-enter'}"></div>
 * </pre>
 * 
 * ngAnimate сперва проверит любой код CSS-анимации, а затем возвратится к использованию CSS-переходов.
 * 
 * При возникновении мутации DOM, сперва устанавливается класс, затем браузеру разрешается форматировать содержимое, 
 * а затем добавляется класс для запуска анимации. Директива NgAnimate автоматически определит продолжительность 
 * анимации, чтобы узнать, когда она заканчивается. После окончания анимация, оба CSS-класса удалятся из DOM. 
 * Если браузер не поддерживает CSS-переходы и CSS-анимацию, то анимация начнется и сразу закончится, 
 * установив DOM-элемент в конечное состояние. В конечном состоянии DOM-элемент не содержит классов анимации/переходов.
 *
 * <h2>JavaScript-анимация</h2>
 * Если не хотите использовать CSS3-анимацию или переходы или хотите использовать ее в браузерах, которые ее не 
 * поддерживают, можно использовать JavaScript-анимацию, определенную внутри вашего angular-модуля.
 * <pre>
 * var ngModule = angular.module('YourApp', []);
 * ngModule.animation('animate-enter', function() {
 *   return {
 *     setup : function(element) {<commit_msg>translate(api:animator): поправил перевод<commit_after>'use strict';

// NOTE: this is a pseudo directive.

/**
 * @ngdoc directive
 * @name ng.directive:ngAnimate
 *
 * @description
 * Директива `ngAnimate` работает как атрибут, который прилагается к уже существующим директивам.
 * Он воспроизводит эффект выполнения DOM-манипуляций. Это позволяет воспроизводить сложную анимацию 
 * не обременя директиву, которая её использует, деталями анимации. Директивы
 * `ngRepeat`, `ngInclude`, `ngSwitch`, `ngShow`, `ngHide` и `ngView` уже поддерживают директиву `ngAnimate`.
 * Пользовательские директивы могут воспроизводить анимацию с помощью сервиса {@link ng.$animator $animator}.
 *
 * Ниже показано для каких событий поддерживается анимация в ng-директивах:
 *
 * | Директива                                                        | Поддерживаемая анимация               |<br/>
 * |================                                                  |======================                 |<br/>
 * | {@link ng.directive:ngRepeat#animations ngRepeat}                | enter, leave and move                 |<br/>
 * | {@link ng.directive:ngView#animations ngView}                    | enter and leave                       |<br/>
 * | {@link ng.directive:ngInclude#animations ngInclude}              | enter and leave                       |<br/>
 * | {@link ng.directive:ngSwitch#animations ngSwitch}                | enter and leave                       |<br/>
 * | {@link ng.directive:ngIf#animations ngIf}                        | enter and leave                       |<br/>
 * | {@link ng.directive:ngShow#animations ngShow & ngHide}           | show and hide                         |<br/>
 *
 * Подробную информацию об использовании анимации можно найти на странице каждой директивы.
 *
 * Ниже приведен пример директивы, использующей атрибут ngAnimate:
 *
 * <pre>
 * <!-- Также можно использовать data-ng-animate, ng:animate или x-ng-animate -->
 * <ANY ng-directive ng-animate="{event1: 'animation-name', event2: 'animation-name-2'}"></ANY>
 *
 * <!-- Также можно использовать короткую запись -->
 * <ANY ng-directive ng-animate=" 'animation' "></ANY>
 * <!-- которая раскрывается в -->
 * <ANY ng-directive ng-animate="{ enter: 'animation-enter', leave: 'animation-leave', ...}"></ANY>
 *
 * <!-- имейте в виду, что в ng-animate могут использоваться выражения -->
 * <ANY ng-directive ng-animate=" computeCurrentAnimation() "></ANY>
 * </pre>
 *
 * Атрибуты `event1` and `event2` относятся к конкретным событиям анимации в директиве, на которой они назначены.
 *
 * Имейте ввиду, что при показе анимации, ни один потомок такой анимации не может быть анимирован.
 *
 * <h2>CSS-анимация</h2>
 * По умолчанию ngAnimate задействует для события анимации два CSS-класса DOM-элемента. Вы, разработчики, 
 * должны гарантировать, что анимация будет происходить с использованием кросс-браузерных CSS3-переходов
 * так же, как и CSS-анимация.
 * 
 * Код ниже показывает как осуществить CSS-анимацию, используя **CSS переходы** c ngAnimate:
 *
 * <pre>
 * <style type="text/css">
 * /&#42;
 *  CSS-класс animate-enter является именем события, 
 *  подставленным в атрибут ngAnimate.
 * &#42;/
 * .animate-enter-setup {
 *  -webkit-transition: 1s linear all; /&#42; Safari/Chrome &#42;/
 *  -moz-transition: 1s linear all; /&#42; Firefox &#42;/
 *  -ms-transition: 1s linear all; /&#42; IE10 &#42;/
 *  -o-transition: 1s linear all; /&#42; Opera &#42;/
 *  transition: 1s linear all; /&#42; Future Browsers &#42;/
 *
 *  /&#42; Подготовка кода анимации &#42;/
 *  opacity: 0;
 * }
 *
 * /&#42;
 *  Имейте в виду, что можно совместить оба CSS-класса
 *  вместе, чтобы избежать любых конфликтов CSS
 * &#42;/
 * .animate-enter-setup.animate-enter-start {
 *  /&#42; Код анимации &#42;/
 *  opacity: 1;
 * }
 * </style>
 *
 * <div ng-directive ng-animate="{enter: 'animate-enter'}"></div>
 * </pre>
 * 
 * Код ниже показывает как осуществить CSS-анимацию, используя **CSS переходы** c ngAnimate: 
 * 
 * <pre>
 * <style type="text/css">
 * .animate-enter-setup {
 *    -webkit-animation: enter_sequence 1s linear;
 *    -moz-animation: enter_sequence 1s linear;
 *    -o-animation: enter_sequence 1s linear;
 *    animation: enter_sequence 1s linear;
 *  }
 * &#64-webkit-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 *  }
 * &#64-moz-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 *  }
 * &#64-o-keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 * }
 * &#64keyframes enter_sequence {
 *    from { opacity:0; }
 *    to { opacity:1; }
 * }
 * </style>
 * 
 * <div ng-directive ng-animate="{enter: 'animate-enter'}"></div>
 * </pre>
 * 
 * ngAnimate сперва проверит любой код CSS-анимации, а затем возвратится к использованию CSS-переходов.
 * 
 * При возникновении мутации DOM, сперва устанавливается класс, затем браузеру разрешается форматировать содержимое, 
 * а затем добавляется класс для запуска анимации. Директива ngAnimate автоматически определит продолжительность 
 * анимации, чтобы узнать, когда она заканчивается. После окончания анимация, оба CSS-класса удалятся из DOM. 
 * Если браузер не поддерживает CSS-переходы и CSS-анимацию, то анимация начнется и сразу закончится, 
 * установив DOM-элемент в конечное состояние. В конечном состоянии DOM-элемент не содержит классов анимации/переходов.
 *
 * <h2>JavaScript-анимация</h2>
 * Если не хотите использовать CSS3-анимацию или переходы или хотите использовать ее в браузерах, которые ее не 
 * поддерживают, можно использовать JavaScript-анимацию, определенную внутри вашего angular-модуля.
 * <pre>
 * var ngModule = angular.module('YourApp', []);
 * ngModule.animation('animate-enter', function() {
 *   return {
 *     setup : function(element) {
{'fraction_non_alphanumeric': 0.13310904071773638, 'fraction_numerical': 0.013112491373360938, 'mean_word_length': 3.023950017355085, 'pattern_counts': {'":': 0, '<': 81, '<?xml version=': 0, '>': 81, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1025175', 'n_tokens_mistral': 4213, 'n_tokens_neox': 4599, 'n_words': 1038}