katello 3.15.1 → 3.16.0.rc2.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/common/vendor.js +6 -5
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +2 -3
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +1 -1
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +13 -9
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +5 -8
- data/app/controllers/katello/api/v2/api_controller.rb +14 -0
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +3 -9
- data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
- data/app/controllers/katello/api/v2/environments_controller.rb +3 -3
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_collections_controller.rb +3 -4
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +5 -22
- data/app/controllers/katello/api/v2/host_tracer_controller.rb +39 -2
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +7 -2
- data/app/controllers/katello/api/v2/organizations_controller.rb +7 -14
- data/app/controllers/katello/api/v2/packages_controller.rb +13 -13
- data/app/controllers/katello/api/v2/products_controller.rb +2 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +7 -11
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -1
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +5 -31
- data/app/controllers/katello/application_controller.rb +1 -1
- data/app/controllers/katello/concerns/api/api_controller.rb +2 -1
- data/app/controllers/katello/concerns/api/v2/hostgroups_controller_extensions.rb +1 -1
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +6 -1
- data/app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb +1 -1
- data/app/controllers/katello/remote_execution_controller.rb +9 -1
- data/app/controllers/katello/sync_management_controller.rb +1 -1
- data/app/helpers/katello/hosts_and_hostgroups_helper.rb +1 -1
- data/app/helpers/katello/katello_urls_helper.rb +1 -1
- data/app/helpers/katello/layout_helper.rb +1 -3
- data/app/helpers/katello/subscription_mailer_helper.rb +23 -0
- data/app/jobs/create_expired_manifest_notifications.rb +11 -0
- data/app/lib/actions/candlepin/consumer/remove_subscription.rb +1 -1
- data/app/lib/actions/katello/activation_key/update.rb +1 -1
- data/app/lib/actions/katello/applicability/host/generate.rb +28 -0
- data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +32 -0
- data/app/lib/actions/katello/applicability/repository/regenerate.rb +31 -0
- data/app/lib/actions/katello/capsule_content/sync.rb +0 -1
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +0 -2
- data/app/lib/actions/katello/content_view/destroy.rb +3 -1
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
- data/app/lib/actions/katello/content_view/publish.rb +2 -2
- data/app/lib/actions/katello/content_view/remove.rb +1 -1
- data/app/lib/actions/katello/content_view/update.rb +1 -1
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +6 -0
- data/app/lib/actions/katello/gpg_key/update.rb +1 -1
- data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +12 -2
- data/app/lib/actions/katello/host/generate_applicability.rb +21 -10
- data/app/lib/actions/katello/host/hypervisors_update.rb +1 -1
- data/app/lib/actions/katello/host/recalculate_errata_status.rb +4 -6
- data/app/lib/actions/katello/host/upload_profiles.rb +36 -5
- data/app/lib/actions/katello/organization/manifest_delete.rb +2 -1
- data/app/lib/actions/katello/organization/manifest_import.rb +3 -1
- data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -1
- data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -13
- data/app/lib/actions/katello/product/content_create.rb +3 -3
- data/app/lib/actions/katello/product/create.rb +1 -1
- data/app/lib/actions/katello/product/destroy.rb +1 -1
- data/app/lib/actions/katello/product/update.rb +1 -1
- data/app/lib/actions/katello/provider/update.rb +1 -1
- data/app/lib/actions/katello/repository/clone_contents.rb +1 -1
- data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
- data/app/lib/actions/katello/repository/create.rb +2 -2
- data/app/lib/actions/katello/repository/filtered_index_content.rb +12 -3
- data/app/lib/actions/katello/repository/finish_upload.rb +5 -3
- data/app/lib/actions/katello/repository/import_upload.rb +2 -2
- data/app/lib/actions/katello/repository/sync.rb +28 -16
- data/app/lib/actions/katello/repository/update.rb +17 -6
- data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +17 -0
- data/app/lib/actions/katello/repository/update_redhat_repository.rb +2 -2
- data/app/lib/actions/katello/repository/upload_files.rb +8 -5
- data/app/lib/actions/katello/subscription/update.rb +1 -1
- data/app/lib/actions/pulp/abstract_async_task.rb +3 -5
- data/app/lib/actions/pulp/consumer.rb +1 -3
- data/app/lib/actions/pulp/consumer/content_install.rb +1 -1
- data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -1
- data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +2 -0
- data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +5 -11
- data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +1 -1
- data/app/lib/actions/pulp3/ContentGuard/refresh.rb +19 -0
- data/app/lib/actions/pulp3/abstract_async_task.rb +3 -5
- data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +8 -10
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +2 -2
- data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +22 -13
- data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +8 -6
- data/app/lib/actions/pulp3/orphan_cleanup/delete_orphaned_migrated_repositories.rb +15 -0
- data/app/lib/actions/pulp3/repository/commit_upload.rb +18 -0
- data/app/lib/actions/pulp3/repository/copy_content.rb +1 -0
- data/app/lib/actions/pulp3/repository/import_upload.rb +5 -2
- data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -0
- data/app/lib/actions/pulp3/repository/save_distribution_references.rb +3 -1
- data/app/lib/actions/pulp3/repository/save_publication.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_version.rb +4 -2
- data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +15 -0
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +8 -3
- data/app/lib/katello/concerns/filter_sensitive_data.rb +18 -0
- data/app/lib/katello/foreman.rb +2 -1
- data/app/lib/katello/http_resource.rb +3 -5
- data/app/lib/katello/lazy_accessor.rb +4 -2
- data/app/lib/katello/messaging/connection.rb +15 -0
- data/app/lib/katello/messaging/received_message.rb +12 -0
- data/app/lib/katello/messaging/stomp_connection.rb +73 -0
- data/app/lib/katello/resources/candlepin/activation_key.rb +0 -1
- data/app/lib/katello/resources/candlepin/admin.rb +1 -1
- data/app/lib/katello/resources/candlepin/consumer.rb +6 -0
- data/app/lib/katello/resources/candlepin/content.rb +7 -1
- data/app/lib/katello/resources/candlepin/owner.rb +0 -9
- data/app/lib/katello/resources/cdn.rb +6 -1
- data/app/lib/katello/resources/registry.rb +1 -1
- data/app/lib/katello/util/cdn_var_substitutor.rb +1 -3
- data/app/lib/katello/util/errata.rb +13 -0
- data/app/lib/katello/util/pulpcore_content_filters.rb +32 -0
- data/app/mailers/katello/subscription_mailer.rb +35 -0
- data/app/models/katello/activation_key.rb +1 -0
- data/app/models/katello/ansible_collection.rb +1 -1
- data/app/models/katello/authorization/host_tracer.rb +14 -0
- data/app/models/katello/authorization/pool.rb +5 -1
- data/app/models/katello/authorization/subscription.rb +1 -3
- data/app/models/katello/concerns/host_managed_extensions.rb +33 -4
- data/app/models/katello/concerns/organization_extensions.rb +9 -0
- data/app/models/katello/concerns/pulp_database_unit.rb +62 -35
- data/app/models/katello/concerns/redhat_extensions.rb +2 -1
- data/app/models/katello/concerns/smart_proxy_extensions.rb +5 -2
- data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
- data/app/models/katello/content.rb +2 -2
- data/app/models/katello/content_view.rb +3 -2
- data/app/models/katello/content_view_erratum_filter.rb +29 -0
- data/app/models/katello/content_view_package_filter.rb +16 -1
- data/app/models/katello/content_view_package_group_filter.rb +7 -0
- data/app/models/katello/content_view_version.rb +1 -0
- data/app/models/katello/erratum.rb +6 -1
- data/app/models/katello/erratum_cve.rb +4 -0
- data/app/models/katello/events/generate_host_applicability.rb +28 -0
- data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
- data/app/models/katello/glue/candlepin/pool.rb +6 -8
- data/app/models/katello/glue/candlepin/product.rb +1 -1
- data/app/models/katello/glue/candlepin/subscription.rb +1 -1
- data/app/models/katello/glue/provider.rb +5 -3
- data/app/models/katello/glue/pulp/repo.rb +1 -1
- data/app/models/katello/host/content_facet.rb +27 -4
- data/app/models/katello/host/subscription_facet.rb +1 -1
- data/app/models/katello/host_queue_element.rb +4 -0
- data/app/models/katello/host_tracer.rb +8 -0
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/module_stream.rb +2 -0
- data/app/models/katello/module_stream_rpm.rb +6 -0
- data/app/models/katello/package_group.rb +2 -1
- data/app/models/katello/pool.rb +19 -3
- data/app/models/katello/product.rb +1 -1
- data/app/models/katello/provider.rb +2 -3
- data/app/models/katello/pulp3/content_guard.rb +14 -0
- data/app/models/katello/puppet_module.rb +1 -1
- data/app/models/katello/repository.rb +20 -7
- data/app/models/katello/root_repository.rb +11 -0
- data/app/models/katello/rpm.rb +2 -1
- data/app/models/katello/subscription.rb +4 -4
- data/app/models/katello/sync_plan.rb +2 -2
- data/app/models/katello/task_status.rb +1 -1
- data/app/models/katello/trace_status.rb +3 -3
- data/app/models/setting/content.rb +8 -2
- data/app/services/katello/applicability/applicable_content_helper.rb +135 -0
- data/app/services/katello/applicable_host_queue.rb +21 -0
- data/app/services/katello/candlepin/consumer.rb +1 -1
- data/app/services/katello/candlepin/message_handler.rb +2 -3
- data/app/services/katello/candlepin_event_listener.rb +39 -53
- data/app/services/katello/event_daemon.rb +18 -18
- data/app/services/katello/event_monitor/poller_thread.rb +15 -17
- data/app/services/katello/product_content_importer.rb +2 -2
- data/app/services/katello/pulp/consumer.rb +6 -10
- data/app/services/katello/pulp/docker_manifest.rb +1 -1
- data/app/services/katello/pulp/docker_manifest_list.rb +1 -1
- data/app/services/katello/pulp/erratum.rb +1 -1
- data/app/services/katello/pulp/file_unit.rb +1 -1
- data/app/services/katello/pulp/module_stream.rb +1 -1
- data/app/services/katello/pulp/ostree_branch.rb +1 -1
- data/app/services/katello/pulp/package_group.rb +1 -1
- data/app/services/katello/pulp/pulp_content_unit.rb +8 -0
- data/app/services/katello/pulp/puppet_module.rb +1 -1
- data/app/services/katello/pulp/repository/yum.rb +3 -3
- data/app/services/katello/pulp/yum_metadata_file.rb +1 -1
- data/app/services/katello/pulp3/ansible_collection.rb +1 -1
- data/app/services/katello/pulp3/api/ansible_collection.rb +4 -1
- data/app/services/katello/pulp3/api/content_guard.rb +45 -0
- data/app/services/katello/pulp3/api/core.rb +20 -12
- data/app/services/katello/pulp3/api/docker.rb +4 -1
- data/app/services/katello/pulp3/api/file.rb +4 -1
- data/app/services/katello/pulp3/api/yum.rb +28 -1
- data/app/services/katello/pulp3/content.rb +2 -2
- data/app/services/katello/pulp3/docker_manifest.rb +1 -1
- data/app/services/katello/pulp3/docker_manifest_list.rb +1 -1
- data/app/services/katello/pulp3/docker_tag.rb +1 -1
- data/app/services/katello/pulp3/erratum.rb +9 -1
- data/app/services/katello/pulp3/file_unit.rb +1 -1
- data/app/services/katello/pulp3/migration.rb +2 -1
- data/app/services/katello/pulp3/module_stream.rb +13 -3
- data/app/services/katello/pulp3/package_group.rb +1 -1
- data/app/services/katello/pulp3/pulp_content_unit.rb +19 -7
- data/app/services/katello/pulp3/repository.rb +37 -16
- data/app/services/katello/pulp3/repository/docker.rb +1 -1
- data/app/services/katello/pulp3/repository/yum.rb +106 -5
- data/app/services/katello/pulp3/repository_mirror.rb +4 -2
- data/app/services/katello/pulp3/rpm.rb +26 -39
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +1 -1
- data/app/services/katello/pulp3/smart_proxy_repository.rb +23 -3
- data/app/services/katello/pulp3/srpm.rb +8 -1
- data/app/services/katello/ui_notifications/subscriptions/expire_soon.rb +1 -1
- data/app/services/katello/ui_notifications/subscriptions/manifest_expired_warning.rb +63 -0
- data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/erratum.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/show.json.rabl +4 -0
- data/app/views/katello/api/v2/content_view_histories/show.json.rabl +2 -6
- data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +2 -1
- data/app/views/katello/api/v2/host_tracer/base.json.rabl +6 -4
- data/app/views/katello/api/v2/organizations/owner_details.rabl +5 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +6 -1
- data/app/views/katello/api/v2/organizations/upstream_consumer.rabl +1 -0
- data/app/views/katello/subscription_mailer/subscription_expiry.html.erb +47 -0
- data/app/views/katello/subscription_mailer/subscription_expiry.text.erb +19 -0
- data/app/views/users/_subscriptions_expiring_soon_query_builder.html.erb +16 -0
- data/config/initializers/monkeys.rb +2 -2
- data/config/katello.yaml.example +4 -0
- data/config/routes.rb +2 -2
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/api/v2.rb +6 -1
- data/config/routes/overrides.rb +1 -1
- data/db/functions/empty_v01.sql +7 -0
- data/db/functions/evr_trigger_v01.sql +9 -0
- data/db/functions/isalpha_v01.sql +11 -0
- data/db/functions/isalphanum_v01.sql +12 -0
- data/db/functions/isdigit_v01.sql +10 -0
- data/db/functions/rpmver_array_v01.sql +60 -0
- data/db/migrate/20131016124255_add_foreign_keys_engine.rb +1 -1
- data/db/migrate/20140117160939_refactor_content_views.rb +1 -1
- data/db/migrate/20140626204657_add_unlimited_to_activation_keys.rb +3 -3
- data/db/migrate/20140626204902_add_unlimited_to_host_collection.rb +3 -3
- data/db/migrate/20140930170628_add_errata.rb +1 -1
- data/db/migrate/20150119153452_update_promote_errata_email_description.rb +2 -6
- data/db/migrate/20150606021722_create_puppet_modules.rb +1 -1
- data/db/migrate/20150813185339_create_subscriptions.rb +1 -1
- data/db/migrate/20150826170004_add_content_facet.rb +1 -1
- data/db/migrate/20150930183738_migrate_content_hosts.rb +6 -8
- data/db/migrate/20160908234510_add_rpm_nvra.rb +1 -1
- data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +1 -1
- data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +1 -1
- data/db/migrate/20161026191118_fix_invalid_interfaces.rb +1 -1
- data/db/migrate/20180103230812_set_errata_updated_date.rb +1 -1
- data/db/migrate/20180410140909_add_organization_id_to_pool.rb +1 -1
- data/db/migrate/20180920214134_create_repository_root.rb +2 -3
- data/db/migrate/20190730183518_add_docker_tag_join_table.rb +1 -1
- data/db/migrate/20190730203334_add_docker_meta_tag_join_table.rb +1 -1
- data/db/migrate/20200204034123_add_pulp3_href_to_repository_erratum.rb +6 -0
- data/db/migrate/20200213184848_create_evr_type.rb +49 -0
- data/db/migrate/20200304201026_create_katello_module_stream_rpms.rb +15 -0
- data/db/migrate/20200407171926_create_content_guard.rb +10 -0
- data/db/migrate/20200506163345_add_applicability_indicesto_katello_host_available_module_streams.rb +12 -0
- data/db/migrate/20200511204005_create_katello_host_queue_elements.rb +12 -0
- data/db/migrate/20200526200422_encrypt_root_repository_upstream_password.rb +45 -0
- data/db/seeds.d/106-mail_notifications.rb +8 -0
- data/db/seeds.d/107-enable_dynflow.rb +1 -1
- data/db/seeds.d/109-katello-notification-blueprints.rb +6 -0
- data/db/seeds.d/111-upgrade_tasks.rb +2 -1
- data/db/seeds.d/75-job_templates.rb +2 -2
- data/db/triggers/evr_insert_trigger_katello_installed_packages_v01.sql +5 -0
- data/db/triggers/evr_insert_trigger_katello_rpms_v01.sql +5 -0
- data/db/triggers/evr_update_trigger_katello_installed_packages_v01.sql +10 -0
- data/db/triggers/evr_update_trigger_katello_rpms_v01.sql +10 -0
- data/engines/bastion/app/assets/javascripts/bastion/bastion.module.js +1 -1
- data/engines/bastion/app/assets/javascripts/bastion/routing.module.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-animate/angular-animate.js +465 -340
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-na.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af-za.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_af.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_agq-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak-gh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ak.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am-et.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_am.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-001.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ae.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-bh.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-dj.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-eg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-er.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-il.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-iq.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-jo.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-km.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-kw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-lb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ly.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ma.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-mr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-om.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ps.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-qa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-so.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ss.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-sy.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-td.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-tn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-xb.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar-ye.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ar.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as-in.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_as.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_asa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast-es.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ast.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl-az.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-cyrl.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn-az.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az-latn.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_az.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bas-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be-by.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_be.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bez.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg-bg.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bg.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bm-ml.js +31 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-bd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn-in.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-cn.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo-in.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bo.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_br.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_brx.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn-ba.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs-latn.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_bs.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-ad.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca-it.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ca.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce-ru.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ce.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cgg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr-us.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_chr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-iq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab-ir.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-arab.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-iq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-ir.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn-iq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb-latn.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ckb.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs-cz.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cs.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu-ru.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cu.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy-gb.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_cy.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-dk.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da-gl.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_da.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dav.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-at.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-ch.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-it.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_de-li.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dje-ne.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dua-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_dyo-sn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ebu.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ee-tg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-001.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-150.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ai.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-at.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-au.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-be.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bi.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-bw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ch.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ck.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cm.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cx.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-cy.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-de.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-dk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fi.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-fk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gb.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gi.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-gy.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ie.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-il.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-im.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-io.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-je.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-jm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ke.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ms.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mt.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-mu.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nf.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nl.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nr.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-nu.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pk.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-pn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-rw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-se.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-si.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sl.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-sx.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tv.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-us-posix.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-vu.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-xa.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-za.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_en-zw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-419.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ar.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bo.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-br.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-bz.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cl.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-co.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cr.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-cu.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-do.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ea.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ec.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gq.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-gt.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-hn.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ic.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-mx.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ni.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pa.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pe.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ph.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-pr.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-py.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-sv.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-us.js +15 -15
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-uy.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es-ve.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_es.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et-ee.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_et.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu-es.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_eu.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ewo-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-af.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa-ir.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fa.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-gn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-mr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ff-sn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi-fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-dk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo-fo.js +32 -32
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fo.js +32 -32
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-be.js +13 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bi.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bj.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-bl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ca.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cd.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ch.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ci.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-cm.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dj.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-dz.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ga.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gf.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gp.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-gq.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ht.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-km.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-lu.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ma.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mc.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mf.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ml.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mr.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-mu.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-nc.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-ne.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-pm.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-re.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-rw.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sc.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-sy.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-td.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-tn.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-vu.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-wf.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr-yt.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy-nl.js +36 -36
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_fy.js +36 -36
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl-es.js +27 -27
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gl.js +27 -27
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-ch.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-fr.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw-li.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gsw.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu-in.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gu.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz-ke.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_guz.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv-im.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_gv.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-gh.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ne.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha-ng.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ha.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he-il.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_he.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-ba.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr-hr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hr.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy-am.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_hy.js +20 -20
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id-id.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_id.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig-ng.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ig.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii-cn.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ii.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_in.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_is-is.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-ch.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-it.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-sm.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it-va.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_it.js +16 -16
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_iw.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ja-jp.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo-cm.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jgo.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_jmc.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka-ge.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ka.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab-dz.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kab.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kam.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kde.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_khq-ml.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ki.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk-kz.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kk.js +28 -28
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kkj-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl-gl.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kl.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kln.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km-kh.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_km.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kn.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kp.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko-kr.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ko.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok-in.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kok.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ks-in.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksb.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksf-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh-de.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ksh.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw-gb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_kw.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky-kg.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ky.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lag.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lg.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt-us.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lkt.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cf.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ln-cg.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo-la.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lo.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-iq.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc-ir.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lrc.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luo.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_luy.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv-lv.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_lv.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mas.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mer.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mfe-mu.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg-mg.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mg.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh-mz.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgh.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mgo-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk-mk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml-in.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ml.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn-mn.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mn.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mo.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-bn.js +39 -13
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-my.js +35 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ms-sg.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mua-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my-mm.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_my.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn-ir.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_mzn.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb-sj.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nb.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd-zw.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nd.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-de.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds-nl.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nds.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-in.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne-np.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ne.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-aw.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-be.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-bq.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-cw.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-nl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sr.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl-sx.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nl.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nmg-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh-cm.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nnh.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no-no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_no.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus-ss.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nus.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_nyn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-et.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om-ke.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_om.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ge.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os-ru.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_os.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab-pk.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-arab.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa-guru.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pa.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl-pl.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pl.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg-001.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_prg.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps-af.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ps.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ao.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-br.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-ch.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-cv.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gq.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-gw.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-lu.js +125 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mo.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-mz.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-pt.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-st.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt-tl.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_pt.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-bo.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-ec.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu-pe.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_qu.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm-ch.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rn-bi.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-md.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro-ro.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ro.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rof.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-by.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kg.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-kz.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-md.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ru.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru-ua.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ru.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw-rw.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rw.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_rwk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah-ru.js +40 -40
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sah.js +40 -40
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_saq.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sbp.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_se-fi.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh-mz.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_seh.js +1 -1
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ses-ml.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sg-cf.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sh.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-latn.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi-tfng.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_shi.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si-lk.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_si.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk-sk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl-si.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sl.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn-fi.js +51 -51
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_smn.js +51 -51
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn-zw.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sn.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-dj.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-et.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-ke.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so-so.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_so.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-al.js +24 -24
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-mk.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq-xk.js +18 -18
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sq.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-ba.js +21 -21
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-me.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-rs.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl-xk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-cyrl.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-ba.js +21 -21
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-me.js +25 -25
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-rs.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn-xk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr-latn.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-ax.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-fi.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv-se.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sv.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-cd.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ke.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-tz.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw-ug.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_sw.js +8 -8
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-in.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-lk.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-my.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta-sg.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ta.js +14 -14
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te-in.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_te.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ke.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_teo.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-er.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti-et.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ti.js +45 -45
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk-tm.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to-to.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_to.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-cy.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr-tr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tr.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_twq-ne.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm-ma.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_tzm.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug-cn.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ug.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk-ua.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uk.js +22 -22
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-in.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur-pk.js +9 -9
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_ur.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab-af.js +19 -19
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-arab.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl-uz.js +49 -49
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-cyrl.js +47 -47
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn-uz.js +41 -41
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz-latn.js +39 -39
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_uz.js +39 -39
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi-vn.js +12 -12
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vi.js +10 -10
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo-001.js +22 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vo.js +22 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun-tz.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_vun.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog-ug.js +6 -6
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_xog.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yav-cm.js +2 -2
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi-001.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yi.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-bj.js +7 -7
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo-ng.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yo.js +5 -5
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue-hk.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_yue.js +143 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh-ma.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zgh.js +3 -3
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-cn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans-cn.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hans.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-hk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hant-mo.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh-hk.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zh.js +4 -4
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu-za.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/angular-locale_zu.js +17 -17
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ar-xb.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce-ru.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ce.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu-ru.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/cu.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/de-it.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-at.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-bi.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-ch.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-cy.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-de.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-dk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-fi.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-il.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-nl.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-se.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-si.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-us-posix.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/en-xa.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-br.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/es-bz.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/fo-dk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-gh.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ne.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ha-ng.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/it-va.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/kk-kz.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ks-in.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ky-kg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-iq.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc-ir.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/lrc.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mn-mn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mo.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ms-sg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn-ir.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/mzn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-de.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds-nl.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nds.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/nus-ss.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg-001.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/prg.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-ch.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-gq.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/pt-lu.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/sh.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk-tm.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/tzm-ma.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/ug-cn.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue-hk.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-i18n/yue.js +2 -0
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-resource/angular-resource.js +407 -264
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-route/angular-route.js +397 -156
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +516 -320
- data/engines/bastion/vendor/assets/javascripts/bastion/angular-ui-router/angular-ui-router.js +10551 -4465
- data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +10455 -4892
- data/engines/bastion/vendor/assets/javascripts/bastion/ngUpload/ng-upload.js +2 -2
- data/engines/bastion_katello/README.md +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ansible-collections/ansible-collections.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/api-error-handler.service.js +2 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +65 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-traces-modal.html +79 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +8 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +10 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +14 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +23 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +20 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/deb.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-list.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifests/docker-manifest.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.controller.js +15 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +3 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/erratum.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces-resolve.factory.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +3869 -2260
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +4155 -2272
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +4257 -2352
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +3840 -2253
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +3999 -2409
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +3853 -2291
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +4388 -2554
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +4121 -2427
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +3936 -2241
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +3824 -2189
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-stream.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/package-groups/package-group.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +5 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.routes.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task-details.controller.js +3 -2
- data/lib/katello.rb +4 -1
- data/lib/katello/engine.rb +25 -3
- data/lib/katello/permissions/host_permissions.rb +3 -0
- data/lib/katello/permissions/organization_permissions.rb +1 -2
- data/lib/katello/plugin.rb +12 -3
- data/lib/katello/prevent_json_parsing.rb +1 -1
- data/lib/katello/scheduled_jobs.rb +1 -1
- data/lib/katello/tasks/clean_backend_objects.rake +1 -1
- data/lib/katello/tasks/common.rake +7 -0
- data/lib/katello/tasks/delete_orphaned_content.rake +3 -1
- data/lib/katello/tasks/import_applicability.rake +4 -6
- data/lib/katello/tasks/jenkins.rake +1 -1
- data/lib/katello/tasks/pulp3_content_switchover.rake +6 -8
- data/lib/katello/tasks/pulp3_migration.rake +2 -0
- data/lib/katello/tasks/pulp3_post_migration_check.rake +4 -0
- data/lib/katello/tasks/receptor/extract_orgs.rake +27 -0
- data/lib/katello/tasks/reimport.rake +15 -19
- data/lib/katello/tasks/repository.rake +7 -11
- data/lib/katello/tasks/reset.rake +12 -13
- data/lib/katello/tasks/update_content_default_http_proxy.rake +1 -1
- data/lib/katello/tasks/update_subscription_facet_backend_data.rake +14 -16
- data/lib/katello/tasks/upgrades/3.10/clear_invalid_repo_credentials.rake +1 -1
- data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +1 -1
- data/lib/katello/tasks/upgrades/3.11/update_puppet_repos.rake +9 -11
- data/lib/katello/tasks/upgrades/3.15/set_sub_facet_dmi_uuid.rake +1 -1
- data/lib/katello/tasks/upgrades/3.16/update_applicable_el8_hosts.rake +29 -0
- data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +18 -22
- data/lib/katello/version.rb +1 -1
- data/lib/monkeys/ar_postgres_evr_t.rb +24 -0
- data/lib/monkeys/fx_sqlite_skip.rb +13 -0
- data/locale/action_names.rb +47 -39
- data/locale/bn/katello.po +4004 -2559
- data/locale/cs/katello.po +3744 -2221
- data/locale/de/katello.po +4293 -3046
- data/locale/en/katello.po +3125 -1558
- data/locale/es/katello.po +4269 -3013
- data/locale/fr/katello.po +4287 -3077
- data/locale/gu/katello.po +4016 -2578
- data/locale/hi/katello.po +4015 -2568
- data/locale/it/katello.po +4279 -3040
- data/locale/ja/katello.po +4326 -2856
- data/locale/katello.pot +2618 -1464
- data/locale/kn/katello.po +4023 -2587
- data/locale/ko/katello.po +4311 -2818
- data/locale/mr/katello.po +3962 -2509
- data/locale/or/katello.po +4008 -2561
- data/locale/pa/katello.po +3975 -2516
- data/locale/pt/katello.po +3373 -1837
- data/locale/pt_BR/katello.po +4248 -2967
- data/locale/ru/katello.po +4295 -2901
- data/locale/ta/katello.po +3998 -2560
- data/locale/te/katello.po +4018 -2569
- data/locale/zh_CN/katello.po +4335 -2806
- data/locale/zh_TW/katello.po +4463 -2962
- data/package.json +13 -39
- data/webpack/__mocks__/foremanReact/components/{BreadcrumbBar.js → BreadcrumbBar/index.js} +0 -1
- data/webpack/__mocks__/react-intl/index.js +3 -0
- data/webpack/__mocks__/react-intl/locale-data/en.js +1 -0
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/containers/Application/overrides.scss +8 -0
- data/webpack/mockRequest.js +1 -0
- data/webpack/move_to_foreman/common/helpers.js +2 -1
- data/webpack/move_to_foreman/components/common/table/components/__snapshots__/Table.test.js.snap +1 -0
- data/webpack/scenes/AnsibleCollections/Details/AnsibleCollectionDetailsActions.js +2 -2
- data/webpack/scenes/AnsibleCollections/Details/__tests__/__snapshots__/AnsibleCollectionDetailsActions.test.js.snap +4 -0
- data/webpack/scenes/ContentViews/ContentViewSelectors.js +13 -0
- data/webpack/scenes/ContentViews/ContentViewsActions.js +18 -0
- data/webpack/scenes/ContentViews/ContentViewsConstants.js +3 -0
- data/webpack/scenes/ContentViews/ContentViewsPage.js +30 -0
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +104 -0
- data/webpack/scenes/ContentViews/Table/TableWrapper.js +55 -0
- data/webpack/scenes/ContentViews/Table/actionResolver.js +28 -0
- data/webpack/scenes/ContentViews/Table/index.js +3 -0
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +133 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +228 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +99 -0
- data/webpack/scenes/ContentViews/components/ContentViewName.js +33 -0
- data/webpack/scenes/ContentViews/components/EmptyStateMessage.js +43 -0
- data/webpack/scenes/ContentViews/components/IconWithCount.js +18 -0
- data/webpack/scenes/ContentViews/components/IconWithCount.scss +3 -0
- data/webpack/scenes/ContentViews/components/Loading.js +31 -0
- data/webpack/scenes/ContentViews/components/contentViewName.scss +9 -0
- data/webpack/scenes/ContentViews/details/ContentViewDetailActions.js +12 -0
- data/webpack/scenes/ContentViews/details/ContentViewDetailSelectors.js +15 -0
- data/webpack/scenes/ContentViews/details/DetailsContainer.js +35 -0
- data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +11 -0
- data/webpack/scenes/ContentViews/expansions/EnvironmentsExpansion.js +19 -0
- data/webpack/scenes/ContentViews/expansions/RepositoriesExpansion.js +12 -0
- data/webpack/scenes/ContentViews/expansions/VersionsExpansion.js +11 -0
- data/webpack/scenes/ContentViews/index.js +4 -0
- data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsActions.js +2 -2
- data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsActions.test.js.snap +4 -0
- data/webpack/scenes/RedHatRepositories/__tests__/__snapshots__/RedHatRepositoriesPage.test.js.snap +8 -0
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +3 -2
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +12 -14
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +14 -4
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +8 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +11 -22
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +11 -6
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +21 -17
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +8 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +0 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +10 -0
- data/webpack/scenes/Subscriptions/index.js +5 -1
- data/webpack/scenes/Tasks/TaskActions.js +2 -1
- data/webpack/scenes/Tasks/__tests__/__snapshots__/TaskActions.test.js.snap +12 -8
- data/webpack/test-utils/nockWrapper.js +17 -0
- data/webpack/test-utils/react-testing-lib-wrapper.js +42 -0
- data/webpack/test_setup.js +10 -0
- metadata +269 -49
- data/app/lib/actions/candlepin/owner/auto_attach.rb +0 -15
- data/app/lib/actions/katello/organization/auto_attach_subscriptions.rb +0 -16
- data/app/services/katello/candlepin_listening_service.rb +0 -94
- data/config/initializers/multipart_json_fix.rb +0 -15
- data/config/initializers/runcible.rb +0 -5
- data/lib/monkeys/json_munging_patch.rb +0 -25
- data/lib/monkeys/multi_json_empty_fix.rb +0 -14
- data/webpack/__mocks__/foremanReact/common/I18n.js +0 -5
- data/webpack/__mocks__/foremanReact/common/helpers.js +0 -21
- data/webpack/__mocks__/foremanReact/common/keyCodes.js +0 -8
- data/webpack/__mocks__/foremanReact/components/PermissionDenied/index.js +0 -2
- data/webpack/__mocks__/foremanReact/components/common/ModalProgressBar.js +0 -8
- data/webpack/__mocks__/foremanReact/components/common/table.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/API.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/IntervalSelectors.js +0 -6
- data/webpack/__mocks__/foremanReact/redux/middlewares/IntervalMiddleware/index.js +0 -11
@@ -0,0 +1,45 @@
|
|
1
|
+
class EncryptRootRepositoryUpstreamPassword < ActiveRecord::Migration[6.0]
|
2
|
+
def encrypt_password_for_audit(audit)
|
3
|
+
changes = audit.audited_changes
|
4
|
+
name = :upstream_password.to_s
|
5
|
+
change = changes[name]
|
6
|
+
|
7
|
+
if change.is_a? Array
|
8
|
+
changes[name] = change.map { |_| AuditExtensions::REDACTED }
|
9
|
+
elsif change
|
10
|
+
changes[name] = AuditExtensions::REDACTED
|
11
|
+
end
|
12
|
+
|
13
|
+
audit.save!
|
14
|
+
end
|
15
|
+
|
16
|
+
def encrypt_upstream_password_changes_for_audits(root_repository)
|
17
|
+
root_repository.audits.each do |audit|
|
18
|
+
if audit.audited_changes.key? "upstream_password"
|
19
|
+
encrypt_password_for_audit(audit)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def modify_root_repository_upstream_password(action)
|
25
|
+
encryptable_field = :upstream_password
|
26
|
+
|
27
|
+
::Katello::RootRepository.all.each do |root_repository|
|
28
|
+
original_upstream_password = root_repository.read_attribute(encryptable_field)
|
29
|
+
root_repository.update_column(encryptable_field,
|
30
|
+
root_repository.send("#{action}_field", original_upstream_password))
|
31
|
+
|
32
|
+
if action == :encrypt
|
33
|
+
encrypt_upstream_password_changes_for_audits(root_repository)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def up
|
39
|
+
modify_root_repository_upstream_password(:encrypt)
|
40
|
+
end
|
41
|
+
|
42
|
+
def down
|
43
|
+
modify_root_repository_upstream_password(:decrypt)
|
44
|
+
end
|
45
|
+
end
|
@@ -31,6 +31,14 @@ User.as(::User.anonymous_api_admin.login) do
|
|
31
31
|
:mailer => 'Katello::ErrataMailer',
|
32
32
|
:method => 'promote_errata',
|
33
33
|
:subscription_type => 'alert'
|
34
|
+
},
|
35
|
+
|
36
|
+
{:name => :subscriptions_expiring_soon,
|
37
|
+
:description => N_('A list of subscriptions expiring soon'),
|
38
|
+
:mailer => 'Katello::SubscriptionMailer',
|
39
|
+
:method => 'subscription_expiry',
|
40
|
+
:subscription_type => 'report',
|
41
|
+
:queryable => true
|
34
42
|
}
|
35
43
|
]
|
36
44
|
|
@@ -4,5 +4,5 @@
|
|
4
4
|
# !!! PLEASE KEEP THIS SCRIPT IDEMPOTENT !!!
|
5
5
|
#
|
6
6
|
User.as(::User.anonymous_api_admin.login) do
|
7
|
-
Setting.find_by(:name => "dynflow_enable_console").
|
7
|
+
Setting.find_by(:name => "dynflow_enable_console").update!(:value => true) if Rails.env.development?
|
8
8
|
end
|
@@ -19,6 +19,12 @@ blueprints = [
|
|
19
19
|
message: N_('%{expiring_subs} subscriptions in %{subject} are going to expire in less than %{days} days. Please renew them before they expire to guarantee your hosts will continue receiving content.'),
|
20
20
|
level: 'warning'
|
21
21
|
},
|
22
|
+
{
|
23
|
+
group: N_('Subscriptions'),
|
24
|
+
name: 'manifest_expired_warning',
|
25
|
+
message: N_('The manifest imported within Organization %{subject} is no longer valid. Attempted CDN access returned Forbidden. Refreshing the manifest may resolve this issue.'),
|
26
|
+
level: 'warning'
|
27
|
+
},
|
22
28
|
{
|
23
29
|
group: N_('Subscriptions'),
|
24
30
|
name: 'manifest_import_success',
|
@@ -12,6 +12,7 @@ UpgradeTask.define_tasks(:katello) do
|
|
12
12
|
{:name => 'katello:upgrades:3.12:remove_pulp2_notifier'},
|
13
13
|
{:name => 'katello:upgrades:3.13:republish_deb_metadata'},
|
14
14
|
{:name => 'katello:upgrades:3.15:set_sub_facet_dmi_uuid'},
|
15
|
-
{:name => 'katello:upgrades:3.15:reindex_rpm_modular'}
|
15
|
+
{:name => 'katello:upgrades:3.15:reindex_rpm_modular'},
|
16
|
+
{:name => 'katello:upgrades:3.16:update_applicable_el8_hosts'}
|
16
17
|
]
|
17
18
|
end
|
@@ -12,8 +12,8 @@ if Katello.with_remote_execution?
|
|
12
12
|
template = JobTemplate.import!(File.read(template), :default => true, :locked => true, :update => sync)
|
13
13
|
end
|
14
14
|
|
15
|
-
template.organizations << Organization.unscoped.all if template
|
16
|
-
template.locations << Location.unscoped.all if template
|
15
|
+
template.organizations << Organization.unscoped.all if template&.organizations&.empty?
|
16
|
+
template.locations << Location.unscoped.all if template&.locations&.empty?
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
CREATE TRIGGER evr_update_trigger_katello_installed_packages
|
2
|
+
BEFORE UPDATE OF epoch, version, release
|
3
|
+
ON katello_installed_packages
|
4
|
+
FOR EACH ROW
|
5
|
+
WHEN (
|
6
|
+
OLD.epoch IS DISTINCT FROM NEW.epoch OR
|
7
|
+
OLD.version IS DISTINCT FROM NEW.version OR
|
8
|
+
OLD.release IS DISTINCT FROM NEW.release
|
9
|
+
)
|
10
|
+
EXECUTE PROCEDURE evr_trigger();
|
@@ -0,0 +1,10 @@
|
|
1
|
+
CREATE TRIGGER evr_update_trigger_katello_rpms
|
2
|
+
BEFORE UPDATE OF epoch, version, release
|
3
|
+
ON katello_rpms
|
4
|
+
FOR EACH ROW
|
5
|
+
WHEN (
|
6
|
+
OLD.epoch IS DISTINCT FROM NEW.epoch OR
|
7
|
+
OLD.version IS DISTINCT FROM NEW.version OR
|
8
|
+
OLD.release IS DISTINCT FROM NEW.release
|
9
|
+
)
|
10
|
+
EXECUTE PROCEDURE evr_trigger();
|
@@ -24,7 +24,7 @@ angular.module('Bastion').config(
|
|
24
24
|
['$httpProvider', '$provide', 'BastionConfig',
|
25
25
|
function ($httpProvider, $provide, BastionConfig) {
|
26
26
|
$httpProvider.defaults.headers.common = {
|
27
|
-
Accept: 'application/json, text/plain,
|
27
|
+
Accept: 'application/json, text/plain, */*',
|
28
28
|
'X-CSRF-TOKEN': angular.element('meta[name=csrf-token]').attr('content')
|
29
29
|
};
|
30
30
|
|
@@ -59,7 +59,7 @@ angular.module('Bastion.routing', ['ui.router']);
|
|
59
59
|
var $window = $injector.get('$window'),
|
60
60
|
$state = $injector.get('$state'),
|
61
61
|
rootPath = getRootPath($location.path()),
|
62
|
-
url = $location.
|
62
|
+
url = $location.url(),
|
63
63
|
foundParentState;
|
64
64
|
|
65
65
|
// ensure we don't double encode +s
|
@@ -1,24 +1,10 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.
|
3
|
-
* (c) 2010-
|
2
|
+
* @license AngularJS v1.7.9
|
3
|
+
* (c) 2010-2018 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
6
6
|
(function(window, angular) {'use strict';
|
7
7
|
|
8
|
-
/* jshint ignore:start */
|
9
|
-
var noop = angular.noop;
|
10
|
-
var copy = angular.copy;
|
11
|
-
var extend = angular.extend;
|
12
|
-
var jqLite = angular.element;
|
13
|
-
var forEach = angular.forEach;
|
14
|
-
var isArray = angular.isArray;
|
15
|
-
var isString = angular.isString;
|
16
|
-
var isObject = angular.isObject;
|
17
|
-
var isUndefined = angular.isUndefined;
|
18
|
-
var isDefined = angular.isDefined;
|
19
|
-
var isFunction = angular.isFunction;
|
20
|
-
var isElement = angular.isElement;
|
21
|
-
|
22
8
|
var ELEMENT_NODE = 1;
|
23
9
|
var COMMENT_NODE = 8;
|
24
10
|
|
@@ -43,7 +29,7 @@ var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMA
|
|
43
29
|
// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit
|
44
30
|
// therefore there is no reason to test anymore for other vendor prefixes:
|
45
31
|
// http://caniuse.com/#search=transition
|
46
|
-
if (
|
32
|
+
if ((window.ontransitionend === undefined) && (window.onwebkittransitionend !== undefined)) {
|
47
33
|
CSS_PREFIX = '-webkit-';
|
48
34
|
TRANSITION_PROP = 'WebkitTransition';
|
49
35
|
TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend';
|
@@ -52,7 +38,7 @@ if (isUndefined(window.ontransitionend) && isDefined(window.onwebkittransitionen
|
|
52
38
|
TRANSITIONEND_EVENT = 'transitionend';
|
53
39
|
}
|
54
40
|
|
55
|
-
if (
|
41
|
+
if ((window.onanimationend === undefined) && (window.onwebkitanimationend !== undefined)) {
|
56
42
|
CSS_PREFIX = '-webkit-';
|
57
43
|
ANIMATION_PROP = 'WebkitAnimation';
|
58
44
|
ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend';
|
@@ -74,14 +60,10 @@ var ANIMATION_DURATION_PROP = ANIMATION_PROP + DURATION_KEY;
|
|
74
60
|
var TRANSITION_DELAY_PROP = TRANSITION_PROP + DELAY_KEY;
|
75
61
|
var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY;
|
76
62
|
|
77
|
-
var isPromiseLike = function(p) {
|
78
|
-
return p && p.then ? true : false;
|
79
|
-
};
|
80
|
-
|
81
63
|
var ngMinErr = angular.$$minErr('ng');
|
82
64
|
function assertArg(arg, name, reason) {
|
83
65
|
if (!arg) {
|
84
|
-
throw ngMinErr('areq',
|
66
|
+
throw ngMinErr('areq', 'Argument \'{0}\' is {1}', (name || '?'), (reason || 'required'));
|
85
67
|
}
|
86
68
|
return arg;
|
87
69
|
}
|
@@ -132,8 +114,7 @@ function stripCommentsFromElement(element) {
|
|
132
114
|
if (element instanceof jqLite) {
|
133
115
|
switch (element.length) {
|
134
116
|
case 0:
|
135
|
-
return
|
136
|
-
break;
|
117
|
+
return element;
|
137
118
|
|
138
119
|
case 1:
|
139
120
|
// there is no point of stripping anything if the element
|
@@ -146,7 +127,6 @@ function stripCommentsFromElement(element) {
|
|
146
127
|
|
147
128
|
default:
|
148
129
|
return jqLite(extractElementNode(element));
|
149
|
-
break;
|
150
130
|
}
|
151
131
|
}
|
152
132
|
|
@@ -159,7 +139,7 @@ function extractElementNode(element) {
|
|
159
139
|
if (!element[0]) return element;
|
160
140
|
for (var i = 0; i < element.length; i++) {
|
161
141
|
var elm = element[i];
|
162
|
-
if (elm.nodeType
|
142
|
+
if (elm.nodeType === ELEMENT_NODE) {
|
163
143
|
return elm;
|
164
144
|
}
|
165
145
|
}
|
@@ -187,7 +167,7 @@ function applyAnimationClassesFactory($$jqLite) {
|
|
187
167
|
$$removeClass($$jqLite, element, options.removeClass);
|
188
168
|
options.removeClass = null;
|
189
169
|
}
|
190
|
-
}
|
170
|
+
};
|
191
171
|
}
|
192
172
|
|
193
173
|
function prepareAnimationOptions(options) {
|
@@ -290,10 +270,10 @@ function resolveElementClasses(existing, toAdd, toRemove) {
|
|
290
270
|
var prop, allow;
|
291
271
|
if (val === ADD_CLASS) {
|
292
272
|
prop = 'addClass';
|
293
|
-
allow = !existing[klass];
|
273
|
+
allow = !existing[klass] || existing[klass + REMOVE_CLASS_SUFFIX];
|
294
274
|
} else if (val === REMOVE_CLASS) {
|
295
275
|
prop = 'removeClass';
|
296
|
-
allow = existing[klass];
|
276
|
+
allow = existing[klass] || existing[klass + ADD_CLASS_SUFFIX];
|
297
277
|
}
|
298
278
|
if (allow) {
|
299
279
|
if (classes[prop].length) {
|
@@ -323,10 +303,10 @@ function resolveElementClasses(existing, toAdd, toRemove) {
|
|
323
303
|
}
|
324
304
|
|
325
305
|
function getDomNode(element) {
|
326
|
-
return (element instanceof
|
306
|
+
return (element instanceof jqLite) ? element[0] : element;
|
327
307
|
}
|
328
308
|
|
329
|
-
function applyGeneratedPreparationClasses(element, event, options) {
|
309
|
+
function applyGeneratedPreparationClasses($$jqLite, element, event, options) {
|
330
310
|
var classes = '';
|
331
311
|
if (event) {
|
332
312
|
classes = pendClasses(event, EVENT_CLASS_PREFIX, true);
|
@@ -354,15 +334,6 @@ function clearGeneratedClasses(element, options) {
|
|
354
334
|
}
|
355
335
|
}
|
356
336
|
|
357
|
-
function blockTransitions(node, duration) {
|
358
|
-
// we use a negative delay value since it performs blocking
|
359
|
-
// yet it doesn't kill any existing transitions running on the
|
360
|
-
// same element which makes this safe for class-based animations
|
361
|
-
var value = duration ? '-' + duration + 's' : '';
|
362
|
-
applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);
|
363
|
-
return [TRANSITION_DELAY_PROP, value];
|
364
|
-
}
|
365
|
-
|
366
337
|
function blockKeyframeAnimations(node, applyBlock) {
|
367
338
|
var value = applyBlock ? 'paused' : '';
|
368
339
|
var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY;
|
@@ -382,6 +353,17 @@ function concatWithSpace(a,b) {
|
|
382
353
|
return a + ' ' + b;
|
383
354
|
}
|
384
355
|
|
356
|
+
var helpers = {
|
357
|
+
blockTransitions: function(node, duration) {
|
358
|
+
// we use a negative delay value since it performs blocking
|
359
|
+
// yet it doesn't kill any existing transitions running on the
|
360
|
+
// same element which makes this safe for class-based animations
|
361
|
+
var value = duration ? '-' + duration + 's' : '';
|
362
|
+
applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);
|
363
|
+
return [TRANSITION_DELAY_PROP, value];
|
364
|
+
}
|
365
|
+
};
|
366
|
+
|
385
367
|
var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
|
386
368
|
var queue, cancelFn;
|
387
369
|
|
@@ -443,7 +425,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
|
|
443
425
|
* of the children's parents are currently animating. By default, when an element has an active `enter`, `leave`, or `move`
|
444
426
|
* (structural) animation, child elements that also have an active structural animation are not animated.
|
445
427
|
*
|
446
|
-
* Note that even if `
|
428
|
+
* Note that even if `ngAnimateChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).
|
447
429
|
*
|
448
430
|
*
|
449
431
|
* @param {string} ngAnimateChildren If the value is empty, `true` or `on`,
|
@@ -452,7 +434,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
|
|
452
434
|
* @example
|
453
435
|
* <example module="ngAnimateChildren" name="ngAnimateChildren" deps="angular-animate.js" animations="true">
|
454
436
|
<file name="index.html">
|
455
|
-
<div ng-controller="
|
437
|
+
<div ng-controller="MainController as main">
|
456
438
|
<label>Show container? <input type="checkbox" ng-model="main.enterElement" /></label>
|
457
439
|
<label>Animate children? <input type="checkbox" ng-model="main.animateChildren" /></label>
|
458
440
|
<hr>
|
@@ -502,7 +484,7 @@ var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
|
|
502
484
|
</file>
|
503
485
|
<file name="script.js">
|
504
486
|
angular.module('ngAnimateChildren', ['ngAnimate'])
|
505
|
-
.controller('
|
487
|
+
.controller('MainController', function MainController() {
|
506
488
|
this.animateChildren = false;
|
507
489
|
this.enterElement = false;
|
508
490
|
});
|
@@ -513,7 +495,7 @@ var $$AnimateChildrenDirective = ['$interpolate', function($interpolate) {
|
|
513
495
|
return {
|
514
496
|
link: function(scope, element, attrs) {
|
515
497
|
var val = attrs.ngAnimateChildren;
|
516
|
-
if (
|
498
|
+
if (isString(val) && val.length === 0) { //empty attribute
|
517
499
|
element.data(NG_ANIMATE_CHILDREN_DATA, true);
|
518
500
|
} else {
|
519
501
|
// Interpolate and set the value, so that it is available to
|
@@ -530,6 +512,8 @@ var $$AnimateChildrenDirective = ['$interpolate', function($interpolate) {
|
|
530
512
|
};
|
531
513
|
}];
|
532
514
|
|
515
|
+
/* exported $AnimateCssProvider */
|
516
|
+
|
533
517
|
var ANIMATE_TIMER_KEY = '$$animateCss';
|
534
518
|
|
535
519
|
/**
|
@@ -546,11 +530,11 @@ var ANIMATE_TIMER_KEY = '$$animateCss';
|
|
546
530
|
* Note that only browsers that support CSS transitions and/or keyframe animations are capable of
|
547
531
|
* rendering animations triggered via `$animateCss` (bad news for IE9 and lower).
|
548
532
|
*
|
549
|
-
* ##
|
533
|
+
* ## General Use
|
550
534
|
* Once again, `$animateCss` is designed to be used inside of a registered JavaScript animation that
|
551
535
|
* is powered by ngAnimate. It is possible to use `$animateCss` directly inside of a directive, however,
|
552
536
|
* any automatic control over cancelling animations and/or preventing animations from being run on
|
553
|
-
* child elements will not be handled by
|
537
|
+
* child elements will not be handled by AngularJS. For this to work as expected, please use `$animate` to
|
554
538
|
* trigger the animation and then setup a JavaScript animation that injects `$animateCss` to trigger
|
555
539
|
* the CSS animation.
|
556
540
|
*
|
@@ -747,7 +731,6 @@ var ANIMATE_TIMER_KEY = '$$animateCss';
|
|
747
731
|
* * `end` - This method will cancel the animation and remove all applied CSS classes and styles.
|
748
732
|
*/
|
749
733
|
var ONE_SECOND = 1000;
|
750
|
-
var BASE_TEN = 10;
|
751
734
|
|
752
735
|
var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;
|
753
736
|
var CLOSING_TIME_BUFFER = 1.5;
|
@@ -809,7 +792,7 @@ function parseMaxTime(str) {
|
|
809
792
|
forEach(values, function(value) {
|
810
793
|
// it's always safe to consider only second values and omit `ms` values since
|
811
794
|
// getComputedStyle will always handle the conversion for us
|
812
|
-
if (value.charAt(value.length - 1)
|
795
|
+
if (value.charAt(value.length - 1) === 's') {
|
813
796
|
value = value.substring(0, value.length - 1);
|
814
797
|
}
|
815
798
|
value = parseFloat(value) || 0;
|
@@ -833,33 +816,6 @@ function getCssTransitionDurationStyle(duration, applyOnlyDuration) {
|
|
833
816
|
return [style, value];
|
834
817
|
}
|
835
818
|
|
836
|
-
function createLocalCacheLookup() {
|
837
|
-
var cache = Object.create(null);
|
838
|
-
return {
|
839
|
-
flush: function() {
|
840
|
-
cache = Object.create(null);
|
841
|
-
},
|
842
|
-
|
843
|
-
count: function(key) {
|
844
|
-
var entry = cache[key];
|
845
|
-
return entry ? entry.total : 0;
|
846
|
-
},
|
847
|
-
|
848
|
-
get: function(key) {
|
849
|
-
var entry = cache[key];
|
850
|
-
return entry && entry.value;
|
851
|
-
},
|
852
|
-
|
853
|
-
put: function(key, value) {
|
854
|
-
if (!cache[key]) {
|
855
|
-
cache[key] = { total: 1, value: value };
|
856
|
-
} else {
|
857
|
-
cache[key].total++;
|
858
|
-
}
|
859
|
-
}
|
860
|
-
};
|
861
|
-
}
|
862
|
-
|
863
819
|
// we do not reassign an already present style value since
|
864
820
|
// if we detect the style property value again we may be
|
865
821
|
// detecting styles that were added via the `from` styles.
|
@@ -877,27 +833,17 @@ function registerRestorableStyles(backup, node, properties) {
|
|
877
833
|
});
|
878
834
|
}
|
879
835
|
|
880
|
-
var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
881
|
-
var gcsLookup = createLocalCacheLookup();
|
882
|
-
var gcsStaggerLookup = createLocalCacheLookup();
|
836
|
+
var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animateProvider) {
|
883
837
|
|
884
|
-
this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout',
|
838
|
+
this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout', '$$animateCache',
|
885
839
|
'$$forceReflow', '$sniffer', '$$rAFScheduler', '$$animateQueue',
|
886
|
-
function($window, $$jqLite, $$AnimateRunner, $timeout,
|
840
|
+
function($window, $$jqLite, $$AnimateRunner, $timeout, $$animateCache,
|
887
841
|
$$forceReflow, $sniffer, $$rAFScheduler, $$animateQueue) {
|
888
842
|
|
889
843
|
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
|
890
844
|
|
891
|
-
|
892
|
-
|
893
|
-
var KEY = "$$ngAnimateParentKey";
|
894
|
-
var parentNode = node.parentNode;
|
895
|
-
var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter);
|
896
|
-
return parentID + '-' + node.getAttribute('class') + '-' + extraClasses;
|
897
|
-
}
|
898
|
-
|
899
|
-
function computeCachedCssStyles(node, className, cacheKey, properties) {
|
900
|
-
var timings = gcsLookup.get(cacheKey);
|
845
|
+
function computeCachedCssStyles(node, className, cacheKey, allowNoDuration, properties) {
|
846
|
+
var timings = $$animateCache.get(cacheKey);
|
901
847
|
|
902
848
|
if (!timings) {
|
903
849
|
timings = computeCssStyles($window, node, properties);
|
@@ -906,20 +852,26 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
906
852
|
}
|
907
853
|
}
|
908
854
|
|
855
|
+
// if a css animation has no duration we
|
856
|
+
// should mark that so that repeated addClass/removeClass calls are skipped
|
857
|
+
var hasDuration = allowNoDuration || (timings.transitionDuration > 0 || timings.animationDuration > 0);
|
858
|
+
|
909
859
|
// we keep putting this in multiple times even though the value and the cacheKey are the same
|
910
860
|
// because we're keeping an internal tally of how many duplicate animations are detected.
|
911
|
-
|
861
|
+
$$animateCache.put(cacheKey, timings, hasDuration);
|
862
|
+
|
912
863
|
return timings;
|
913
864
|
}
|
914
865
|
|
915
866
|
function computeCachedCssStaggerStyles(node, className, cacheKey, properties) {
|
916
867
|
var stagger;
|
868
|
+
var staggerCacheKey = 'stagger-' + cacheKey;
|
917
869
|
|
918
870
|
// if we have one or more existing matches of matching elements
|
919
871
|
// containing the same parent + CSS styles (which is how cacheKey works)
|
920
872
|
// then staggering is possible
|
921
|
-
if (
|
922
|
-
stagger =
|
873
|
+
if ($$animateCache.count(cacheKey) > 0) {
|
874
|
+
stagger = $$animateCache.get(staggerCacheKey);
|
923
875
|
|
924
876
|
if (!stagger) {
|
925
877
|
var staggerClassName = pendClasses(className, '-stagger');
|
@@ -934,20 +886,18 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
934
886
|
|
935
887
|
$$jqLite.removeClass(node, staggerClassName);
|
936
888
|
|
937
|
-
|
889
|
+
$$animateCache.put(staggerCacheKey, stagger, true);
|
938
890
|
}
|
939
891
|
}
|
940
892
|
|
941
893
|
return stagger || {};
|
942
894
|
}
|
943
895
|
|
944
|
-
var cancelLastRAFRequest;
|
945
896
|
var rafWaitQueue = [];
|
946
897
|
function waitUntilQuiet(callback) {
|
947
898
|
rafWaitQueue.push(callback);
|
948
899
|
$$rAFScheduler.waitUntilQuiet(function() {
|
949
|
-
|
950
|
-
gcsStaggerLookup.flush();
|
900
|
+
$$animateCache.flush();
|
951
901
|
|
952
902
|
// DO NOT REMOVE THIS LINE OR REFACTOR OUT THE `pageWidth` variable.
|
953
903
|
// PLEASE EXAMINE THE `$$forceReflow` service to understand why.
|
@@ -962,8 +912,8 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
962
912
|
});
|
963
913
|
}
|
964
914
|
|
965
|
-
function computeTimings(node, className, cacheKey) {
|
966
|
-
var timings = computeCachedCssStyles(node, className, cacheKey, DETECT_CSS_PROPERTIES);
|
915
|
+
function computeTimings(node, className, cacheKey, allowNoDuration) {
|
916
|
+
var timings = computeCachedCssStyles(node, className, cacheKey, allowNoDuration, DETECT_CSS_PROPERTIES);
|
967
917
|
var aD = timings.animationDelay;
|
968
918
|
var tD = timings.transitionDelay;
|
969
919
|
timings.maxDelay = aD && tD
|
@@ -1050,7 +1000,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1050
1000
|
|
1051
1001
|
var preparationClasses = [structuralClassName, addRemoveClassName].join(' ').trim();
|
1052
1002
|
var fullClassName = classes + ' ' + preparationClasses;
|
1053
|
-
var activeClasses = pendClasses(preparationClasses, ACTIVE_CLASS_SUFFIX);
|
1054
1003
|
var hasToStyles = styles.to && Object.keys(styles.to).length > 0;
|
1055
1004
|
var containsKeyframeAnimation = (options.keyframeStyle || '').length > 0;
|
1056
1005
|
|
@@ -1063,7 +1012,12 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1063
1012
|
return closeAndReturnNoopAnimator();
|
1064
1013
|
}
|
1065
1014
|
|
1066
|
-
var cacheKey,
|
1015
|
+
var stagger, cacheKey = $$animateCache.cacheKey(node, method, options.addClass, options.removeClass);
|
1016
|
+
if ($$animateCache.containsCachedAnimationWithoutDuration(cacheKey)) {
|
1017
|
+
preparationClasses = null;
|
1018
|
+
return closeAndReturnNoopAnimator();
|
1019
|
+
}
|
1020
|
+
|
1067
1021
|
if (options.stagger > 0) {
|
1068
1022
|
var staggerVal = parseFloat(options.stagger);
|
1069
1023
|
stagger = {
|
@@ -1073,7 +1027,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1073
1027
|
animationDuration: 0
|
1074
1028
|
};
|
1075
1029
|
} else {
|
1076
|
-
cacheKey = gcsHashFn(node, fullClassName);
|
1077
1030
|
stagger = computeCachedCssStaggerStyles(node, preparationClasses, cacheKey, DETECT_STAGGER_CSS_PROPERTIES);
|
1078
1031
|
}
|
1079
1032
|
|
@@ -1107,7 +1060,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1107
1060
|
var itemIndex = stagger
|
1108
1061
|
? options.staggerIndex >= 0
|
1109
1062
|
? options.staggerIndex
|
1110
|
-
:
|
1063
|
+
: $$animateCache.count(cacheKey)
|
1111
1064
|
: 0;
|
1112
1065
|
|
1113
1066
|
var isFirst = itemIndex === 0;
|
@@ -1119,10 +1072,10 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1119
1072
|
// that if there is no transition defined then nothing will happen and this will also allow
|
1120
1073
|
// other transitions to be stacked on top of each other without any chopping them out.
|
1121
1074
|
if (isFirst && !options.skipBlocking) {
|
1122
|
-
blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);
|
1075
|
+
helpers.blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);
|
1123
1076
|
}
|
1124
1077
|
|
1125
|
-
var timings = computeTimings(node, fullClassName, cacheKey);
|
1078
|
+
var timings = computeTimings(node, fullClassName, cacheKey, !isStructural);
|
1126
1079
|
var relativeDelay = timings.maxDelay;
|
1127
1080
|
maxDelay = Math.max(relativeDelay, 0);
|
1128
1081
|
maxDuration = timings.maxDuration;
|
@@ -1130,7 +1083,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1130
1083
|
var flags = {};
|
1131
1084
|
flags.hasTransitions = timings.transitionDuration > 0;
|
1132
1085
|
flags.hasAnimations = timings.animationDuration > 0;
|
1133
|
-
flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty
|
1086
|
+
flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty === 'all';
|
1134
1087
|
flags.applyTransitionDuration = hasToStyles && (
|
1135
1088
|
(flags.hasTransitions && !flags.hasTransitionAll)
|
1136
1089
|
|| (flags.hasAnimations && !flags.hasTransitions));
|
@@ -1160,9 +1113,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1160
1113
|
return closeAndReturnNoopAnimator();
|
1161
1114
|
}
|
1162
1115
|
|
1116
|
+
var activeClasses = pendClasses(preparationClasses, ACTIVE_CLASS_SUFFIX);
|
1117
|
+
|
1163
1118
|
if (options.delay != null) {
|
1164
1119
|
var delayStyle;
|
1165
|
-
if (typeof options.delay !==
|
1120
|
+
if (typeof options.delay !== 'boolean') {
|
1166
1121
|
delayStyle = parseFloat(options.delay);
|
1167
1122
|
// number in options.delay means we have to recalculate the delay for the closing timeout
|
1168
1123
|
maxDelay = Math.max(delayStyle, 0);
|
@@ -1203,7 +1158,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1203
1158
|
if (flags.blockTransition || flags.blockKeyframeAnimation) {
|
1204
1159
|
applyBlocking(maxDuration);
|
1205
1160
|
} else if (!options.skipBlocking) {
|
1206
|
-
blockTransitions(node, false);
|
1161
|
+
helpers.blockTransitions(node, false);
|
1207
1162
|
}
|
1208
1163
|
|
1209
1164
|
// TODO(matsko): for 1.5 change this code to have an animator object for better debugging
|
@@ -1240,20 +1195,23 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1240
1195
|
close(true);
|
1241
1196
|
}
|
1242
1197
|
|
1243
|
-
function close(rejected) {
|
1198
|
+
function close(rejected) {
|
1244
1199
|
// if the promise has been called already then we shouldn't close
|
1245
1200
|
// the animation again
|
1246
1201
|
if (animationClosed || (animationCompleted && animationPaused)) return;
|
1247
1202
|
animationClosed = true;
|
1248
1203
|
animationPaused = false;
|
1249
1204
|
|
1250
|
-
if (!options.$$skipPreparationClasses) {
|
1205
|
+
if (preparationClasses && !options.$$skipPreparationClasses) {
|
1251
1206
|
$$jqLite.removeClass(element, preparationClasses);
|
1252
1207
|
}
|
1253
|
-
|
1208
|
+
|
1209
|
+
if (activeClasses) {
|
1210
|
+
$$jqLite.removeClass(element, activeClasses);
|
1211
|
+
}
|
1254
1212
|
|
1255
1213
|
blockKeyframeAnimations(node, false);
|
1256
|
-
blockTransitions(node, false);
|
1214
|
+
helpers.blockTransitions(node, false);
|
1257
1215
|
|
1258
1216
|
forEach(temporaryStyles, function(entry) {
|
1259
1217
|
// There is only one way to remove inline style properties entirely from elements.
|
@@ -1267,8 +1225,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1267
1225
|
|
1268
1226
|
if (Object.keys(restoreStyles).length) {
|
1269
1227
|
forEach(restoreStyles, function(value, prop) {
|
1270
|
-
|
1271
|
-
|
1228
|
+
if (value) {
|
1229
|
+
node.style.setProperty(prop, value);
|
1230
|
+
} else {
|
1231
|
+
node.style.removeProperty(prop);
|
1232
|
+
}
|
1272
1233
|
});
|
1273
1234
|
}
|
1274
1235
|
|
@@ -1301,7 +1262,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1301
1262
|
|
1302
1263
|
function applyBlocking(duration) {
|
1303
1264
|
if (flags.blockTransition) {
|
1304
|
-
blockTransitions(node, duration);
|
1265
|
+
helpers.blockTransitions(node, duration);
|
1305
1266
|
}
|
1306
1267
|
|
1307
1268
|
if (flags.blockKeyframeAnimation) {
|
@@ -1332,6 +1293,12 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1332
1293
|
event.stopPropagation();
|
1333
1294
|
var ev = event.originalEvent || event;
|
1334
1295
|
|
1296
|
+
if (ev.target !== node) {
|
1297
|
+
// Since TransitionEvent / AnimationEvent bubble up,
|
1298
|
+
// we have to ignore events by finished child animations
|
1299
|
+
return;
|
1300
|
+
}
|
1301
|
+
|
1335
1302
|
// we now always use `Date.now()` due to the recent changes with
|
1336
1303
|
// event.timeStamp in Firefox, Webkit and Chrome (see #13494 for more info)
|
1337
1304
|
var timeStamp = ev.$manualTimeStamp || Date.now();
|
@@ -1371,9 +1338,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1371
1338
|
animationPaused = !playAnimation;
|
1372
1339
|
if (timings.animationDuration) {
|
1373
1340
|
var value = blockKeyframeAnimations(node, animationPaused);
|
1374
|
-
animationPaused
|
1375
|
-
|
1376
|
-
|
1341
|
+
if (animationPaused) {
|
1342
|
+
temporaryStyles.push(value);
|
1343
|
+
} else {
|
1344
|
+
removeFromArray(temporaryStyles, value);
|
1345
|
+
}
|
1377
1346
|
}
|
1378
1347
|
} else if (animationPaused && playAnimation) {
|
1379
1348
|
animationPaused = false;
|
@@ -1422,10 +1391,10 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1422
1391
|
$$jqLite.addClass(element, activeClasses);
|
1423
1392
|
|
1424
1393
|
if (flags.recalculateTimingStyles) {
|
1425
|
-
fullClassName = node.
|
1426
|
-
cacheKey =
|
1394
|
+
fullClassName = node.getAttribute('class') + ' ' + preparationClasses;
|
1395
|
+
cacheKey = $$animateCache.cacheKey(node, method, options.addClass, options.removeClass);
|
1427
1396
|
|
1428
|
-
timings = computeTimings(node, fullClassName, cacheKey);
|
1397
|
+
timings = computeTimings(node, fullClassName, cacheKey, false);
|
1429
1398
|
relativeDelay = timings.maxDelay;
|
1430
1399
|
maxDelay = Math.max(relativeDelay, 0);
|
1431
1400
|
maxDuration = timings.maxDuration;
|
@@ -1440,7 +1409,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1440
1409
|
}
|
1441
1410
|
|
1442
1411
|
if (flags.applyAnimationDelay) {
|
1443
|
-
relativeDelay = typeof options.delay !==
|
1412
|
+
relativeDelay = typeof options.delay !== 'boolean' && truthyTimingValue(options.delay)
|
1444
1413
|
? parseFloat(options.delay)
|
1445
1414
|
: relativeDelay;
|
1446
1415
|
|
@@ -1532,7 +1501,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
|
|
1532
1501
|
}];
|
1533
1502
|
}];
|
1534
1503
|
|
1535
|
-
var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) {
|
1504
|
+
var $$AnimateCssDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
|
1536
1505
|
$$animationProvider.drivers.push('$$animateCssDriver');
|
1537
1506
|
|
1538
1507
|
var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim';
|
@@ -1561,8 +1530,6 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
|
|
1561
1530
|
isDocumentFragment(rootNode) || bodyNode.contains(rootNode) ? rootNode : bodyNode
|
1562
1531
|
);
|
1563
1532
|
|
1564
|
-
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
|
1565
|
-
|
1566
1533
|
return function initDriverFn(animationDetails) {
|
1567
1534
|
return animationDetails.from && animationDetails.to
|
1568
1535
|
? prepareFromToAnchorAnimation(animationDetails.from,
|
@@ -1804,7 +1771,7 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro
|
|
1804
1771
|
// TODO(matsko): add documentation
|
1805
1772
|
// by the time...
|
1806
1773
|
|
1807
|
-
var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
1774
|
+
var $$AnimateJsProvider = ['$animateProvider', /** @this */ function($animateProvider) {
|
1808
1775
|
this.$get = ['$injector', '$$AnimateRunner', '$$jqLite',
|
1809
1776
|
function($injector, $$AnimateRunner, $$jqLite) {
|
1810
1777
|
|
@@ -1843,7 +1810,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
|
1843
1810
|
var before, after;
|
1844
1811
|
if (animations.length) {
|
1845
1812
|
var afterFn, beforeFn;
|
1846
|
-
if (event
|
1813
|
+
if (event === 'leave') {
|
1847
1814
|
beforeFn = 'leave';
|
1848
1815
|
afterFn = 'afterLeave'; // TODO(matsko): get rid of this
|
1849
1816
|
} else {
|
@@ -2028,7 +1995,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
|
2028
1995
|
function packageAnimations(element, event, options, animations, fnName) {
|
2029
1996
|
var operations = groupEventedAnimations(element, event, options, animations, fnName);
|
2030
1997
|
if (operations.length === 0) {
|
2031
|
-
var a,b;
|
1998
|
+
var a, b;
|
2032
1999
|
if (fnName === 'beforeSetClass') {
|
2033
2000
|
a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass');
|
2034
2001
|
b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass');
|
@@ -2056,11 +2023,19 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
|
2056
2023
|
});
|
2057
2024
|
}
|
2058
2025
|
|
2059
|
-
runners.length
|
2026
|
+
if (runners.length) {
|
2027
|
+
$$AnimateRunner.all(runners, callback);
|
2028
|
+
} else {
|
2029
|
+
callback();
|
2030
|
+
}
|
2060
2031
|
|
2061
2032
|
return function endFn(reject) {
|
2062
2033
|
forEach(runners, function(runner) {
|
2063
|
-
|
2034
|
+
if (reject) {
|
2035
|
+
runner.cancel();
|
2036
|
+
} else {
|
2037
|
+
runner.end();
|
2038
|
+
}
|
2064
2039
|
});
|
2065
2040
|
};
|
2066
2041
|
};
|
@@ -2070,7 +2045,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
|
2070
2045
|
function lookupAnimations(classes) {
|
2071
2046
|
classes = isArray(classes) ? classes : classes.split(' ');
|
2072
2047
|
var matches = [], flagMap = {};
|
2073
|
-
for (var i=0; i < classes.length; i++) {
|
2048
|
+
for (var i = 0; i < classes.length; i++) {
|
2074
2049
|
var klass = classes[i],
|
2075
2050
|
animationFactory = $animateProvider.$$registeredAnimations[klass];
|
2076
2051
|
if (animationFactory && !flagMap[klass]) {
|
@@ -2083,7 +2058,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
|
|
2083
2058
|
}];
|
2084
2059
|
}];
|
2085
2060
|
|
2086
|
-
var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) {
|
2061
|
+
var $$AnimateJsDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {
|
2087
2062
|
$$animationProvider.drivers.push('$$animateJsDriver');
|
2088
2063
|
this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) {
|
2089
2064
|
return function initDriverFn(animationDetails) {
|
@@ -2145,7 +2120,7 @@ var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProv
|
|
2145
2120
|
|
2146
2121
|
var NG_ANIMATE_ATTR_NAME = 'data-ng-animate';
|
2147
2122
|
var NG_ANIMATE_PIN_DATA = '$ngAnimatePin';
|
2148
|
-
var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
2123
|
+
var $$AnimateQueueProvider = ['$animateProvider', /** @this */ function($animateProvider) {
|
2149
2124
|
var PRE_DIGEST_STATE = 1;
|
2150
2125
|
var RUNNING_STATE = 2;
|
2151
2126
|
var ONE_SPACE = ' ';
|
@@ -2156,6 +2131,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2156
2131
|
join: []
|
2157
2132
|
};
|
2158
2133
|
|
2134
|
+
function getEventData(options) {
|
2135
|
+
return {
|
2136
|
+
addClass: options.addClass,
|
2137
|
+
removeClass: options.removeClass,
|
2138
|
+
from: options.from,
|
2139
|
+
to: options.to
|
2140
|
+
};
|
2141
|
+
}
|
2142
|
+
|
2159
2143
|
function makeTruthyCssClassMap(classString) {
|
2160
2144
|
if (!classString) {
|
2161
2145
|
return null;
|
@@ -2179,9 +2163,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2179
2163
|
}
|
2180
2164
|
}
|
2181
2165
|
|
2182
|
-
function isAllowed(ruleType,
|
2166
|
+
function isAllowed(ruleType, currentAnimation, previousAnimation) {
|
2183
2167
|
return rules[ruleType].some(function(fn) {
|
2184
|
-
return fn(
|
2168
|
+
return fn(currentAnimation, previousAnimation);
|
2185
2169
|
});
|
2186
2170
|
}
|
2187
2171
|
|
@@ -2191,40 +2175,40 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2191
2175
|
return and ? a && b : a || b;
|
2192
2176
|
}
|
2193
2177
|
|
2194
|
-
rules.join.push(function(
|
2178
|
+
rules.join.push(function(newAnimation, currentAnimation) {
|
2195
2179
|
// if the new animation is class-based then we can just tack that on
|
2196
2180
|
return !newAnimation.structural && hasAnimationClasses(newAnimation);
|
2197
2181
|
});
|
2198
2182
|
|
2199
|
-
rules.skip.push(function(
|
2183
|
+
rules.skip.push(function(newAnimation, currentAnimation) {
|
2200
2184
|
// there is no need to animate anything if no classes are being added and
|
2201
2185
|
// there is no structural animation that will be triggered
|
2202
2186
|
return !newAnimation.structural && !hasAnimationClasses(newAnimation);
|
2203
2187
|
});
|
2204
2188
|
|
2205
|
-
rules.skip.push(function(
|
2189
|
+
rules.skip.push(function(newAnimation, currentAnimation) {
|
2206
2190
|
// why should we trigger a new structural animation if the element will
|
2207
2191
|
// be removed from the DOM anyway?
|
2208
|
-
return currentAnimation.event
|
2192
|
+
return currentAnimation.event === 'leave' && newAnimation.structural;
|
2209
2193
|
});
|
2210
2194
|
|
2211
|
-
rules.skip.push(function(
|
2195
|
+
rules.skip.push(function(newAnimation, currentAnimation) {
|
2212
2196
|
// if there is an ongoing current animation then don't even bother running the class-based animation
|
2213
2197
|
return currentAnimation.structural && currentAnimation.state === RUNNING_STATE && !newAnimation.structural;
|
2214
2198
|
});
|
2215
2199
|
|
2216
|
-
rules.cancel.push(function(
|
2200
|
+
rules.cancel.push(function(newAnimation, currentAnimation) {
|
2217
2201
|
// there can never be two structural animations running at the same time
|
2218
2202
|
return currentAnimation.structural && newAnimation.structural;
|
2219
2203
|
});
|
2220
2204
|
|
2221
|
-
rules.cancel.push(function(
|
2205
|
+
rules.cancel.push(function(newAnimation, currentAnimation) {
|
2222
2206
|
// if the previous animation is already running, but the new animation will
|
2223
2207
|
// be triggered, but the new animation is structural
|
2224
2208
|
return currentAnimation.state === RUNNING_STATE && newAnimation.structural;
|
2225
2209
|
});
|
2226
2210
|
|
2227
|
-
rules.cancel.push(function(
|
2211
|
+
rules.cancel.push(function(newAnimation, currentAnimation) {
|
2228
2212
|
// cancel the animation if classes added / removed in both animation cancel each other out,
|
2229
2213
|
// but only if the current animation isn't structural
|
2230
2214
|
|
@@ -2243,15 +2227,21 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2243
2227
|
return hasMatchingClasses(nA, cR) || hasMatchingClasses(nR, cA);
|
2244
2228
|
});
|
2245
2229
|
|
2246
|
-
this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$
|
2230
|
+
this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$Map',
|
2247
2231
|
'$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow',
|
2248
|
-
|
2249
|
-
|
2232
|
+
'$$isDocumentHidden',
|
2233
|
+
function($$rAF, $rootScope, $rootElement, $document, $$Map,
|
2234
|
+
$$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow,
|
2235
|
+
$$isDocumentHidden) {
|
2250
2236
|
|
2251
|
-
var activeAnimationsLookup = new $$
|
2252
|
-
var disabledElementsLookup = new $$
|
2237
|
+
var activeAnimationsLookup = new $$Map();
|
2238
|
+
var disabledElementsLookup = new $$Map();
|
2253
2239
|
var animationsEnabled = null;
|
2254
2240
|
|
2241
|
+
function removeFromDisabledElementsLookup(evt) {
|
2242
|
+
disabledElementsLookup.delete(evt.target);
|
2243
|
+
}
|
2244
|
+
|
2255
2245
|
function postDigestTaskFactory() {
|
2256
2246
|
var postDigestCalled = false;
|
2257
2247
|
return function(fn) {
|
@@ -2299,16 +2289,19 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2299
2289
|
}
|
2300
2290
|
);
|
2301
2291
|
|
2302
|
-
var callbackRegistry =
|
2292
|
+
var callbackRegistry = Object.create(null);
|
2303
2293
|
|
2304
|
-
// remember that the classNameFilter
|
2305
|
-
// stage therefore we can optimize here and setup
|
2294
|
+
// remember that the `customFilter`/`classNameFilter` are set during the
|
2295
|
+
// provider/config stage therefore we can optimize here and setup helper functions
|
2296
|
+
var customFilter = $animateProvider.customFilter();
|
2306
2297
|
var classNameFilter = $animateProvider.classNameFilter();
|
2307
|
-
var
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2298
|
+
var returnTrue = function() { return true; };
|
2299
|
+
|
2300
|
+
var isAnimatableByFilter = customFilter || returnTrue;
|
2301
|
+
var isAnimatableClassName = !classNameFilter ? returnTrue : function(node, options) {
|
2302
|
+
var className = [node.getAttribute('class'), options.addClass, options.removeClass].join(' ');
|
2303
|
+
return classNameFilter.test(className);
|
2304
|
+
};
|
2312
2305
|
|
2313
2306
|
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
|
2314
2307
|
|
@@ -2317,16 +2310,12 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2317
2310
|
}
|
2318
2311
|
|
2319
2312
|
// IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259.
|
2320
|
-
var contains = window.Node.prototype.contains || function(arg) {
|
2321
|
-
//
|
2313
|
+
var contains = window.Node.prototype.contains || /** @this */ function(arg) {
|
2314
|
+
// eslint-disable-next-line no-bitwise
|
2322
2315
|
return this === arg || !!(this.compareDocumentPosition(arg) & 16);
|
2323
|
-
// jshint bitwise: true
|
2324
2316
|
};
|
2325
2317
|
|
2326
|
-
function findCallbacks(
|
2327
|
-
var targetNode = getDomNode(element);
|
2328
|
-
var targetParentNode = getDomNode(parent);
|
2329
|
-
|
2318
|
+
function findCallbacks(targetParentNode, targetNode, event) {
|
2330
2319
|
var matches = [];
|
2331
2320
|
var entries = callbackRegistry[event];
|
2332
2321
|
if (entries) {
|
@@ -2351,11 +2340,11 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2351
2340
|
});
|
2352
2341
|
}
|
2353
2342
|
|
2354
|
-
function cleanupEventListeners(phase,
|
2355
|
-
if (phase === 'close' && !
|
2343
|
+
function cleanupEventListeners(phase, node) {
|
2344
|
+
if (phase === 'close' && !node.parentNode) {
|
2356
2345
|
// If the element is not attached to a parentNode, it has been removed by
|
2357
2346
|
// the domOperation, and we can safely remove the event callbacks
|
2358
|
-
$animate.off(
|
2347
|
+
$animate.off(node);
|
2359
2348
|
}
|
2360
2349
|
}
|
2361
2350
|
|
@@ -2382,7 +2371,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2382
2371
|
},
|
2383
2372
|
|
2384
2373
|
off: function(event, container, callback) {
|
2385
|
-
if (arguments.length === 1 && !
|
2374
|
+
if (arguments.length === 1 && !isString(arguments[0])) {
|
2386
2375
|
container = arguments[0];
|
2387
2376
|
for (var eventType in callbackRegistry) {
|
2388
2377
|
callbackRegistry[eventType] = filterFromRegistry(callbackRegistry[eventType], container);
|
@@ -2430,14 +2419,18 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2430
2419
|
bool = animationsEnabled = !!element;
|
2431
2420
|
} else {
|
2432
2421
|
var node = getDomNode(element);
|
2433
|
-
var recordExists = disabledElementsLookup.get(node);
|
2434
2422
|
|
2435
2423
|
if (argCount === 1) {
|
2436
2424
|
// (element) - Element getter
|
2437
|
-
bool = !
|
2425
|
+
bool = !disabledElementsLookup.get(node);
|
2438
2426
|
} else {
|
2439
2427
|
// (element, bool) - Element setter
|
2440
|
-
disabledElementsLookup.
|
2428
|
+
if (!disabledElementsLookup.has(node)) {
|
2429
|
+
// The element is added to the map for the first time.
|
2430
|
+
// Create a listener to remove it on `$destroy` (to avoid memory leak).
|
2431
|
+
jqLite(element).on('$destroy', removeFromDisabledElementsLookup);
|
2432
|
+
}
|
2433
|
+
disabledElementsLookup.set(node, !bool);
|
2441
2434
|
}
|
2442
2435
|
}
|
2443
2436
|
}
|
@@ -2448,18 +2441,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2448
2441
|
|
2449
2442
|
return $animate;
|
2450
2443
|
|
2451
|
-
function queueAnimation(
|
2444
|
+
function queueAnimation(originalElement, event, initialOptions) {
|
2452
2445
|
// we always make a copy of the options since
|
2453
2446
|
// there should never be any side effects on
|
2454
2447
|
// the input data when running `$animateCss`.
|
2455
2448
|
var options = copy(initialOptions);
|
2456
2449
|
|
2457
|
-
var
|
2458
|
-
|
2459
|
-
|
2460
|
-
node = getDomNode(element);
|
2461
|
-
parent = element.parent();
|
2462
|
-
}
|
2450
|
+
var element = stripCommentsFromElement(originalElement);
|
2451
|
+
var node = getDomNode(element);
|
2452
|
+
var parentNode = node && node.parentNode;
|
2463
2453
|
|
2464
2454
|
options = prepareAnimationOptions(options);
|
2465
2455
|
|
@@ -2494,49 +2484,45 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2494
2484
|
options.to = null;
|
2495
2485
|
}
|
2496
2486
|
|
2497
|
-
//
|
2498
|
-
// a
|
2499
|
-
//
|
2500
|
-
if (!
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2504
|
-
|
2505
|
-
var className = [node.className, options.addClass, options.removeClass].join(' ');
|
2506
|
-
if (!isAnimatableClassName(className)) {
|
2487
|
+
// If animations are hard-disabled for the whole application there is no need to continue.
|
2488
|
+
// There are also situations where a directive issues an animation for a jqLite wrapper that
|
2489
|
+
// contains only comment nodes. In this case, there is no way we can perform an animation.
|
2490
|
+
if (!animationsEnabled ||
|
2491
|
+
!node ||
|
2492
|
+
!isAnimatableByFilter(node, event, initialOptions) ||
|
2493
|
+
!isAnimatableClassName(node, options)) {
|
2507
2494
|
close();
|
2508
2495
|
return runner;
|
2509
2496
|
}
|
2510
2497
|
|
2511
2498
|
var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0;
|
2512
2499
|
|
2513
|
-
var documentHidden =
|
2500
|
+
var documentHidden = $$isDocumentHidden();
|
2514
2501
|
|
2515
|
-
//
|
2516
|
-
//
|
2517
|
-
// past this point if not enabled
|
2502
|
+
// This is a hard disable of all animations the element itself, therefore there is no need to
|
2503
|
+
// continue further past this point if not enabled
|
2518
2504
|
// Animations are also disabled if the document is currently hidden (page is not visible
|
2519
2505
|
// to the user), because browsers slow down or do not flush calls to requestAnimationFrame
|
2520
|
-
var skipAnimations =
|
2506
|
+
var skipAnimations = documentHidden || disabledElementsLookup.get(node);
|
2521
2507
|
var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {};
|
2522
2508
|
var hasExistingAnimation = !!existingAnimation.state;
|
2523
2509
|
|
2524
2510
|
// there is no point in traversing the same collection of parent ancestors if a followup
|
2525
2511
|
// animation will be run on the same element that already did all that checking work
|
2526
|
-
if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state
|
2527
|
-
skipAnimations = !areAnimationsAllowed(
|
2512
|
+
if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state !== PRE_DIGEST_STATE)) {
|
2513
|
+
skipAnimations = !areAnimationsAllowed(node, parentNode, event);
|
2528
2514
|
}
|
2529
2515
|
|
2530
2516
|
if (skipAnimations) {
|
2531
2517
|
// Callbacks should fire even if the document is hidden (regression fix for issue #14120)
|
2532
|
-
if (documentHidden) notifyProgress(runner, event, 'start');
|
2518
|
+
if (documentHidden) notifyProgress(runner, event, 'start', getEventData(options));
|
2533
2519
|
close();
|
2534
|
-
if (documentHidden) notifyProgress(runner, event, 'close');
|
2520
|
+
if (documentHidden) notifyProgress(runner, event, 'close', getEventData(options));
|
2535
2521
|
return runner;
|
2536
2522
|
}
|
2537
2523
|
|
2538
2524
|
if (isStructural) {
|
2539
|
-
closeChildAnimations(
|
2525
|
+
closeChildAnimations(node);
|
2540
2526
|
}
|
2541
2527
|
|
2542
2528
|
var newAnimation = {
|
@@ -2551,7 +2537,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2551
2537
|
};
|
2552
2538
|
|
2553
2539
|
if (hasExistingAnimation) {
|
2554
|
-
var skipAnimationFlag = isAllowed('skip',
|
2540
|
+
var skipAnimationFlag = isAllowed('skip', newAnimation, existingAnimation);
|
2555
2541
|
if (skipAnimationFlag) {
|
2556
2542
|
if (existingAnimation.state === RUNNING_STATE) {
|
2557
2543
|
close();
|
@@ -2561,7 +2547,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2561
2547
|
return existingAnimation.runner;
|
2562
2548
|
}
|
2563
2549
|
}
|
2564
|
-
var cancelAnimationFlag = isAllowed('cancel',
|
2550
|
+
var cancelAnimationFlag = isAllowed('cancel', newAnimation, existingAnimation);
|
2565
2551
|
if (cancelAnimationFlag) {
|
2566
2552
|
if (existingAnimation.state === RUNNING_STATE) {
|
2567
2553
|
// this will end the animation right away and it is safe
|
@@ -2583,12 +2569,12 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2583
2569
|
// a joined animation means that this animation will take over the existing one
|
2584
2570
|
// so an example would involve a leave animation taking over an enter. Then when
|
2585
2571
|
// the postDigest kicks in the enter will be ignored.
|
2586
|
-
var joinAnimationFlag = isAllowed('join',
|
2572
|
+
var joinAnimationFlag = isAllowed('join', newAnimation, existingAnimation);
|
2587
2573
|
if (joinAnimationFlag) {
|
2588
2574
|
if (existingAnimation.state === RUNNING_STATE) {
|
2589
2575
|
normalizeAnimationDetails(element, newAnimation);
|
2590
2576
|
} else {
|
2591
|
-
applyGeneratedPreparationClasses(element, isStructural ? event : null, options);
|
2577
|
+
applyGeneratedPreparationClasses($$jqLite, element, isStructural ? event : null, options);
|
2592
2578
|
|
2593
2579
|
event = newAnimation.event = existingAnimation.event;
|
2594
2580
|
options = mergeAnimationDetails(element, existingAnimation, newAnimation);
|
@@ -2617,7 +2603,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2617
2603
|
|
2618
2604
|
if (!isValidAnimation) {
|
2619
2605
|
close();
|
2620
|
-
clearElementAnimationState(
|
2606
|
+
clearElementAnimationState(node);
|
2621
2607
|
return runner;
|
2622
2608
|
}
|
2623
2609
|
|
@@ -2625,9 +2611,18 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2625
2611
|
var counter = (existingAnimation.counter || 0) + 1;
|
2626
2612
|
newAnimation.counter = counter;
|
2627
2613
|
|
2628
|
-
markElementAnimationState(
|
2614
|
+
markElementAnimationState(node, PRE_DIGEST_STATE, newAnimation);
|
2629
2615
|
|
2630
2616
|
$rootScope.$$postDigest(function() {
|
2617
|
+
// It is possible that the DOM nodes inside `originalElement` have been replaced. This can
|
2618
|
+
// happen if the animated element is a transcluded clone and also has a `templateUrl`
|
2619
|
+
// directive on it. Therefore, we must recreate `element` in order to interact with the
|
2620
|
+
// actual DOM nodes.
|
2621
|
+
// Note: We still need to use the old `node` for certain things, such as looking up in
|
2622
|
+
// HashMaps where it was used as the key.
|
2623
|
+
|
2624
|
+
element = stripCommentsFromElement(originalElement);
|
2625
|
+
|
2631
2626
|
var animationDetails = activeAnimationsLookup.get(node);
|
2632
2627
|
var animationCancelled = !animationDetails;
|
2633
2628
|
animationDetails = animationDetails || {};
|
@@ -2666,7 +2661,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2666
2661
|
// isn't allowed to animate from here then we need to clear the state of the element
|
2667
2662
|
// so that any future animations won't read the expired animation data.
|
2668
2663
|
if (!isValidAnimation) {
|
2669
|
-
clearElementAnimationState(
|
2664
|
+
clearElementAnimationState(node);
|
2670
2665
|
}
|
2671
2666
|
|
2672
2667
|
return;
|
@@ -2678,21 +2673,21 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2678
2673
|
? 'setClass'
|
2679
2674
|
: animationDetails.event;
|
2680
2675
|
|
2681
|
-
markElementAnimationState(
|
2676
|
+
markElementAnimationState(node, RUNNING_STATE);
|
2682
2677
|
var realRunner = $$animation(element, event, animationDetails.options);
|
2683
2678
|
|
2684
2679
|
// this will update the runner's flow-control events based on
|
2685
2680
|
// the `realRunner` object.
|
2686
2681
|
runner.setHost(realRunner);
|
2687
|
-
notifyProgress(runner, event, 'start',
|
2682
|
+
notifyProgress(runner, event, 'start', getEventData(options));
|
2688
2683
|
|
2689
2684
|
realRunner.done(function(status) {
|
2690
2685
|
close(!status);
|
2691
2686
|
var animationDetails = activeAnimationsLookup.get(node);
|
2692
2687
|
if (animationDetails && animationDetails.counter === counter) {
|
2693
|
-
clearElementAnimationState(
|
2688
|
+
clearElementAnimationState(node);
|
2694
2689
|
}
|
2695
|
-
notifyProgress(runner, event, 'close',
|
2690
|
+
notifyProgress(runner, event, 'close', getEventData(options));
|
2696
2691
|
});
|
2697
2692
|
});
|
2698
2693
|
|
@@ -2700,7 +2695,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2700
2695
|
|
2701
2696
|
function notifyProgress(runner, event, phase, data) {
|
2702
2697
|
runInNextPostDigestOrNow(function() {
|
2703
|
-
var callbacks = findCallbacks(
|
2698
|
+
var callbacks = findCallbacks(parentNode, node, event);
|
2704
2699
|
if (callbacks.length) {
|
2705
2700
|
// do not optimize this call here to RAF because
|
2706
2701
|
// we don't know how heavy the callback code here will
|
@@ -2710,16 +2705,16 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2710
2705
|
forEach(callbacks, function(callback) {
|
2711
2706
|
callback(element, phase, data);
|
2712
2707
|
});
|
2713
|
-
cleanupEventListeners(phase,
|
2708
|
+
cleanupEventListeners(phase, node);
|
2714
2709
|
});
|
2715
2710
|
} else {
|
2716
|
-
cleanupEventListeners(phase,
|
2711
|
+
cleanupEventListeners(phase, node);
|
2717
2712
|
}
|
2718
2713
|
});
|
2719
2714
|
runner.progress(event, phase, data);
|
2720
2715
|
}
|
2721
2716
|
|
2722
|
-
function close(reject) {
|
2717
|
+
function close(reject) {
|
2723
2718
|
clearGeneratedClasses(element, options);
|
2724
2719
|
applyAnimationClasses(element, options);
|
2725
2720
|
applyAnimationStyles(element, options);
|
@@ -2728,11 +2723,10 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2728
2723
|
}
|
2729
2724
|
}
|
2730
2725
|
|
2731
|
-
function closeChildAnimations(
|
2732
|
-
var node = getDomNode(element);
|
2726
|
+
function closeChildAnimations(node) {
|
2733
2727
|
var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']');
|
2734
2728
|
forEach(children, function(child) {
|
2735
|
-
var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME));
|
2729
|
+
var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME), 10);
|
2736
2730
|
var animationDetails = activeAnimationsLookup.get(child);
|
2737
2731
|
if (animationDetails) {
|
2738
2732
|
switch (state) {
|
@@ -2740,21 +2734,16 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2740
2734
|
animationDetails.runner.end();
|
2741
2735
|
/* falls through */
|
2742
2736
|
case PRE_DIGEST_STATE:
|
2743
|
-
activeAnimationsLookup.
|
2737
|
+
activeAnimationsLookup.delete(child);
|
2744
2738
|
break;
|
2745
2739
|
}
|
2746
2740
|
}
|
2747
2741
|
});
|
2748
2742
|
}
|
2749
2743
|
|
2750
|
-
function clearElementAnimationState(
|
2751
|
-
var node = getDomNode(element);
|
2744
|
+
function clearElementAnimationState(node) {
|
2752
2745
|
node.removeAttribute(NG_ANIMATE_ATTR_NAME);
|
2753
|
-
activeAnimationsLookup.
|
2754
|
-
}
|
2755
|
-
|
2756
|
-
function isMatchingElement(nodeOrElmA, nodeOrElmB) {
|
2757
|
-
return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB);
|
2746
|
+
activeAnimationsLookup.delete(node);
|
2758
2747
|
}
|
2759
2748
|
|
2760
2749
|
/**
|
@@ -2764,54 +2753,54 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2764
2753
|
* c) the element is not a child of the body
|
2765
2754
|
* d) the element is not a child of the $rootElement
|
2766
2755
|
*/
|
2767
|
-
function areAnimationsAllowed(
|
2768
|
-
var
|
2769
|
-
var
|
2770
|
-
|
2756
|
+
function areAnimationsAllowed(node, parentNode, event) {
|
2757
|
+
var bodyNode = $document[0].body;
|
2758
|
+
var rootNode = getDomNode($rootElement);
|
2759
|
+
|
2760
|
+
var bodyNodeDetected = (node === bodyNode) || node.nodeName === 'HTML';
|
2761
|
+
var rootNodeDetected = (node === rootNode);
|
2771
2762
|
var parentAnimationDetected = false;
|
2763
|
+
var elementDisabled = disabledElementsLookup.get(node);
|
2772
2764
|
var animateChildren;
|
2773
|
-
var elementDisabled = disabledElementsLookup.get(getDomNode(element));
|
2774
2765
|
|
2775
|
-
var parentHost = jqLite.data(
|
2766
|
+
var parentHost = jqLite.data(node, NG_ANIMATE_PIN_DATA);
|
2776
2767
|
if (parentHost) {
|
2777
|
-
|
2768
|
+
parentNode = getDomNode(parentHost);
|
2778
2769
|
}
|
2779
2770
|
|
2780
|
-
|
2781
|
-
|
2782
|
-
|
2783
|
-
if (!rootElementDetected) {
|
2784
|
-
// angular doesn't want to attempt to animate elements outside of the application
|
2771
|
+
while (parentNode) {
|
2772
|
+
if (!rootNodeDetected) {
|
2773
|
+
// AngularJS doesn't want to attempt to animate elements outside of the application
|
2785
2774
|
// therefore we need to ensure that the rootElement is an ancestor of the current element
|
2786
|
-
|
2775
|
+
rootNodeDetected = (parentNode === rootNode);
|
2787
2776
|
}
|
2788
2777
|
|
2789
|
-
if (
|
2778
|
+
if (parentNode.nodeType !== ELEMENT_NODE) {
|
2790
2779
|
// no point in inspecting the #document element
|
2791
2780
|
break;
|
2792
2781
|
}
|
2793
2782
|
|
2794
|
-
var details = activeAnimationsLookup.get(
|
2783
|
+
var details = activeAnimationsLookup.get(parentNode) || {};
|
2795
2784
|
// either an enter, leave or move animation will commence
|
2796
2785
|
// therefore we can't allow any animations to take place
|
2797
2786
|
// but if a parent animation is class-based then that's ok
|
2798
2787
|
if (!parentAnimationDetected) {
|
2799
|
-
var
|
2788
|
+
var parentNodeDisabled = disabledElementsLookup.get(parentNode);
|
2800
2789
|
|
2801
|
-
if (
|
2790
|
+
if (parentNodeDisabled === true && elementDisabled !== false) {
|
2802
2791
|
// disable animations if the user hasn't explicitly enabled animations on the
|
2803
2792
|
// current element
|
2804
2793
|
elementDisabled = true;
|
2805
2794
|
// element is disabled via parent element, no need to check anything else
|
2806
2795
|
break;
|
2807
|
-
} else if (
|
2796
|
+
} else if (parentNodeDisabled === false) {
|
2808
2797
|
elementDisabled = false;
|
2809
2798
|
}
|
2810
2799
|
parentAnimationDetected = details.structural;
|
2811
2800
|
}
|
2812
2801
|
|
2813
2802
|
if (isUndefined(animateChildren) || animateChildren === true) {
|
2814
|
-
var value = jqLite.data(
|
2803
|
+
var value = jqLite.data(parentNode, NG_ANIMATE_CHILDREN_DATA);
|
2815
2804
|
if (isDefined(value)) {
|
2816
2805
|
animateChildren = value;
|
2817
2806
|
}
|
@@ -2820,57 +2809,115 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
|
|
2820
2809
|
// there is no need to continue traversing at this point
|
2821
2810
|
if (parentAnimationDetected && animateChildren === false) break;
|
2822
2811
|
|
2823
|
-
if (!
|
2812
|
+
if (!bodyNodeDetected) {
|
2824
2813
|
// we also need to ensure that the element is or will be a part of the body element
|
2825
2814
|
// otherwise it is pointless to even issue an animation to be rendered
|
2826
|
-
|
2815
|
+
bodyNodeDetected = (parentNode === bodyNode);
|
2827
2816
|
}
|
2828
2817
|
|
2829
|
-
if (
|
2818
|
+
if (bodyNodeDetected && rootNodeDetected) {
|
2830
2819
|
// If both body and root have been found, any other checks are pointless,
|
2831
2820
|
// as no animation data should live outside the application
|
2832
2821
|
break;
|
2833
2822
|
}
|
2834
2823
|
|
2835
|
-
if (!
|
2836
|
-
// If
|
2837
|
-
parentHost = jqLite.data(
|
2824
|
+
if (!rootNodeDetected) {
|
2825
|
+
// If `rootNode` is not detected, check if `parentNode` is pinned to another element
|
2826
|
+
parentHost = jqLite.data(parentNode, NG_ANIMATE_PIN_DATA);
|
2838
2827
|
if (parentHost) {
|
2839
2828
|
// The pin target element becomes the next parent element
|
2840
|
-
|
2829
|
+
parentNode = getDomNode(parentHost);
|
2841
2830
|
continue;
|
2842
2831
|
}
|
2843
2832
|
}
|
2844
2833
|
|
2845
|
-
|
2834
|
+
parentNode = parentNode.parentNode;
|
2846
2835
|
}
|
2847
2836
|
|
2848
2837
|
var allowAnimation = (!parentAnimationDetected || animateChildren) && elementDisabled !== true;
|
2849
|
-
return allowAnimation &&
|
2838
|
+
return allowAnimation && rootNodeDetected && bodyNodeDetected;
|
2850
2839
|
}
|
2851
2840
|
|
2852
|
-
function markElementAnimationState(
|
2841
|
+
function markElementAnimationState(node, state, details) {
|
2853
2842
|
details = details || {};
|
2854
2843
|
details.state = state;
|
2855
2844
|
|
2856
|
-
var node = getDomNode(element);
|
2857
2845
|
node.setAttribute(NG_ANIMATE_ATTR_NAME, state);
|
2858
2846
|
|
2859
2847
|
var oldValue = activeAnimationsLookup.get(node);
|
2860
2848
|
var newValue = oldValue
|
2861
2849
|
? extend(oldValue, details)
|
2862
2850
|
: details;
|
2863
|
-
activeAnimationsLookup.
|
2851
|
+
activeAnimationsLookup.set(node, newValue);
|
2864
2852
|
}
|
2865
2853
|
}];
|
2866
2854
|
}];
|
2867
2855
|
|
2868
|
-
|
2856
|
+
/** @this */
|
2857
|
+
var $$AnimateCacheProvider = function() {
|
2858
|
+
|
2859
|
+
var KEY = '$$ngAnimateParentKey';
|
2860
|
+
var parentCounter = 0;
|
2861
|
+
var cache = Object.create(null);
|
2862
|
+
|
2863
|
+
this.$get = [function() {
|
2864
|
+
return {
|
2865
|
+
cacheKey: function(node, method, addClass, removeClass) {
|
2866
|
+
var parentNode = node.parentNode;
|
2867
|
+
var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter);
|
2868
|
+
var parts = [parentID, method, node.getAttribute('class')];
|
2869
|
+
if (addClass) {
|
2870
|
+
parts.push(addClass);
|
2871
|
+
}
|
2872
|
+
if (removeClass) {
|
2873
|
+
parts.push(removeClass);
|
2874
|
+
}
|
2875
|
+
return parts.join(' ');
|
2876
|
+
},
|
2877
|
+
|
2878
|
+
containsCachedAnimationWithoutDuration: function(key) {
|
2879
|
+
var entry = cache[key];
|
2880
|
+
|
2881
|
+
// nothing cached, so go ahead and animate
|
2882
|
+
// otherwise it should be a valid animation
|
2883
|
+
return (entry && !entry.isValid) || false;
|
2884
|
+
},
|
2885
|
+
|
2886
|
+
flush: function() {
|
2887
|
+
cache = Object.create(null);
|
2888
|
+
},
|
2889
|
+
|
2890
|
+
count: function(key) {
|
2891
|
+
var entry = cache[key];
|
2892
|
+
return entry ? entry.total : 0;
|
2893
|
+
},
|
2894
|
+
|
2895
|
+
get: function(key) {
|
2896
|
+
var entry = cache[key];
|
2897
|
+
return entry && entry.value;
|
2898
|
+
},
|
2899
|
+
|
2900
|
+
put: function(key, value, isValid) {
|
2901
|
+
if (!cache[key]) {
|
2902
|
+
cache[key] = { total: 1, value: value, isValid: isValid };
|
2903
|
+
} else {
|
2904
|
+
cache[key].total++;
|
2905
|
+
cache[key].value = value;
|
2906
|
+
}
|
2907
|
+
}
|
2908
|
+
};
|
2909
|
+
}];
|
2910
|
+
};
|
2911
|
+
|
2912
|
+
/* exported $$AnimationProvider */
|
2913
|
+
|
2914
|
+
var $$AnimationProvider = ['$animateProvider', /** @this */ function($animateProvider) {
|
2869
2915
|
var NG_ANIMATE_REF_ATTR = 'ng-animate-ref';
|
2870
2916
|
|
2871
2917
|
var drivers = this.drivers = [];
|
2872
2918
|
|
2873
2919
|
var RUNNER_STORAGE_KEY = '$$animationRunner';
|
2920
|
+
var PREPARE_CLASSES_KEY = '$$animatePrepareClasses';
|
2874
2921
|
|
2875
2922
|
function setRunner(element, runner) {
|
2876
2923
|
element.data(RUNNER_STORAGE_KEY, runner);
|
@@ -2884,22 +2931,23 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
2884
2931
|
return element.data(RUNNER_STORAGE_KEY);
|
2885
2932
|
}
|
2886
2933
|
|
2887
|
-
this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$
|
2888
|
-
function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$
|
2934
|
+
this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$Map', '$$rAFScheduler', '$$animateCache',
|
2935
|
+
function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$Map, $$rAFScheduler, $$animateCache) {
|
2889
2936
|
|
2890
2937
|
var animationQueue = [];
|
2891
2938
|
var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
|
2892
2939
|
|
2893
2940
|
function sortAnimations(animations) {
|
2894
2941
|
var tree = { children: [] };
|
2895
|
-
var i, lookup = new $$
|
2942
|
+
var i, lookup = new $$Map();
|
2896
2943
|
|
2897
|
-
// this is done first beforehand so that the
|
2944
|
+
// this is done first beforehand so that the map
|
2898
2945
|
// is filled with a list of the elements that will be animated
|
2899
2946
|
for (i = 0; i < animations.length; i++) {
|
2900
2947
|
var animation = animations[i];
|
2901
|
-
lookup.
|
2948
|
+
lookup.set(animation.domNode, animations[i] = {
|
2902
2949
|
domNode: animation.domNode,
|
2950
|
+
element: animation.element,
|
2903
2951
|
fn: animation.fn,
|
2904
2952
|
children: []
|
2905
2953
|
});
|
@@ -2917,7 +2965,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
2917
2965
|
|
2918
2966
|
var elementNode = entry.domNode;
|
2919
2967
|
var parentNode = elementNode.parentNode;
|
2920
|
-
lookup.
|
2968
|
+
lookup.set(elementNode, entry);
|
2921
2969
|
|
2922
2970
|
var parentEntry;
|
2923
2971
|
while (parentNode) {
|
@@ -2956,7 +3004,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
2956
3004
|
result.push(row);
|
2957
3005
|
row = [];
|
2958
3006
|
}
|
2959
|
-
row.push(entry
|
3007
|
+
row.push(entry);
|
2960
3008
|
entry.children.forEach(function(childEntry) {
|
2961
3009
|
nextLevelEntries++;
|
2962
3010
|
queue.push(childEntry);
|
@@ -2991,8 +3039,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
2991
3039
|
return runner;
|
2992
3040
|
}
|
2993
3041
|
|
2994
|
-
setRunner(element, runner);
|
2995
|
-
|
2996
3042
|
var classes = mergeClasses(element.attr('class'), mergeClasses(options.addClass, options.removeClass));
|
2997
3043
|
var tempClasses = options.tempClasses;
|
2998
3044
|
if (tempClasses) {
|
@@ -3000,12 +3046,12 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3000
3046
|
options.tempClasses = null;
|
3001
3047
|
}
|
3002
3048
|
|
3003
|
-
var prepareClassName;
|
3004
3049
|
if (isStructural) {
|
3005
|
-
|
3006
|
-
$$jqLite.addClass(element, prepareClassName);
|
3050
|
+
element.data(PREPARE_CLASSES_KEY, 'ng-' + event + PREPARE_CLASS_SUFFIX);
|
3007
3051
|
}
|
3008
3052
|
|
3053
|
+
setRunner(element, runner);
|
3054
|
+
|
3009
3055
|
animationQueue.push({
|
3010
3056
|
// this data is used by the postDigest code and passed into
|
3011
3057
|
// the driver step function
|
@@ -3045,16 +3091,31 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3045
3091
|
var toBeSortedAnimations = [];
|
3046
3092
|
|
3047
3093
|
forEach(groupedAnimations, function(animationEntry) {
|
3094
|
+
var element = animationEntry.from ? animationEntry.from.element : animationEntry.element;
|
3095
|
+
var extraClasses = options.addClass;
|
3096
|
+
|
3097
|
+
extraClasses = (extraClasses ? (extraClasses + ' ') : '') + NG_ANIMATE_CLASSNAME;
|
3098
|
+
var cacheKey = $$animateCache.cacheKey(element[0], animationEntry.event, extraClasses, options.removeClass);
|
3099
|
+
|
3048
3100
|
toBeSortedAnimations.push({
|
3049
|
-
|
3101
|
+
element: element,
|
3102
|
+
domNode: getDomNode(element),
|
3050
3103
|
fn: function triggerAnimationStart() {
|
3104
|
+
var startAnimationFn, closeFn = animationEntry.close;
|
3105
|
+
|
3106
|
+
// in the event that we've cached the animation status for this element
|
3107
|
+
// and it's in fact an invalid animation (something that has duration = 0)
|
3108
|
+
// then we should skip all the heavy work from here on
|
3109
|
+
if ($$animateCache.containsCachedAnimationWithoutDuration(cacheKey)) {
|
3110
|
+
closeFn();
|
3111
|
+
return;
|
3112
|
+
}
|
3113
|
+
|
3051
3114
|
// it's important that we apply the `ng-animate` CSS class and the
|
3052
3115
|
// temporary classes before we do any driver invoking since these
|
3053
3116
|
// CSS classes may be required for proper CSS detection.
|
3054
3117
|
animationEntry.beforeStart();
|
3055
3118
|
|
3056
|
-
var startAnimationFn, closeFn = animationEntry.close;
|
3057
|
-
|
3058
3119
|
// in the event that the element was removed before the digest runs or
|
3059
3120
|
// during the RAF sequencing then we should not trigger the animation.
|
3060
3121
|
var targetElement = animationEntry.anchors
|
@@ -3084,7 +3145,32 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3084
3145
|
// we need to sort each of the animations in order of parent to child
|
3085
3146
|
// relationships. This ensures that the child classes are applied at the
|
3086
3147
|
// right time.
|
3087
|
-
|
3148
|
+
var finalAnimations = sortAnimations(toBeSortedAnimations);
|
3149
|
+
for (var i = 0; i < finalAnimations.length; i++) {
|
3150
|
+
var innerArray = finalAnimations[i];
|
3151
|
+
for (var j = 0; j < innerArray.length; j++) {
|
3152
|
+
var entry = innerArray[j];
|
3153
|
+
var element = entry.element;
|
3154
|
+
|
3155
|
+
// the RAFScheduler code only uses functions
|
3156
|
+
finalAnimations[i][j] = entry.fn;
|
3157
|
+
|
3158
|
+
// the first row of elements shouldn't have a prepare-class added to them
|
3159
|
+
// since the elements are at the top of the animation hierarchy and they
|
3160
|
+
// will be applied without a RAF having to pass...
|
3161
|
+
if (i === 0) {
|
3162
|
+
element.removeData(PREPARE_CLASSES_KEY);
|
3163
|
+
continue;
|
3164
|
+
}
|
3165
|
+
|
3166
|
+
var prepareClassName = element.data(PREPARE_CLASSES_KEY);
|
3167
|
+
if (prepareClassName) {
|
3168
|
+
$$jqLite.addClass(element, prepareClassName);
|
3169
|
+
}
|
3170
|
+
}
|
3171
|
+
}
|
3172
|
+
|
3173
|
+
$$rAFScheduler(finalAnimations);
|
3088
3174
|
});
|
3089
3175
|
|
3090
3176
|
return runner;
|
@@ -3213,8 +3299,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3213
3299
|
// may attempt more elements, but custom drivers are more particular
|
3214
3300
|
for (var i = drivers.length - 1; i >= 0; i--) {
|
3215
3301
|
var driverName = drivers[i];
|
3216
|
-
if (!$injector.has(driverName)) continue; // TODO(matsko): remove this check
|
3217
|
-
|
3218
3302
|
var factory = $injector.get(driverName);
|
3219
3303
|
var driver = factory(animationDetails);
|
3220
3304
|
if (driver) {
|
@@ -3224,10 +3308,10 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3224
3308
|
}
|
3225
3309
|
|
3226
3310
|
function beforeStart() {
|
3227
|
-
|
3228
|
-
|
3229
|
-
|
3230
|
-
|
3311
|
+
tempClasses = (tempClasses ? (tempClasses + ' ') : '') + NG_ANIMATE_CLASSNAME;
|
3312
|
+
$$jqLite.addClass(element, tempClasses);
|
3313
|
+
|
3314
|
+
var prepareClassName = element.data(PREPARE_CLASSES_KEY);
|
3231
3315
|
if (prepareClassName) {
|
3232
3316
|
$$jqLite.removeClass(element, prepareClassName);
|
3233
3317
|
prepareClassName = null;
|
@@ -3243,7 +3327,8 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3243
3327
|
}
|
3244
3328
|
|
3245
3329
|
function update(element) {
|
3246
|
-
getRunner(element)
|
3330
|
+
var runner = getRunner(element);
|
3331
|
+
if (runner) runner.setHost(newRunner);
|
3247
3332
|
}
|
3248
3333
|
}
|
3249
3334
|
|
@@ -3254,7 +3339,7 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3254
3339
|
}
|
3255
3340
|
}
|
3256
3341
|
|
3257
|
-
function close(rejected) {
|
3342
|
+
function close(rejected) {
|
3258
3343
|
element.off('$destroy', handleDestroyedElement);
|
3259
3344
|
removeRunner(element);
|
3260
3345
|
|
@@ -3266,7 +3351,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3266
3351
|
$$jqLite.removeClass(element, tempClasses);
|
3267
3352
|
}
|
3268
3353
|
|
3269
|
-
element.removeClass(NG_ANIMATE_CLASSNAME);
|
3270
3354
|
runner.complete(!rejected);
|
3271
3355
|
}
|
3272
3356
|
};
|
@@ -3360,12 +3444,13 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
|
|
3360
3444
|
* </file>
|
3361
3445
|
* </example>
|
3362
3446
|
*/
|
3363
|
-
var ngAnimateSwapDirective = ['$animate',
|
3447
|
+
var ngAnimateSwapDirective = ['$animate', function($animate) {
|
3364
3448
|
return {
|
3365
3449
|
restrict: 'A',
|
3366
3450
|
transclude: 'element',
|
3367
3451
|
terminal: true,
|
3368
|
-
priority:
|
3452
|
+
priority: 550, // We use 550 here to ensure that the directive is caught before others,
|
3453
|
+
// but after `ngIf` (at priority 600).
|
3369
3454
|
link: function(scope, $element, attrs, ctrl, $transclude) {
|
3370
3455
|
var previousElement, previousScope;
|
3371
3456
|
scope.$watchCollection(attrs.ngAnimateSwap || attrs['for'], function(value) {
|
@@ -3377,10 +3462,10 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3377
3462
|
previousScope = null;
|
3378
3463
|
}
|
3379
3464
|
if (value || value === 0) {
|
3380
|
-
|
3381
|
-
|
3382
|
-
|
3383
|
-
$animate.enter(
|
3465
|
+
$transclude(function(clone, childScope) {
|
3466
|
+
previousElement = clone;
|
3467
|
+
previousScope = childScope;
|
3468
|
+
$animate.enter(clone, null, $element);
|
3384
3469
|
});
|
3385
3470
|
}
|
3386
3471
|
});
|
@@ -3388,31 +3473,15 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3388
3473
|
};
|
3389
3474
|
}];
|
3390
3475
|
|
3391
|
-
/* global angularAnimateModule: true,
|
3392
|
-
|
3393
|
-
ngAnimateSwapDirective,
|
3394
|
-
$$AnimateAsyncRunFactory,
|
3395
|
-
$$rAFSchedulerFactory,
|
3396
|
-
$$AnimateChildrenDirective,
|
3397
|
-
$$AnimateQueueProvider,
|
3398
|
-
$$AnimationProvider,
|
3399
|
-
$AnimateCssProvider,
|
3400
|
-
$$AnimateCssDriverProvider,
|
3401
|
-
$$AnimateJsProvider,
|
3402
|
-
$$AnimateJsDriverProvider,
|
3403
|
-
*/
|
3404
|
-
|
3405
3476
|
/**
|
3406
3477
|
* @ngdoc module
|
3407
3478
|
* @name ngAnimate
|
3408
3479
|
* @description
|
3409
3480
|
*
|
3410
3481
|
* The `ngAnimate` module provides support for CSS-based animations (keyframes and transitions) as well as JavaScript-based animations via
|
3411
|
-
* callback hooks. Animations are not enabled by default, however, by including `ngAnimate` the animation hooks are enabled for an
|
3482
|
+
* callback hooks. Animations are not enabled by default, however, by including `ngAnimate` the animation hooks are enabled for an AngularJS app.
|
3412
3483
|
*
|
3413
|
-
*
|
3414
|
-
*
|
3415
|
-
* # Usage
|
3484
|
+
* ## Usage
|
3416
3485
|
* Simply put, there are two ways to make use of animations when ngAnimate is used: by using **CSS** and **JavaScript**. The former works purely based
|
3417
3486
|
* using CSS (by using matching CSS selectors/styles) and the latter triggers animations that are registered via `module.animation()`. For
|
3418
3487
|
* both CSS and JS animations the sole requirement is to have a matching `CSS class` that exists both in the registered animation and within
|
@@ -3421,25 +3490,33 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3421
3490
|
* ## Directive Support
|
3422
3491
|
* The following directives are "animation aware":
|
3423
3492
|
*
|
3424
|
-
* | Directive
|
3425
|
-
*
|
3426
|
-
* | {@link ng.directive:
|
3427
|
-
* | {@link
|
3428
|
-
* | {@link ng.directive:
|
3429
|
-
* | {@link ng.directive:
|
3430
|
-
* | {@link ng.directive:
|
3431
|
-
* | {@link ng.directive:
|
3432
|
-
* | {@link ng.directive:
|
3433
|
-
* | {@link ng.directive:
|
3434
|
-
* | {@link module:ngMessages#animations
|
3435
|
-
* | {@link module:ngMessages#animations
|
3436
|
-
*
|
3437
|
-
*
|
3493
|
+
* | Directive | Supported Animations |
|
3494
|
+
* |-------------------------------------------------------------------------------|---------------------------------------------------------------------------|
|
3495
|
+
* | {@link ng.directive:form#animations form / ngForm} | add and remove ({@link ng.directive:form#css-classes various classes}) |
|
3496
|
+
* | {@link ngAnimate.directive:ngAnimateSwap#animations ngAnimateSwap} | enter and leave |
|
3497
|
+
* | {@link ng.directive:ngClass#animations ngClass / {{class}​}} | add and remove |
|
3498
|
+
* | {@link ng.directive:ngClassEven#animations ngClassEven} | add and remove |
|
3499
|
+
* | {@link ng.directive:ngClassOdd#animations ngClassOdd} | add and remove |
|
3500
|
+
* | {@link ng.directive:ngHide#animations ngHide} | add and remove (the `ng-hide` class) |
|
3501
|
+
* | {@link ng.directive:ngIf#animations ngIf} | enter and leave |
|
3502
|
+
* | {@link ng.directive:ngInclude#animations ngInclude} | enter and leave |
|
3503
|
+
* | {@link module:ngMessages#animations ngMessage / ngMessageExp} | enter and leave |
|
3504
|
+
* | {@link module:ngMessages#animations ngMessages} | add and remove (the `ng-active`/`ng-inactive` classes) |
|
3505
|
+
* | {@link ng.directive:ngModel#animations ngModel} | add and remove ({@link ng.directive:ngModel#css-classes various classes}) |
|
3506
|
+
* | {@link ng.directive:ngRepeat#animations ngRepeat} | enter, leave, and move |
|
3507
|
+
* | {@link ng.directive:ngShow#animations ngShow} | add and remove (the `ng-hide` class) |
|
3508
|
+
* | {@link ng.directive:ngSwitch#animations ngSwitch} | enter and leave |
|
3509
|
+
* | {@link ngRoute.directive:ngView#animations ngView} | enter and leave |
|
3510
|
+
*
|
3511
|
+
* (More information can be found by visiting the documentation associated with each directive.)
|
3512
|
+
*
|
3513
|
+
* For a full breakdown of the steps involved during each animation event, refer to the
|
3514
|
+
* {@link ng.$animate `$animate` API docs}.
|
3438
3515
|
*
|
3439
3516
|
* ## CSS-based Animations
|
3440
3517
|
*
|
3441
3518
|
* CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML
|
3442
|
-
* and CSS code we can create an animation that will be picked up by
|
3519
|
+
* and CSS code we can create an animation that will be picked up by AngularJS when an underlying directive performs an operation.
|
3443
3520
|
*
|
3444
3521
|
* The example below shows how an `enter` animation can be made possible on an element using `ng-if`:
|
3445
3522
|
*
|
@@ -3579,6 +3656,10 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3579
3656
|
* /* As of 1.4.4, this must always be set: it signals ngAnimate
|
3580
3657
|
* to not accidentally inherit a delay property from another CSS class */
|
3581
3658
|
* transition-duration: 0s;
|
3659
|
+
*
|
3660
|
+
* /* if you are using animations instead of transitions you should configure as follows:
|
3661
|
+
* animation-delay: 0.1s;
|
3662
|
+
* animation-duration: 0s; */
|
3582
3663
|
* }
|
3583
3664
|
* .my-animation.ng-enter.ng-enter-active {
|
3584
3665
|
* /* standard transition styles */
|
@@ -3667,9 +3748,22 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3667
3748
|
* .message.ng-enter-prepare {
|
3668
3749
|
* opacity: 0;
|
3669
3750
|
* }
|
3670
|
-
*
|
3671
3751
|
* ```
|
3672
3752
|
*
|
3753
|
+
* ### Animating between value changes
|
3754
|
+
*
|
3755
|
+
* Sometimes you need to animate between different expression states, whose values
|
3756
|
+
* don't necessary need to be known or referenced in CSS styles.
|
3757
|
+
* Unless possible with another {@link ngAnimate#directive-support "animation aware" directive},
|
3758
|
+
* that specific use case can always be covered with {@link ngAnimate.directive:ngAnimateSwap} as
|
3759
|
+
* can be seen in {@link ngAnimate.directive:ngAnimateSwap#examples this example}.
|
3760
|
+
*
|
3761
|
+
* Note that {@link ngAnimate.directive:ngAnimateSwap} is a *structural directive*, which means it
|
3762
|
+
* creates a new instance of the element (including any other/child directives it may have) and
|
3763
|
+
* links it to a new scope every time *swap* happens. In some cases this might not be desirable
|
3764
|
+
* (e.g. for performance reasons, or when you wish to retain internal state on the original
|
3765
|
+
* element instance).
|
3766
|
+
*
|
3673
3767
|
* ## JavaScript-based Animations
|
3674
3768
|
*
|
3675
3769
|
* ngAnimate also allows for animations to be consumed by JavaScript code. The approach is similar to CSS-based animations (where there is a shared
|
@@ -3694,7 +3788,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3694
3788
|
* enter: function(element, doneFn) {
|
3695
3789
|
* jQuery(element).fadeIn(1000, doneFn);
|
3696
3790
|
*
|
3697
|
-
* // remember to call doneFn so that
|
3791
|
+
* // remember to call doneFn so that AngularJS
|
3698
3792
|
* // knows that the animation has concluded
|
3699
3793
|
* },
|
3700
3794
|
*
|
@@ -3742,7 +3836,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3742
3836
|
*
|
3743
3837
|
* ## CSS + JS Animations Together
|
3744
3838
|
*
|
3745
|
-
* AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of
|
3839
|
+
* AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of AngularJS,
|
3746
3840
|
* defining CSS and JS animations to work off of the same CSS class will not work anymore. Therefore the example below will only result in **JS animations taking
|
3747
3841
|
* charge of the animation**:
|
3748
3842
|
*
|
@@ -3934,7 +4028,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3934
4028
|
deps="angular-animate.js;angular-route.js"
|
3935
4029
|
animations="true">
|
3936
4030
|
<file name="index.html">
|
3937
|
-
<a href="
|
4031
|
+
<a href="#!/">Home</a>
|
3938
4032
|
<hr />
|
3939
4033
|
<div class="view-container">
|
3940
4034
|
<div ng-view class="view"></div>
|
@@ -3954,22 +4048,23 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3954
4048
|
}])
|
3955
4049
|
.run(['$rootScope', function($rootScope) {
|
3956
4050
|
$rootScope.records = [
|
3957
|
-
{ id:1, title:
|
3958
|
-
{ id:2, title:
|
3959
|
-
{ id:3, title:
|
3960
|
-
{ id:4, title:
|
3961
|
-
{ id:5, title:
|
3962
|
-
{ id:6, title:
|
3963
|
-
{ id:7, title:
|
3964
|
-
{ id:8, title:
|
3965
|
-
{ id:9, title:
|
3966
|
-
{ id:10, title:
|
4051
|
+
{ id: 1, title: 'Miss Beulah Roob' },
|
4052
|
+
{ id: 2, title: 'Trent Morissette' },
|
4053
|
+
{ id: 3, title: 'Miss Ava Pouros' },
|
4054
|
+
{ id: 4, title: 'Rod Pouros' },
|
4055
|
+
{ id: 5, title: 'Abdul Rice' },
|
4056
|
+
{ id: 6, title: 'Laurie Rutherford Sr.' },
|
4057
|
+
{ id: 7, title: 'Nakia McLaughlin' },
|
4058
|
+
{ id: 8, title: 'Jordon Blanda DVM' },
|
4059
|
+
{ id: 9, title: 'Rhoda Hand' },
|
4060
|
+
{ id: 10, title: 'Alexandrea Sauer' }
|
3967
4061
|
];
|
3968
4062
|
}])
|
3969
4063
|
.controller('HomeController', [function() {
|
3970
4064
|
//empty
|
3971
4065
|
}])
|
3972
|
-
.controller('ProfileController', ['$rootScope', '$routeParams',
|
4066
|
+
.controller('ProfileController', ['$rootScope', '$routeParams',
|
4067
|
+
function ProfileController($rootScope, $routeParams) {
|
3973
4068
|
var index = parseInt($routeParams.id, 10);
|
3974
4069
|
var record = $rootScope.records[index - 1];
|
3975
4070
|
|
@@ -3981,7 +4076,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
3981
4076
|
<h2>Welcome to the home page</h1>
|
3982
4077
|
<p>Please click on an element</p>
|
3983
4078
|
<a class="record"
|
3984
|
-
ng-href="
|
4079
|
+
ng-href="#!/profile/{{ record.id }}"
|
3985
4080
|
ng-animate-ref="{{ record.id }}"
|
3986
4081
|
ng-repeat="record in records">
|
3987
4082
|
{{ record.title }}
|
@@ -4057,7 +4152,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
4057
4152
|
*
|
4058
4153
|
* ## Using $animate in your directive code
|
4059
4154
|
*
|
4060
|
-
* So far we've explored how to feed in animations into an
|
4155
|
+
* So far we've explored how to feed in animations into an AngularJS application, but how do we trigger animations within our own directives in our application?
|
4061
4156
|
* By injecting the `$animate` service into our directive code, we can trigger structural and class-based hooks which can then be consumed by animations. Let's
|
4062
4157
|
* imagine we have a greeting box that shows and hides itself when the data changes
|
4063
4158
|
*
|
@@ -4100,7 +4195,7 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
4100
4195
|
* });
|
4101
4196
|
* ```
|
4102
4197
|
*
|
4103
|
-
* (Note that earlier versions of
|
4198
|
+
* (Note that earlier versions of AngularJS prior to v1.4 required the promise code to be wrapped using `$scope.$apply(...)`. This is not the case
|
4104
4199
|
* anymore.)
|
4105
4200
|
*
|
4106
4201
|
* In addition to the animation promise, we can also make use of animation-related callbacks within our directives and controller code by registering
|
@@ -4115,9 +4210,22 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
4115
4210
|
* }])
|
4116
4211
|
* ```
|
4117
4212
|
*
|
4118
|
-
* (Note that you will need to trigger a digest within the callback to get
|
4213
|
+
* (Note that you will need to trigger a digest within the callback to get AngularJS to notice any scope-related changes.)
|
4119
4214
|
*/
|
4120
4215
|
|
4216
|
+
var copy;
|
4217
|
+
var extend;
|
4218
|
+
var forEach;
|
4219
|
+
var isArray;
|
4220
|
+
var isDefined;
|
4221
|
+
var isElement;
|
4222
|
+
var isFunction;
|
4223
|
+
var isObject;
|
4224
|
+
var isString;
|
4225
|
+
var isUndefined;
|
4226
|
+
var jqLite;
|
4227
|
+
var noop;
|
4228
|
+
|
4121
4229
|
/**
|
4122
4230
|
* @ngdoc service
|
4123
4231
|
* @name $animate
|
@@ -4128,13 +4236,30 @@ var ngAnimateSwapDirective = ['$animate', '$rootScope', function($animate, $root
|
|
4128
4236
|
*
|
4129
4237
|
* Click here {@link ng.$animate to learn more about animations with `$animate`}.
|
4130
4238
|
*/
|
4131
|
-
angular.module('ngAnimate', [])
|
4239
|
+
angular.module('ngAnimate', [], function initAngularHelpers() {
|
4240
|
+
// Access helpers from AngularJS core.
|
4241
|
+
// Do it inside a `config` block to ensure `window.angular` is available.
|
4242
|
+
noop = angular.noop;
|
4243
|
+
copy = angular.copy;
|
4244
|
+
extend = angular.extend;
|
4245
|
+
jqLite = angular.element;
|
4246
|
+
forEach = angular.forEach;
|
4247
|
+
isArray = angular.isArray;
|
4248
|
+
isString = angular.isString;
|
4249
|
+
isObject = angular.isObject;
|
4250
|
+
isUndefined = angular.isUndefined;
|
4251
|
+
isDefined = angular.isDefined;
|
4252
|
+
isFunction = angular.isFunction;
|
4253
|
+
isElement = angular.isElement;
|
4254
|
+
})
|
4255
|
+
.info({ angularVersion: '1.7.9' })
|
4132
4256
|
.directive('ngAnimateSwap', ngAnimateSwapDirective)
|
4133
4257
|
|
4134
4258
|
.directive('ngAnimateChildren', $$AnimateChildrenDirective)
|
4135
4259
|
.factory('$$rAFScheduler', $$rAFSchedulerFactory)
|
4136
4260
|
|
4137
4261
|
.provider('$$animateQueue', $$AnimateQueueProvider)
|
4262
|
+
.provider('$$animateCache', $$AnimateCacheProvider)
|
4138
4263
|
.provider('$$animation', $$AnimationProvider)
|
4139
4264
|
|
4140
4265
|
.provider('$animateCss', $AnimateCssProvider)
|