houston-core 0.8.0.pre → 0.8.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gemfile +0 -1
- data/Gemfile.lock +101 -160
- data/app/assets/javascripts/houston/app/boot.coffee +0 -9
- data/app/assets/javascripts/houston/app/commands/show_keyboard_shortcuts.coffee +9 -0
- data/app/assets/javascripts/houston/app/models/user.coffee +0 -2
- data/app/assets/javascripts/houston/app/views/keyboard_shortcuts_modal.coffee +4 -29
- data/app/assets/javascripts/houston/application.js +2 -0
- data/app/assets/javascripts/houston/core/app.coffee +8 -46
- data/app/assets/javascripts/houston/core/core_ext/number.coffee +4 -0
- data/app/assets/javascripts/houston/core/handlebars_helpers.coffee +21 -23
- data/app/assets/javascripts/houston/core/keyboard_shortcuts.coffee +19 -0
- data/app/assets/javascripts/houston/core/observer.coffee +69 -0
- data/app/assets/javascripts/houston/dashboard.js +1 -9
- data/app/assets/javascripts/houston/vendor.js +4 -0
- data/app/assets/stylesheets/houston/application/globals.scss +5 -0
- data/app/assets/stylesheets/houston/application/keyboard_shortcuts.scss +23 -25
- data/app/assets/stylesheets/houston/application/markdown.scss +3 -1
- data/app/assets/stylesheets/houston/application/mobile.scss +0 -2
- data/app/assets/stylesheets/houston/application/navigation.scss +0 -26
- data/app/assets/stylesheets/houston/application/project_banner_buttons.scss +0 -18
- data/app/assets/stylesheets/houston/application/projects.css.scss +0 -49
- data/app/assets/stylesheets/houston/application/teams.scss +0 -3
- data/app/assets/stylesheets/houston/application/uploading.scss +3 -5
- data/app/assets/stylesheets/houston/application/users.scss +0 -1
- data/app/assets/stylesheets/houston/core/colors.scss.erb +9 -22
- data/app/assets/stylesheets/houston/core/globals.scss +20 -0
- data/app/assets/stylesheets/houston/core/misc.scss +0 -4
- data/app/assets/stylesheets/houston/print.css.scss +0 -12
- data/app/assets/templates/keyboard_shortcuts.hbs +6 -4
- data/app/channels/application_cable/channel.rb +5 -0
- data/app/channels/application_cable/connection.rb +5 -0
- data/app/channels/events_channel.rb +27 -0
- data/app/concerns/houston/props.rb +9 -1
- data/app/concerns/project_adapter.rb +40 -10
- data/app/controllers/api/v1/measurements_controller.rb +2 -2
- data/app/controllers/api/v1/projects_controller.rb +2 -2
- data/app/controllers/application_controller.rb +8 -17
- data/app/controllers/hooks_controller.rb +2 -29
- data/app/controllers/project_hooks_controller.rb +3 -3
- data/app/controllers/project_options_controller.rb +1 -1
- data/app/controllers/project_roles_controller.rb +1 -1
- data/app/controllers/projects_controller.rb +2 -52
- data/app/controllers/sessions_controller.rb +1 -1
- data/app/controllers/teams_controller.rb +14 -3
- data/app/controllers/user_options_controller.rb +1 -1
- data/app/controllers/users_controller.rb +1 -17
- data/app/helpers/application_helper.rb +36 -8
- data/app/helpers/avatar_helper.rb +3 -2
- data/app/helpers/navigation_helper.rb +5 -39
- data/app/helpers/project_helper.rb +0 -24
- data/app/helpers/url_helper.rb +0 -44
- data/app/mailers/view_mailer.rb +2 -9
- data/app/models/ability.rb +4 -0
- data/app/models/action.rb +50 -44
- data/app/models/error.rb +11 -1
- data/app/models/persistent_trigger.rb +1 -1
- data/app/models/project.rb +15 -171
- data/app/models/team.rb +1 -1
- data/app/models/team_user.rb +1 -1
- data/app/models/user.rb +1 -30
- data/app/models/user_credentials.rb +2 -23
- data/app/views/actions/_actions.html.erb +8 -1
- data/app/views/errors/_actions.html.erb +6 -1
- data/app/views/layouts/application.html.erb +3 -7
- data/app/views/layouts/dashboard.html.erb +11 -7
- data/app/views/layouts/minimal.html.erb +3 -7
- data/app/views/layouts/naked.html.erb +3 -8
- data/app/views/layouts/naked_dashboard.html.erb +12 -7
- data/app/views/projects/_form.html.erb +32 -35
- data/app/views/projects/_header.html.erb +6 -3
- data/app/views/projects/index.html.erb +6 -73
- data/app/views/teams/_form.html.erb +13 -0
- data/app/views/teams/index.html.erb +4 -1
- data/app/views/users/_form.html.erb +8 -6
- data/app/views/users/show.html.erb +0 -8
- data/bin/rails +1 -1
- data/config/application.rb +15 -11
- data/config/boot.rb +1 -1
- data/config/environment.rb +1 -1
- data/config/environments/development.rb +25 -3
- data/config/environments/production.rb +25 -14
- data/config/environments/test.rb +6 -6
- data/config/initializers/add_navigation_renderers.rb +0 -63
- data/config/initializers/application_controller_renderer.rb +6 -0
- data/config/initializers/cookies_serializer.rb +2 -0
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/houston_observer_subscriber.rb +17 -0
- data/config/initializers/houston_report_exception.rb +1 -1
- data/config/initializers/load_persistent_triggers.rb +1 -1
- data/config/initializers/mime_types.rb +0 -1
- data/config/initializers/new_framework_defaults.rb +23 -0
- data/config/initializers/requirements.rb +0 -1
- data/config/initializers/wrap_parameters.rb +2 -2
- data/config/routes.rb +16 -175
- data/config/spring.rb +6 -0
- data/db/migrate/20120504143615_link_tickets_and_releases.rb +0 -6
- data/db/migrate/20140517012626_prevent_hstore_fields_from_being_null.rb +0 -2
- data/db/migrate/20151228183704_drop_unused_tables.rb +0 -24
- data/db/migrate/20160625203412_convert_user_view_options_to_props.rb +1 -1
- data/db/migrate/20160625221840_convert_project_extended_attributes_to_props.rb +1 -1
- data/db/migrate/20160813001242_create_teams.rb +1 -1
- data/db/migrate/20160814024129_drop_columns_unused_since07.rb +12 -0
- data/db/migrate/20160916191300_add_type_to_errors.rb +5 -0
- data/db/migrate/20161102012059_drop_code_climate_repo_token.rb +9 -0
- data/db/migrate/20161102012231_drop_feature_states.rb +9 -0
- data/db/migrate/20170115150643_move_adapter_names_to_props.rb +17 -0
- data/db/migrate/20170116002818_drop_releases_tickets_and_releases_tasks.rb +6 -0
- data/db/migrate/20170116210225_move_adapter_names_to_props2.rb +17 -0
- data/db/migrate/20170118005958_remove_antecedents_from_versions_of_tickets.rb +38 -0
- data/db/seeds.rb +0 -7
- data/db/structure.sql +173 -1619
- data/houston-core.gemspec +16 -43
- data/lib/generators/instance_generator.rb +6 -1
- data/lib/hash_dsl.rb +27 -0
- data/{app/adapters → lib}/houston/adapters.rb +1 -3
- data/lib/houston/boot.rb +3 -1
- data/lib/houston/boot/actions.rb +1 -3
- data/lib/houston/boot/active_record_serializer.rb +6 -1
- data/lib/houston/boot/configuration.rb +96 -249
- data/lib/houston/boot/daemonize.rb +1 -1
- data/lib/houston/boot/events.rb +1 -33
- data/lib/houston/boot/extensions.rb +114 -2
- data/lib/houston/boot/observer.rb +8 -6
- data/lib/houston/boot/running_as.rb +28 -0
- data/lib/houston/boot/serializer.rb +2 -0
- data/lib/houston/boot/timer.rb +34 -12
- data/lib/houston/boot/triggers.rb +5 -8
- data/lib/{params_serializer.rb → houston/params_serializer.rb} +0 -0
- data/lib/houston/test_helpers.rb +45 -0
- data/lib/houston/version.rb +1 -1
- data/script/cibuild +4 -1
- data/templates/new-instance/Gemfile +22 -4
- data/templates/new-instance/cable/config.ru +16 -0
- data/templates/new-instance/config.ru +1 -1
- data/templates/new-instance/config/abilities.rb +4 -53
- data/templates/new-instance/config/database.yml +3 -3
- data/{app/adapters/houston/adapters/error_tracker/errors.rb → templates/new-instance/config/events/.keep} +0 -0
- data/templates/new-instance/config/integrations/.keep +0 -0
- data/templates/new-instance/config/main.rb +58 -65
- data/templates/new-instance/config/routes.rb +1 -1
- data/templates/new-instance/config/timers/.keep +0 -0
- data/templates/new-instance/config/timers/purge_jobs.rb +2 -2
- data/templates/new-instance/db/seeds.rb +9 -0
- data/templates/new-instance/db/structure.sql +337 -1592
- data/templates/new-instance/public/sounds/silence.mp3 +0 -0
- data/templates/new-module/app/controllers/houston/%name%/application_controller.rb.tt +1 -1
- data/templates/new-module/test/acceptance/houston_dummy_test.rb +2 -2
- data/templates/new-module/test/dummy/houston.rb +0 -5
- data/templates/new-module/test/fixtures/teams.yml +2 -0
- data/templates/new-module/test/fixtures/teams_users.yml +5 -0
- data/test/factories/user_factory.rb +0 -6
- data/test/support/config.rb +0 -28
- data/test/support/houston/adapters/test_adapter.rb +21 -0
- data/test/support/houston/module1.rb +20 -0
- data/test/support/houston/module2.rb +14 -0
- data/test/test_helper.rb +4 -125
- data/test/unit/concerns/project_adapter_test.rb +66 -0
- data/test/unit/controllers/project_options_controller_test.rb +3 -3
- data/test/unit/controllers/user_options_controller_test.rb +3 -3
- data/test/unit/controllers/users_controller_test.rb +4 -4
- data/test/unit/models/configuration_test.rb +47 -0
- data/test/unit/models/persistent_trigger_test.rb +8 -11
- data/test/unit/models/triggers_test.rb +10 -10
- data/vendor/assets/javascripts/backbone.js +1920 -0
- data/vendor/assets/javascripts/{d3.v3.js → d3.js} +1295 -1015
- data/vendor/assets/javascripts/handlebars.js +4608 -0
- data/vendor/assets/javascripts/underscore.js +1548 -0
- metadata +90 -2493
- data/app/adapters/houston/adapters/ci_server.rb +0 -5
- data/app/adapters/houston/adapters/ci_server/errors.rb +0 -16
- data/app/adapters/houston/adapters/ci_server/jenkins_adapter.rb +0 -21
- data/app/adapters/houston/adapters/ci_server/jenkins_adapter/job.rb +0 -245
- data/app/adapters/houston/adapters/ci_server/none_adapter.rb +0 -21
- data/app/adapters/houston/adapters/ci_server/none_adapter/job.rb +0 -25
- data/app/adapters/houston/adapters/deployment/engineyard.rb +0 -108
- data/app/adapters/houston/adapters/deployment/engineyard/config.rb +0 -18
- data/app/adapters/houston/adapters/error_tracker.rb +0 -5
- data/app/adapters/houston/adapters/error_tracker/errbit_adapter.rb +0 -69
- data/app/adapters/houston/adapters/error_tracker/errbit_adapter/app.rb +0 -48
- data/app/adapters/houston/adapters/error_tracker/errbit_adapter/connection.rb +0 -153
- data/app/adapters/houston/adapters/error_tracker/errbit_adapter/notice.rb +0 -26
- data/app/adapters/houston/adapters/error_tracker/errbit_adapter/problem.rb +0 -98
- data/app/adapters/houston/adapters/error_tracker/none_adapter.rb +0 -31
- data/app/adapters/houston/adapters/error_tracker/null_app.rb +0 -40
- data/app/adapters/houston/adapters/ticket_tracker.rb +0 -5
- data/app/adapters/houston/adapters/ticket_tracker/errors.rb +0 -23
- data/app/adapters/houston/adapters/ticket_tracker/github_adapter.rb +0 -27
- data/app/adapters/houston/adapters/ticket_tracker/github_adapter/connection.rb +0 -167
- data/app/adapters/houston/adapters/ticket_tracker/github_adapter/issue.rb +0 -99
- data/app/adapters/houston/adapters/ticket_tracker/houston_adapter.rb +0 -23
- data/app/adapters/houston/adapters/ticket_tracker/houston_adapter/connection.rb +0 -48
- data/app/adapters/houston/adapters/ticket_tracker/houston_adapter/ticket.rb +0 -65
- data/app/adapters/houston/adapters/ticket_tracker/none_adapter.rb +0 -21
- data/app/adapters/houston/adapters/ticket_tracker/null_connection.rb +0 -46
- data/app/adapters/houston/adapters/ticket_tracker/null_ticket.rb +0 -71
- data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter.rb +0 -43
- data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/connection.rb +0 -224
- data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/milestone.rb +0 -42
- data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/ticket.rb +0 -240
- data/app/adapters/houston/adapters/version_control.rb +0 -5
- data/app/adapters/houston/adapters/version_control/commit.rb +0 -29
- data/app/adapters/houston/adapters/version_control/errors.rb +0 -37
- data/app/adapters/houston/adapters/version_control/git_adapter.rb +0 -90
- data/app/adapters/houston/adapters/version_control/git_adapter/diff_changes.rb +0 -49
- data/app/adapters/houston/adapters/version_control/git_adapter/github_repo.rb +0 -84
- data/app/adapters/houston/adapters/version_control/git_adapter/remote_repo.rb +0 -166
- data/app/adapters/houston/adapters/version_control/git_adapter/repo.rb +0 -265
- data/app/adapters/houston/adapters/version_control/none_adapter.rb +0 -21
- data/app/adapters/houston/adapters/version_control/null_commit.rb +0 -21
- data/app/adapters/houston/adapters/version_control/null_repo.rb +0 -73
- data/app/assets/javascripts/houston/app/models/commit.coffee +0 -9
- data/app/assets/javascripts/houston/app/models/release.coffee +0 -9
- data/app/assets/javascripts/houston/app/models/task.coffee +0 -5
- data/app/assets/javascripts/houston/app/models/tester.coffee +0 -8
- data/app/assets/javascripts/houston/app/models/ticket.coffee +0 -125
- data/app/assets/javascripts/houston/app/releases.coffee +0 -55
- data/app/assets/javascripts/houston/app/ticket_tracker_refresh.coffee +0 -71
- data/app/assets/javascripts/houston/app/views/_show_sprint_view.coffee +0 -84
- data/app/assets/javascripts/houston/app/views/_tickets_view.coffee +0 -62
- data/app/assets/javascripts/houston/app/views/all_tickets_view.coffee +0 -28
- data/app/assets/javascripts/houston/app/views/edit_sprint_view.coffee +0 -327
- data/app/assets/javascripts/houston/app/views/edit_ticket_view.coffee +0 -67
- data/app/assets/javascripts/houston/app/views/find_or_create_ticket_view.coffee +0 -75
- data/app/assets/javascripts/houston/app/views/new_ticket_modal.coffee +0 -24
- data/app/assets/javascripts/houston/app/views/new_ticket_view.coffee +0 -187
- data/app/assets/javascripts/houston/app/views/ticket_modal_view.coffee +0 -77
- data/app/assets/stylesheets/houston/application/commit.scss +0 -22
- data/app/assets/stylesheets/houston/application/exceptions.scss +0 -66
- data/app/assets/stylesheets/houston/application/find_or_create_ticket.scss +0 -12
- data/app/assets/stylesheets/houston/application/new_ticket_view.scss +0 -85
- data/app/assets/stylesheets/houston/application/omnibar.scss +0 -55
- data/app/assets/stylesheets/houston/application/pull_requests.scss +0 -54
- data/app/assets/stylesheets/houston/application/queue.scss +0 -11
- data/app/assets/stylesheets/houston/application/release_form.scss +0 -67
- data/app/assets/stylesheets/houston/application/releases.scss +0 -187
- data/app/assets/stylesheets/houston/application/sprint.scss +0 -83
- data/app/assets/stylesheets/houston/application/test.scss +0 -118
- data/app/assets/stylesheets/houston/application/test_run.scss +0 -154
- data/app/assets/stylesheets/houston/application/ticket.scss +0 -156
- data/app/assets/stylesheets/houston/application/ticket_modal.scss +0 -173
- data/app/assets/stylesheets/houston/application/tickets.scss +0 -36
- data/app/assets/stylesheets/houston/application/timeline.scss +0 -204
- data/app/assets/stylesheets/houston/application/welcome.scss +0 -48
- data/app/assets/templates/new_ticket/form.hbs +0 -14
- data/app/assets/templates/new_ticket/modal.hbs +0 -9
- data/app/assets/templates/new_ticket/suggestion.hbs +0 -3
- data/app/assets/templates/omnibar/commit.hbs +0 -6
- data/app/assets/templates/omnibar/modal.hbs +0 -5
- data/app/assets/templates/omnibar/project.hbs +0 -5
- data/app/assets/templates/omnibar/ticket.hbs +0 -6
- data/app/assets/templates/problems/index.hbs +0 -3
- data/app/assets/templates/problems/show.hbs +0 -48
- data/app/assets/templates/sprints/edit.hbs +0 -50
- data/app/assets/templates/sprints/show.hbs +0 -1
- data/app/assets/templates/sprints/task.hbs +0 -17
- data/app/assets/templates/sprints/typeahead.hbs +0 -7
- data/app/assets/templates/tickets/find_or_create.hbs +0 -4
- data/app/assets/templates/tickets/index.hbs +0 -18
- data/app/assets/templates/tickets/modal.hbs +0 -5
- data/app/assets/templates/tickets/show.hbs +0 -62
- data/app/assets/templates/tickets/typeahead.hbs +0 -2
- data/app/concerns/belongs_to_commit.rb +0 -36
- data/app/concerns/commit_synchronizer.rb +0 -150
- data/app/concerns/feature_state.rb +0 -27
- data/app/concerns/milestone_synchronizer.rb +0 -60
- data/app/concerns/ticket_synchronizer.rb +0 -120
- data/app/concerns/unique_add.rb +0 -7
- data/app/controllers/api/v1/sprint_tasks_controller.rb +0 -97
- data/app/controllers/api/v1/ticket_tasks_controller.rb +0 -75
- data/app/controllers/commits_controller.rb +0 -33
- data/app/controllers/deploys_controller.rb +0 -44
- data/app/controllers/github/pulls_controller.rb +0 -13
- data/app/controllers/omnibar_controller.rb +0 -54
- data/app/controllers/project_tests_controller.rb +0 -105
- data/app/controllers/project_tickets_controller.rb +0 -149
- data/app/controllers/project_tickets_sync_controller.rb +0 -22
- data/app/controllers/releases_controller.rb +0 -151
- data/app/controllers/sprint_task_locks_controller.rb +0 -47
- data/app/controllers/sprints_controller.rb +0 -99
- data/app/controllers/tasks_controller.rb +0 -40
- data/app/controllers/test_runs_controller.rb +0 -61
- data/app/controllers/tickets_controller.rb +0 -48
- data/app/controllers/welcome_controller.rb +0 -28
- data/app/helpers/ansi_helper.rb +0 -46
- data/app/helpers/backtrace_helper.rb +0 -7
- data/app/helpers/breadcrumbs_helper.rb +0 -60
- data/app/helpers/commit_helper.rb +0 -69
- data/app/helpers/demo_helper.rb +0 -23
- data/app/helpers/excel_helpers.rb +0 -7
- data/app/helpers/flash_message_helper.rb +0 -22
- data/app/helpers/maintenance_light_helper.rb +0 -19
- data/app/helpers/release_helper.rb +0 -58
- data/app/helpers/sprint_helper.rb +0 -11
- data/app/helpers/static_chart_helper.rb +0 -7
- data/app/helpers/test_run_helper.rb +0 -76
- data/app/helpers/ticket_helper.rb +0 -25
- data/app/helpers/timeline_helper.rb +0 -39
- data/app/helpers/user_helper.rb +0 -15
- data/app/helpers/version_helper.rb +0 -9
- data/app/interactors/cache_key_dependencies.rb +0 -23
- data/app/interactors/test_run_comparer.rb +0 -46
- data/app/interactors/ticket_report.rb +0 -59
- data/app/jobs/sync_all_tickets_job.rb +0 -49
- data/app/jobs/sync_commits_job.rb +0 -13
- data/app/jobs/sync_project_tickets_job.rb +0 -32
- data/app/mailers/project_notification.rb +0 -79
- data/app/models/activity_feed.rb +0 -111
- data/app/models/code_climate/coverage_report.rb +0 -174
- data/app/models/commit.rb +0 -250
- data/app/models/deploy.rb +0 -120
- data/app/models/environment.rb +0 -39
- data/app/models/github/comment_event.rb +0 -35
- data/app/models/github/commit_comment_event.rb +0 -7
- data/app/models/github/commit_status_report.rb +0 -73
- data/app/models/github/diff_comment_event.rb +0 -7
- data/app/models/github/event.rb +0 -20
- data/app/models/github/issue_comment_event.rb +0 -16
- data/app/models/github/post_receive_event.rb +0 -14
- data/app/models/github/pull_request.rb +0 -278
- data/app/models/github/pull_request_event.rb +0 -38
- data/app/models/github/unauthorized.rb +0 -4
- data/app/models/key_dependency.rb +0 -45
- data/app/models/maintenance_light.rb +0 -12
- data/app/models/menu_item.rb +0 -19
- data/app/models/menu_item_divider.rb +0 -11
- data/app/models/milestone.rb +0 -90
- data/app/models/output_stream.rb +0 -26
- data/app/models/post_receive_payload.rb +0 -30
- data/app/models/project_dependencies.rb +0 -54
- data/app/models/project_dependency.rb +0 -108
- data/app/models/project_menu_item.rb +0 -12
- data/app/models/release.rb +0 -241
- data/app/models/release_change.rb +0 -54
- data/app/models/rubygems/gem.rb +0 -76
- data/app/models/run_tests_on_post_receive.rb +0 -184
- data/app/models/source_file_coverage.rb +0 -10
- data/app/models/sprint.rb +0 -75
- data/app/models/sprint_report.rb +0 -56
- data/app/models/sprint_task.rb +0 -32
- data/app/models/static_chart.rb +0 -137
- data/app/models/static_chart/area.rb +0 -70
- data/app/models/task.rb +0 -218
- data/app/models/test.rb +0 -12
- data/app/models/test_error.rb +0 -8
- data/app/models/test_result.rb +0 -17
- data/app/models/test_run.rb +0 -402
- data/app/models/test_run_statistics.rb +0 -53
- data/app/models/ticket.rb +0 -329
- data/app/models/ticket_comment.rb +0 -21
- data/app/models/ticket_committer.rb +0 -11
- data/app/models/ticket_tag.rb +0 -25
- data/app/presenters/commit_presenter.rb +0 -52
- data/app/presenters/full_ticket_presenter.rb +0 -78
- data/app/presenters/release_presenter.rb +0 -20
- data/app/presenters/sprint_task_presenter.rb +0 -49
- data/app/presenters/task_presenter.rb +0 -44
- data/app/presenters/tasks_excel_presenter.rb +0 -107
- data/app/presenters/ticket_presenter.rb +0 -36
- data/app/views/activity/_events.html.erb +0 -24
- data/app/views/commits/show.html.erb +0 -56
- data/app/views/configuration_error/_no_ticket_tracker.html.erb +0 -7
- data/app/views/deploys/show.html.erb +0 -51
- data/app/views/github/pulls/index.html.erb +0 -109
- data/app/views/project_notification/ci_configuration_error.html.erb +0 -15
- data/app/views/project_notification/new_release.html.erb +0 -37
- data/app/views/project_notification/test_run.html.erb +0 -128
- data/app/views/project_tests/_commits.html.erb +0 -14
- data/app/views/project_tests/index.html.erb +0 -55
- data/app/views/project_tests/show.html.erb +0 -39
- data/app/views/project_tickets/_tickets.html.erb +0 -36
- data/app/views/project_tickets/bugs.html.erb +0 -13
- data/app/views/project_tickets/ideas.html.erb +0 -13
- data/app/views/project_tickets/index.html.erb +0 -13
- data/app/views/project_tickets/index.xls.erb +0 -88
- data/app/views/project_tickets/new.html.erb +0 -17
- data/app/views/project_tickets/no_ticket_tracker.html.erb +0 -8
- data/app/views/project_tickets/open.html.erb +0 -13
- data/app/views/project_tickets/open_bugs.html.erb +0 -13
- data/app/views/project_tickets/open_ideas.html.erb +0 -13
- data/app/views/project_tickets/show.html.erb +0 -76
- data/app/views/projects/_new_ticket.html.erb +0 -8
- data/app/views/projects/_ticket_tracker_refresh.html.erb +0 -4
- data/app/views/projects/new_from_github.html.erb +0 -67
- data/app/views/releases/_changelog.html.erb +0 -45
- data/app/views/releases/_commits.html.erb +0 -18
- data/app/views/releases/_form.html.erb +0 -132
- data/app/views/releases/_index.html.erb +0 -65
- data/app/views/releases/_new_release.html.erb +0 -15
- data/app/views/releases/_results.html.erb +0 -47
- data/app/views/releases/_tickets.html.erb +0 -12
- data/app/views/releases/edit.html.erb +0 -19
- data/app/views/releases/index.html.erb +0 -44
- data/app/views/releases/new.html.erb +0 -72
- data/app/views/releases/show.html.erb +0 -12
- data/app/views/sprints/dashboard.html.erb +0 -31
- data/app/views/sprints/show.html.erb +0 -39
- data/app/views/test_runs/confirm_retry.html.erb +0 -3
- data/app/views/tickets/new.html.erb +0 -18
- data/app/views/welcome/index.html.erb +0 -29
- data/config/initializers/constants.rb +0 -9
- data/config/initializers/run_tests_on_post_receive.rb +0 -1
- data/config/initializers/sync_commits_on_post_receive.rb +0 -3
- data/config/initializers/unfuddle.rb +0 -6
- data/db/fixtures/projects.yml +0 -21
- data/db/fixtures/roles.yml +0 -9
- data/db/fixtures/users.yml +0 -36
- data/db/migrate/20120324202224_create_environments.rb +0 -11
- data/db/migrate/20120324212848_create_releases.rb +0 -12
- data/db/migrate/20120324212946_create_changes.rb +0 -11
- data/db/migrate/20120324230038_create_commits.rb +0 -13
- data/db/migrate/20120406185643_add_initial_commit_to_environments.rb +0 -5
- data/db/migrate/20120417195313_create_tickets.rb +0 -12
- data/db/migrate/20120417195433_create_ticket_queues.rb +0 -11
- data/db/migrate/20120501230243_add_unfuddle_id_to_tickets.rb +0 -9
- data/db/migrate/20120626140242_add_deployment_to_tickets.rb +0 -5
- data/db/migrate/20120626150333_add_last_release_at_to_tickets.rb +0 -14
- data/db/migrate/20120626151320_link_tickets_and_commits.rb +0 -17
- data/db/migrate/20120626152020_add_committer_email_to_commits.rb +0 -13
- data/db/migrate/20120626152949_replace_committer_info_with_author_info.rb +0 -12
- data/db/migrate/20120716010743_add_user_to_releases.rb +0 -14
- data/db/migrate/20120726212620_add_message_to_release.rb +0 -5
- data/db/migrate/20120804003344_add_goldmine_to_tickets.rb +0 -5
- data/db/migrate/20121027160548_create_deploys.rb +0 -11
- data/db/migrate/20121027171215_add_deploy_id_to_releases.rb +0 -6
- data/db/migrate/20121104233305_add_tag_slug_to_changes.rb +0 -5
- data/db/migrate/20121214025558_add_estimated_effort_and_estimated_value_to_tickets.rb +0 -6
- data/db/migrate/20121220031008_add_expires_at_to_tickets.rb +0 -5
- data/db/migrate/20121224212623_rename_environments.rb +0 -29
- data/db/migrate/20121225175106_replace_environment_id_with_environment_name.rb +0 -39
- data/db/migrate/20121230174234_create_test_runs.rb +0 -22
- data/db/migrate/20130106184327_replace_test_runs_details_with_tests.rb +0 -11
- data/db/migrate/20130106185425_add_total_count_to_test_runs.rb +0 -5
- data/db/migrate/20130119204608_add_extended_attributes_to_tickets.rb +0 -35
- data/db/migrate/20130119211540_remove_estimated_effort_and_estimated_value_from_tickets.rb +0 -11
- data/db/migrate/20130119212008_rename_tickets_unfuddle_id_to_remote_id.rb +0 -5
- data/db/migrate/20130120182026_create_ticket_prerequisites.rb +0 -13
- data/db/migrate/20130306023456_add_agent_email_to_test_runs.rb +0 -5
- data/db/migrate/20130306023613_add_branch_to_test_runs.rb +0 -5
- data/db/migrate/20130319003918_add_coverage_to_test_runs.rb +0 -7
- data/db/migrate/20130407220937_add_project_id_to_commits.rb +0 -26
- data/db/migrate/20130504135741_add_antecedents_to_tickets.rb +0 -26
- data/db/migrate/20130505144446_add_tags_to_tickets.rb +0 -9
- data/db/migrate/20130505162039_add_type_to_tickets.rb +0 -9
- data/db/migrate/20130505212838_add_closed_at_to_tickets.rb +0 -9
- data/db/migrate/20130518224352_drop_environments.rb +0 -9
- data/db/migrate/20130518224655_remove_goldmine_from_tickets.rb +0 -9
- data/db/migrate/20130525192607_add_reporter_email_and_reporter_id_to_tickets.rb +0 -6
- data/db/migrate/20130525222131_add_regression_count_to_test_runs.rb +0 -5
- data/db/migrate/20130526024851_give_default_values_for_counts_from_test_runs.rb +0 -19
- data/db/migrate/20130710233849_add_authored_at_to_commits.rb +0 -52
- data/db/migrate/20130711004558_downcase_commits_committer_emails.rb +0 -10
- data/db/migrate/20130711013156_link_commits_and_users.rb +0 -35
- data/db/migrate/20130806143651_link_commits_and_releases.rb +0 -18
- data/db/migrate/20130815232527_add_unreachable_to_commits.rb +0 -6
- data/db/migrate/20130914152419_rename_test_runs_commit_to_sha.rb +0 -9
- data/db/migrate/20130921141449_create_milestones.rb +0 -19
- data/db/migrate/20131002145620_add_destroyed_at_to_tickets.rb +0 -6
- data/db/migrate/20131003014023_add_destroyed_at_to_milestones.rb +0 -6
- data/db/migrate/20131004015452_add_resolution_to_tickets.rb +0 -6
- data/db/migrate/20131004185618_add_first_release_at_to_tickets.rb +0 -14
- data/db/migrate/20131012152403_create_sprints.rb +0 -15
- data/db/migrate/20131013185636_add_checked_out_to_tickets.rb +0 -6
- data/db/migrate/20131027214942_add_priority_to_tickets.rb +0 -5
- data/db/migrate/20131112010815_delete_duplicate_commits.rb +0 -33
- data/db/migrate/20131223194246_add_reopened_at_to_tickets.rb +0 -5
- data/db/migrate/20140114014144_add_deployer_to_deploys.rb +0 -5
- data/db/migrate/20140217195942_add_prerequisites_to_tickets.rb +0 -5
- data/db/migrate/20140327020121_drop_ticket_prerequisites.rb +0 -9
- data/db/migrate/20140401234330_add_index_to_ticket_queues.rb +0 -6
- data/db/migrate/20140406230121_delete_automatically_generated_messages_for_releases.rb +0 -12
- data/db/migrate/20140407010111_drop_sprints_project_id.rb +0 -9
- data/db/migrate/20140418133005_change_ticket_antecedents_to_text_array.rb +0 -9
- data/db/migrate/20140425141946_embed_changes_in_releases.rb +0 -19
- data/db/migrate/20140427235508_prevent_release_changes_from_being_null.rb +0 -6
- data/db/migrate/20140428023146_prevent_ticket_number_from_being_null.rb +0 -5
- data/db/migrate/20140506032958_add_locked_to_sprints.rb +0 -5
- data/db/migrate/20140515174322_create_tasks.rb +0 -20
- data/db/migrate/20140515200824_link_tasks_and_commits.rb +0 -8
- data/db/migrate/20140516012049_create_tasks_for_existing_tickets.rb +0 -33
- data/db/migrate/20140521014652_allow_task_descriptions_to_be_null.rb +0 -13
- data/db/migrate/20140526155845_add_commit_id_to_deploys.rb +0 -31
- data/db/migrate/20140526162645_add_commit_before_id_and_commit_after_id_to_releases.rb +0 -28
- data/db/migrate/20140526180608_associate_remaining_deploys_and_releases.rb +0 -60
- data/db/migrate/20140724231918_create_sprints_tasks.rb +0 -17
- data/db/migrate/20140806233301_add_position_to_milestones.rb +0 -5
- data/db/migrate/20140810224209_add_size_and_units_to_milestones.rb +0 -7
- data/db/migrate/20140824194031_add_project_id_to_tasks.rb +0 -11
- data/db/migrate/20140824194526_add_completed_at_to_tasks.rb +0 -20
- data/db/migrate/20140824211249_require_sprints_to_be_unique.rb +0 -9
- data/db/migrate/20140907012329_drop_table_changes.rb +0 -9
- data/db/migrate/20140921190022_add_checked_out_to_sprints_tasks.rb +0 -19
- data/db/migrate/20140925021043_rename_deploys_commit_to_sha.rb +0 -17
- data/db/migrate/20140929004347_create_historical_heads.rb +0 -23
- data/db/migrate/20141202004123_add_duration_to_deploys.rb +0 -5
- data/db/migrate/20150119154013_drop_unused_fields_from_milestones.rb +0 -13
- data/db/migrate/20150220215154_add_branch_to_deploys.rb +0 -5
- data/db/migrate/20150323004452_add_deploys_completed_at.rb +0 -10
- data/db/migrate/20150323011050_add_output_to_deploy.rb +0 -5
- data/db/migrate/20150805180939_add_commit_id_to_test_runs.rb +0 -30
- data/db/migrate/20150805233946_add_user_id_to_test_runs.rb +0 -23
- data/db/migrate/20150806032230_create_tests.rb +0 -33
- data/db/migrate/20150808161729_create_test_errors.rb +0 -10
- data/db/migrate/20150808161805_create_test_results.rb +0 -72
- data/db/migrate/20150808162928_index_test_runs_on_commit_id.rb +0 -5
- data/db/migrate/20150808192103_index_commits_on_sha.rb +0 -5
- data/db/migrate/20150808193354_add_parent_sha_to_commits.rb +0 -43
- data/db/migrate/20150809132417_rename_test_results_regression_to_difference.rb +0 -11
- data/db/migrate/20150809201942_add_compared_to_test_runs.rb +0 -5
- data/db/migrate/20150817232311_create_pull_requests.rb +0 -25
- data/db/migrate/20150820023708_add_labels_to_pull_requests.rb +0 -5
- data/db/migrate/20150902005758_downcase_environment_names.rb +0 -19
- data/db/migrate/20150902010629_add_user_id_to_deploys.rb +0 -5
- data/db/migrate/20150902010853_populate_deploys_user.rb +0 -13
- data/db/migrate/20150927014445_required_pull_requests_to_be_unique_by_project_and_number.rb +0 -13
- data/db/migrate/20151108221505_convert_pull_request_labels_to_array.rb +0 -22
- data/db/migrate/20151108223154_sync_body_also_for_pull_requests.rb +0 -5
- data/db/migrate/20151108233510_add_props_to_pull_requests.rb +0 -5
- data/db/migrate/20151205214647_add_avatar_url_to_pull_requests.rb +0 -5
- data/db/migrate/20151209004458_add_json_labels_to_pull_requests.rb +0 -5
- data/db/migrate/20151209030113_add_timestamps_to_pull_requests.rb +0 -6
- data/db/migrate/20151226154901_add_search_vector_to_releases.rb +0 -6
- data/db/migrate/20151226155305_generate_index_on_releases.rb +0 -5
- data/db/migrate/20160120145757_add_successful_to_deploys.rb +0 -10
- data/db/migrate/20160510233329_add_closed_at_and_merged_at_to_pull_requests.rb +0 -7
- data/lib/houston/boot/server.rb +0 -31
- data/support/award.ai +17 -4411
- data/support/badges.ai +17 -4623
- data/support/bugs-1.ai +1 -1364
- data/support/bugs-2.ai +0 -807
- data/support/chevron.ai +10 -4440
- data/support/favicon.psd +0 -0
- data/support/flask.ai +0 -387
- data/support/headings.ai +0 -394
- data/support/new-window-link-12.gif +0 -0
- data/support/newrelic.ai +0 -204
- data/support/newrelic.png +0 -0
- data/support/wrench.ai +16 -4393
- data/templates/new-instance/config/alerts/cves.rb +0 -14
- data/templates/new-instance/config/alerts/errs.rb +0 -30
- data/templates/new-instance/config/events/alerts/slack_when_assigned.rb +0 -23
- data/templates/new-instance/config/events/alerts/slack_when_opened.rb +0 -8
- data/templates/new-instance/config/events/daemons/health.rb +0 -21
- data/templates/new-instance/config/events/deploy/autoresolve_errs.rb +0 -11
- data/templates/new-instance/config/events/deploy/checkout_mentioned_alerts.rb +0 -5
- data/templates/new-instance/config/events/deploy/notify_deployer_when_finished.rb +0 -31
- data/templates/new-instance/config/events/github/publish_comments_on_slack.rb +0 -36
- data/templates/new-instance/config/events/tests/email_when_completed.rb +0 -11
- data/templates/new-instance/config/events/tests/slack_when_analyzed.rb +0 -27
- data/templates/new-instance/config/events/tests/slack_when_completed.rb +0 -38
- data/templates/new-instance/config/events/tickets/mark_tasks_completed_on_commit.rb +0 -7
- data/templates/new-instance/config/integrations/engineyard.rb +0 -4
- data/templates/new-instance/config/integrations/errbit.rb +0 -6
- data/templates/new-instance/config/integrations/gemnasium.rb +0 -2
- data/templates/new-instance/config/integrations/github.rb +0 -14
- data/templates/new-instance/config/integrations/jenkins.rb +0 -7
- data/templates/new-instance/config/integrations/ldap.rb +0 -9
- data/templates/new-instance/config/timers/cache_key_dependencies.rb +0 -3
- data/templates/new-instance/config/timers/email_about_open_alerts.rb +0 -5
- data/templates/new-instance/config/timers/slack_reminders_about_alerts.rb +0 -66
- data/templates/new-instance/config/timers/sync_commits.rb +0 -3
- data/templates/new-instance/config/timers/sync_pull_requests.rb +0 -3
- data/templates/new-instance/config/timers/sync_tickets.rb +0 -3
- data/templates/new-instance/lib/gemnasium-alert.rb +0 -25
- data/templates/new-instance/lib/slack_helpers.rb +0 -66
- data/templates/new-instance/lib/time_helpers.rb +0 -7
- data/templates/new-instance/public/images/emoji/+1.png +0 -0
- data/templates/new-instance/public/images/emoji/-1.png +0 -0
- data/templates/new-instance/public/images/emoji/100.png +0 -0
- data/templates/new-instance/public/images/emoji/1234.png +0 -0
- data/templates/new-instance/public/images/emoji/8ball.png +0 -0
- data/templates/new-instance/public/images/emoji/a.png +0 -0
- data/templates/new-instance/public/images/emoji/ab.png +0 -0
- data/templates/new-instance/public/images/emoji/abc.png +0 -0
- data/templates/new-instance/public/images/emoji/abcd.png +0 -0
- data/templates/new-instance/public/images/emoji/accept.png +0 -0
- data/templates/new-instance/public/images/emoji/aerial_tramway.png +0 -0
- data/templates/new-instance/public/images/emoji/airplane.png +0 -0
- data/templates/new-instance/public/images/emoji/alarm_clock.png +0 -0
- data/templates/new-instance/public/images/emoji/alien.png +0 -0
- data/templates/new-instance/public/images/emoji/ambulance.png +0 -0
- data/templates/new-instance/public/images/emoji/anchor.png +0 -0
- data/templates/new-instance/public/images/emoji/angel.png +0 -0
- data/templates/new-instance/public/images/emoji/anger.png +0 -0
- data/templates/new-instance/public/images/emoji/angry.png +0 -0
- data/templates/new-instance/public/images/emoji/anguished.png +0 -0
- data/templates/new-instance/public/images/emoji/ant.png +0 -0
- data/templates/new-instance/public/images/emoji/apple.png +0 -0
- data/templates/new-instance/public/images/emoji/aquarius.png +0 -0
- data/templates/new-instance/public/images/emoji/aries.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_backward.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_double_down.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_double_up.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_down.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_down_small.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_forward.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_heading_down.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_heading_up.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_left.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_lower_left.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_lower_right.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_right.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_right_hook.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_up.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_up_down.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_up_small.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_upper_left.png +0 -0
- data/templates/new-instance/public/images/emoji/arrow_upper_right.png +0 -0
- data/templates/new-instance/public/images/emoji/arrows_clockwise.png +0 -0
- data/templates/new-instance/public/images/emoji/arrows_counterclockwise.png +0 -0
- data/templates/new-instance/public/images/emoji/art.png +0 -0
- data/templates/new-instance/public/images/emoji/articulated_lorry.png +0 -0
- data/templates/new-instance/public/images/emoji/astonished.png +0 -0
- data/templates/new-instance/public/images/emoji/athletic_shoe.png +0 -0
- data/templates/new-instance/public/images/emoji/atm.png +0 -0
- data/templates/new-instance/public/images/emoji/b.png +0 -0
- data/templates/new-instance/public/images/emoji/baby.png +0 -0
- data/templates/new-instance/public/images/emoji/baby_bottle.png +0 -0
- data/templates/new-instance/public/images/emoji/baby_chick.png +0 -0
- data/templates/new-instance/public/images/emoji/baby_symbol.png +0 -0
- data/templates/new-instance/public/images/emoji/back.png +0 -0
- data/templates/new-instance/public/images/emoji/baggage_claim.png +0 -0
- data/templates/new-instance/public/images/emoji/balloon.png +0 -0
- data/templates/new-instance/public/images/emoji/ballot_box_with_check.png +0 -0
- data/templates/new-instance/public/images/emoji/bamboo.png +0 -0
- data/templates/new-instance/public/images/emoji/banana.png +0 -0
- data/templates/new-instance/public/images/emoji/bangbang.png +0 -0
- data/templates/new-instance/public/images/emoji/bank.png +0 -0
- data/templates/new-instance/public/images/emoji/bar_chart.png +0 -0
- data/templates/new-instance/public/images/emoji/barber.png +0 -0
- data/templates/new-instance/public/images/emoji/baseball.png +0 -0
- data/templates/new-instance/public/images/emoji/basketball.png +0 -0
- data/templates/new-instance/public/images/emoji/bath.png +0 -0
- data/templates/new-instance/public/images/emoji/bathtub.png +0 -0
- data/templates/new-instance/public/images/emoji/battery.png +0 -0
- data/templates/new-instance/public/images/emoji/bear.png +0 -0
- data/templates/new-instance/public/images/emoji/bee.png +0 -0
- data/templates/new-instance/public/images/emoji/beer.png +0 -0
- data/templates/new-instance/public/images/emoji/beers.png +0 -0
- data/templates/new-instance/public/images/emoji/beetle.png +0 -0
- data/templates/new-instance/public/images/emoji/beginner.png +0 -0
- data/templates/new-instance/public/images/emoji/bell.png +0 -0
- data/templates/new-instance/public/images/emoji/bento.png +0 -0
- data/templates/new-instance/public/images/emoji/bicyclist.png +0 -0
- data/templates/new-instance/public/images/emoji/bike.png +0 -0
- data/templates/new-instance/public/images/emoji/bikini.png +0 -0
- data/templates/new-instance/public/images/emoji/bird.png +0 -0
- data/templates/new-instance/public/images/emoji/birthday.png +0 -0
- data/templates/new-instance/public/images/emoji/black_circle.png +0 -0
- data/templates/new-instance/public/images/emoji/black_joker.png +0 -0
- data/templates/new-instance/public/images/emoji/black_large_square.png +0 -0
- data/templates/new-instance/public/images/emoji/black_medium_small_square.png +0 -0
- data/templates/new-instance/public/images/emoji/black_medium_square.png +0 -0
- data/templates/new-instance/public/images/emoji/black_nib.png +0 -0
- data/templates/new-instance/public/images/emoji/black_small_square.png +0 -0
- data/templates/new-instance/public/images/emoji/black_square_button.png +0 -0
- data/templates/new-instance/public/images/emoji/blossom.png +0 -0
- data/templates/new-instance/public/images/emoji/blowfish.png +0 -0
- data/templates/new-instance/public/images/emoji/blue_book.png +0 -0
- data/templates/new-instance/public/images/emoji/blue_car.png +0 -0
- data/templates/new-instance/public/images/emoji/blue_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/blush.png +0 -0
- data/templates/new-instance/public/images/emoji/boar.png +0 -0
- data/templates/new-instance/public/images/emoji/boat.png +0 -0
- data/templates/new-instance/public/images/emoji/bomb.png +0 -0
- data/templates/new-instance/public/images/emoji/book.png +0 -0
- data/templates/new-instance/public/images/emoji/bookmark.png +0 -0
- data/templates/new-instance/public/images/emoji/bookmark_tabs.png +0 -0
- data/templates/new-instance/public/images/emoji/books.png +0 -0
- data/templates/new-instance/public/images/emoji/boom.png +0 -0
- data/templates/new-instance/public/images/emoji/boot.png +0 -0
- data/templates/new-instance/public/images/emoji/bouquet.png +0 -0
- data/templates/new-instance/public/images/emoji/bow.png +0 -0
- data/templates/new-instance/public/images/emoji/bowling.png +0 -0
- data/templates/new-instance/public/images/emoji/bowtie.png +0 -0
- data/templates/new-instance/public/images/emoji/boy.png +0 -0
- data/templates/new-instance/public/images/emoji/bread.png +0 -0
- data/templates/new-instance/public/images/emoji/bride_with_veil.png +0 -0
- data/templates/new-instance/public/images/emoji/bridge_at_night.png +0 -0
- data/templates/new-instance/public/images/emoji/briefcase.png +0 -0
- data/templates/new-instance/public/images/emoji/broken_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/bug.png +0 -0
- data/templates/new-instance/public/images/emoji/bulb.png +0 -0
- data/templates/new-instance/public/images/emoji/bullettrain_front.png +0 -0
- data/templates/new-instance/public/images/emoji/bullettrain_side.png +0 -0
- data/templates/new-instance/public/images/emoji/bus.png +0 -0
- data/templates/new-instance/public/images/emoji/busstop.png +0 -0
- data/templates/new-instance/public/images/emoji/bust_in_silhouette.png +0 -0
- data/templates/new-instance/public/images/emoji/busts_in_silhouette.png +0 -0
- data/templates/new-instance/public/images/emoji/cactus.png +0 -0
- data/templates/new-instance/public/images/emoji/cake.png +0 -0
- data/templates/new-instance/public/images/emoji/calendar.png +0 -0
- data/templates/new-instance/public/images/emoji/calling.png +0 -0
- data/templates/new-instance/public/images/emoji/camel.png +0 -0
- data/templates/new-instance/public/images/emoji/camera.png +0 -0
- data/templates/new-instance/public/images/emoji/cancer.png +0 -0
- data/templates/new-instance/public/images/emoji/candy.png +0 -0
- data/templates/new-instance/public/images/emoji/capital_abcd.png +0 -0
- data/templates/new-instance/public/images/emoji/capricorn.png +0 -0
- data/templates/new-instance/public/images/emoji/car.png +0 -0
- data/templates/new-instance/public/images/emoji/card_index.png +0 -0
- data/templates/new-instance/public/images/emoji/carousel_horse.png +0 -0
- data/templates/new-instance/public/images/emoji/cat.png +0 -0
- data/templates/new-instance/public/images/emoji/cat2.png +0 -0
- data/templates/new-instance/public/images/emoji/cd.png +0 -0
- data/templates/new-instance/public/images/emoji/chart.png +0 -0
- data/templates/new-instance/public/images/emoji/chart_with_downwards_trend.png +0 -0
- data/templates/new-instance/public/images/emoji/chart_with_upwards_trend.png +0 -0
- data/templates/new-instance/public/images/emoji/checkered_flag.png +0 -0
- data/templates/new-instance/public/images/emoji/cherries.png +0 -0
- data/templates/new-instance/public/images/emoji/cherry_blossom.png +0 -0
- data/templates/new-instance/public/images/emoji/chestnut.png +0 -0
- data/templates/new-instance/public/images/emoji/chicken.png +0 -0
- data/templates/new-instance/public/images/emoji/children_crossing.png +0 -0
- data/templates/new-instance/public/images/emoji/chocolate_bar.png +0 -0
- data/templates/new-instance/public/images/emoji/christmas_tree.png +0 -0
- data/templates/new-instance/public/images/emoji/church.png +0 -0
- data/templates/new-instance/public/images/emoji/cinema.png +0 -0
- data/templates/new-instance/public/images/emoji/circus_tent.png +0 -0
- data/templates/new-instance/public/images/emoji/city_sunrise.png +0 -0
- data/templates/new-instance/public/images/emoji/city_sunset.png +0 -0
- data/templates/new-instance/public/images/emoji/cl.png +0 -0
- data/templates/new-instance/public/images/emoji/clap.png +0 -0
- data/templates/new-instance/public/images/emoji/clapper.png +0 -0
- data/templates/new-instance/public/images/emoji/clipboard.png +0 -0
- data/templates/new-instance/public/images/emoji/clock1.png +0 -0
- data/templates/new-instance/public/images/emoji/clock10.png +0 -0
- data/templates/new-instance/public/images/emoji/clock1030.png +0 -0
- data/templates/new-instance/public/images/emoji/clock11.png +0 -0
- data/templates/new-instance/public/images/emoji/clock1130.png +0 -0
- data/templates/new-instance/public/images/emoji/clock12.png +0 -0
- data/templates/new-instance/public/images/emoji/clock1230.png +0 -0
- data/templates/new-instance/public/images/emoji/clock130.png +0 -0
- data/templates/new-instance/public/images/emoji/clock2.png +0 -0
- data/templates/new-instance/public/images/emoji/clock230.png +0 -0
- data/templates/new-instance/public/images/emoji/clock3.png +0 -0
- data/templates/new-instance/public/images/emoji/clock330.png +0 -0
- data/templates/new-instance/public/images/emoji/clock4.png +0 -0
- data/templates/new-instance/public/images/emoji/clock430.png +0 -0
- data/templates/new-instance/public/images/emoji/clock5.png +0 -0
- data/templates/new-instance/public/images/emoji/clock530.png +0 -0
- data/templates/new-instance/public/images/emoji/clock6.png +0 -0
- data/templates/new-instance/public/images/emoji/clock630.png +0 -0
- data/templates/new-instance/public/images/emoji/clock7.png +0 -0
- data/templates/new-instance/public/images/emoji/clock730.png +0 -0
- data/templates/new-instance/public/images/emoji/clock8.png +0 -0
- data/templates/new-instance/public/images/emoji/clock830.png +0 -0
- data/templates/new-instance/public/images/emoji/clock9.png +0 -0
- data/templates/new-instance/public/images/emoji/clock930.png +0 -0
- data/templates/new-instance/public/images/emoji/closed_book.png +0 -0
- data/templates/new-instance/public/images/emoji/closed_lock_with_key.png +0 -0
- data/templates/new-instance/public/images/emoji/closed_umbrella.png +0 -0
- data/templates/new-instance/public/images/emoji/cloud.png +0 -0
- data/templates/new-instance/public/images/emoji/clubs.png +0 -0
- data/templates/new-instance/public/images/emoji/cn.png +0 -0
- data/templates/new-instance/public/images/emoji/cocktail.png +0 -0
- data/templates/new-instance/public/images/emoji/coffee.png +0 -0
- data/templates/new-instance/public/images/emoji/cold_sweat.png +0 -0
- data/templates/new-instance/public/images/emoji/collision.png +0 -0
- data/templates/new-instance/public/images/emoji/computer.png +0 -0
- data/templates/new-instance/public/images/emoji/confetti_ball.png +0 -0
- data/templates/new-instance/public/images/emoji/confounded.png +0 -0
- data/templates/new-instance/public/images/emoji/confused.png +0 -0
- data/templates/new-instance/public/images/emoji/congratulations.png +0 -0
- data/templates/new-instance/public/images/emoji/construction.png +0 -0
- data/templates/new-instance/public/images/emoji/construction_worker.png +0 -0
- data/templates/new-instance/public/images/emoji/convenience_store.png +0 -0
- data/templates/new-instance/public/images/emoji/cookie.png +0 -0
- data/templates/new-instance/public/images/emoji/cool.png +0 -0
- data/templates/new-instance/public/images/emoji/cop.png +0 -0
- data/templates/new-instance/public/images/emoji/copyright.png +0 -0
- data/templates/new-instance/public/images/emoji/corn.png +0 -0
- data/templates/new-instance/public/images/emoji/couple.png +0 -0
- data/templates/new-instance/public/images/emoji/couple_with_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/couplekiss.png +0 -0
- data/templates/new-instance/public/images/emoji/cow.png +0 -0
- data/templates/new-instance/public/images/emoji/cow2.png +0 -0
- data/templates/new-instance/public/images/emoji/credit_card.png +0 -0
- data/templates/new-instance/public/images/emoji/crescent_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/crocodile.png +0 -0
- data/templates/new-instance/public/images/emoji/crossed_flags.png +0 -0
- data/templates/new-instance/public/images/emoji/crown.png +0 -0
- data/templates/new-instance/public/images/emoji/cry.png +0 -0
- data/templates/new-instance/public/images/emoji/crying_cat_face.png +0 -0
- data/templates/new-instance/public/images/emoji/crystal_ball.png +0 -0
- data/templates/new-instance/public/images/emoji/cupid.png +0 -0
- data/templates/new-instance/public/images/emoji/curly_loop.png +0 -0
- data/templates/new-instance/public/images/emoji/currency_exchange.png +0 -0
- data/templates/new-instance/public/images/emoji/curry.png +0 -0
- data/templates/new-instance/public/images/emoji/custard.png +0 -0
- data/templates/new-instance/public/images/emoji/customs.png +0 -0
- data/templates/new-instance/public/images/emoji/cyclone.png +0 -0
- data/templates/new-instance/public/images/emoji/dancer.png +0 -0
- data/templates/new-instance/public/images/emoji/dancers.png +0 -0
- data/templates/new-instance/public/images/emoji/dango.png +0 -0
- data/templates/new-instance/public/images/emoji/dart.png +0 -0
- data/templates/new-instance/public/images/emoji/dash.png +0 -0
- data/templates/new-instance/public/images/emoji/date.png +0 -0
- data/templates/new-instance/public/images/emoji/de.png +0 -0
- data/templates/new-instance/public/images/emoji/deciduous_tree.png +0 -0
- data/templates/new-instance/public/images/emoji/department_store.png +0 -0
- data/templates/new-instance/public/images/emoji/diamond_shape_with_a_dot_inside.png +0 -0
- data/templates/new-instance/public/images/emoji/diamonds.png +0 -0
- data/templates/new-instance/public/images/emoji/disappointed.png +0 -0
- data/templates/new-instance/public/images/emoji/disappointed_relieved.png +0 -0
- data/templates/new-instance/public/images/emoji/dizzy.png +0 -0
- data/templates/new-instance/public/images/emoji/dizzy_face.png +0 -0
- data/templates/new-instance/public/images/emoji/do_not_litter.png +0 -0
- data/templates/new-instance/public/images/emoji/dog.png +0 -0
- data/templates/new-instance/public/images/emoji/dog2.png +0 -0
- data/templates/new-instance/public/images/emoji/dollar.png +0 -0
- data/templates/new-instance/public/images/emoji/dolls.png +0 -0
- data/templates/new-instance/public/images/emoji/dolphin.png +0 -0
- data/templates/new-instance/public/images/emoji/door.png +0 -0
- data/templates/new-instance/public/images/emoji/doughnut.png +0 -0
- data/templates/new-instance/public/images/emoji/dragon.png +0 -0
- data/templates/new-instance/public/images/emoji/dragon_face.png +0 -0
- data/templates/new-instance/public/images/emoji/dress.png +0 -0
- data/templates/new-instance/public/images/emoji/dromedary_camel.png +0 -0
- data/templates/new-instance/public/images/emoji/droplet.png +0 -0
- data/templates/new-instance/public/images/emoji/dvd.png +0 -0
- data/templates/new-instance/public/images/emoji/e-mail.png +0 -0
- data/templates/new-instance/public/images/emoji/ear.png +0 -0
- data/templates/new-instance/public/images/emoji/ear_of_rice.png +0 -0
- data/templates/new-instance/public/images/emoji/earth_africa.png +0 -0
- data/templates/new-instance/public/images/emoji/earth_americas.png +0 -0
- data/templates/new-instance/public/images/emoji/earth_asia.png +0 -0
- data/templates/new-instance/public/images/emoji/egg.png +0 -0
- data/templates/new-instance/public/images/emoji/eggplant.png +0 -0
- data/templates/new-instance/public/images/emoji/eight.png +0 -0
- data/templates/new-instance/public/images/emoji/eight_pointed_black_star.png +0 -0
- data/templates/new-instance/public/images/emoji/eight_spoked_asterisk.png +0 -0
- data/templates/new-instance/public/images/emoji/electric_plug.png +0 -0
- data/templates/new-instance/public/images/emoji/elephant.png +0 -0
- data/templates/new-instance/public/images/emoji/email.png +0 -0
- data/templates/new-instance/public/images/emoji/end.png +0 -0
- data/templates/new-instance/public/images/emoji/envelope.png +0 -0
- data/templates/new-instance/public/images/emoji/envelope_with_arrow.png +0 -0
- data/templates/new-instance/public/images/emoji/es.png +0 -0
- data/templates/new-instance/public/images/emoji/euro.png +0 -0
- data/templates/new-instance/public/images/emoji/european_castle.png +0 -0
- data/templates/new-instance/public/images/emoji/european_post_office.png +0 -0
- data/templates/new-instance/public/images/emoji/evergreen_tree.png +0 -0
- data/templates/new-instance/public/images/emoji/exclamation.png +0 -0
- data/templates/new-instance/public/images/emoji/expressionless.png +0 -0
- data/templates/new-instance/public/images/emoji/eyeglasses.png +0 -0
- data/templates/new-instance/public/images/emoji/eyes.png +0 -0
- data/templates/new-instance/public/images/emoji/facepunch.png +0 -0
- data/templates/new-instance/public/images/emoji/factory.png +0 -0
- data/templates/new-instance/public/images/emoji/fallen_leaf.png +0 -0
- data/templates/new-instance/public/images/emoji/family.png +0 -0
- data/templates/new-instance/public/images/emoji/fast_forward.png +0 -0
- data/templates/new-instance/public/images/emoji/fax.png +0 -0
- data/templates/new-instance/public/images/emoji/fearful.png +0 -0
- data/templates/new-instance/public/images/emoji/feelsgood.png +0 -0
- data/templates/new-instance/public/images/emoji/feet.png +0 -0
- data/templates/new-instance/public/images/emoji/ferris_wheel.png +0 -0
- data/templates/new-instance/public/images/emoji/file_folder.png +0 -0
- data/templates/new-instance/public/images/emoji/finnadie.png +0 -0
- data/templates/new-instance/public/images/emoji/fire.png +0 -0
- data/templates/new-instance/public/images/emoji/fire_engine.png +0 -0
- data/templates/new-instance/public/images/emoji/fireworks.png +0 -0
- data/templates/new-instance/public/images/emoji/first_quarter_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/first_quarter_moon_with_face.png +0 -0
- data/templates/new-instance/public/images/emoji/fish.png +0 -0
- data/templates/new-instance/public/images/emoji/fish_cake.png +0 -0
- data/templates/new-instance/public/images/emoji/fishing_pole_and_fish.png +0 -0
- data/templates/new-instance/public/images/emoji/fist.png +0 -0
- data/templates/new-instance/public/images/emoji/five.png +0 -0
- data/templates/new-instance/public/images/emoji/flags.png +0 -0
- data/templates/new-instance/public/images/emoji/flashlight.png +0 -0
- data/templates/new-instance/public/images/emoji/floppy_disk.png +0 -0
- data/templates/new-instance/public/images/emoji/flower_playing_cards.png +0 -0
- data/templates/new-instance/public/images/emoji/flushed.png +0 -0
- data/templates/new-instance/public/images/emoji/foggy.png +0 -0
- data/templates/new-instance/public/images/emoji/football.png +0 -0
- data/templates/new-instance/public/images/emoji/footprints.png +0 -0
- data/templates/new-instance/public/images/emoji/fork_and_knife.png +0 -0
- data/templates/new-instance/public/images/emoji/fountain.png +0 -0
- data/templates/new-instance/public/images/emoji/four.png +0 -0
- data/templates/new-instance/public/images/emoji/four_leaf_clover.png +0 -0
- data/templates/new-instance/public/images/emoji/fr.png +0 -0
- data/templates/new-instance/public/images/emoji/free.png +0 -0
- data/templates/new-instance/public/images/emoji/fried_shrimp.png +0 -0
- data/templates/new-instance/public/images/emoji/fries.png +0 -0
- data/templates/new-instance/public/images/emoji/frog.png +0 -0
- data/templates/new-instance/public/images/emoji/frowning.png +0 -0
- data/templates/new-instance/public/images/emoji/fu.png +0 -0
- data/templates/new-instance/public/images/emoji/fuelpump.png +0 -0
- data/templates/new-instance/public/images/emoji/full_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/full_moon_with_face.png +0 -0
- data/templates/new-instance/public/images/emoji/game_die.png +0 -0
- data/templates/new-instance/public/images/emoji/gb.png +0 -0
- data/templates/new-instance/public/images/emoji/gem.png +0 -0
- data/templates/new-instance/public/images/emoji/gemini.png +0 -0
- data/templates/new-instance/public/images/emoji/ghost.png +0 -0
- data/templates/new-instance/public/images/emoji/gift.png +0 -0
- data/templates/new-instance/public/images/emoji/gift_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/girl.png +0 -0
- data/templates/new-instance/public/images/emoji/globe_with_meridians.png +0 -0
- data/templates/new-instance/public/images/emoji/goat.png +0 -0
- data/templates/new-instance/public/images/emoji/goberserk.png +0 -0
- data/templates/new-instance/public/images/emoji/godmode.png +0 -0
- data/templates/new-instance/public/images/emoji/golf.png +0 -0
- data/templates/new-instance/public/images/emoji/grapes.png +0 -0
- data/templates/new-instance/public/images/emoji/green_apple.png +0 -0
- data/templates/new-instance/public/images/emoji/green_book.png +0 -0
- data/templates/new-instance/public/images/emoji/green_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/grey_exclamation.png +0 -0
- data/templates/new-instance/public/images/emoji/grey_question.png +0 -0
- data/templates/new-instance/public/images/emoji/grimacing.png +0 -0
- data/templates/new-instance/public/images/emoji/grin.png +0 -0
- data/templates/new-instance/public/images/emoji/grinning.png +0 -0
- data/templates/new-instance/public/images/emoji/guardsman.png +0 -0
- data/templates/new-instance/public/images/emoji/guitar.png +0 -0
- data/templates/new-instance/public/images/emoji/gun.png +0 -0
- data/templates/new-instance/public/images/emoji/haircut.png +0 -0
- data/templates/new-instance/public/images/emoji/hamburger.png +0 -0
- data/templates/new-instance/public/images/emoji/hammer.png +0 -0
- data/templates/new-instance/public/images/emoji/hamster.png +0 -0
- data/templates/new-instance/public/images/emoji/hand.png +0 -0
- data/templates/new-instance/public/images/emoji/handbag.png +0 -0
- data/templates/new-instance/public/images/emoji/hankey.png +0 -0
- data/templates/new-instance/public/images/emoji/hash.png +0 -0
- data/templates/new-instance/public/images/emoji/hatched_chick.png +0 -0
- data/templates/new-instance/public/images/emoji/hatching_chick.png +0 -0
- data/templates/new-instance/public/images/emoji/headphones.png +0 -0
- data/templates/new-instance/public/images/emoji/hear_no_evil.png +0 -0
- data/templates/new-instance/public/images/emoji/heart.png +0 -0
- data/templates/new-instance/public/images/emoji/heart_decoration.png +0 -0
- data/templates/new-instance/public/images/emoji/heart_eyes.png +0 -0
- data/templates/new-instance/public/images/emoji/heart_eyes_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/heartbeat.png +0 -0
- data/templates/new-instance/public/images/emoji/heartpulse.png +0 -0
- data/templates/new-instance/public/images/emoji/hearts.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_check_mark.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_division_sign.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_dollar_sign.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_exclamation_mark.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_minus_sign.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_multiplication_x.png +0 -0
- data/templates/new-instance/public/images/emoji/heavy_plus_sign.png +0 -0
- data/templates/new-instance/public/images/emoji/helicopter.png +0 -0
- data/templates/new-instance/public/images/emoji/herb.png +0 -0
- data/templates/new-instance/public/images/emoji/hibiscus.png +0 -0
- data/templates/new-instance/public/images/emoji/high_brightness.png +0 -0
- data/templates/new-instance/public/images/emoji/high_heel.png +0 -0
- data/templates/new-instance/public/images/emoji/hocho.png +0 -0
- data/templates/new-instance/public/images/emoji/honey_pot.png +0 -0
- data/templates/new-instance/public/images/emoji/honeybee.png +0 -0
- data/templates/new-instance/public/images/emoji/horse.png +0 -0
- data/templates/new-instance/public/images/emoji/horse_racing.png +0 -0
- data/templates/new-instance/public/images/emoji/hospital.png +0 -0
- data/templates/new-instance/public/images/emoji/hotel.png +0 -0
- data/templates/new-instance/public/images/emoji/hotsprings.png +0 -0
- data/templates/new-instance/public/images/emoji/hourglass.png +0 -0
- data/templates/new-instance/public/images/emoji/hourglass_flowing_sand.png +0 -0
- data/templates/new-instance/public/images/emoji/house.png +0 -0
- data/templates/new-instance/public/images/emoji/house_with_garden.png +0 -0
- data/templates/new-instance/public/images/emoji/hurtrealbad.png +0 -0
- data/templates/new-instance/public/images/emoji/hushed.png +0 -0
- data/templates/new-instance/public/images/emoji/ice_cream.png +0 -0
- data/templates/new-instance/public/images/emoji/icecream.png +0 -0
- data/templates/new-instance/public/images/emoji/id.png +0 -0
- data/templates/new-instance/public/images/emoji/ideograph_advantage.png +0 -0
- data/templates/new-instance/public/images/emoji/imp.png +0 -0
- data/templates/new-instance/public/images/emoji/inbox_tray.png +0 -0
- data/templates/new-instance/public/images/emoji/incoming_envelope.png +0 -0
- data/templates/new-instance/public/images/emoji/information_desk_person.png +0 -0
- data/templates/new-instance/public/images/emoji/information_source.png +0 -0
- data/templates/new-instance/public/images/emoji/innocent.png +0 -0
- data/templates/new-instance/public/images/emoji/interrobang.png +0 -0
- data/templates/new-instance/public/images/emoji/iphone.png +0 -0
- data/templates/new-instance/public/images/emoji/it.png +0 -0
- data/templates/new-instance/public/images/emoji/izakaya_lantern.png +0 -0
- data/templates/new-instance/public/images/emoji/jack_o_lantern.png +0 -0
- data/templates/new-instance/public/images/emoji/japan.png +0 -0
- data/templates/new-instance/public/images/emoji/japanese_castle.png +0 -0
- data/templates/new-instance/public/images/emoji/japanese_goblin.png +0 -0
- data/templates/new-instance/public/images/emoji/japanese_ogre.png +0 -0
- data/templates/new-instance/public/images/emoji/jeans.png +0 -0
- data/templates/new-instance/public/images/emoji/joy.png +0 -0
- data/templates/new-instance/public/images/emoji/joy_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/jp.png +0 -0
- data/templates/new-instance/public/images/emoji/key.png +0 -0
- data/templates/new-instance/public/images/emoji/keycap_ten.png +0 -0
- data/templates/new-instance/public/images/emoji/kimono.png +0 -0
- data/templates/new-instance/public/images/emoji/kiss.png +0 -0
- data/templates/new-instance/public/images/emoji/kissing.png +0 -0
- data/templates/new-instance/public/images/emoji/kissing_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/kissing_closed_eyes.png +0 -0
- data/templates/new-instance/public/images/emoji/kissing_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/kissing_smiling_eyes.png +0 -0
- data/templates/new-instance/public/images/emoji/koala.png +0 -0
- data/templates/new-instance/public/images/emoji/koko.png +0 -0
- data/templates/new-instance/public/images/emoji/kr.png +0 -0
- data/templates/new-instance/public/images/emoji/lantern.png +0 -0
- data/templates/new-instance/public/images/emoji/large_blue_circle.png +0 -0
- data/templates/new-instance/public/images/emoji/large_blue_diamond.png +0 -0
- data/templates/new-instance/public/images/emoji/large_orange_diamond.png +0 -0
- data/templates/new-instance/public/images/emoji/last_quarter_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/last_quarter_moon_with_face.png +0 -0
- data/templates/new-instance/public/images/emoji/laughing.png +0 -0
- data/templates/new-instance/public/images/emoji/leaves.png +0 -0
- data/templates/new-instance/public/images/emoji/ledger.png +0 -0
- data/templates/new-instance/public/images/emoji/left_luggage.png +0 -0
- data/templates/new-instance/public/images/emoji/left_right_arrow.png +0 -0
- data/templates/new-instance/public/images/emoji/leftwards_arrow_with_hook.png +0 -0
- data/templates/new-instance/public/images/emoji/lemon.png +0 -0
- data/templates/new-instance/public/images/emoji/leo.png +0 -0
- data/templates/new-instance/public/images/emoji/leopard.png +0 -0
- data/templates/new-instance/public/images/emoji/libra.png +0 -0
- data/templates/new-instance/public/images/emoji/light_rail.png +0 -0
- data/templates/new-instance/public/images/emoji/link.png +0 -0
- data/templates/new-instance/public/images/emoji/lips.png +0 -0
- data/templates/new-instance/public/images/emoji/lipstick.png +0 -0
- data/templates/new-instance/public/images/emoji/lock.png +0 -0
- data/templates/new-instance/public/images/emoji/lock_with_ink_pen.png +0 -0
- data/templates/new-instance/public/images/emoji/lollipop.png +0 -0
- data/templates/new-instance/public/images/emoji/loop.png +0 -0
- data/templates/new-instance/public/images/emoji/loudspeaker.png +0 -0
- data/templates/new-instance/public/images/emoji/love_hotel.png +0 -0
- data/templates/new-instance/public/images/emoji/love_letter.png +0 -0
- data/templates/new-instance/public/images/emoji/low_brightness.png +0 -0
- data/templates/new-instance/public/images/emoji/m.png +0 -0
- data/templates/new-instance/public/images/emoji/mag.png +0 -0
- data/templates/new-instance/public/images/emoji/mag_right.png +0 -0
- data/templates/new-instance/public/images/emoji/mahjong.png +0 -0
- data/templates/new-instance/public/images/emoji/mailbox.png +0 -0
- data/templates/new-instance/public/images/emoji/mailbox_closed.png +0 -0
- data/templates/new-instance/public/images/emoji/mailbox_with_mail.png +0 -0
- data/templates/new-instance/public/images/emoji/mailbox_with_no_mail.png +0 -0
- data/templates/new-instance/public/images/emoji/man.png +0 -0
- data/templates/new-instance/public/images/emoji/man_with_gua_pi_mao.png +0 -0
- data/templates/new-instance/public/images/emoji/man_with_turban.png +0 -0
- data/templates/new-instance/public/images/emoji/mans_shoe.png +0 -0
- data/templates/new-instance/public/images/emoji/maple_leaf.png +0 -0
- data/templates/new-instance/public/images/emoji/mask.png +0 -0
- data/templates/new-instance/public/images/emoji/massage.png +0 -0
- data/templates/new-instance/public/images/emoji/meat_on_bone.png +0 -0
- data/templates/new-instance/public/images/emoji/mega.png +0 -0
- data/templates/new-instance/public/images/emoji/melon.png +0 -0
- data/templates/new-instance/public/images/emoji/memo.png +0 -0
- data/templates/new-instance/public/images/emoji/mens.png +0 -0
- data/templates/new-instance/public/images/emoji/metal.png +0 -0
- data/templates/new-instance/public/images/emoji/metro.png +0 -0
- data/templates/new-instance/public/images/emoji/microphone.png +0 -0
- data/templates/new-instance/public/images/emoji/microscope.png +0 -0
- data/templates/new-instance/public/images/emoji/milky_way.png +0 -0
- data/templates/new-instance/public/images/emoji/minibus.png +0 -0
- data/templates/new-instance/public/images/emoji/minidisc.png +0 -0
- data/templates/new-instance/public/images/emoji/mobile_phone_off.png +0 -0
- data/templates/new-instance/public/images/emoji/money_with_wings.png +0 -0
- data/templates/new-instance/public/images/emoji/moneybag.png +0 -0
- data/templates/new-instance/public/images/emoji/monkey.png +0 -0
- data/templates/new-instance/public/images/emoji/monkey_face.png +0 -0
- data/templates/new-instance/public/images/emoji/monorail.png +0 -0
- data/templates/new-instance/public/images/emoji/moon.png +0 -0
- data/templates/new-instance/public/images/emoji/mortar_board.png +0 -0
- data/templates/new-instance/public/images/emoji/mount_fuji.png +0 -0
- data/templates/new-instance/public/images/emoji/mountain_bicyclist.png +0 -0
- data/templates/new-instance/public/images/emoji/mountain_cableway.png +0 -0
- data/templates/new-instance/public/images/emoji/mountain_railway.png +0 -0
- data/templates/new-instance/public/images/emoji/mouse.png +0 -0
- data/templates/new-instance/public/images/emoji/mouse2.png +0 -0
- data/templates/new-instance/public/images/emoji/movie_camera.png +0 -0
- data/templates/new-instance/public/images/emoji/moyai.png +0 -0
- data/templates/new-instance/public/images/emoji/muscle.png +0 -0
- data/templates/new-instance/public/images/emoji/mushroom.png +0 -0
- data/templates/new-instance/public/images/emoji/musical_keyboard.png +0 -0
- data/templates/new-instance/public/images/emoji/musical_note.png +0 -0
- data/templates/new-instance/public/images/emoji/musical_score.png +0 -0
- data/templates/new-instance/public/images/emoji/mute.png +0 -0
- data/templates/new-instance/public/images/emoji/nail_care.png +0 -0
- data/templates/new-instance/public/images/emoji/name_badge.png +0 -0
- data/templates/new-instance/public/images/emoji/neckbeard.png +0 -0
- data/templates/new-instance/public/images/emoji/necktie.png +0 -0
- data/templates/new-instance/public/images/emoji/negative_squared_cross_mark.png +0 -0
- data/templates/new-instance/public/images/emoji/neutral_face.png +0 -0
- data/templates/new-instance/public/images/emoji/new.png +0 -0
- data/templates/new-instance/public/images/emoji/new_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/new_moon_with_face.png +0 -0
- data/templates/new-instance/public/images/emoji/newspaper.png +0 -0
- data/templates/new-instance/public/images/emoji/ng.png +0 -0
- data/templates/new-instance/public/images/emoji/nine.png +0 -0
- data/templates/new-instance/public/images/emoji/no_bell.png +0 -0
- data/templates/new-instance/public/images/emoji/no_bicycles.png +0 -0
- data/templates/new-instance/public/images/emoji/no_entry.png +0 -0
- data/templates/new-instance/public/images/emoji/no_entry_sign.png +0 -0
- data/templates/new-instance/public/images/emoji/no_good.png +0 -0
- data/templates/new-instance/public/images/emoji/no_mobile_phones.png +0 -0
- data/templates/new-instance/public/images/emoji/no_mouth.png +0 -0
- data/templates/new-instance/public/images/emoji/no_pedestrians.png +0 -0
- data/templates/new-instance/public/images/emoji/no_smoking.png +0 -0
- data/templates/new-instance/public/images/emoji/non-potable_water.png +0 -0
- data/templates/new-instance/public/images/emoji/nose.png +0 -0
- data/templates/new-instance/public/images/emoji/notebook.png +0 -0
- data/templates/new-instance/public/images/emoji/notebook_with_decorative_cover.png +0 -0
- data/templates/new-instance/public/images/emoji/notes.png +0 -0
- data/templates/new-instance/public/images/emoji/nut_and_bolt.png +0 -0
- data/templates/new-instance/public/images/emoji/o.png +0 -0
- data/templates/new-instance/public/images/emoji/o2.png +0 -0
- data/templates/new-instance/public/images/emoji/ocean.png +0 -0
- data/templates/new-instance/public/images/emoji/octocat.png +0 -0
- data/templates/new-instance/public/images/emoji/octopus.png +0 -0
- data/templates/new-instance/public/images/emoji/oden.png +0 -0
- data/templates/new-instance/public/images/emoji/office.png +0 -0
- data/templates/new-instance/public/images/emoji/ok.png +0 -0
- data/templates/new-instance/public/images/emoji/ok_hand.png +0 -0
- data/templates/new-instance/public/images/emoji/ok_woman.png +0 -0
- data/templates/new-instance/public/images/emoji/older_man.png +0 -0
- data/templates/new-instance/public/images/emoji/older_woman.png +0 -0
- data/templates/new-instance/public/images/emoji/on.png +0 -0
- data/templates/new-instance/public/images/emoji/oncoming_automobile.png +0 -0
- data/templates/new-instance/public/images/emoji/oncoming_bus.png +0 -0
- data/templates/new-instance/public/images/emoji/oncoming_police_car.png +0 -0
- data/templates/new-instance/public/images/emoji/oncoming_taxi.png +0 -0
- data/templates/new-instance/public/images/emoji/one.png +0 -0
- data/templates/new-instance/public/images/emoji/open_book.png +0 -0
- data/templates/new-instance/public/images/emoji/open_file_folder.png +0 -0
- data/templates/new-instance/public/images/emoji/open_hands.png +0 -0
- data/templates/new-instance/public/images/emoji/open_mouth.png +0 -0
- data/templates/new-instance/public/images/emoji/ophiuchus.png +0 -0
- data/templates/new-instance/public/images/emoji/orange_book.png +0 -0
- data/templates/new-instance/public/images/emoji/outbox_tray.png +0 -0
- data/templates/new-instance/public/images/emoji/ox.png +0 -0
- data/templates/new-instance/public/images/emoji/package.png +0 -0
- data/templates/new-instance/public/images/emoji/page_facing_up.png +0 -0
- data/templates/new-instance/public/images/emoji/page_with_curl.png +0 -0
- data/templates/new-instance/public/images/emoji/pager.png +0 -0
- data/templates/new-instance/public/images/emoji/palm_tree.png +0 -0
- data/templates/new-instance/public/images/emoji/panda_face.png +0 -0
- data/templates/new-instance/public/images/emoji/paperclip.png +0 -0
- data/templates/new-instance/public/images/emoji/parking.png +0 -0
- data/templates/new-instance/public/images/emoji/part_alternation_mark.png +0 -0
- data/templates/new-instance/public/images/emoji/partly_sunny.png +0 -0
- data/templates/new-instance/public/images/emoji/passport_control.png +0 -0
- data/templates/new-instance/public/images/emoji/paw_prints.png +0 -0
- data/templates/new-instance/public/images/emoji/peach.png +0 -0
- data/templates/new-instance/public/images/emoji/pear.png +0 -0
- data/templates/new-instance/public/images/emoji/pencil.png +0 -0
- data/templates/new-instance/public/images/emoji/pencil2.png +0 -0
- data/templates/new-instance/public/images/emoji/penguin.png +0 -0
- data/templates/new-instance/public/images/emoji/pensive.png +0 -0
- data/templates/new-instance/public/images/emoji/performing_arts.png +0 -0
- data/templates/new-instance/public/images/emoji/persevere.png +0 -0
- data/templates/new-instance/public/images/emoji/person_frowning.png +0 -0
- data/templates/new-instance/public/images/emoji/person_with_blond_hair.png +0 -0
- data/templates/new-instance/public/images/emoji/person_with_pouting_face.png +0 -0
- data/templates/new-instance/public/images/emoji/phone.png +0 -0
- data/templates/new-instance/public/images/emoji/pig.png +0 -0
- data/templates/new-instance/public/images/emoji/pig2.png +0 -0
- data/templates/new-instance/public/images/emoji/pig_nose.png +0 -0
- data/templates/new-instance/public/images/emoji/pill.png +0 -0
- data/templates/new-instance/public/images/emoji/pineapple.png +0 -0
- data/templates/new-instance/public/images/emoji/pisces.png +0 -0
- data/templates/new-instance/public/images/emoji/pizza.png +0 -0
- data/templates/new-instance/public/images/emoji/point_down.png +0 -0
- data/templates/new-instance/public/images/emoji/point_left.png +0 -0
- data/templates/new-instance/public/images/emoji/point_right.png +0 -0
- data/templates/new-instance/public/images/emoji/point_up.png +0 -0
- data/templates/new-instance/public/images/emoji/point_up_2.png +0 -0
- data/templates/new-instance/public/images/emoji/police_car.png +0 -0
- data/templates/new-instance/public/images/emoji/poodle.png +0 -0
- data/templates/new-instance/public/images/emoji/poop.png +0 -0
- data/templates/new-instance/public/images/emoji/post_office.png +0 -0
- data/templates/new-instance/public/images/emoji/postal_horn.png +0 -0
- data/templates/new-instance/public/images/emoji/postbox.png +0 -0
- data/templates/new-instance/public/images/emoji/potable_water.png +0 -0
- data/templates/new-instance/public/images/emoji/pouch.png +0 -0
- data/templates/new-instance/public/images/emoji/poultry_leg.png +0 -0
- data/templates/new-instance/public/images/emoji/pound.png +0 -0
- data/templates/new-instance/public/images/emoji/pouting_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/pray.png +0 -0
- data/templates/new-instance/public/images/emoji/princess.png +0 -0
- data/templates/new-instance/public/images/emoji/punch.png +0 -0
- data/templates/new-instance/public/images/emoji/purple_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/purse.png +0 -0
- data/templates/new-instance/public/images/emoji/pushpin.png +0 -0
- data/templates/new-instance/public/images/emoji/put_litter_in_its_place.png +0 -0
- data/templates/new-instance/public/images/emoji/question.png +0 -0
- data/templates/new-instance/public/images/emoji/rabbit.png +0 -0
- data/templates/new-instance/public/images/emoji/rabbit2.png +0 -0
- data/templates/new-instance/public/images/emoji/racehorse.png +0 -0
- data/templates/new-instance/public/images/emoji/radio.png +0 -0
- data/templates/new-instance/public/images/emoji/radio_button.png +0 -0
- data/templates/new-instance/public/images/emoji/rage.png +0 -0
- data/templates/new-instance/public/images/emoji/rage1.png +0 -0
- data/templates/new-instance/public/images/emoji/rage2.png +0 -0
- data/templates/new-instance/public/images/emoji/rage3.png +0 -0
- data/templates/new-instance/public/images/emoji/rage4.png +0 -0
- data/templates/new-instance/public/images/emoji/railway_car.png +0 -0
- data/templates/new-instance/public/images/emoji/rainbow.png +0 -0
- data/templates/new-instance/public/images/emoji/raised_hand.png +0 -0
- data/templates/new-instance/public/images/emoji/raised_hands.png +0 -0
- data/templates/new-instance/public/images/emoji/raising_hand.png +0 -0
- data/templates/new-instance/public/images/emoji/ram.png +0 -0
- data/templates/new-instance/public/images/emoji/ramen.png +0 -0
- data/templates/new-instance/public/images/emoji/rat.png +0 -0
- data/templates/new-instance/public/images/emoji/recycle.png +0 -0
- data/templates/new-instance/public/images/emoji/red_car.png +0 -0
- data/templates/new-instance/public/images/emoji/red_circle.png +0 -0
- data/templates/new-instance/public/images/emoji/registered.png +0 -0
- data/templates/new-instance/public/images/emoji/relaxed.png +0 -0
- data/templates/new-instance/public/images/emoji/relieved.png +0 -0
- data/templates/new-instance/public/images/emoji/repeat.png +0 -0
- data/templates/new-instance/public/images/emoji/repeat_one.png +0 -0
- data/templates/new-instance/public/images/emoji/restroom.png +0 -0
- data/templates/new-instance/public/images/emoji/revolving_hearts.png +0 -0
- data/templates/new-instance/public/images/emoji/rewind.png +0 -0
- data/templates/new-instance/public/images/emoji/ribbon.png +0 -0
- data/templates/new-instance/public/images/emoji/rice.png +0 -0
- data/templates/new-instance/public/images/emoji/rice_ball.png +0 -0
- data/templates/new-instance/public/images/emoji/rice_cracker.png +0 -0
- data/templates/new-instance/public/images/emoji/rice_scene.png +0 -0
- data/templates/new-instance/public/images/emoji/ring.png +0 -0
- data/templates/new-instance/public/images/emoji/rocket.png +0 -0
- data/templates/new-instance/public/images/emoji/roller_coaster.png +0 -0
- data/templates/new-instance/public/images/emoji/rooster.png +0 -0
- data/templates/new-instance/public/images/emoji/rose.png +0 -0
- data/templates/new-instance/public/images/emoji/rotating_light.png +0 -0
- data/templates/new-instance/public/images/emoji/round_pushpin.png +0 -0
- data/templates/new-instance/public/images/emoji/rowboat.png +0 -0
- data/templates/new-instance/public/images/emoji/ru.png +0 -0
- data/templates/new-instance/public/images/emoji/rugby_football.png +0 -0
- data/templates/new-instance/public/images/emoji/runner.png +0 -0
- data/templates/new-instance/public/images/emoji/running.png +0 -0
- data/templates/new-instance/public/images/emoji/running_shirt_with_sash.png +0 -0
- data/templates/new-instance/public/images/emoji/sa.png +0 -0
- data/templates/new-instance/public/images/emoji/sagittarius.png +0 -0
- data/templates/new-instance/public/images/emoji/sailboat.png +0 -0
- data/templates/new-instance/public/images/emoji/sake.png +0 -0
- data/templates/new-instance/public/images/emoji/sandal.png +0 -0
- data/templates/new-instance/public/images/emoji/santa.png +0 -0
- data/templates/new-instance/public/images/emoji/satellite.png +0 -0
- data/templates/new-instance/public/images/emoji/satisfied.png +0 -0
- data/templates/new-instance/public/images/emoji/saxophone.png +0 -0
- data/templates/new-instance/public/images/emoji/school.png +0 -0
- data/templates/new-instance/public/images/emoji/school_satchel.png +0 -0
- data/templates/new-instance/public/images/emoji/scissors.png +0 -0
- data/templates/new-instance/public/images/emoji/scorpius.png +0 -0
- data/templates/new-instance/public/images/emoji/scream.png +0 -0
- data/templates/new-instance/public/images/emoji/scream_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/scroll.png +0 -0
- data/templates/new-instance/public/images/emoji/seat.png +0 -0
- data/templates/new-instance/public/images/emoji/secret.png +0 -0
- data/templates/new-instance/public/images/emoji/see_no_evil.png +0 -0
- data/templates/new-instance/public/images/emoji/seedling.png +0 -0
- data/templates/new-instance/public/images/emoji/seven.png +0 -0
- data/templates/new-instance/public/images/emoji/shaved_ice.png +0 -0
- data/templates/new-instance/public/images/emoji/sheep.png +0 -0
- data/templates/new-instance/public/images/emoji/shell.png +0 -0
- data/templates/new-instance/public/images/emoji/ship.png +0 -0
- data/templates/new-instance/public/images/emoji/shipit.png +0 -0
- data/templates/new-instance/public/images/emoji/shirt.png +0 -0
- data/templates/new-instance/public/images/emoji/shit.png +0 -0
- data/templates/new-instance/public/images/emoji/shoe.png +0 -0
- data/templates/new-instance/public/images/emoji/shower.png +0 -0
- data/templates/new-instance/public/images/emoji/signal_strength.png +0 -0
- data/templates/new-instance/public/images/emoji/six.png +0 -0
- data/templates/new-instance/public/images/emoji/six_pointed_star.png +0 -0
- data/templates/new-instance/public/images/emoji/ski.png +0 -0
- data/templates/new-instance/public/images/emoji/skull.png +0 -0
- data/templates/new-instance/public/images/emoji/sleeping.png +0 -0
- data/templates/new-instance/public/images/emoji/sleepy.png +0 -0
- data/templates/new-instance/public/images/emoji/slot_machine.png +0 -0
- data/templates/new-instance/public/images/emoji/small_blue_diamond.png +0 -0
- data/templates/new-instance/public/images/emoji/small_orange_diamond.png +0 -0
- data/templates/new-instance/public/images/emoji/small_red_triangle.png +0 -0
- data/templates/new-instance/public/images/emoji/small_red_triangle_down.png +0 -0
- data/templates/new-instance/public/images/emoji/smile.png +0 -0
- data/templates/new-instance/public/images/emoji/smile_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/smiley.png +0 -0
- data/templates/new-instance/public/images/emoji/smiley_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/smiling_imp.png +0 -0
- data/templates/new-instance/public/images/emoji/smirk.png +0 -0
- data/templates/new-instance/public/images/emoji/smirk_cat.png +0 -0
- data/templates/new-instance/public/images/emoji/smoking.png +0 -0
- data/templates/new-instance/public/images/emoji/snail.png +0 -0
- data/templates/new-instance/public/images/emoji/snake.png +0 -0
- data/templates/new-instance/public/images/emoji/snowboarder.png +0 -0
- data/templates/new-instance/public/images/emoji/snowflake.png +0 -0
- data/templates/new-instance/public/images/emoji/snowman.png +0 -0
- data/templates/new-instance/public/images/emoji/sob.png +0 -0
- data/templates/new-instance/public/images/emoji/soccer.png +0 -0
- data/templates/new-instance/public/images/emoji/soon.png +0 -0
- data/templates/new-instance/public/images/emoji/sos.png +0 -0
- data/templates/new-instance/public/images/emoji/sound.png +0 -0
- data/templates/new-instance/public/images/emoji/space_invader.png +0 -0
- data/templates/new-instance/public/images/emoji/spades.png +0 -0
- data/templates/new-instance/public/images/emoji/spaghetti.png +0 -0
- data/templates/new-instance/public/images/emoji/sparkle.png +0 -0
- data/templates/new-instance/public/images/emoji/sparkler.png +0 -0
- data/templates/new-instance/public/images/emoji/sparkles.png +0 -0
- data/templates/new-instance/public/images/emoji/sparkling_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/speak_no_evil.png +0 -0
- data/templates/new-instance/public/images/emoji/speaker.png +0 -0
- data/templates/new-instance/public/images/emoji/speech_balloon.png +0 -0
- data/templates/new-instance/public/images/emoji/speedboat.png +0 -0
- data/templates/new-instance/public/images/emoji/squirrel.png +0 -0
- data/templates/new-instance/public/images/emoji/star.png +0 -0
- data/templates/new-instance/public/images/emoji/star2.png +0 -0
- data/templates/new-instance/public/images/emoji/stars.png +0 -0
- data/templates/new-instance/public/images/emoji/station.png +0 -0
- data/templates/new-instance/public/images/emoji/statue_of_liberty.png +0 -0
- data/templates/new-instance/public/images/emoji/steam_locomotive.png +0 -0
- data/templates/new-instance/public/images/emoji/stew.png +0 -0
- data/templates/new-instance/public/images/emoji/straight_ruler.png +0 -0
- data/templates/new-instance/public/images/emoji/strawberry.png +0 -0
- data/templates/new-instance/public/images/emoji/stuck_out_tongue.png +0 -0
- data/templates/new-instance/public/images/emoji/stuck_out_tongue_closed_eyes.png +0 -0
- data/templates/new-instance/public/images/emoji/stuck_out_tongue_winking_eye.png +0 -0
- data/templates/new-instance/public/images/emoji/sun_with_face.png +0 -0
- data/templates/new-instance/public/images/emoji/sunflower.png +0 -0
- data/templates/new-instance/public/images/emoji/sunglasses.png +0 -0
- data/templates/new-instance/public/images/emoji/sunny.png +0 -0
- data/templates/new-instance/public/images/emoji/sunrise.png +0 -0
- data/templates/new-instance/public/images/emoji/sunrise_over_mountains.png +0 -0
- data/templates/new-instance/public/images/emoji/surfer.png +0 -0
- data/templates/new-instance/public/images/emoji/sushi.png +0 -0
- data/templates/new-instance/public/images/emoji/suspect.png +0 -0
- data/templates/new-instance/public/images/emoji/suspension_railway.png +0 -0
- data/templates/new-instance/public/images/emoji/sweat.png +0 -0
- data/templates/new-instance/public/images/emoji/sweat_drops.png +0 -0
- data/templates/new-instance/public/images/emoji/sweat_smile.png +0 -0
- data/templates/new-instance/public/images/emoji/sweet_potato.png +0 -0
- data/templates/new-instance/public/images/emoji/swimmer.png +0 -0
- data/templates/new-instance/public/images/emoji/symbols.png +0 -0
- data/templates/new-instance/public/images/emoji/syringe.png +0 -0
- data/templates/new-instance/public/images/emoji/tada.png +0 -0
- data/templates/new-instance/public/images/emoji/tanabata_tree.png +0 -0
- data/templates/new-instance/public/images/emoji/tangerine.png +0 -0
- data/templates/new-instance/public/images/emoji/taurus.png +0 -0
- data/templates/new-instance/public/images/emoji/taxi.png +0 -0
- data/templates/new-instance/public/images/emoji/tea.png +0 -0
- data/templates/new-instance/public/images/emoji/telephone.png +0 -0
- data/templates/new-instance/public/images/emoji/telephone_receiver.png +0 -0
- data/templates/new-instance/public/images/emoji/telescope.png +0 -0
- data/templates/new-instance/public/images/emoji/tennis.png +0 -0
- data/templates/new-instance/public/images/emoji/tent.png +0 -0
- data/templates/new-instance/public/images/emoji/thought_balloon.png +0 -0
- data/templates/new-instance/public/images/emoji/three.png +0 -0
- data/templates/new-instance/public/images/emoji/thumbsdown.png +0 -0
- data/templates/new-instance/public/images/emoji/thumbsup.png +0 -0
- data/templates/new-instance/public/images/emoji/ticket.png +0 -0
- data/templates/new-instance/public/images/emoji/tiger.png +0 -0
- data/templates/new-instance/public/images/emoji/tiger2.png +0 -0
- data/templates/new-instance/public/images/emoji/tired_face.png +0 -0
- data/templates/new-instance/public/images/emoji/tm.png +0 -0
- data/templates/new-instance/public/images/emoji/toilet.png +0 -0
- data/templates/new-instance/public/images/emoji/tokyo_tower.png +0 -0
- data/templates/new-instance/public/images/emoji/tomato.png +0 -0
- data/templates/new-instance/public/images/emoji/tongue.png +0 -0
- data/templates/new-instance/public/images/emoji/top.png +0 -0
- data/templates/new-instance/public/images/emoji/tophat.png +0 -0
- data/templates/new-instance/public/images/emoji/tractor.png +0 -0
- data/templates/new-instance/public/images/emoji/traffic_light.png +0 -0
- data/templates/new-instance/public/images/emoji/train.png +0 -0
- data/templates/new-instance/public/images/emoji/train2.png +0 -0
- data/templates/new-instance/public/images/emoji/tram.png +0 -0
- data/templates/new-instance/public/images/emoji/triangular_flag_on_post.png +0 -0
- data/templates/new-instance/public/images/emoji/triangular_ruler.png +0 -0
- data/templates/new-instance/public/images/emoji/trident.png +0 -0
- data/templates/new-instance/public/images/emoji/triumph.png +0 -0
- data/templates/new-instance/public/images/emoji/trolleybus.png +0 -0
- data/templates/new-instance/public/images/emoji/trollface.png +0 -0
- data/templates/new-instance/public/images/emoji/trophy.png +0 -0
- data/templates/new-instance/public/images/emoji/tropical_drink.png +0 -0
- data/templates/new-instance/public/images/emoji/tropical_fish.png +0 -0
- data/templates/new-instance/public/images/emoji/truck.png +0 -0
- data/templates/new-instance/public/images/emoji/trumpet.png +0 -0
- data/templates/new-instance/public/images/emoji/tshirt.png +0 -0
- data/templates/new-instance/public/images/emoji/tulip.png +0 -0
- data/templates/new-instance/public/images/emoji/turtle.png +0 -0
- data/templates/new-instance/public/images/emoji/tv.png +0 -0
- data/templates/new-instance/public/images/emoji/twisted_rightwards_arrows.png +0 -0
- data/templates/new-instance/public/images/emoji/two.png +0 -0
- data/templates/new-instance/public/images/emoji/two_hearts.png +0 -0
- data/templates/new-instance/public/images/emoji/two_men_holding_hands.png +0 -0
- data/templates/new-instance/public/images/emoji/two_women_holding_hands.png +0 -0
- data/templates/new-instance/public/images/emoji/u5272.png +0 -0
- data/templates/new-instance/public/images/emoji/u5408.png +0 -0
- data/templates/new-instance/public/images/emoji/u55b6.png +0 -0
- data/templates/new-instance/public/images/emoji/u6307.png +0 -0
- data/templates/new-instance/public/images/emoji/u6708.png +0 -0
- data/templates/new-instance/public/images/emoji/u6709.png +0 -0
- data/templates/new-instance/public/images/emoji/u6e80.png +0 -0
- data/templates/new-instance/public/images/emoji/u7121.png +0 -0
- data/templates/new-instance/public/images/emoji/u7533.png +0 -0
- data/templates/new-instance/public/images/emoji/u7981.png +0 -0
- data/templates/new-instance/public/images/emoji/u7a7a.png +0 -0
- data/templates/new-instance/public/images/emoji/uk.png +0 -0
- data/templates/new-instance/public/images/emoji/umbrella.png +0 -0
- data/templates/new-instance/public/images/emoji/unamused.png +0 -0
- data/templates/new-instance/public/images/emoji/underage.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0023.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0030.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0031.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0032.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0033.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0034.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0035.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0036.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0037.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0038.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/0039.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/00a9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/00ae.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f004.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f0cf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f170.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f171.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f17e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f17f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f18e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f191.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f192.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f193.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f194.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f195.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f196.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f197.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f198.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f199.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f19a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1e8-1f1f3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1e9-1f1ea.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1ea-1f1f8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1eb-1f1f7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1ec-1f1e7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1ee-1f1f9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1ef-1f1f5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1f0-1f1f7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1f7-1f1fa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f1fa-1f1f8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f201.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f202.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f21a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f22f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f232.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f233.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f234.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f235.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f236.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f237.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f238.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f239.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f23a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f250.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f251.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f300.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f301.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f302.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f303.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f304.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f305.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f306.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f307.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f308.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f309.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f30f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f310.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f311.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f312.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f313.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f314.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f315.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f316.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f317.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f318.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f319.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f31f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f330.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f331.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f332.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f333.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f334.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f335.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f337.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f338.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f339.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f33f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f340.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f341.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f342.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f343.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f344.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f345.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f346.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f347.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f348.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f349.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f34f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f350.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f351.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f352.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f353.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f354.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f355.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f356.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f357.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f358.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f359.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f35f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f360.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f361.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f362.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f363.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f364.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f365.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f366.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f367.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f368.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f369.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f36f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f370.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f371.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f372.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f373.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f374.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f375.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f376.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f377.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f378.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f379.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f37a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f37b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f37c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f380.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f381.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f382.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f383.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f384.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f385.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f386.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f387.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f388.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f389.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f38f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f390.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f391.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f392.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f393.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3a9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ab.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ac.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ad.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ae.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3af.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3b9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ba.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3bb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3bc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3bd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3be.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3bf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3c9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ca.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3e9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ea.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3eb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ec.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ed.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ee.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3ef.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f3f0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f400.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f401.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f402.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f403.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f404.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f405.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f406.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f407.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f408.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f409.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f40f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f410.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f411.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f412.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f413.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f414.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f415.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f416.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f417.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f418.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f419.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f41f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f420.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f421.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f422.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f423.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f424.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f425.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f426.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f427.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f428.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f429.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f42f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f430.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f431.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f432.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f433.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f434.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f435.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f436.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f437.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f438.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f439.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f43a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f43b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f43c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f43d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f43e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f440.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f442.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f443.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f444.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f445.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f446.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f447.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f448.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f449.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f44f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f450.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f451.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f452.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f453.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f454.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f455.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f456.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f457.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f458.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f459.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f45f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f460.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f461.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f462.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f463.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f464.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f465.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f466.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f467.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f468.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f469.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f46f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f470.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f471.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f472.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f473.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f474.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f475.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f476.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f477.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f478.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f479.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f47f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f480.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f481.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f482.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f483.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f484.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f485.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f486.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f487.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f488.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f489.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f48f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f490.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f491.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f492.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f493.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f494.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f495.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f496.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f497.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f498.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f499.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f49f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4a9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ab.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ac.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ad.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ae.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4af.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4b9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ba.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4bb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4bc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4bd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4be.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4bf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4c9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ca.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4cb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4cc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4cd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ce.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4cf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4d9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4da.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4db.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4dc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4dd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4de.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4df.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4e9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ea.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4eb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ec.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ed.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ee.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4ef.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4f9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4fa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4fb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f4fc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f500.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f501.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f502.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f503.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f504.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f505.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f506.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f507.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f509.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f50f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f510.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f511.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f512.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f513.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f514.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f515.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f516.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f517.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f518.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f519.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f51f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f520.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f521.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f522.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f523.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f524.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f525.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f526.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f527.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f528.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f529.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f52f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f530.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f531.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f532.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f533.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f534.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f535.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f536.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f537.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f538.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f539.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f53a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f53b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f53c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f53d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f550.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f551.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f552.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f553.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f554.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f555.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f556.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f557.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f558.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f559.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f55f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f560.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f561.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f562.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f563.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f564.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f565.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f566.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f567.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f5fb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f5fc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f5fd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f5fe.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f5ff.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f600.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f601.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f602.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f603.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f604.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f605.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f606.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f607.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f608.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f609.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f60f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f610.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f611.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f612.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f613.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f614.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f615.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f616.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f617.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f618.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f619.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f61f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f620.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f621.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f622.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f623.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f624.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f625.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f626.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f627.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f628.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f629.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f62f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f630.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f631.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f632.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f633.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f634.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f635.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f636.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f637.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f638.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f639.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f63f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f640.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f645.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f646.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f647.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f648.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f649.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f64f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f680.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f681.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f682.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f683.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f684.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f685.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f686.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f687.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f688.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f689.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f68a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f68c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f68d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f68e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f68f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f690.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f691.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f692.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f693.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f694.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f695.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f696.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f697.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f698.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f699.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f69f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6a9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6ab.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6ac.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6ad.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6ae.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6af.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b7.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b8.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6b9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6ba.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6bb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6bc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6bd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6be.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6bf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/1f6c5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/203c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2049.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2122.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2139.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2194.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2195.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2196.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2197.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2198.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2199.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/21a9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/21aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/231a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/231b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23e9.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23ea.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23eb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23ec.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23f0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/23f3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/24c2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25ab.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25b6.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25c0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25fb.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25fc.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25fd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/25fe.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2600.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2601.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/260e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2611.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2614.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2615.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/261d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/263a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2648.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2649.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/264f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2650.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2651.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2652.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2653.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2660.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2663.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2665.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2666.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2668.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/267b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/267f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2693.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26a0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26a1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26aa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26ab.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26bd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26be.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26c4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26c5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26ce.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26d4.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26ea.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26f2.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26f3.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26f5.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26fa.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/26fd.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2702.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2705.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2708.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2709.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/270a.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/270b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/270c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/270f.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2712.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2714.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2716.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2728.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2733.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2734.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2744.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2747.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/274c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/274e.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2753.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2754.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2755.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2757.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2764.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2795.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2796.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2797.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/27a1.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/27b0.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/27bf.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2934.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2935.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b05.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b06.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b07.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b1b.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b1c.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b50.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/2b55.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/3030.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/303d.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/3297.png +0 -0
- data/templates/new-instance/public/images/emoji/unicode/3299.png +0 -0
- data/templates/new-instance/public/images/emoji/unlock.png +0 -0
- data/templates/new-instance/public/images/emoji/up.png +0 -0
- data/templates/new-instance/public/images/emoji/us.png +0 -0
- data/templates/new-instance/public/images/emoji/v.png +0 -0
- data/templates/new-instance/public/images/emoji/vertical_traffic_light.png +0 -0
- data/templates/new-instance/public/images/emoji/vhs.png +0 -0
- data/templates/new-instance/public/images/emoji/vibration_mode.png +0 -0
- data/templates/new-instance/public/images/emoji/video_camera.png +0 -0
- data/templates/new-instance/public/images/emoji/video_game.png +0 -0
- data/templates/new-instance/public/images/emoji/violin.png +0 -0
- data/templates/new-instance/public/images/emoji/virgo.png +0 -0
- data/templates/new-instance/public/images/emoji/volcano.png +0 -0
- data/templates/new-instance/public/images/emoji/vs.png +0 -0
- data/templates/new-instance/public/images/emoji/walking.png +0 -0
- data/templates/new-instance/public/images/emoji/waning_crescent_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/waning_gibbous_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/warning.png +0 -0
- data/templates/new-instance/public/images/emoji/watch.png +0 -0
- data/templates/new-instance/public/images/emoji/water_buffalo.png +0 -0
- data/templates/new-instance/public/images/emoji/watermelon.png +0 -0
- data/templates/new-instance/public/images/emoji/wave.png +0 -0
- data/templates/new-instance/public/images/emoji/wavy_dash.png +0 -0
- data/templates/new-instance/public/images/emoji/waxing_crescent_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/waxing_gibbous_moon.png +0 -0
- data/templates/new-instance/public/images/emoji/wc.png +0 -0
- data/templates/new-instance/public/images/emoji/weary.png +0 -0
- data/templates/new-instance/public/images/emoji/wedding.png +0 -0
- data/templates/new-instance/public/images/emoji/whale.png +0 -0
- data/templates/new-instance/public/images/emoji/whale2.png +0 -0
- data/templates/new-instance/public/images/emoji/wheelchair.png +0 -0
- data/templates/new-instance/public/images/emoji/white_check_mark.png +0 -0
- data/templates/new-instance/public/images/emoji/white_circle.png +0 -0
- data/templates/new-instance/public/images/emoji/white_flower.png +0 -0
- data/templates/new-instance/public/images/emoji/white_large_square.png +0 -0
- data/templates/new-instance/public/images/emoji/white_medium_small_square.png +0 -0
- data/templates/new-instance/public/images/emoji/white_medium_square.png +0 -0
- data/templates/new-instance/public/images/emoji/white_small_square.png +0 -0
- data/templates/new-instance/public/images/emoji/white_square_button.png +0 -0
- data/templates/new-instance/public/images/emoji/wind_chime.png +0 -0
- data/templates/new-instance/public/images/emoji/wine_glass.png +0 -0
- data/templates/new-instance/public/images/emoji/wink.png +0 -0
- data/templates/new-instance/public/images/emoji/wolf.png +0 -0
- data/templates/new-instance/public/images/emoji/woman.png +0 -0
- data/templates/new-instance/public/images/emoji/womans_clothes.png +0 -0
- data/templates/new-instance/public/images/emoji/womans_hat.png +0 -0
- data/templates/new-instance/public/images/emoji/womens.png +0 -0
- data/templates/new-instance/public/images/emoji/worried.png +0 -0
- data/templates/new-instance/public/images/emoji/wrench.png +0 -0
- data/templates/new-instance/public/images/emoji/x.png +0 -0
- data/templates/new-instance/public/images/emoji/yellow_heart.png +0 -0
- data/templates/new-instance/public/images/emoji/yen.png +0 -0
- data/templates/new-instance/public/images/emoji/yum.png +0 -0
- data/templates/new-instance/public/images/emoji/zap.png +0 -0
- data/templates/new-instance/public/images/emoji/zero.png +0 -0
- data/templates/new-instance/public/images/emoji/zzz.png +0 -0
- data/test/acceptance/creating_a_release_test.rb +0 -72
- data/test/data/backtrace.txt +0 -27
- data/test/data/bare_repo.git/FETCH_HEAD +0 -3
- data/test/data/bare_repo.git/HEAD +0 -1
- data/test/data/bare_repo.git/config +0 -9
- data/test/data/bare_repo.git/description +0 -1
- data/test/data/bare_repo.git/hooks/applypatch-msg.sample +0 -15
- data/test/data/bare_repo.git/hooks/commit-msg.sample +0 -24
- data/test/data/bare_repo.git/hooks/post-update.sample +0 -8
- data/test/data/bare_repo.git/hooks/pre-applypatch.sample +0 -14
- data/test/data/bare_repo.git/hooks/pre-commit.sample +0 -50
- data/test/data/bare_repo.git/hooks/pre-rebase.sample +0 -169
- data/test/data/bare_repo.git/hooks/prepare-commit-msg.sample +0 -36
- data/test/data/bare_repo.git/hooks/update.sample +0 -128
- data/test/data/bare_repo.git/info/exclude +0 -6
- data/test/data/bare_repo.git/objects/22/924bbf4378f83cab93bfd5fa7d7777cbc1f3b4 +0 -0
- data/test/data/bare_repo.git/objects/59/e4862a85cf64d42a8b17db45ebf2ba39568679 +0 -0
- data/test/data/bare_repo.git/objects/5f/8cb742401c71308f858bf537855bb07d2932d8 +0 -3
- data/test/data/bare_repo.git/objects/60/3a4970ec7ed5eb3f7a578850c21b7162424465 +0 -1
- data/test/data/bare_repo.git/objects/6e/eab9f9ee664c1acb08473921238ca95a8c17f5 +0 -0
- data/test/data/bare_repo.git/objects/7f/ce91258d10807380f36192304883e916a48ec0 +0 -0
- data/test/data/bare_repo.git/objects/b3/d156e4d4bb279e09cca0f31af8ea6e35d3df64 +0 -1
- data/test/data/bare_repo.git/objects/b9/1a4fe778398bc87b29842ca84a2727b4763c9d +0 -1
- data/test/data/bare_repo.git/objects/ba/a3ef218a40f23fe542f98d8b8e60a2e8e0bff0 +0 -1
- data/test/data/bare_repo.git/objects/ba/b88c00ec62b5f30bf720ab1136401d1f9d2310 +0 -2
- data/test/data/bare_repo.git/objects/bd/3e9e2e4ddf89a640a4f880cbf55bb46cc7e88a +0 -2
- data/test/data/bare_repo.git/objects/be/63e6ebab6ce87922f97ca24b1338befdbe6915 +0 -0
- data/test/data/bare_repo.git/objects/cc/f4bdedd71011176c0236e98268d71ed73eb80f +0 -0
- data/test/data/bare_repo.git/objects/e0/e4580f44317a084dd5142fef6b4144a4394819 +0 -0
- data/test/data/bare_repo.git/objects/e4/d9901b79d8112dd2fe369fcd8c65594c96a10b +0 -0
- data/test/data/bare_repo.git/objects/pack/pack-dd400c42eded7158ab780652af55aa92c30e37e3.idx +0 -0
- data/test/data/bare_repo.git/objects/pack/pack-dd400c42eded7158ab780652af55aa92c30e37e3.pack +0 -0
- data/test/data/bare_repo.git/packed-refs +0 -2
- data/test/data/bare_repo.git/refs/heads/divergent-branch +0 -1
- data/test/data/bare_repo.git/refs/heads/for-testing +0 -1
- data/test/data/bare_repo.git/refs/heads/master +0 -1
- data/test/data/github_push_event_payload.json +0 -161
- data/test/factories/commit_factory.rb +0 -9
- data/test/factories/deploy_factory.rb +0 -7
- data/test/factories/task_factory.rb +0 -6
- data/test/integration/ci_integration_test.rb +0 -170
- data/test/integration/commits_api_test.rb +0 -68
- data/test/integration/ticket_tasks_api_test.rb +0 -70
- data/test/support/houston/adapters/ci_server/mock_adapter.rb +0 -23
- data/test/support/houston/adapters/ci_server/mock_adapter/job.rb +0 -29
- data/test/support/houston/adapters/error_tracker/mock_adapter.rb +0 -31
- data/test/support/houston/adapters/ticket_tracker/mock_adapter.rb +0 -21
- data/test/support/houston/adapters/version_control/mock_adapter.rb +0 -21
- data/test/unit/adapters/ci_server_adapters_api_test.rb +0 -29
- data/test/unit/adapters/error_tracker_adapters_test.rb +0 -36
- data/test/unit/adapters/git_adapter_test.rb +0 -227
- data/test/unit/adapters/jenkins_adapter_test.rb +0 -184
- data/test/unit/adapters/ticket_tracker_adapters_api_test.rb +0 -67
- data/test/unit/adapters/version_control_adapters_api_test.rb +0 -41
- data/test/unit/concerns/commit_synchronizer_test.rb +0 -150
- data/test/unit/controllers/deploys_controller_test.rb +0 -47
- data/test/unit/controllers/hooks_controller_test.rb +0 -138
- data/test/unit/controllers/sprints_controller_test.rb +0 -54
- data/test/unit/controllers/test_runs_controller_test.rb +0 -20
- data/test/unit/initializers/sync_commits_on_post_receive_test.rb +0 -14
- data/test/unit/models/code_climate_coverage_report_test.rb +0 -137
- data/test/unit/models/commit_test.rb +0 -279
- data/test/unit/models/deploy_test.rb +0 -97
- data/test/unit/models/post_receive_payload_test.rb +0 -19
- data/test/unit/models/project_test.rb +0 -91
- data/test/unit/models/pull_request_test.rb +0 -195
- data/test/unit/models/release_change_test.rb +0 -32
- data/test/unit/models/release_test.rb +0 -53
- data/test/unit/models/source_file_coverage_test.rb +0 -33
- data/test/unit/models/sprint_test.rb +0 -44
- data/test/unit/models/task_test.rb +0 -135
- data/test/unit/models/test_run_test.rb +0 -289
- data/test/unit/models/ticket_test.rb +0 -218
- data/test/unit/presenters/sprint_task_presenter_test.rb +0 -57
- data/test/unit/test_run_comparer_test.rb +0 -108
- data/vendor/assets/stylesheets/alertify-bootstrap-3.css +0 -2
- data/vendor/assets/stylesheets/alertify-bootstrap.css +0 -2
- data/vendor/images/fa-archive.svg +0 -6
- data/vendor/images/fa-asterisk.svg +0 -6
- data/vendor/images/fa-bank.svg +0 -9
- data/vendor/images/fa-bell.svg +0 -9
- data/vendor/images/fa-bomb.svg +0 -9
- data/vendor/images/fa-bookmark.svg +0 -6
- data/vendor/images/fa-bug.svg +0 -9
- data/vendor/images/fa-bullhorn.svg +0 -6
- data/vendor/images/fa-burndown.svg +0 -15
- data/vendor/images/fa-calendar-o.svg +0 -9
- data/vendor/images/fa-certificate.svg +0 -6
- data/vendor/images/fa-comment.svg +0 -9
- data/vendor/images/fa-comments.svg +0 -9
- data/vendor/images/fa-database.svg +0 -9
- data/vendor/images/fa-file.svg +0 -6
- data/vendor/images/fa-fire-extinguisher.svg +0 -9
- data/vendor/images/fa-flag.svg +0 -6
- data/vendor/images/fa-gear.svg +0 -6
- data/vendor/images/fa-home.svg +0 -6
- data/vendor/images/fa-lightbulb-o.svg +0 -9
- data/vendor/images/fa-map-signs.svg +0 -6
- data/vendor/images/fa-map.svg +0 -6
- data/vendor/images/fa-paper-plane.svg +0 -9
- data/vendor/images/fa-road.svg +0 -9
- data/vendor/images/fa-star.svg +0 -6
- data/vendor/images/fa-suitcase.svg +0 -6
- data/vendor/images/fa-user.svg +0 -9
- data/vendor/images/octokit-pull-request.svg +0 -6
@@ -1,50 +1,67 @@
|
|
1
1
|
!function() {
|
2
2
|
var d3 = {
|
3
|
-
version: "3.
|
4
|
-
};
|
5
|
-
if (!Date.now) Date.now = function() {
|
6
|
-
return +new Date();
|
3
|
+
version: "3.5.17"
|
7
4
|
};
|
8
5
|
var d3_arraySlice = [].slice, d3_array = function(list) {
|
9
6
|
return d3_arraySlice.call(list);
|
10
7
|
};
|
11
|
-
var d3_document = document
|
12
|
-
|
13
|
-
|
14
|
-
} catch (e) {
|
15
|
-
d3_array = function(list) {
|
16
|
-
var i = list.length, array = new Array(i);
|
17
|
-
while (i--) array[i] = list[i];
|
18
|
-
return array;
|
19
|
-
};
|
8
|
+
var d3_document = this.document;
|
9
|
+
function d3_documentElement(node) {
|
10
|
+
return node && (node.ownerDocument || node.document || node).documentElement;
|
20
11
|
}
|
21
|
-
|
22
|
-
|
23
|
-
} catch (error) {
|
24
|
-
var d3_element_prototype = d3_window.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
|
25
|
-
d3_element_prototype.setAttribute = function(name, value) {
|
26
|
-
d3_element_setAttribute.call(this, name, value + "");
|
27
|
-
};
|
28
|
-
d3_element_prototype.setAttributeNS = function(space, local, value) {
|
29
|
-
d3_element_setAttributeNS.call(this, space, local, value + "");
|
30
|
-
};
|
31
|
-
d3_style_prototype.setProperty = function(name, value, priority) {
|
32
|
-
d3_style_setProperty.call(this, name, value + "", priority);
|
33
|
-
};
|
12
|
+
function d3_window(node) {
|
13
|
+
return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
|
34
14
|
}
|
35
|
-
|
36
|
-
|
15
|
+
if (d3_document) {
|
16
|
+
try {
|
17
|
+
d3_array(d3_document.documentElement.childNodes)[0].nodeType;
|
18
|
+
} catch (e) {
|
19
|
+
d3_array = function(list) {
|
20
|
+
var i = list.length, array = new Array(i);
|
21
|
+
while (i--) array[i] = list[i];
|
22
|
+
return array;
|
23
|
+
};
|
24
|
+
}
|
25
|
+
}
|
26
|
+
if (!Date.now) Date.now = function() {
|
27
|
+
return +new Date();
|
37
28
|
};
|
29
|
+
if (d3_document) {
|
30
|
+
try {
|
31
|
+
d3_document.createElement("DIV").style.setProperty("opacity", 0, "");
|
32
|
+
} catch (error) {
|
33
|
+
var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
|
34
|
+
d3_element_prototype.setAttribute = function(name, value) {
|
35
|
+
d3_element_setAttribute.call(this, name, value + "");
|
36
|
+
};
|
37
|
+
d3_element_prototype.setAttributeNS = function(space, local, value) {
|
38
|
+
d3_element_setAttributeNS.call(this, space, local, value + "");
|
39
|
+
};
|
40
|
+
d3_style_prototype.setProperty = function(name, value, priority) {
|
41
|
+
d3_style_setProperty.call(this, name, value + "", priority);
|
42
|
+
};
|
43
|
+
}
|
44
|
+
}
|
45
|
+
d3.ascending = d3_ascending;
|
46
|
+
function d3_ascending(a, b) {
|
47
|
+
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
48
|
+
}
|
38
49
|
d3.descending = function(a, b) {
|
39
50
|
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
|
40
51
|
};
|
41
52
|
d3.min = function(array, f) {
|
42
53
|
var i = -1, n = array.length, a, b;
|
43
54
|
if (arguments.length === 1) {
|
44
|
-
while (++i < n
|
55
|
+
while (++i < n) if ((b = array[i]) != null && b >= b) {
|
56
|
+
a = b;
|
57
|
+
break;
|
58
|
+
}
|
45
59
|
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
|
46
60
|
} else {
|
47
|
-
while (++i < n
|
61
|
+
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
|
62
|
+
a = b;
|
63
|
+
break;
|
64
|
+
}
|
48
65
|
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
|
49
66
|
}
|
50
67
|
return a;
|
@@ -52,10 +69,16 @@
|
|
52
69
|
d3.max = function(array, f) {
|
53
70
|
var i = -1, n = array.length, a, b;
|
54
71
|
if (arguments.length === 1) {
|
55
|
-
while (++i < n
|
72
|
+
while (++i < n) if ((b = array[i]) != null && b >= b) {
|
73
|
+
a = b;
|
74
|
+
break;
|
75
|
+
}
|
56
76
|
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
|
57
77
|
} else {
|
58
|
-
while (++i < n
|
78
|
+
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
|
79
|
+
a = b;
|
80
|
+
break;
|
81
|
+
}
|
59
82
|
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
|
60
83
|
}
|
61
84
|
return a;
|
@@ -63,13 +86,19 @@
|
|
63
86
|
d3.extent = function(array, f) {
|
64
87
|
var i = -1, n = array.length, a, b, c;
|
65
88
|
if (arguments.length === 1) {
|
66
|
-
while (++i < n
|
89
|
+
while (++i < n) if ((b = array[i]) != null && b >= b) {
|
90
|
+
a = c = b;
|
91
|
+
break;
|
92
|
+
}
|
67
93
|
while (++i < n) if ((b = array[i]) != null) {
|
68
94
|
if (a > b) a = b;
|
69
95
|
if (c < b) c = b;
|
70
96
|
}
|
71
97
|
} else {
|
72
|
-
while (++i < n
|
98
|
+
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
|
99
|
+
a = c = b;
|
100
|
+
break;
|
101
|
+
}
|
73
102
|
while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
|
74
103
|
if (a > b) a = b;
|
75
104
|
if (c < b) c = b;
|
@@ -77,44 +106,76 @@
|
|
77
106
|
}
|
78
107
|
return [ a, c ];
|
79
108
|
};
|
109
|
+
function d3_number(x) {
|
110
|
+
return x === null ? NaN : +x;
|
111
|
+
}
|
112
|
+
function d3_numeric(x) {
|
113
|
+
return !isNaN(x);
|
114
|
+
}
|
80
115
|
d3.sum = function(array, f) {
|
81
116
|
var s = 0, n = array.length, a, i = -1;
|
82
117
|
if (arguments.length === 1) {
|
83
|
-
while (++i < n) if (
|
118
|
+
while (++i < n) if (d3_numeric(a = +array[i])) s += a;
|
84
119
|
} else {
|
85
|
-
while (++i < n) if (
|
120
|
+
while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
|
86
121
|
}
|
87
122
|
return s;
|
88
123
|
};
|
89
|
-
function d3_number(x) {
|
90
|
-
return x != null && !isNaN(x);
|
91
|
-
}
|
92
124
|
d3.mean = function(array, f) {
|
93
|
-
var n = array.length, a,
|
125
|
+
var s = 0, n = array.length, a, i = -1, j = n;
|
94
126
|
if (arguments.length === 1) {
|
95
|
-
while (++i < n) if (
|
127
|
+
while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
|
96
128
|
} else {
|
97
|
-
while (++i < n) if (
|
129
|
+
while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
|
98
130
|
}
|
99
|
-
|
131
|
+
if (j) return s / j;
|
100
132
|
};
|
101
133
|
d3.quantile = function(values, p) {
|
102
134
|
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
|
103
135
|
return e ? v + e * (values[h] - v) : v;
|
104
136
|
};
|
105
137
|
d3.median = function(array, f) {
|
106
|
-
|
107
|
-
|
108
|
-
|
138
|
+
var numbers = [], n = array.length, a, i = -1;
|
139
|
+
if (arguments.length === 1) {
|
140
|
+
while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
|
141
|
+
} else {
|
142
|
+
while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
|
143
|
+
}
|
144
|
+
if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
|
109
145
|
};
|
110
|
-
d3.
|
146
|
+
d3.variance = function(array, f) {
|
147
|
+
var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;
|
148
|
+
if (arguments.length === 1) {
|
149
|
+
while (++i < n) {
|
150
|
+
if (d3_numeric(a = d3_number(array[i]))) {
|
151
|
+
d = a - m;
|
152
|
+
m += d / ++j;
|
153
|
+
s += d * (a - m);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
} else {
|
157
|
+
while (++i < n) {
|
158
|
+
if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
|
159
|
+
d = a - m;
|
160
|
+
m += d / ++j;
|
161
|
+
s += d * (a - m);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
if (j > 1) return s / (j - 1);
|
166
|
+
};
|
167
|
+
d3.deviation = function() {
|
168
|
+
var v = d3.variance.apply(this, arguments);
|
169
|
+
return v ? Math.sqrt(v) : v;
|
170
|
+
};
|
171
|
+
function d3_bisector(compare) {
|
111
172
|
return {
|
112
173
|
left: function(a, x, lo, hi) {
|
113
174
|
if (arguments.length < 3) lo = 0;
|
114
175
|
if (arguments.length < 4) hi = a.length;
|
115
176
|
while (lo < hi) {
|
116
177
|
var mid = lo + hi >>> 1;
|
117
|
-
if (
|
178
|
+
if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
|
118
179
|
}
|
119
180
|
return lo;
|
120
181
|
},
|
@@ -123,22 +184,29 @@
|
|
123
184
|
if (arguments.length < 4) hi = a.length;
|
124
185
|
while (lo < hi) {
|
125
186
|
var mid = lo + hi >>> 1;
|
126
|
-
if (
|
187
|
+
if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
|
127
188
|
}
|
128
189
|
return lo;
|
129
190
|
}
|
130
191
|
};
|
192
|
+
}
|
193
|
+
var d3_bisect = d3_bisector(d3_ascending);
|
194
|
+
d3.bisectLeft = d3_bisect.left;
|
195
|
+
d3.bisect = d3.bisectRight = d3_bisect.right;
|
196
|
+
d3.bisector = function(f) {
|
197
|
+
return d3_bisector(f.length === 1 ? function(d, x) {
|
198
|
+
return d3_ascending(f(d), x);
|
199
|
+
} : f);
|
131
200
|
};
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
var m = array.length, t, i;
|
201
|
+
d3.shuffle = function(array, i0, i1) {
|
202
|
+
if ((m = arguments.length) < 3) {
|
203
|
+
i1 = array.length;
|
204
|
+
if (m < 2) i0 = 0;
|
205
|
+
}
|
206
|
+
var m = i1 - i0, t, i;
|
139
207
|
while (m) {
|
140
208
|
i = Math.random() * m-- | 0;
|
141
|
-
t = array[m], array[m] = array[i], array[i] = t;
|
209
|
+
t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
|
142
210
|
}
|
143
211
|
return array;
|
144
212
|
};
|
@@ -152,20 +220,20 @@
|
|
152
220
|
while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];
|
153
221
|
return pairs;
|
154
222
|
};
|
155
|
-
d3.
|
156
|
-
if (!(n =
|
157
|
-
for (var i = -1, m = d3.min(
|
158
|
-
for (var j = -1, n,
|
159
|
-
|
223
|
+
d3.transpose = function(matrix) {
|
224
|
+
if (!(n = matrix.length)) return [];
|
225
|
+
for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {
|
226
|
+
for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {
|
227
|
+
row[j] = matrix[j][i];
|
160
228
|
}
|
161
229
|
}
|
162
|
-
return
|
230
|
+
return transpose;
|
163
231
|
};
|
164
|
-
function
|
232
|
+
function d3_transposeLength(d) {
|
165
233
|
return d.length;
|
166
234
|
}
|
167
|
-
d3.
|
168
|
-
return d3.
|
235
|
+
d3.zip = function() {
|
236
|
+
return d3.transpose(arguments);
|
169
237
|
};
|
170
238
|
d3.keys = function(map) {
|
171
239
|
var keys = [];
|
@@ -219,80 +287,84 @@
|
|
219
287
|
return k;
|
220
288
|
}
|
221
289
|
function d3_class(ctor, properties) {
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
});
|
228
|
-
}
|
229
|
-
} catch (e) {
|
230
|
-
ctor.prototype = properties;
|
290
|
+
for (var key in properties) {
|
291
|
+
Object.defineProperty(ctor.prototype, key, {
|
292
|
+
value: properties[key],
|
293
|
+
enumerable: false
|
294
|
+
});
|
231
295
|
}
|
232
296
|
}
|
233
|
-
d3.map = function(object) {
|
297
|
+
d3.map = function(object, f) {
|
234
298
|
var map = new d3_Map();
|
235
|
-
if (object instanceof d3_Map)
|
236
|
-
|
237
|
-
|
299
|
+
if (object instanceof d3_Map) {
|
300
|
+
object.forEach(function(key, value) {
|
301
|
+
map.set(key, value);
|
302
|
+
});
|
303
|
+
} else if (Array.isArray(object)) {
|
304
|
+
var i = -1, n = object.length, o;
|
305
|
+
if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);
|
306
|
+
} else {
|
307
|
+
for (var key in object) map.set(key, object[key]);
|
308
|
+
}
|
238
309
|
return map;
|
239
310
|
};
|
240
|
-
function d3_Map() {
|
311
|
+
function d3_Map() {
|
312
|
+
this._ = Object.create(null);
|
313
|
+
}
|
314
|
+
var d3_map_proto = "__proto__", d3_map_zero = "\x00";
|
241
315
|
d3_class(d3_Map, {
|
242
316
|
has: d3_map_has,
|
243
317
|
get: function(key) {
|
244
|
-
return this[
|
318
|
+
return this._[d3_map_escape(key)];
|
245
319
|
},
|
246
320
|
set: function(key, value) {
|
247
|
-
return this[
|
321
|
+
return this._[d3_map_escape(key)] = value;
|
248
322
|
},
|
249
323
|
remove: d3_map_remove,
|
250
324
|
keys: d3_map_keys,
|
251
325
|
values: function() {
|
252
326
|
var values = [];
|
253
|
-
this.
|
254
|
-
values.push(value);
|
255
|
-
});
|
327
|
+
for (var key in this._) values.push(this._[key]);
|
256
328
|
return values;
|
257
329
|
},
|
258
330
|
entries: function() {
|
259
331
|
var entries = [];
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
value: value
|
264
|
-
});
|
332
|
+
for (var key in this._) entries.push({
|
333
|
+
key: d3_map_unescape(key),
|
334
|
+
value: this._[key]
|
265
335
|
});
|
266
336
|
return entries;
|
267
337
|
},
|
268
338
|
size: d3_map_size,
|
269
339
|
empty: d3_map_empty,
|
270
340
|
forEach: function(f) {
|
271
|
-
for (var key in this
|
341
|
+
for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
|
272
342
|
}
|
273
343
|
});
|
274
|
-
|
344
|
+
function d3_map_escape(key) {
|
345
|
+
return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
|
346
|
+
}
|
347
|
+
function d3_map_unescape(key) {
|
348
|
+
return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
|
349
|
+
}
|
275
350
|
function d3_map_has(key) {
|
276
|
-
return
|
351
|
+
return d3_map_escape(key) in this._;
|
277
352
|
}
|
278
353
|
function d3_map_remove(key) {
|
279
|
-
key =
|
280
|
-
return key in this && delete this[key];
|
354
|
+
return (key = d3_map_escape(key)) in this._ && delete this._[key];
|
281
355
|
}
|
282
356
|
function d3_map_keys() {
|
283
357
|
var keys = [];
|
284
|
-
this.
|
285
|
-
keys.push(key);
|
286
|
-
});
|
358
|
+
for (var key in this._) keys.push(d3_map_unescape(key));
|
287
359
|
return keys;
|
288
360
|
}
|
289
361
|
function d3_map_size() {
|
290
362
|
var size = 0;
|
291
|
-
for (var key in this
|
363
|
+
for (var key in this._) ++size;
|
292
364
|
return size;
|
293
365
|
}
|
294
366
|
function d3_map_empty() {
|
295
|
-
for (var key in this
|
367
|
+
for (var key in this._) return false;
|
296
368
|
return true;
|
297
369
|
}
|
298
370
|
d3.nest = function() {
|
@@ -363,25 +435,27 @@
|
|
363
435
|
if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
|
364
436
|
return set;
|
365
437
|
};
|
366
|
-
function d3_Set() {
|
438
|
+
function d3_Set() {
|
439
|
+
this._ = Object.create(null);
|
440
|
+
}
|
367
441
|
d3_class(d3_Set, {
|
368
442
|
has: d3_map_has,
|
369
|
-
add: function(
|
370
|
-
this[
|
371
|
-
return
|
372
|
-
},
|
373
|
-
remove: function(value) {
|
374
|
-
value = d3_map_prefix + value;
|
375
|
-
return value in this && delete this[value];
|
443
|
+
add: function(key) {
|
444
|
+
this._[d3_map_escape(key += "")] = true;
|
445
|
+
return key;
|
376
446
|
},
|
447
|
+
remove: d3_map_remove,
|
377
448
|
values: d3_map_keys,
|
378
449
|
size: d3_map_size,
|
379
450
|
empty: d3_map_empty,
|
380
451
|
forEach: function(f) {
|
381
|
-
for (var
|
452
|
+
for (var key in this._) f.call(this, d3_map_unescape(key));
|
382
453
|
}
|
383
454
|
});
|
384
455
|
d3.behavior = {};
|
456
|
+
function d3_identity(d) {
|
457
|
+
return d;
|
458
|
+
}
|
385
459
|
d3.rebind = function(target, source) {
|
386
460
|
var i = 1, n = arguments.length, method;
|
387
461
|
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
|
@@ -395,7 +469,7 @@
|
|
395
469
|
}
|
396
470
|
function d3_vendorSymbol(object, name) {
|
397
471
|
if (name in object) return name;
|
398
|
-
name = name.charAt(0).toUpperCase() + name.
|
472
|
+
name = name.charAt(0).toUpperCase() + name.slice(1);
|
399
473
|
for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
|
400
474
|
var prefixName = d3_vendorPrefixes[i] + name;
|
401
475
|
if (prefixName in object) return prefixName;
|
@@ -412,8 +486,8 @@
|
|
412
486
|
d3_dispatch.prototype.on = function(type, listener) {
|
413
487
|
var i = type.indexOf("."), name = "";
|
414
488
|
if (i >= 0) {
|
415
|
-
name = type.
|
416
|
-
type = type.
|
489
|
+
name = type.slice(i + 1);
|
490
|
+
type = type.slice(0, i);
|
417
491
|
}
|
418
492
|
if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
|
419
493
|
if (arguments.length === 2) {
|
@@ -488,20 +562,22 @@
|
|
488
562
|
return n.querySelector(s);
|
489
563
|
}, d3_selectAll = function(s, n) {
|
490
564
|
return n.querySelectorAll(s);
|
491
|
-
},
|
492
|
-
|
565
|
+
}, d3_selectMatches = function(n, s) {
|
566
|
+
var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
|
567
|
+
d3_selectMatches = function(n, s) {
|
568
|
+
return d3_selectMatcher.call(n, s);
|
569
|
+
};
|
570
|
+
return d3_selectMatches(n, s);
|
493
571
|
};
|
494
572
|
if (typeof Sizzle === "function") {
|
495
573
|
d3_select = function(s, n) {
|
496
574
|
return Sizzle(s, n)[0] || null;
|
497
575
|
};
|
498
|
-
d3_selectAll =
|
499
|
-
return Sizzle.uniqueSort(Sizzle(s, n));
|
500
|
-
};
|
576
|
+
d3_selectAll = Sizzle;
|
501
577
|
d3_selectMatches = Sizzle.matchesSelector;
|
502
578
|
}
|
503
579
|
d3.selection = function() {
|
504
|
-
return
|
580
|
+
return d3.select(d3_document.documentElement);
|
505
581
|
};
|
506
582
|
var d3_selectionPrototype = d3.selection.prototype = [];
|
507
583
|
d3_selectionPrototype.select = function(selector) {
|
@@ -544,9 +620,10 @@
|
|
544
620
|
return d3_selectAll(selector, this);
|
545
621
|
};
|
546
622
|
}
|
623
|
+
var d3_nsXhtml = "http://www.w3.org/1999/xhtml";
|
547
624
|
var d3_nsPrefix = {
|
548
625
|
svg: "http://www.w3.org/2000/svg",
|
549
|
-
xhtml:
|
626
|
+
xhtml: d3_nsXhtml,
|
550
627
|
xlink: "http://www.w3.org/1999/xlink",
|
551
628
|
xml: "http://www.w3.org/XML/1998/namespace",
|
552
629
|
xmlns: "http://www.w3.org/2000/xmlns/"
|
@@ -555,10 +632,7 @@
|
|
555
632
|
prefix: d3_nsPrefix,
|
556
633
|
qualify: function(name) {
|
557
634
|
var i = name.indexOf(":"), prefix = name;
|
558
|
-
if (i >= 0)
|
559
|
-
prefix = name.substring(0, i);
|
560
|
-
name = name.substring(i + 1);
|
561
|
-
}
|
635
|
+
if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
|
562
636
|
return d3_nsPrefix.hasOwnProperty(prefix) ? {
|
563
637
|
space: d3_nsPrefix[prefix],
|
564
638
|
local: name
|
@@ -625,7 +699,7 @@
|
|
625
699
|
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
|
626
700
|
}
|
627
701
|
function d3_selection_classes(name) {
|
628
|
-
return name.trim().split(/^|\s+/);
|
702
|
+
return (name + "").trim().split(/^|\s+/);
|
629
703
|
}
|
630
704
|
function d3_selection_classed(name, value) {
|
631
705
|
name = d3_selection_classes(name).map(d3_selection_classedName);
|
@@ -661,7 +735,10 @@
|
|
661
735
|
for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
|
662
736
|
return this;
|
663
737
|
}
|
664
|
-
if (n < 2)
|
738
|
+
if (n < 2) {
|
739
|
+
var node = this.node();
|
740
|
+
return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
|
741
|
+
}
|
665
742
|
priority = "";
|
666
743
|
}
|
667
744
|
return this.each(d3_selection_style(name, value, priority));
|
@@ -727,11 +804,14 @@
|
|
727
804
|
});
|
728
805
|
};
|
729
806
|
function d3_selection_creator(name) {
|
730
|
-
|
807
|
+
function create() {
|
808
|
+
var document = this.ownerDocument, namespace = this.namespaceURI;
|
809
|
+
return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);
|
810
|
+
}
|
811
|
+
function createNS() {
|
731
812
|
return this.ownerDocument.createElementNS(name.space, name.local);
|
732
|
-
}
|
733
|
-
|
734
|
-
};
|
813
|
+
}
|
814
|
+
return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;
|
735
815
|
}
|
736
816
|
d3_selectionPrototype.insert = function(name, before) {
|
737
817
|
name = d3_selection_creator(name);
|
@@ -741,11 +821,12 @@
|
|
741
821
|
});
|
742
822
|
};
|
743
823
|
d3_selectionPrototype.remove = function() {
|
744
|
-
return this.each(
|
745
|
-
var parent = this.parentNode;
|
746
|
-
if (parent) parent.removeChild(this);
|
747
|
-
});
|
824
|
+
return this.each(d3_selectionRemove);
|
748
825
|
};
|
826
|
+
function d3_selectionRemove() {
|
827
|
+
var parent = this.parentNode;
|
828
|
+
if (parent) parent.removeChild(this);
|
829
|
+
}
|
749
830
|
d3_selectionPrototype.data = function(value, key) {
|
750
831
|
var i = -1, n = this.length, group, node;
|
751
832
|
if (!arguments.length) {
|
@@ -760,29 +841,28 @@
|
|
760
841
|
function bind(group, groupData) {
|
761
842
|
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
|
762
843
|
if (key) {
|
763
|
-
var nodeByKeyValue = new d3_Map(),
|
844
|
+
var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;
|
764
845
|
for (i = -1; ++i < n; ) {
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
846
|
+
if (node = group[i]) {
|
847
|
+
if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {
|
848
|
+
exitNodes[i] = node;
|
849
|
+
} else {
|
850
|
+
nodeByKeyValue.set(keyValue, node);
|
851
|
+
}
|
852
|
+
keyValues[i] = keyValue;
|
770
853
|
}
|
771
|
-
keyValues.push(keyValue);
|
772
854
|
}
|
773
855
|
for (i = -1; ++i < m; ) {
|
774
|
-
keyValue = key.call(groupData, nodeData = groupData[i], i)
|
775
|
-
|
856
|
+
if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
|
857
|
+
enterNodes[i] = d3_selection_dataNode(nodeData);
|
858
|
+
} else if (node !== true) {
|
776
859
|
updateNodes[i] = node;
|
777
860
|
node.__data__ = nodeData;
|
778
|
-
} else if (!dataByKeyValue.has(keyValue)) {
|
779
|
-
enterNodes[i] = d3_selection_dataNode(nodeData);
|
780
861
|
}
|
781
|
-
|
782
|
-
nodeByKeyValue.remove(keyValue);
|
862
|
+
nodeByKeyValue.set(keyValue, true);
|
783
863
|
}
|
784
864
|
for (i = -1; ++i < n; ) {
|
785
|
-
if (nodeByKeyValue.
|
865
|
+
if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {
|
786
866
|
exitNodes[i] = group[i];
|
787
867
|
}
|
788
868
|
}
|
@@ -872,7 +952,7 @@
|
|
872
952
|
return this.order();
|
873
953
|
};
|
874
954
|
function d3_selection_sortComparator(comparator) {
|
875
|
-
if (!arguments.length) comparator =
|
955
|
+
if (!arguments.length) comparator = d3_ascending;
|
876
956
|
return function(a, b) {
|
877
957
|
return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
|
878
958
|
};
|
@@ -909,7 +989,7 @@
|
|
909
989
|
};
|
910
990
|
d3_selectionPrototype.size = function() {
|
911
991
|
var n = 0;
|
912
|
-
this
|
992
|
+
d3_selection_each(this, function() {
|
913
993
|
++n;
|
914
994
|
});
|
915
995
|
return n;
|
@@ -957,40 +1037,28 @@
|
|
957
1037
|
return node;
|
958
1038
|
};
|
959
1039
|
}
|
960
|
-
d3_selectionPrototype.transition = function() {
|
961
|
-
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || {
|
962
|
-
time: Date.now(),
|
963
|
-
ease: d3_ease_cubicInOut,
|
964
|
-
delay: 0,
|
965
|
-
duration: 250
|
966
|
-
};
|
967
|
-
for (var j = -1, m = this.length; ++j < m; ) {
|
968
|
-
subgroups.push(subgroup = []);
|
969
|
-
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
|
970
|
-
if (node = group[i]) d3_transitionNode(node, i, id, transition);
|
971
|
-
subgroup.push(node);
|
972
|
-
}
|
973
|
-
}
|
974
|
-
return d3_transition(subgroups, id);
|
975
|
-
};
|
976
|
-
d3_selectionPrototype.interrupt = function() {
|
977
|
-
return this.each(d3_selection_interrupt);
|
978
|
-
};
|
979
|
-
function d3_selection_interrupt() {
|
980
|
-
var lock = this.__transition__;
|
981
|
-
if (lock) ++lock.active;
|
982
|
-
}
|
983
1040
|
d3.select = function(node) {
|
984
|
-
var group
|
985
|
-
|
1041
|
+
var group;
|
1042
|
+
if (typeof node === "string") {
|
1043
|
+
group = [ d3_select(node, d3_document) ];
|
1044
|
+
group.parentNode = d3_document.documentElement;
|
1045
|
+
} else {
|
1046
|
+
group = [ node ];
|
1047
|
+
group.parentNode = d3_documentElement(node);
|
1048
|
+
}
|
986
1049
|
return d3_selection([ group ]);
|
987
1050
|
};
|
988
1051
|
d3.selectAll = function(nodes) {
|
989
|
-
var group
|
990
|
-
|
1052
|
+
var group;
|
1053
|
+
if (typeof nodes === "string") {
|
1054
|
+
group = d3_array(d3_selectAll(nodes, d3_document));
|
1055
|
+
group.parentNode = d3_document.documentElement;
|
1056
|
+
} else {
|
1057
|
+
group = d3_array(nodes);
|
1058
|
+
group.parentNode = null;
|
1059
|
+
}
|
991
1060
|
return d3_selection([ group ]);
|
992
1061
|
};
|
993
|
-
var d3_selectionRoot = d3.select(d3_documentElement);
|
994
1062
|
d3_selectionPrototype.on = function(type, listener, capture) {
|
995
1063
|
var n = arguments.length;
|
996
1064
|
if (n < 3) {
|
@@ -1006,7 +1074,7 @@
|
|
1006
1074
|
};
|
1007
1075
|
function d3_selection_on(type, listener, capture) {
|
1008
1076
|
var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
|
1009
|
-
if (i > 0) type = type.
|
1077
|
+
if (i > 0) type = type.slice(0, i);
|
1010
1078
|
var filter = d3_selection_onFilters.get(type);
|
1011
1079
|
if (filter) type = filter, wrap = d3_selection_onFilter;
|
1012
1080
|
function onRemove() {
|
@@ -1038,9 +1106,11 @@
|
|
1038
1106
|
mouseenter: "mouseover",
|
1039
1107
|
mouseleave: "mouseout"
|
1040
1108
|
});
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1109
|
+
if (d3_document) {
|
1110
|
+
d3_selection_onFilters.forEach(function(k) {
|
1111
|
+
if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
|
1112
|
+
});
|
1113
|
+
}
|
1044
1114
|
function d3_selection_onListener(listener, argumentz) {
|
1045
1115
|
return function(e) {
|
1046
1116
|
var o = d3.event;
|
@@ -1062,20 +1132,23 @@
|
|
1062
1132
|
}
|
1063
1133
|
};
|
1064
1134
|
}
|
1065
|
-
var d3_event_dragSelect
|
1066
|
-
function d3_event_dragSuppress() {
|
1067
|
-
var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
|
1135
|
+
var d3_event_dragSelect, d3_event_dragId = 0;
|
1136
|
+
function d3_event_dragSuppress(node) {
|
1137
|
+
var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
|
1138
|
+
if (d3_event_dragSelect == null) {
|
1139
|
+
d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect");
|
1140
|
+
}
|
1068
1141
|
if (d3_event_dragSelect) {
|
1069
|
-
var style = d3_documentElement.style, select = style[d3_event_dragSelect];
|
1142
|
+
var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];
|
1070
1143
|
style[d3_event_dragSelect] = "none";
|
1071
1144
|
}
|
1072
1145
|
return function(suppressClick) {
|
1073
1146
|
w.on(name, null);
|
1074
1147
|
if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
|
1075
1148
|
if (suppressClick) {
|
1076
|
-
|
1149
|
+
var off = function() {
|
1077
1150
|
w.on(click, null);
|
1078
|
-
}
|
1151
|
+
};
|
1079
1152
|
w.on(click, function() {
|
1080
1153
|
d3_eventPreventDefault();
|
1081
1154
|
off();
|
@@ -1087,24 +1160,27 @@
|
|
1087
1160
|
d3.mouse = function(container) {
|
1088
1161
|
return d3_mousePoint(container, d3_eventSource());
|
1089
1162
|
};
|
1090
|
-
var d3_mouse_bug44083 = /WebKit/.test(
|
1163
|
+
var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
|
1091
1164
|
function d3_mousePoint(container, e) {
|
1092
1165
|
if (e.changedTouches) e = e.changedTouches[0];
|
1093
1166
|
var svg = container.ownerSVGElement || container;
|
1094
1167
|
if (svg.createSVGPoint) {
|
1095
1168
|
var point = svg.createSVGPoint();
|
1096
|
-
if (d3_mouse_bug44083 < 0
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1169
|
+
if (d3_mouse_bug44083 < 0) {
|
1170
|
+
var window = d3_window(container);
|
1171
|
+
if (window.scrollX || window.scrollY) {
|
1172
|
+
svg = d3.select("body").append("svg").style({
|
1173
|
+
position: "absolute",
|
1174
|
+
top: 0,
|
1175
|
+
left: 0,
|
1176
|
+
margin: 0,
|
1177
|
+
padding: 0,
|
1178
|
+
border: "none"
|
1179
|
+
}, "important");
|
1180
|
+
var ctm = svg[0][0].getScreenCTM();
|
1181
|
+
d3_mouse_bug44083 = !(ctm.f || ctm.e);
|
1182
|
+
svg.remove();
|
1183
|
+
}
|
1108
1184
|
}
|
1109
1185
|
if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
|
1110
1186
|
point.y = e.clientY;
|
@@ -1114,55 +1190,51 @@
|
|
1114
1190
|
var rect = container.getBoundingClientRect();
|
1115
1191
|
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
|
1116
1192
|
}
|
1117
|
-
d3.
|
1118
|
-
if (arguments.length <
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
}
|
1193
|
+
d3.touch = function(container, touches, identifier) {
|
1194
|
+
if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
|
1195
|
+
if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
|
1196
|
+
if ((touch = touches[i]).identifier === identifier) {
|
1197
|
+
return d3_mousePoint(container, touch);
|
1198
|
+
}
|
1199
|
+
}
|
1124
1200
|
};
|
1125
1201
|
d3.behavior.drag = function() {
|
1126
|
-
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, "mousemove", "mouseup"), touchstart = dragstart(
|
1202
|
+
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend");
|
1127
1203
|
function drag() {
|
1128
1204
|
this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
|
1129
1205
|
}
|
1130
|
-
function
|
1131
|
-
return d3.event.changedTouches[0].identifier;
|
1132
|
-
}
|
1133
|
-
function touchposition(parent, id) {
|
1134
|
-
return d3.touches(parent).filter(function(p) {
|
1135
|
-
return p.identifier === id;
|
1136
|
-
})[0];
|
1137
|
-
}
|
1138
|
-
function dragstart(id, position, move, end) {
|
1206
|
+
function dragstart(id, position, subject, move, end) {
|
1139
1207
|
return function() {
|
1140
|
-
var
|
1208
|
+
var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);
|
1141
1209
|
if (origin) {
|
1142
|
-
|
1143
|
-
|
1210
|
+
dragOffset = origin.apply(that, arguments);
|
1211
|
+
dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
|
1144
1212
|
} else {
|
1145
|
-
|
1213
|
+
dragOffset = [ 0, 0 ];
|
1146
1214
|
}
|
1147
|
-
|
1215
|
+
dispatch({
|
1148
1216
|
type: "dragstart"
|
1149
1217
|
});
|
1150
1218
|
function moved() {
|
1151
|
-
var
|
1219
|
+
var position1 = position(parent, dragId), dx, dy;
|
1220
|
+
if (!position1) return;
|
1221
|
+
dx = position1[0] - position0[0];
|
1222
|
+
dy = position1[1] - position0[1];
|
1152
1223
|
dragged |= dx | dy;
|
1153
|
-
|
1154
|
-
|
1224
|
+
position0 = position1;
|
1225
|
+
dispatch({
|
1155
1226
|
type: "drag",
|
1156
|
-
x:
|
1157
|
-
y:
|
1227
|
+
x: position1[0] + dragOffset[0],
|
1228
|
+
y: position1[1] + dragOffset[1],
|
1158
1229
|
dx: dx,
|
1159
1230
|
dy: dy
|
1160
1231
|
});
|
1161
1232
|
}
|
1162
1233
|
function ended() {
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1234
|
+
if (!position(parent, dragId)) return;
|
1235
|
+
dragSubject.on(move + dragName, null).on(end + dragName, null);
|
1236
|
+
dragRestore(dragged);
|
1237
|
+
dispatch({
|
1166
1238
|
type: "dragend"
|
1167
1239
|
});
|
1168
1240
|
}
|
@@ -1175,7 +1247,18 @@
|
|
1175
1247
|
};
|
1176
1248
|
return d3.rebind(drag, event, "on");
|
1177
1249
|
};
|
1178
|
-
|
1250
|
+
function d3_behavior_dragTouchId() {
|
1251
|
+
return d3.event.changedTouches[0].identifier;
|
1252
|
+
}
|
1253
|
+
d3.touches = function(container, touches) {
|
1254
|
+
if (arguments.length < 2) touches = d3_eventSource().touches;
|
1255
|
+
return touches ? d3_array(touches).map(function(touch) {
|
1256
|
+
var point = d3_mousePoint(container, touch);
|
1257
|
+
point.identifier = touch.identifier;
|
1258
|
+
return point;
|
1259
|
+
}) : [];
|
1260
|
+
};
|
1261
|
+
var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
|
1179
1262
|
function d3_sgn(x) {
|
1180
1263
|
return x > 0 ? 1 : x < 0 ? -1 : 0;
|
1181
1264
|
}
|
@@ -1202,31 +1285,44 @@
|
|
1202
1285
|
}
|
1203
1286
|
var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;
|
1204
1287
|
d3.interpolateZoom = function(p0, p1) {
|
1205
|
-
var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2];
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1288
|
+
var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;
|
1289
|
+
if (d2 < ε2) {
|
1290
|
+
S = Math.log(w1 / w0) / ρ;
|
1291
|
+
i = function(t) {
|
1292
|
+
return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];
|
1293
|
+
};
|
1294
|
+
} else {
|
1295
|
+
var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
|
1296
|
+
S = (r1 - r0) / ρ;
|
1297
|
+
i = function(t) {
|
1298
|
+
var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
|
1211
1299
|
return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];
|
1212
|
-
}
|
1213
|
-
return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ];
|
1300
|
+
};
|
1214
1301
|
}
|
1215
|
-
|
1216
|
-
return
|
1302
|
+
i.duration = S * 1e3;
|
1303
|
+
return i;
|
1217
1304
|
};
|
1218
1305
|
d3.behavior.zoom = function() {
|
1219
1306
|
var view = {
|
1220
1307
|
x: 0,
|
1221
1308
|
y: 0,
|
1222
1309
|
k: 1
|
1223
|
-
}, translate0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
1310
|
+
}, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
|
1311
|
+
if (!d3_behavior_zoomWheel) {
|
1312
|
+
d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
|
1313
|
+
return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
|
1314
|
+
}, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
|
1315
|
+
return d3.event.wheelDelta;
|
1316
|
+
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
|
1317
|
+
return -d3.event.detail;
|
1318
|
+
}, "MozMousePixelScroll");
|
1319
|
+
}
|
1224
1320
|
function zoom(g) {
|
1225
|
-
g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on(
|
1321
|
+
g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
|
1226
1322
|
}
|
1227
1323
|
zoom.event = function(g) {
|
1228
1324
|
g.each(function() {
|
1229
|
-
var
|
1325
|
+
var dispatch = event.of(this, arguments), view1 = view;
|
1230
1326
|
if (d3_transitionInheritId) {
|
1231
1327
|
d3.select(this).transition().each("start.zoom", function() {
|
1232
1328
|
view = this.__chart__ || {
|
@@ -1234,9 +1330,9 @@
|
|
1234
1330
|
y: 0,
|
1235
1331
|
k: 1
|
1236
1332
|
};
|
1237
|
-
zoomstarted(
|
1333
|
+
zoomstarted(dispatch);
|
1238
1334
|
}).tween("zoom:zoom", function() {
|
1239
|
-
var dx = size[0], dy = size[1], cx = dx / 2, cy = dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
|
1335
|
+
var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
|
1240
1336
|
return function(t) {
|
1241
1337
|
var l = i(t), k = dx / l[2];
|
1242
1338
|
this.__chart__ = view = {
|
@@ -1244,16 +1340,18 @@
|
|
1244
1340
|
y: cy - l[1] * k,
|
1245
1341
|
k: k
|
1246
1342
|
};
|
1247
|
-
zoomed(
|
1343
|
+
zoomed(dispatch);
|
1248
1344
|
};
|
1345
|
+
}).each("interrupt.zoom", function() {
|
1346
|
+
zoomended(dispatch);
|
1249
1347
|
}).each("end.zoom", function() {
|
1250
|
-
zoomended(
|
1348
|
+
zoomended(dispatch);
|
1251
1349
|
});
|
1252
1350
|
} else {
|
1253
1351
|
this.__chart__ = view;
|
1254
|
-
zoomstarted(
|
1255
|
-
zoomed(
|
1256
|
-
zoomended(
|
1352
|
+
zoomstarted(dispatch);
|
1353
|
+
zoomed(dispatch);
|
1354
|
+
zoomended(dispatch);
|
1257
1355
|
}
|
1258
1356
|
});
|
1259
1357
|
};
|
@@ -1272,8 +1370,9 @@
|
|
1272
1370
|
view = {
|
1273
1371
|
x: view.x,
|
1274
1372
|
y: view.y,
|
1275
|
-
k:
|
1373
|
+
k: null
|
1276
1374
|
};
|
1375
|
+
scaleTo(+_);
|
1277
1376
|
rescale();
|
1278
1377
|
return zoom;
|
1279
1378
|
};
|
@@ -1292,6 +1391,11 @@
|
|
1292
1391
|
size = _ && [ +_[0], +_[1] ];
|
1293
1392
|
return zoom;
|
1294
1393
|
};
|
1394
|
+
zoom.duration = function(_) {
|
1395
|
+
if (!arguments.length) return duration;
|
1396
|
+
duration = +_;
|
1397
|
+
return zoom;
|
1398
|
+
};
|
1295
1399
|
zoom.x = function(z) {
|
1296
1400
|
if (!arguments.length) return x1;
|
1297
1401
|
x1 = z;
|
@@ -1328,6 +1432,18 @@
|
|
1328
1432
|
view.x += p[0] - l[0];
|
1329
1433
|
view.y += p[1] - l[1];
|
1330
1434
|
}
|
1435
|
+
function zoomTo(that, p, l, k) {
|
1436
|
+
that.__chart__ = {
|
1437
|
+
x: view.x,
|
1438
|
+
y: view.y,
|
1439
|
+
k: view.k
|
1440
|
+
};
|
1441
|
+
scaleTo(Math.pow(2, k));
|
1442
|
+
translateTo(center0 = p, l);
|
1443
|
+
that = d3.select(that);
|
1444
|
+
if (duration > 0) that = that.transition().duration(duration);
|
1445
|
+
that.call(zoom.event);
|
1446
|
+
}
|
1331
1447
|
function rescale() {
|
1332
1448
|
if (x1) x1.domain(x0.range().map(function(x) {
|
1333
1449
|
return (x - view.x) / view.k;
|
@@ -1336,46 +1452,46 @@
|
|
1336
1452
|
return (y - view.y) / view.k;
|
1337
1453
|
}).map(y0.invert));
|
1338
1454
|
}
|
1339
|
-
function zoomstarted(
|
1340
|
-
|
1455
|
+
function zoomstarted(dispatch) {
|
1456
|
+
if (!zooming++) dispatch({
|
1341
1457
|
type: "zoomstart"
|
1342
1458
|
});
|
1343
1459
|
}
|
1344
|
-
function zoomed(
|
1460
|
+
function zoomed(dispatch) {
|
1345
1461
|
rescale();
|
1346
|
-
|
1462
|
+
dispatch({
|
1347
1463
|
type: "zoom",
|
1348
1464
|
scale: view.k,
|
1349
1465
|
translate: [ view.x, view.y ]
|
1350
1466
|
});
|
1351
1467
|
}
|
1352
|
-
function zoomended(
|
1353
|
-
|
1468
|
+
function zoomended(dispatch) {
|
1469
|
+
if (!--zooming) dispatch({
|
1354
1470
|
type: "zoomend"
|
1355
|
-
});
|
1471
|
+
}), center0 = null;
|
1356
1472
|
}
|
1357
1473
|
function mousedowned() {
|
1358
|
-
var
|
1359
|
-
d3_selection_interrupt.call(
|
1360
|
-
zoomstarted(
|
1474
|
+
var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);
|
1475
|
+
d3_selection_interrupt.call(that);
|
1476
|
+
zoomstarted(dispatch);
|
1361
1477
|
function moved() {
|
1362
1478
|
dragged = 1;
|
1363
|
-
translateTo(d3.mouse(
|
1364
|
-
zoomed(
|
1479
|
+
translateTo(d3.mouse(that), location0);
|
1480
|
+
zoomed(dispatch);
|
1365
1481
|
}
|
1366
1482
|
function ended() {
|
1367
|
-
|
1368
|
-
dragRestore(dragged
|
1369
|
-
zoomended(
|
1483
|
+
subject.on(mousemove, null).on(mouseup, null);
|
1484
|
+
dragRestore(dragged);
|
1485
|
+
zoomended(dispatch);
|
1370
1486
|
}
|
1371
1487
|
}
|
1372
1488
|
function touchstarted() {
|
1373
|
-
var
|
1374
|
-
d3_selection_interrupt.call(target);
|
1489
|
+
var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);
|
1375
1490
|
started();
|
1376
|
-
zoomstarted(
|
1491
|
+
zoomstarted(dispatch);
|
1492
|
+
subject.on(mousedown, null).on(touchstart, started);
|
1377
1493
|
function relocate() {
|
1378
|
-
var touches = d3.touches(
|
1494
|
+
var touches = d3.touches(that);
|
1379
1495
|
scale0 = view.k;
|
1380
1496
|
touches.forEach(function(t) {
|
1381
1497
|
if (t.identifier in locations0) locations0[t.identifier] = location(t);
|
@@ -1383,6 +1499,9 @@
|
|
1383
1499
|
return touches;
|
1384
1500
|
}
|
1385
1501
|
function started() {
|
1502
|
+
var target = d3.event.target;
|
1503
|
+
d3.select(target).on(touchmove, moved).on(touchend, ended);
|
1504
|
+
targets.push(target);
|
1386
1505
|
var changed = d3.event.changedTouches;
|
1387
1506
|
for (var i = 0, n = changed.length; i < n; ++i) {
|
1388
1507
|
locations0[changed[i].identifier] = null;
|
@@ -1390,11 +1509,9 @@
|
|
1390
1509
|
var touches = relocate(), now = Date.now();
|
1391
1510
|
if (touches.length === 1) {
|
1392
1511
|
if (now - touchtime < 500) {
|
1393
|
-
var p = touches[0]
|
1394
|
-
|
1395
|
-
translateTo(p, l);
|
1512
|
+
var p = touches[0];
|
1513
|
+
zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
|
1396
1514
|
d3_eventPreventDefault();
|
1397
|
-
zoomed(event_);
|
1398
1515
|
}
|
1399
1516
|
touchtime = now;
|
1400
1517
|
} else if (touches.length > 1) {
|
@@ -1403,7 +1520,8 @@
|
|
1403
1520
|
}
|
1404
1521
|
}
|
1405
1522
|
function moved() {
|
1406
|
-
var touches = d3.touches(
|
1523
|
+
var touches = d3.touches(that), p0, l0, p1, l1;
|
1524
|
+
d3_selection_interrupt.call(that);
|
1407
1525
|
for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
|
1408
1526
|
p1 = touches[i];
|
1409
1527
|
if (l1 = locations0[p1.identifier]) {
|
@@ -1419,7 +1537,7 @@
|
|
1419
1537
|
}
|
1420
1538
|
touchtime = null;
|
1421
1539
|
translateTo(p0, l0);
|
1422
|
-
zoomed(
|
1540
|
+
zoomed(dispatch);
|
1423
1541
|
}
|
1424
1542
|
function ended() {
|
1425
1543
|
if (d3.event.touches.length) {
|
@@ -1431,71 +1549,49 @@
|
|
1431
1549
|
return void relocate();
|
1432
1550
|
}
|
1433
1551
|
}
|
1434
|
-
|
1435
|
-
|
1552
|
+
d3.selectAll(targets).on(zoomName, null);
|
1553
|
+
subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
|
1436
1554
|
dragRestore();
|
1437
|
-
zoomended(
|
1555
|
+
zoomended(dispatch);
|
1438
1556
|
}
|
1439
1557
|
}
|
1440
1558
|
function mousewheeled() {
|
1441
|
-
var
|
1559
|
+
var dispatch = event.of(this, arguments);
|
1442
1560
|
if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this),
|
1443
|
-
zoomstarted(
|
1561
|
+
translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);
|
1444
1562
|
mousewheelTimer = setTimeout(function() {
|
1445
1563
|
mousewheelTimer = null;
|
1446
|
-
zoomended(
|
1564
|
+
zoomended(dispatch);
|
1447
1565
|
}, 50);
|
1448
1566
|
d3_eventPreventDefault();
|
1449
|
-
var point = center || d3.mouse(this);
|
1450
|
-
if (!translate0) translate0 = location(point);
|
1451
1567
|
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
|
1452
|
-
translateTo(
|
1453
|
-
zoomed(
|
1454
|
-
}
|
1455
|
-
function mousewheelreset() {
|
1456
|
-
translate0 = null;
|
1568
|
+
translateTo(center0, translate0);
|
1569
|
+
zoomed(dispatch);
|
1457
1570
|
}
|
1458
1571
|
function dblclicked() {
|
1459
|
-
var
|
1460
|
-
|
1461
|
-
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
|
1462
|
-
translateTo(p, l);
|
1463
|
-
zoomed(event_);
|
1464
|
-
zoomended(event_);
|
1572
|
+
var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;
|
1573
|
+
zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
|
1465
1574
|
}
|
1466
1575
|
return d3.rebind(zoom, event, "on");
|
1467
1576
|
};
|
1468
|
-
var d3_behavior_zoomInfinity = [ 0, Infinity ];
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
return d3.event.wheelDelta;
|
1473
|
-
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
|
1474
|
-
return -d3.event.detail;
|
1475
|
-
}, "MozMousePixelScroll");
|
1476
|
-
function d3_Color() {}
|
1477
|
-
d3_Color.prototype.toString = function() {
|
1577
|
+
var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;
|
1578
|
+
d3.color = d3_color;
|
1579
|
+
function d3_color() {}
|
1580
|
+
d3_color.prototype.toString = function() {
|
1478
1581
|
return this.rgb() + "";
|
1479
1582
|
};
|
1480
|
-
d3.hsl =
|
1481
|
-
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
|
1482
|
-
};
|
1583
|
+
d3.hsl = d3_hsl;
|
1483
1584
|
function d3_hsl(h, s, l) {
|
1484
|
-
return new
|
1485
|
-
}
|
1486
|
-
function d3_Hsl(h, s, l) {
|
1487
|
-
this.h = h;
|
1488
|
-
this.s = s;
|
1489
|
-
this.l = l;
|
1585
|
+
return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
|
1490
1586
|
}
|
1491
|
-
var d3_hslPrototype =
|
1587
|
+
var d3_hslPrototype = d3_hsl.prototype = new d3_color();
|
1492
1588
|
d3_hslPrototype.brighter = function(k) {
|
1493
1589
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1494
|
-
return d3_hsl(this.h, this.s, this.l / k);
|
1590
|
+
return new d3_hsl(this.h, this.s, this.l / k);
|
1495
1591
|
};
|
1496
1592
|
d3_hslPrototype.darker = function(k) {
|
1497
1593
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1498
|
-
return d3_hsl(this.h, this.s, k * this.l);
|
1594
|
+
return new d3_hsl(this.h, this.s, k * this.l);
|
1499
1595
|
};
|
1500
1596
|
d3_hslPrototype.rgb = function() {
|
1501
1597
|
return d3_hsl_rgb(this.h, this.s, this.l);
|
@@ -1517,25 +1613,18 @@
|
|
1517
1613
|
function vv(h) {
|
1518
1614
|
return Math.round(v(h) * 255);
|
1519
1615
|
}
|
1520
|
-
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
|
1616
|
+
return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
|
1521
1617
|
}
|
1522
|
-
d3.hcl =
|
1523
|
-
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
|
1524
|
-
};
|
1618
|
+
d3.hcl = d3_hcl;
|
1525
1619
|
function d3_hcl(h, c, l) {
|
1526
|
-
return new
|
1527
|
-
}
|
1528
|
-
function d3_Hcl(h, c, l) {
|
1529
|
-
this.h = h;
|
1530
|
-
this.c = c;
|
1531
|
-
this.l = l;
|
1620
|
+
return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
|
1532
1621
|
}
|
1533
|
-
var d3_hclPrototype =
|
1622
|
+
var d3_hclPrototype = d3_hcl.prototype = new d3_color();
|
1534
1623
|
d3_hclPrototype.brighter = function(k) {
|
1535
|
-
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
|
1624
|
+
return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
|
1536
1625
|
};
|
1537
1626
|
d3_hclPrototype.darker = function(k) {
|
1538
|
-
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
|
1627
|
+
return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
|
1539
1628
|
};
|
1540
1629
|
d3_hclPrototype.rgb = function() {
|
1541
1630
|
return d3_hcl_lab(this.h, this.c, this.l).rgb();
|
@@ -1543,27 +1632,20 @@
|
|
1543
1632
|
function d3_hcl_lab(h, c, l) {
|
1544
1633
|
if (isNaN(h)) h = 0;
|
1545
1634
|
if (isNaN(c)) c = 0;
|
1546
|
-
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
|
1635
|
+
return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
|
1547
1636
|
}
|
1548
|
-
d3.lab =
|
1549
|
-
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
|
1550
|
-
};
|
1637
|
+
d3.lab = d3_lab;
|
1551
1638
|
function d3_lab(l, a, b) {
|
1552
|
-
return new
|
1553
|
-
}
|
1554
|
-
function d3_Lab(l, a, b) {
|
1555
|
-
this.l = l;
|
1556
|
-
this.a = a;
|
1557
|
-
this.b = b;
|
1639
|
+
return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
|
1558
1640
|
}
|
1559
1641
|
var d3_lab_K = 18;
|
1560
1642
|
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
|
1561
|
-
var d3_labPrototype =
|
1643
|
+
var d3_labPrototype = d3_lab.prototype = new d3_color();
|
1562
1644
|
d3_labPrototype.brighter = function(k) {
|
1563
|
-
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1645
|
+
return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1564
1646
|
};
|
1565
1647
|
d3_labPrototype.darker = function(k) {
|
1566
|
-
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1648
|
+
return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
|
1567
1649
|
};
|
1568
1650
|
d3_labPrototype.rgb = function() {
|
1569
1651
|
return d3_lab_rgb(this.l, this.a, this.b);
|
@@ -1573,10 +1655,10 @@
|
|
1573
1655
|
x = d3_lab_xyz(x) * d3_lab_X;
|
1574
1656
|
y = d3_lab_xyz(y) * d3_lab_Y;
|
1575
1657
|
z = d3_lab_xyz(z) * d3_lab_Z;
|
1576
|
-
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
|
1658
|
+
return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
|
1577
1659
|
}
|
1578
1660
|
function d3_lab_hcl(l, a, b) {
|
1579
|
-
return l > 0 ? d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : d3_hcl(NaN, NaN, l);
|
1661
|
+
return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
|
1580
1662
|
}
|
1581
1663
|
function d3_lab_xyz(x) {
|
1582
1664
|
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
|
@@ -1587,36 +1669,29 @@
|
|
1587
1669
|
function d3_xyz_rgb(r) {
|
1588
1670
|
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
|
1589
1671
|
}
|
1590
|
-
d3.rgb =
|
1591
|
-
|
1592
|
-
|
1672
|
+
d3.rgb = d3_rgb;
|
1673
|
+
function d3_rgb(r, g, b) {
|
1674
|
+
return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
|
1675
|
+
}
|
1593
1676
|
function d3_rgbNumber(value) {
|
1594
|
-
return d3_rgb(value >> 16, value >> 8 & 255, value & 255);
|
1677
|
+
return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
|
1595
1678
|
}
|
1596
1679
|
function d3_rgbString(value) {
|
1597
1680
|
return d3_rgbNumber(value) + "";
|
1598
1681
|
}
|
1599
|
-
|
1600
|
-
return new d3_Rgb(r, g, b);
|
1601
|
-
}
|
1602
|
-
function d3_Rgb(r, g, b) {
|
1603
|
-
this.r = r;
|
1604
|
-
this.g = g;
|
1605
|
-
this.b = b;
|
1606
|
-
}
|
1607
|
-
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
|
1682
|
+
var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
|
1608
1683
|
d3_rgbPrototype.brighter = function(k) {
|
1609
1684
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1610
1685
|
var r = this.r, g = this.g, b = this.b, i = 30;
|
1611
|
-
if (!r && !g && !b) return d3_rgb(i, i, i);
|
1686
|
+
if (!r && !g && !b) return new d3_rgb(i, i, i);
|
1612
1687
|
if (r && r < i) r = i;
|
1613
1688
|
if (g && g < i) g = i;
|
1614
1689
|
if (b && b < i) b = i;
|
1615
|
-
return d3_rgb(Math.min(255,
|
1690
|
+
return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
|
1616
1691
|
};
|
1617
1692
|
d3_rgbPrototype.darker = function(k) {
|
1618
1693
|
k = Math.pow(.7, arguments.length ? k : 1);
|
1619
|
-
return d3_rgb(
|
1694
|
+
return new d3_rgb(k * this.r, k * this.g, k * this.b);
|
1620
1695
|
};
|
1621
1696
|
d3_rgbPrototype.hsl = function() {
|
1622
1697
|
return d3_rgb_hsl(this.r, this.g, this.b);
|
@@ -1628,8 +1703,8 @@
|
|
1628
1703
|
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
|
1629
1704
|
}
|
1630
1705
|
function d3_rgb_parse(format, rgb, hsl) {
|
1631
|
-
var r = 0, g = 0, b = 0, m1, m2,
|
1632
|
-
m1 = /([a-z]+)\((.*)\)
|
1706
|
+
var r = 0, g = 0, b = 0, m1, m2, color;
|
1707
|
+
m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase());
|
1633
1708
|
if (m1) {
|
1634
1709
|
m2 = m1[2].split(",");
|
1635
1710
|
switch (m1[1]) {
|
@@ -1644,23 +1719,22 @@
|
|
1644
1719
|
}
|
1645
1720
|
}
|
1646
1721
|
}
|
1647
|
-
if (
|
1648
|
-
|
1722
|
+
if (color = d3_rgb_names.get(format)) {
|
1723
|
+
return rgb(color.r, color.g, color.b);
|
1724
|
+
}
|
1725
|
+
if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
|
1649
1726
|
if (format.length === 4) {
|
1650
|
-
r =
|
1651
|
-
r
|
1652
|
-
g =
|
1653
|
-
g
|
1654
|
-
b =
|
1655
|
-
b
|
1727
|
+
r = (color & 3840) >> 4;
|
1728
|
+
r = r >> 4 | r;
|
1729
|
+
g = color & 240;
|
1730
|
+
g = g >> 4 | g;
|
1731
|
+
b = color & 15;
|
1732
|
+
b = b << 4 | b;
|
1656
1733
|
} else if (format.length === 7) {
|
1657
|
-
r =
|
1658
|
-
g =
|
1659
|
-
b =
|
1734
|
+
r = (color & 16711680) >> 16;
|
1735
|
+
g = (color & 65280) >> 8;
|
1736
|
+
b = color & 255;
|
1660
1737
|
}
|
1661
|
-
r = parseInt(r, 16);
|
1662
|
-
g = parseInt(g, 16);
|
1663
|
-
b = parseInt(b, 16);
|
1664
1738
|
}
|
1665
1739
|
return rgb(r, g, b);
|
1666
1740
|
}
|
@@ -1674,7 +1748,7 @@
|
|
1674
1748
|
h = NaN;
|
1675
1749
|
s = l > 0 && l < 1 ? 0 : h;
|
1676
1750
|
}
|
1677
|
-
return d3_hsl(h, s, l);
|
1751
|
+
return new d3_hsl(h, s, l);
|
1678
1752
|
}
|
1679
1753
|
function d3_rgb_lab(r, g, b) {
|
1680
1754
|
r = d3_rgb_xyz(r);
|
@@ -1810,6 +1884,7 @@
|
|
1810
1884
|
plum: 14524637,
|
1811
1885
|
powderblue: 11591910,
|
1812
1886
|
purple: 8388736,
|
1887
|
+
rebeccapurple: 6697881,
|
1813
1888
|
red: 16711680,
|
1814
1889
|
rosybrown: 12357519,
|
1815
1890
|
royalblue: 4286945,
|
@@ -1848,9 +1923,6 @@
|
|
1848
1923
|
};
|
1849
1924
|
}
|
1850
1925
|
d3.functor = d3_functor;
|
1851
|
-
function d3_identity(d) {
|
1852
|
-
return d;
|
1853
|
-
}
|
1854
1926
|
d3.xhr = d3_xhrType(d3_identity);
|
1855
1927
|
function d3_xhrType(response) {
|
1856
1928
|
return function(url, mimeType, callback) {
|
@@ -1861,13 +1933,13 @@
|
|
1861
1933
|
}
|
1862
1934
|
function d3_xhr(url, mimeType, response, callback) {
|
1863
1935
|
var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null;
|
1864
|
-
if (
|
1936
|
+
if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest();
|
1865
1937
|
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
|
1866
1938
|
request.readyState > 3 && respond();
|
1867
1939
|
};
|
1868
1940
|
function respond() {
|
1869
1941
|
var status = request.status, result;
|
1870
|
-
if (!status && request
|
1942
|
+
if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
|
1871
1943
|
try {
|
1872
1944
|
result = response.call(xhr, request);
|
1873
1945
|
} catch (e) {
|
@@ -1939,6 +2011,10 @@
|
|
1939
2011
|
callback(error == null ? request : null);
|
1940
2012
|
} : callback;
|
1941
2013
|
}
|
2014
|
+
function d3_xhrHasResponse(request) {
|
2015
|
+
var type = request.responseType;
|
2016
|
+
return type && type !== "text" ? request.response : request.responseText;
|
2017
|
+
}
|
1942
2018
|
d3.dsv = function(delimiter, mimeType) {
|
1943
2019
|
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
|
1944
2020
|
function dsv(url, row, callback) {
|
@@ -1991,7 +2067,7 @@
|
|
1991
2067
|
} else if (c === 10) {
|
1992
2068
|
eol = true;
|
1993
2069
|
}
|
1994
|
-
return text.
|
2070
|
+
return text.slice(j + 1, i).replace(/""/g, '"');
|
1995
2071
|
}
|
1996
2072
|
while (I < N) {
|
1997
2073
|
var c = text.charCodeAt(I++), k = 1;
|
@@ -1999,9 +2075,9 @@
|
|
1999
2075
|
eol = true;
|
2000
2076
|
if (text.charCodeAt(I) === 10) ++I, ++k;
|
2001
2077
|
} else if (c !== delimiterCode) continue;
|
2002
|
-
return text.
|
2078
|
+
return text.slice(j, I - k);
|
2003
2079
|
}
|
2004
|
-
return text.
|
2080
|
+
return text.slice(j);
|
2005
2081
|
}
|
2006
2082
|
while ((t = token()) !== EOF) {
|
2007
2083
|
var a = [];
|
@@ -2009,7 +2085,7 @@
|
|
2009
2085
|
a.push(t);
|
2010
2086
|
t = token();
|
2011
2087
|
}
|
2012
|
-
if (f &&
|
2088
|
+
if (f && (a = f(a, n++)) == null) continue;
|
2013
2089
|
rows.push(a);
|
2014
2090
|
}
|
2015
2091
|
return rows;
|
@@ -2043,17 +2119,19 @@
|
|
2043
2119
|
};
|
2044
2120
|
d3.csv = d3.dsv(",", "text/csv");
|
2045
2121
|
d3.tsv = d3.dsv(" ", "text/tab-separated-values");
|
2046
|
-
var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout,
|
2122
|
+
var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) {
|
2047
2123
|
setTimeout(callback, 17);
|
2048
2124
|
};
|
2049
|
-
d3.timer = function(
|
2125
|
+
d3.timer = function() {
|
2126
|
+
d3_timer.apply(this, arguments);
|
2127
|
+
};
|
2128
|
+
function d3_timer(callback, delay, then) {
|
2050
2129
|
var n = arguments.length;
|
2051
2130
|
if (n < 2) delay = 0;
|
2052
2131
|
if (n < 3) then = Date.now();
|
2053
2132
|
var time = then + delay, timer = {
|
2054
2133
|
c: callback,
|
2055
2134
|
t: time,
|
2056
|
-
f: false,
|
2057
2135
|
n: null
|
2058
2136
|
};
|
2059
2137
|
if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;
|
@@ -2063,7 +2141,8 @@
|
|
2063
2141
|
d3_timer_interval = 1;
|
2064
2142
|
d3_timer_frame(d3_timer_step);
|
2065
2143
|
}
|
2066
|
-
|
2144
|
+
return timer;
|
2145
|
+
}
|
2067
2146
|
function d3_timer_step() {
|
2068
2147
|
var now = d3_timer_mark(), delay = d3_timer_sweep() - now;
|
2069
2148
|
if (delay > 24) {
|
@@ -2082,22 +2161,21 @@
|
|
2082
2161
|
d3_timer_sweep();
|
2083
2162
|
};
|
2084
2163
|
function d3_timer_mark() {
|
2085
|
-
var now = Date.now();
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
d3_timer_active = d3_timer_active.n;
|
2164
|
+
var now = Date.now(), timer = d3_timer_queueHead;
|
2165
|
+
while (timer) {
|
2166
|
+
if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;
|
2167
|
+
timer = timer.n;
|
2090
2168
|
}
|
2091
2169
|
return now;
|
2092
2170
|
}
|
2093
2171
|
function d3_timer_sweep() {
|
2094
2172
|
var t0, t1 = d3_timer_queueHead, time = Infinity;
|
2095
2173
|
while (t1) {
|
2096
|
-
if (t1.
|
2097
|
-
t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
|
2098
|
-
} else {
|
2174
|
+
if (t1.c) {
|
2099
2175
|
if (t1.t < time) time = t1.t;
|
2100
2176
|
t1 = (t0 = t1).n;
|
2177
|
+
} else {
|
2178
|
+
t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
|
2101
2179
|
}
|
2102
2180
|
}
|
2103
2181
|
d3_timer_queueTail = t0;
|
@@ -2112,11 +2190,11 @@
|
|
2112
2190
|
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
|
2113
2191
|
d3.formatPrefix = function(value, precision) {
|
2114
2192
|
var i = 0;
|
2115
|
-
if (value) {
|
2193
|
+
if (value = +value) {
|
2116
2194
|
if (value < 0) value *= -1;
|
2117
2195
|
if (precision) value = d3.round(value, d3_format_precision(value, precision));
|
2118
2196
|
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
|
2119
|
-
i = Math.max(-24, Math.min(24, Math.floor((i
|
2197
|
+
i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
|
2120
2198
|
}
|
2121
2199
|
return d3_formatPrefixes[8 + i / 3];
|
2122
2200
|
};
|
@@ -2132,21 +2210,22 @@
|
|
2132
2210
|
};
|
2133
2211
|
}
|
2134
2212
|
function d3_locale_numberFormat(locale) {
|
2135
|
-
var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping ? function(value) {
|
2136
|
-
var i = value.length, t = [], j = 0, g = locale_grouping[0];
|
2213
|
+
var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {
|
2214
|
+
var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;
|
2137
2215
|
while (i > 0 && g > 0) {
|
2216
|
+
if (length + g + 1 > width) g = Math.max(1, width - length);
|
2138
2217
|
t.push(value.substring(i -= g, i + g));
|
2218
|
+
if ((length += g + 1) > width) break;
|
2139
2219
|
g = locale_grouping[j = (j + 1) % locale_grouping.length];
|
2140
2220
|
}
|
2141
2221
|
return t.reverse().join(locale_thousands);
|
2142
2222
|
} : d3_identity;
|
2143
2223
|
return function(specifier) {
|
2144
|
-
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false;
|
2224
|
+
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true;
|
2145
2225
|
if (precision) precision = +precision.substring(1);
|
2146
2226
|
if (zfill || fill === "0" && align === "=") {
|
2147
2227
|
zfill = fill = "0";
|
2148
2228
|
align = "=";
|
2149
|
-
if (comma) width -= Math.floor((width - 1) / 4);
|
2150
2229
|
}
|
2151
2230
|
switch (type) {
|
2152
2231
|
case "n":
|
@@ -2173,6 +2252,8 @@
|
|
2173
2252
|
if (symbol === "#") prefix = "0" + type.toLowerCase();
|
2174
2253
|
|
2175
2254
|
case "c":
|
2255
|
+
exponent = false;
|
2256
|
+
|
2176
2257
|
case "d":
|
2177
2258
|
integer = true;
|
2178
2259
|
precision = 0;
|
@@ -2191,23 +2272,31 @@
|
|
2191
2272
|
type = d3_format_types.get(type) || d3_format_typeDefault;
|
2192
2273
|
var zcomma = zfill && comma;
|
2193
2274
|
return function(value) {
|
2275
|
+
var fullSuffix = suffix;
|
2194
2276
|
if (integer && value % 1) return "";
|
2195
|
-
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
|
2277
|
+
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign;
|
2196
2278
|
if (scale < 0) {
|
2197
2279
|
var unit = d3.formatPrefix(value, precision);
|
2198
2280
|
value = unit.scale(value);
|
2199
|
-
|
2281
|
+
fullSuffix = unit.symbol + suffix;
|
2200
2282
|
} else {
|
2201
2283
|
value *= scale;
|
2202
2284
|
}
|
2203
2285
|
value = type(value, precision);
|
2204
|
-
var i = value.lastIndexOf("."), before
|
2205
|
-
if (
|
2286
|
+
var i = value.lastIndexOf("."), before, after;
|
2287
|
+
if (i < 0) {
|
2288
|
+
var j = exponent ? value.lastIndexOf("e") : -1;
|
2289
|
+
if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j);
|
2290
|
+
} else {
|
2291
|
+
before = value.substring(0, i);
|
2292
|
+
after = locale_decimal + value.substring(i + 1);
|
2293
|
+
}
|
2294
|
+
if (!zfill && comma) before = formatGroup(before, Infinity);
|
2206
2295
|
var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
|
2207
|
-
if (zcomma) before = formatGroup(padding + before);
|
2296
|
+
if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);
|
2208
2297
|
negative += prefix;
|
2209
2298
|
value = before + after;
|
2210
|
-
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) +
|
2299
|
+
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;
|
2211
2300
|
};
|
2212
2301
|
};
|
2213
2302
|
}
|
@@ -2427,14 +2516,14 @@
|
|
2427
2516
|
var string = [], i = -1, j = 0, c, p, f;
|
2428
2517
|
while (++i < n) {
|
2429
2518
|
if (template.charCodeAt(i) === 37) {
|
2430
|
-
string.push(template.
|
2519
|
+
string.push(template.slice(j, i));
|
2431
2520
|
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
|
2432
2521
|
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
|
2433
2522
|
string.push(c);
|
2434
2523
|
j = i + 1;
|
2435
2524
|
}
|
2436
2525
|
}
|
2437
|
-
string.push(template.
|
2526
|
+
string.push(template.slice(j, i));
|
2438
2527
|
return string.join("");
|
2439
2528
|
}
|
2440
2529
|
format.parse = function(string) {
|
@@ -2451,11 +2540,12 @@
|
|
2451
2540
|
if (i != string.length) return null;
|
2452
2541
|
if ("p" in d) d.H = d.H % 12 + d.p * 12;
|
2453
2542
|
var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();
|
2454
|
-
if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("
|
2543
|
+
if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) {
|
2544
|
+
if (!("w" in d)) d.w = "W" in d ? 1 : 0;
|
2455
2545
|
date.setFullYear(d.y, 0, 1);
|
2456
2546
|
date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);
|
2457
2547
|
} else date.setFullYear(d.y, d.m, d.d);
|
2458
|
-
date.setHours(d.H +
|
2548
|
+
date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);
|
2459
2549
|
return localZ ? date._ : date;
|
2460
2550
|
};
|
2461
2551
|
format.toString = function() {
|
@@ -2601,22 +2691,22 @@
|
|
2601
2691
|
};
|
2602
2692
|
function d3_time_parseWeekdayAbbrev(date, string, i) {
|
2603
2693
|
d3_time_dayAbbrevRe.lastIndex = 0;
|
2604
|
-
var n = d3_time_dayAbbrevRe.exec(string.
|
2694
|
+
var n = d3_time_dayAbbrevRe.exec(string.slice(i));
|
2605
2695
|
return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
2606
2696
|
}
|
2607
2697
|
function d3_time_parseWeekday(date, string, i) {
|
2608
2698
|
d3_time_dayRe.lastIndex = 0;
|
2609
|
-
var n = d3_time_dayRe.exec(string.
|
2699
|
+
var n = d3_time_dayRe.exec(string.slice(i));
|
2610
2700
|
return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
2611
2701
|
}
|
2612
2702
|
function d3_time_parseMonthAbbrev(date, string, i) {
|
2613
2703
|
d3_time_monthAbbrevRe.lastIndex = 0;
|
2614
|
-
var n = d3_time_monthAbbrevRe.exec(string.
|
2704
|
+
var n = d3_time_monthAbbrevRe.exec(string.slice(i));
|
2615
2705
|
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
2616
2706
|
}
|
2617
2707
|
function d3_time_parseMonth(date, string, i) {
|
2618
2708
|
d3_time_monthRe.lastIndex = 0;
|
2619
|
-
var n = d3_time_monthRe.exec(string.
|
2709
|
+
var n = d3_time_monthRe.exec(string.slice(i));
|
2620
2710
|
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
2621
2711
|
}
|
2622
2712
|
function d3_time_parseLocaleFull(date, string, i) {
|
@@ -2629,7 +2719,7 @@
|
|
2629
2719
|
return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
|
2630
2720
|
}
|
2631
2721
|
function d3_time_parseAmPm(date, string, i) {
|
2632
|
-
var n = d3_time_periodLookup.get(string.
|
2722
|
+
var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());
|
2633
2723
|
return n == null ? -1 : (date.p = n, i);
|
2634
2724
|
}
|
2635
2725
|
return d3_time_format;
|
@@ -2653,31 +2743,31 @@
|
|
2653
2743
|
}
|
2654
2744
|
function d3_time_parseWeekdayNumber(date, string, i) {
|
2655
2745
|
d3_time_numberRe.lastIndex = 0;
|
2656
|
-
var n = d3_time_numberRe.exec(string.
|
2746
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 1));
|
2657
2747
|
return n ? (date.w = +n[0], i + n[0].length) : -1;
|
2658
2748
|
}
|
2659
2749
|
function d3_time_parseWeekNumberSunday(date, string, i) {
|
2660
2750
|
d3_time_numberRe.lastIndex = 0;
|
2661
|
-
var n = d3_time_numberRe.exec(string.
|
2751
|
+
var n = d3_time_numberRe.exec(string.slice(i));
|
2662
2752
|
return n ? (date.U = +n[0], i + n[0].length) : -1;
|
2663
2753
|
}
|
2664
2754
|
function d3_time_parseWeekNumberMonday(date, string, i) {
|
2665
2755
|
d3_time_numberRe.lastIndex = 0;
|
2666
|
-
var n = d3_time_numberRe.exec(string.
|
2756
|
+
var n = d3_time_numberRe.exec(string.slice(i));
|
2667
2757
|
return n ? (date.W = +n[0], i + n[0].length) : -1;
|
2668
2758
|
}
|
2669
2759
|
function d3_time_parseFullYear(date, string, i) {
|
2670
2760
|
d3_time_numberRe.lastIndex = 0;
|
2671
|
-
var n = d3_time_numberRe.exec(string.
|
2761
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 4));
|
2672
2762
|
return n ? (date.y = +n[0], i + n[0].length) : -1;
|
2673
2763
|
}
|
2674
2764
|
function d3_time_parseYear(date, string, i) {
|
2675
2765
|
d3_time_numberRe.lastIndex = 0;
|
2676
|
-
var n = d3_time_numberRe.exec(string.
|
2766
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2677
2767
|
return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
|
2678
2768
|
}
|
2679
2769
|
function d3_time_parseZone(date, string, i) {
|
2680
|
-
return /^[+-]\d{4}$/.test(string = string.
|
2770
|
+
return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string,
|
2681
2771
|
i + 5) : -1;
|
2682
2772
|
}
|
2683
2773
|
function d3_time_expandYear(d) {
|
@@ -2685,46 +2775,46 @@
|
|
2685
2775
|
}
|
2686
2776
|
function d3_time_parseMonthNumber(date, string, i) {
|
2687
2777
|
d3_time_numberRe.lastIndex = 0;
|
2688
|
-
var n = d3_time_numberRe.exec(string.
|
2778
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2689
2779
|
return n ? (date.m = n[0] - 1, i + n[0].length) : -1;
|
2690
2780
|
}
|
2691
2781
|
function d3_time_parseDay(date, string, i) {
|
2692
2782
|
d3_time_numberRe.lastIndex = 0;
|
2693
|
-
var n = d3_time_numberRe.exec(string.
|
2783
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2694
2784
|
return n ? (date.d = +n[0], i + n[0].length) : -1;
|
2695
2785
|
}
|
2696
2786
|
function d3_time_parseDayOfYear(date, string, i) {
|
2697
2787
|
d3_time_numberRe.lastIndex = 0;
|
2698
|
-
var n = d3_time_numberRe.exec(string.
|
2788
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 3));
|
2699
2789
|
return n ? (date.j = +n[0], i + n[0].length) : -1;
|
2700
2790
|
}
|
2701
2791
|
function d3_time_parseHour24(date, string, i) {
|
2702
2792
|
d3_time_numberRe.lastIndex = 0;
|
2703
|
-
var n = d3_time_numberRe.exec(string.
|
2793
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2704
2794
|
return n ? (date.H = +n[0], i + n[0].length) : -1;
|
2705
2795
|
}
|
2706
2796
|
function d3_time_parseMinutes(date, string, i) {
|
2707
2797
|
d3_time_numberRe.lastIndex = 0;
|
2708
|
-
var n = d3_time_numberRe.exec(string.
|
2798
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2709
2799
|
return n ? (date.M = +n[0], i + n[0].length) : -1;
|
2710
2800
|
}
|
2711
2801
|
function d3_time_parseSeconds(date, string, i) {
|
2712
2802
|
d3_time_numberRe.lastIndex = 0;
|
2713
|
-
var n = d3_time_numberRe.exec(string.
|
2803
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
|
2714
2804
|
return n ? (date.S = +n[0], i + n[0].length) : -1;
|
2715
2805
|
}
|
2716
2806
|
function d3_time_parseMilliseconds(date, string, i) {
|
2717
2807
|
d3_time_numberRe.lastIndex = 0;
|
2718
|
-
var n = d3_time_numberRe.exec(string.
|
2808
|
+
var n = d3_time_numberRe.exec(string.slice(i, i + 3));
|
2719
2809
|
return n ? (date.L = +n[0], i + n[0].length) : -1;
|
2720
2810
|
}
|
2721
2811
|
function d3_time_zone(d) {
|
2722
|
-
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh =
|
2812
|
+
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60;
|
2723
2813
|
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
|
2724
2814
|
}
|
2725
2815
|
function d3_time_parseLiteralPercent(date, string, i) {
|
2726
2816
|
d3_time_percentRe.lastIndex = 0;
|
2727
|
-
var n = d3_time_percentRe.exec(string.
|
2817
|
+
var n = d3_time_percentRe.exec(string.slice(i, i + 1));
|
2728
2818
|
return n ? i + n[0].length : -1;
|
2729
2819
|
}
|
2730
2820
|
function d3_time_formatMulti(formats) {
|
@@ -2876,7 +2966,7 @@
|
|
2876
2966
|
function nextPoint(λ, φ) {
|
2877
2967
|
λ *= d3_radians;
|
2878
2968
|
φ = φ * d3_radians / 2 + π / 4;
|
2879
|
-
var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(
|
2969
|
+
var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);
|
2880
2970
|
d3_geo_areaRingSum.add(Math.atan2(v, u));
|
2881
2971
|
λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
|
2882
2972
|
}
|
@@ -3132,6 +3222,15 @@
|
|
3132
3222
|
d3_geo_centroidPointXYZ(x0, y0, z0);
|
3133
3223
|
}
|
3134
3224
|
}
|
3225
|
+
function d3_geo_compose(a, b) {
|
3226
|
+
function compose(x, y) {
|
3227
|
+
return x = a(x, y), b(x[0], x[1]);
|
3228
|
+
}
|
3229
|
+
if (a.invert && b.invert) compose.invert = function(x, y) {
|
3230
|
+
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
|
3231
|
+
};
|
3232
|
+
return compose;
|
3233
|
+
}
|
3135
3234
|
function d3_true() {
|
3136
3235
|
return true;
|
3137
3236
|
}
|
@@ -3226,7 +3325,6 @@
|
|
3226
3325
|
clip.lineEnd = ringEnd;
|
3227
3326
|
segments = [];
|
3228
3327
|
polygon = [];
|
3229
|
-
listener.polygonStart();
|
3230
3328
|
},
|
3231
3329
|
polygonEnd: function() {
|
3232
3330
|
clip.point = point;
|
@@ -3235,13 +3333,15 @@
|
|
3235
3333
|
segments = d3.merge(segments);
|
3236
3334
|
var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
|
3237
3335
|
if (segments.length) {
|
3336
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3238
3337
|
d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
|
3239
3338
|
} else if (clipStartInside) {
|
3339
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3240
3340
|
listener.lineStart();
|
3241
3341
|
interpolate(null, null, 1, listener);
|
3242
3342
|
listener.lineEnd();
|
3243
3343
|
}
|
3244
|
-
listener.polygonEnd();
|
3344
|
+
if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
|
3245
3345
|
segments = polygon = null;
|
3246
3346
|
},
|
3247
3347
|
sphere: function() {
|
@@ -3269,7 +3369,7 @@
|
|
3269
3369
|
line.lineEnd();
|
3270
3370
|
}
|
3271
3371
|
var segments;
|
3272
|
-
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygon, ring;
|
3372
|
+
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
|
3273
3373
|
function pointRing(λ, φ) {
|
3274
3374
|
ring.push([ λ, φ ]);
|
3275
3375
|
var point = rotate(λ, φ);
|
@@ -3290,9 +3390,12 @@
|
|
3290
3390
|
if (clean & 1) {
|
3291
3391
|
segment = ringSegments[0];
|
3292
3392
|
var n = segment.length - 1, i = -1, point;
|
3293
|
-
|
3294
|
-
|
3295
|
-
|
3393
|
+
if (n > 0) {
|
3394
|
+
if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
|
3395
|
+
listener.lineStart();
|
3396
|
+
while (++i < n) listener.point((point = segment[i])[0], point[1]);
|
3397
|
+
listener.lineEnd();
|
3398
|
+
}
|
3296
3399
|
return;
|
3297
3400
|
}
|
3298
3401
|
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
|
@@ -3328,35 +3431,6 @@
|
|
3328
3431
|
function d3_geo_clipSort(a, b) {
|
3329
3432
|
return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
|
3330
3433
|
}
|
3331
|
-
function d3_geo_pointInPolygon(point, polygon) {
|
3332
|
-
var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
|
3333
|
-
d3_geo_areaRingSum.reset();
|
3334
|
-
for (var i = 0, n = polygon.length; i < n; ++i) {
|
3335
|
-
var ring = polygon[i], m = ring.length;
|
3336
|
-
if (!m) continue;
|
3337
|
-
var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
|
3338
|
-
while (true) {
|
3339
|
-
if (j === m) j = 0;
|
3340
|
-
point = ring[j];
|
3341
|
-
var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, antimeridian = abs(dλ) > π, k = sinφ0 * sinφ;
|
3342
|
-
d3_geo_areaRingSum.add(Math.atan2(k * Math.sin(dλ), cosφ0 * cosφ + k * Math.cos(dλ)));
|
3343
|
-
polarAngle += antimeridian ? dλ + (dλ >= 0 ? τ : -τ) : dλ;
|
3344
|
-
if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
|
3345
|
-
var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
|
3346
|
-
d3_geo_cartesianNormalize(arc);
|
3347
|
-
var intersection = d3_geo_cartesianCross(meridianNormal, arc);
|
3348
|
-
d3_geo_cartesianNormalize(intersection);
|
3349
|
-
var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
|
3350
|
-
if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
|
3351
|
-
winding += antimeridian ^ dλ >= 0 ? 1 : -1;
|
3352
|
-
}
|
3353
|
-
}
|
3354
|
-
if (!j++) break;
|
3355
|
-
λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
|
3356
|
-
}
|
3357
|
-
}
|
3358
|
-
return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1;
|
3359
|
-
}
|
3360
3434
|
var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);
|
3361
3435
|
function d3_geo_clipAntimeridianLine(listener) {
|
3362
3436
|
var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
|
@@ -3424,6 +3498,35 @@
|
|
3424
3498
|
listener.point(to[0], to[1]);
|
3425
3499
|
}
|
3426
3500
|
}
|
3501
|
+
function d3_geo_pointInPolygon(point, polygon) {
|
3502
|
+
var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
|
3503
|
+
d3_geo_areaRingSum.reset();
|
3504
|
+
for (var i = 0, n = polygon.length; i < n; ++i) {
|
3505
|
+
var ring = polygon[i], m = ring.length;
|
3506
|
+
if (!m) continue;
|
3507
|
+
var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
|
3508
|
+
while (true) {
|
3509
|
+
if (j === m) j = 0;
|
3510
|
+
point = ring[j];
|
3511
|
+
var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;
|
3512
|
+
d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
|
3513
|
+
polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
|
3514
|
+
if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
|
3515
|
+
var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
|
3516
|
+
d3_geo_cartesianNormalize(arc);
|
3517
|
+
var intersection = d3_geo_cartesianCross(meridianNormal, arc);
|
3518
|
+
d3_geo_cartesianNormalize(intersection);
|
3519
|
+
var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
|
3520
|
+
if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
|
3521
|
+
winding += antimeridian ^ dλ >= 0 ? 1 : -1;
|
3522
|
+
}
|
3523
|
+
}
|
3524
|
+
if (!j++) break;
|
3525
|
+
λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
|
3526
|
+
}
|
3527
|
+
}
|
3528
|
+
return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;
|
3529
|
+
}
|
3427
3530
|
function d3_geo_clipCircle(radius) {
|
3428
3531
|
var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
|
3429
3532
|
return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);
|
@@ -3726,15 +3829,6 @@
|
|
3726
3829
|
return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
|
3727
3830
|
}
|
3728
3831
|
}
|
3729
|
-
function d3_geo_compose(a, b) {
|
3730
|
-
function compose(x, y) {
|
3731
|
-
return x = a(x, y), b(x[0], x[1]);
|
3732
|
-
}
|
3733
|
-
if (a.invert && b.invert) compose.invert = function(x, y) {
|
3734
|
-
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
|
3735
|
-
};
|
3736
|
-
return compose;
|
3737
|
-
}
|
3738
3832
|
function d3_geo_conic(projectAt) {
|
3739
3833
|
var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
|
3740
3834
|
p.parallels = function(_) {
|
@@ -4006,7 +4100,7 @@
|
|
4006
4100
|
result: d3_noop
|
4007
4101
|
};
|
4008
4102
|
function point(x, y) {
|
4009
|
-
context.moveTo(x, y);
|
4103
|
+
context.moveTo(x + pointRadius, y);
|
4010
4104
|
context.arc(x, y, pointRadius, 0, τ);
|
4011
4105
|
}
|
4012
4106
|
function pointLineStart(x, y) {
|
@@ -4597,7 +4691,12 @@
|
|
4597
4691
|
}, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
|
4598
4692
|
if (!n) return d3_geo_mercator;
|
4599
4693
|
function forward(λ, φ) {
|
4600
|
-
|
4694
|
+
if (F > 0) {
|
4695
|
+
if (φ < -halfπ + ε) φ = -halfπ + ε;
|
4696
|
+
} else {
|
4697
|
+
if (φ > halfπ - ε) φ = halfπ - ε;
|
4698
|
+
}
|
4699
|
+
var ρ = F / Math.pow(t(φ), n);
|
4601
4700
|
return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
|
4602
4701
|
}
|
4603
4702
|
forward.invert = function(x, y) {
|
@@ -4687,13 +4786,13 @@
|
|
4687
4786
|
(d3.geo.transverseMercator = function() {
|
4688
4787
|
var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
|
4689
4788
|
projection.center = function(_) {
|
4690
|
-
return _ ? center([ -_[1], _[0] ]) : (_ = center(), [
|
4789
|
+
return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
|
4691
4790
|
};
|
4692
4791
|
projection.rotate = function(_) {
|
4693
4792
|
return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
|
4694
4793
|
[ _[0], _[1], _[2] - 90 ]);
|
4695
4794
|
};
|
4696
|
-
return
|
4795
|
+
return rotate([ 0, 0, 90 ]);
|
4697
4796
|
}).raw = d3_geo_transverseMercator;
|
4698
4797
|
d3.geom = {};
|
4699
4798
|
function d3_geom_pointX(d) {
|
@@ -5509,11 +5608,11 @@
|
|
5509
5608
|
}
|
5510
5609
|
}
|
5511
5610
|
function insertChild(n, d, x, y, x1, y1, x2, y2) {
|
5512
|
-
var
|
5611
|
+
var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;
|
5513
5612
|
n.leaf = false;
|
5514
5613
|
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
|
5515
|
-
if (right) x1 =
|
5516
|
-
if (
|
5614
|
+
if (right) x1 = xm; else x2 = xm;
|
5615
|
+
if (below) y1 = ym; else y2 = ym;
|
5517
5616
|
insert(n, d, x, y, x1, y1, x2, y2);
|
5518
5617
|
}
|
5519
5618
|
var root = d3_geom_quadtreeNode();
|
@@ -5523,6 +5622,9 @@
|
|
5523
5622
|
root.visit = function(f) {
|
5524
5623
|
d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
|
5525
5624
|
};
|
5625
|
+
root.find = function(point) {
|
5626
|
+
return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);
|
5627
|
+
};
|
5526
5628
|
i = -1;
|
5527
5629
|
if (x1 == null) {
|
5528
5630
|
while (++i < n) {
|
@@ -5576,6 +5678,42 @@
|
|
5576
5678
|
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
|
5577
5679
|
}
|
5578
5680
|
}
|
5681
|
+
function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
|
5682
|
+
var minDistance2 = Infinity, closestPoint;
|
5683
|
+
(function find(node, x1, y1, x2, y2) {
|
5684
|
+
if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
|
5685
|
+
if (point = node.point) {
|
5686
|
+
var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
|
5687
|
+
if (distance2 < minDistance2) {
|
5688
|
+
var distance = Math.sqrt(minDistance2 = distance2);
|
5689
|
+
x0 = x - distance, y0 = y - distance;
|
5690
|
+
x3 = x + distance, y3 = y + distance;
|
5691
|
+
closestPoint = point;
|
5692
|
+
}
|
5693
|
+
}
|
5694
|
+
var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;
|
5695
|
+
for (var i = below << 1 | right, j = i + 4; i < j; ++i) {
|
5696
|
+
if (node = children[i & 3]) switch (i & 3) {
|
5697
|
+
case 0:
|
5698
|
+
find(node, x1, y1, xm, ym);
|
5699
|
+
break;
|
5700
|
+
|
5701
|
+
case 1:
|
5702
|
+
find(node, xm, y1, x2, ym);
|
5703
|
+
break;
|
5704
|
+
|
5705
|
+
case 2:
|
5706
|
+
find(node, x1, ym, xm, y2);
|
5707
|
+
break;
|
5708
|
+
|
5709
|
+
case 3:
|
5710
|
+
find(node, xm, ym, x2, y2);
|
5711
|
+
break;
|
5712
|
+
}
|
5713
|
+
}
|
5714
|
+
})(root, x0, y0, x3, y3);
|
5715
|
+
return closestPoint;
|
5716
|
+
}
|
5579
5717
|
d3.interpolateRgb = d3_interpolateRgb;
|
5580
5718
|
function d3_interpolateRgb(a, b) {
|
5581
5719
|
a = d3.rgb(a);
|
@@ -5607,78 +5745,45 @@
|
|
5607
5745
|
}
|
5608
5746
|
d3.interpolateNumber = d3_interpolateNumber;
|
5609
5747
|
function d3_interpolateNumber(a, b) {
|
5610
|
-
|
5611
|
-
return function(t) {
|
5612
|
-
return a + b * t;
|
5613
|
-
};
|
5614
|
-
}
|
5615
|
-
d3.interpolateString = d3_interpolateString;
|
5616
|
-
function d3_interpolateString(a, b) {
|
5617
|
-
var
|
5618
|
-
a = a + "", b = b + "";
|
5619
|
-
|
5620
|
-
|
5621
|
-
|
5622
|
-
|
5623
|
-
i: s.length,
|
5624
|
-
x: m[0]
|
5625
|
-
});
|
5626
|
-
s.push(null);
|
5627
|
-
s0 = d3_interpolate_number.lastIndex;
|
5628
|
-
}
|
5629
|
-
if (s0 < b.length) s.push(b.substring(s0));
|
5630
|
-
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
|
5631
|
-
o = q[i];
|
5632
|
-
if (o.x == m[0]) {
|
5633
|
-
if (o.i) {
|
5634
|
-
if (s[o.i + 1] == null) {
|
5635
|
-
s[o.i - 1] += o.x;
|
5636
|
-
s.splice(o.i, 1);
|
5637
|
-
for (j = i + 1; j < n; ++j) q[j].i--;
|
5638
|
-
} else {
|
5639
|
-
s[o.i - 1] += o.x + s[o.i + 1];
|
5640
|
-
s.splice(o.i, 2);
|
5641
|
-
for (j = i + 1; j < n; ++j) q[j].i -= 2;
|
5642
|
-
}
|
5643
|
-
} else {
|
5644
|
-
if (s[o.i + 1] == null) {
|
5645
|
-
s[o.i] = o.x;
|
5646
|
-
} else {
|
5647
|
-
s[o.i] = o.x + s[o.i + 1];
|
5648
|
-
s.splice(o.i + 1, 1);
|
5649
|
-
for (j = i + 1; j < n; ++j) q[j].i--;
|
5650
|
-
}
|
5651
|
-
}
|
5652
|
-
q.splice(i, 1);
|
5653
|
-
n--;
|
5654
|
-
i--;
|
5655
|
-
} else {
|
5656
|
-
o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
|
5748
|
+
a = +a, b = +b;
|
5749
|
+
return function(t) {
|
5750
|
+
return a * (1 - t) + b * t;
|
5751
|
+
};
|
5752
|
+
}
|
5753
|
+
d3.interpolateString = d3_interpolateString;
|
5754
|
+
function d3_interpolateString(a, b) {
|
5755
|
+
var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
|
5756
|
+
a = a + "", b = b + "";
|
5757
|
+
while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
|
5758
|
+
if ((bs = bm.index) > bi) {
|
5759
|
+
bs = b.slice(bi, bs);
|
5760
|
+
if (s[i]) s[i] += bs; else s[++i] = bs;
|
5657
5761
|
}
|
5658
|
-
|
5659
|
-
|
5660
|
-
o = q.pop();
|
5661
|
-
if (s[o.i + 1] == null) {
|
5662
|
-
s[o.i] = o.x;
|
5762
|
+
if ((am = am[0]) === (bm = bm[0])) {
|
5763
|
+
if (s[i]) s[i] += bm; else s[++i] = bm;
|
5663
5764
|
} else {
|
5664
|
-
s[
|
5665
|
-
|
5765
|
+
s[++i] = null;
|
5766
|
+
q.push({
|
5767
|
+
i: i,
|
5768
|
+
x: d3_interpolateNumber(am, bm)
|
5769
|
+
});
|
5666
5770
|
}
|
5667
|
-
|
5771
|
+
bi = d3_interpolate_numberB.lastIndex;
|
5668
5772
|
}
|
5669
|
-
if (
|
5670
|
-
|
5671
|
-
|
5672
|
-
}) : function() {
|
5673
|
-
return b;
|
5674
|
-
};
|
5773
|
+
if (bi < b.length) {
|
5774
|
+
bs = b.slice(bi);
|
5775
|
+
if (s[i]) s[i] += bs; else s[++i] = bs;
|
5675
5776
|
}
|
5676
|
-
return function(t) {
|
5677
|
-
|
5777
|
+
return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
|
5778
|
+
return b(t) + "";
|
5779
|
+
}) : function() {
|
5780
|
+
return b;
|
5781
|
+
} : (b = q.length, function(t) {
|
5782
|
+
for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
|
5678
5783
|
return s.join("");
|
5679
|
-
};
|
5784
|
+
});
|
5680
5785
|
}
|
5681
|
-
var
|
5786
|
+
var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
|
5682
5787
|
d3.interpolate = d3_interpolate;
|
5683
5788
|
function d3_interpolate(a, b) {
|
5684
5789
|
var i = d3.interpolators.length, f;
|
@@ -5687,7 +5792,7 @@
|
|
5687
5792
|
}
|
5688
5793
|
d3.interpolators = [ function(a, b) {
|
5689
5794
|
var t = typeof b;
|
5690
|
-
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()
|
5795
|
+
return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
|
5691
5796
|
} ];
|
5692
5797
|
d3.interpolateArray = d3_interpolateArray;
|
5693
5798
|
function d3_interpolateArray(a, b) {
|
@@ -5736,7 +5841,7 @@
|
|
5736
5841
|
}
|
5737
5842
|
});
|
5738
5843
|
d3.ease = function(name) {
|
5739
|
-
var i = name.indexOf("-"), t = i >= 0 ? name.
|
5844
|
+
var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in";
|
5740
5845
|
t = d3_ease.get(t) || d3_ease_default;
|
5741
5846
|
m = d3_ease_mode.get(m) || d3_identity;
|
5742
5847
|
return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
|
@@ -5888,68 +5993,82 @@
|
|
5888
5993
|
f: 0
|
5889
5994
|
};
|
5890
5995
|
d3.interpolateTransform = d3_interpolateTransform;
|
5891
|
-
function
|
5892
|
-
|
5893
|
-
|
5894
|
-
|
5996
|
+
function d3_interpolateTransformPop(s) {
|
5997
|
+
return s.length ? s.pop() + "," : "";
|
5998
|
+
}
|
5999
|
+
function d3_interpolateTranslate(ta, tb, s, q) {
|
6000
|
+
if (ta[0] !== tb[0] || ta[1] !== tb[1]) {
|
6001
|
+
var i = s.push("translate(", null, ",", null, ")");
|
5895
6002
|
q.push({
|
5896
|
-
i:
|
6003
|
+
i: i - 4,
|
5897
6004
|
x: d3_interpolateNumber(ta[0], tb[0])
|
5898
6005
|
}, {
|
5899
|
-
i:
|
6006
|
+
i: i - 2,
|
5900
6007
|
x: d3_interpolateNumber(ta[1], tb[1])
|
5901
6008
|
});
|
5902
6009
|
} else if (tb[0] || tb[1]) {
|
5903
6010
|
s.push("translate(" + tb + ")");
|
5904
|
-
} else {
|
5905
|
-
s.push("");
|
5906
6011
|
}
|
5907
|
-
|
6012
|
+
}
|
6013
|
+
function d3_interpolateRotate(ra, rb, s, q) {
|
6014
|
+
if (ra !== rb) {
|
5908
6015
|
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
|
5909
6016
|
q.push({
|
5910
|
-
i: s.push(s
|
6017
|
+
i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2,
|
5911
6018
|
x: d3_interpolateNumber(ra, rb)
|
5912
6019
|
});
|
5913
6020
|
} else if (rb) {
|
5914
|
-
s.push(s
|
6021
|
+
s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")");
|
5915
6022
|
}
|
5916
|
-
|
6023
|
+
}
|
6024
|
+
function d3_interpolateSkew(wa, wb, s, q) {
|
6025
|
+
if (wa !== wb) {
|
5917
6026
|
q.push({
|
5918
|
-
i: s.push(s
|
6027
|
+
i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2,
|
5919
6028
|
x: d3_interpolateNumber(wa, wb)
|
5920
6029
|
});
|
5921
6030
|
} else if (wb) {
|
5922
|
-
s.push(s
|
6031
|
+
s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")");
|
5923
6032
|
}
|
5924
|
-
|
5925
|
-
|
6033
|
+
}
|
6034
|
+
function d3_interpolateScale(ka, kb, s, q) {
|
6035
|
+
if (ka[0] !== kb[0] || ka[1] !== kb[1]) {
|
6036
|
+
var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")");
|
5926
6037
|
q.push({
|
5927
|
-
i:
|
6038
|
+
i: i - 4,
|
5928
6039
|
x: d3_interpolateNumber(ka[0], kb[0])
|
5929
6040
|
}, {
|
5930
|
-
i:
|
6041
|
+
i: i - 2,
|
5931
6042
|
x: d3_interpolateNumber(ka[1], kb[1])
|
5932
6043
|
});
|
5933
|
-
} else if (kb[0]
|
5934
|
-
s.push(s
|
6044
|
+
} else if (kb[0] !== 1 || kb[1] !== 1) {
|
6045
|
+
s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")");
|
5935
6046
|
}
|
5936
|
-
|
6047
|
+
}
|
6048
|
+
function d3_interpolateTransform(a, b) {
|
6049
|
+
var s = [], q = [];
|
6050
|
+
a = d3.transform(a), b = d3.transform(b);
|
6051
|
+
d3_interpolateTranslate(a.translate, b.translate, s, q);
|
6052
|
+
d3_interpolateRotate(a.rotate, b.rotate, s, q);
|
6053
|
+
d3_interpolateSkew(a.skew, b.skew, s, q);
|
6054
|
+
d3_interpolateScale(a.scale, b.scale, s, q);
|
6055
|
+
a = b = null;
|
5937
6056
|
return function(t) {
|
5938
|
-
var i = -1, o;
|
6057
|
+
var i = -1, n = q.length, o;
|
5939
6058
|
while (++i < n) s[(o = q[i]).i] = o.x(t);
|
5940
6059
|
return s.join("");
|
5941
6060
|
};
|
5942
6061
|
}
|
5943
6062
|
function d3_uninterpolateNumber(a, b) {
|
5944
|
-
b = b
|
6063
|
+
b = (b -= a = +a) || 1 / b;
|
5945
6064
|
return function(x) {
|
5946
|
-
return (x - a)
|
6065
|
+
return (x - a) / b;
|
5947
6066
|
};
|
5948
6067
|
}
|
5949
6068
|
function d3_uninterpolateClamp(a, b) {
|
5950
|
-
b = b
|
6069
|
+
b = (b -= a = +a) || 1 / b;
|
5951
6070
|
return function(x) {
|
5952
|
-
return Math.max(0, Math.min(1, (x - a)
|
6071
|
+
return Math.max(0, Math.min(1, (x - a) / b));
|
5953
6072
|
};
|
5954
6073
|
}
|
5955
6074
|
d3.layout = {};
|
@@ -6039,7 +6158,7 @@
|
|
6039
6158
|
index: di,
|
6040
6159
|
startAngle: x0,
|
6041
6160
|
endAngle: x,
|
6042
|
-
value:
|
6161
|
+
value: groupSums[di]
|
6043
6162
|
};
|
6044
6163
|
x += padding;
|
6045
6164
|
}
|
@@ -6107,7 +6226,7 @@
|
|
6107
6226
|
return chord;
|
6108
6227
|
};
|
6109
6228
|
d3.layout.force = function() {
|
6110
|
-
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
|
6229
|
+
var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
|
6111
6230
|
function repulse(node) {
|
6112
6231
|
return function(quad, x1, _, x2) {
|
6113
6232
|
if (quad.point !== node) {
|
@@ -6131,6 +6250,7 @@
|
|
6131
6250
|
}
|
6132
6251
|
force.tick = function() {
|
6133
6252
|
if ((alpha *= .99) < .005) {
|
6253
|
+
timer = null;
|
6134
6254
|
event.end({
|
6135
6255
|
type: "end",
|
6136
6256
|
alpha: alpha = 0
|
@@ -6148,7 +6268,7 @@
|
|
6148
6268
|
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
|
6149
6269
|
x *= l;
|
6150
6270
|
y *= l;
|
6151
|
-
t.x -= x * (k = s.weight / (
|
6271
|
+
t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);
|
6152
6272
|
t.y -= y * k;
|
6153
6273
|
s.x += x * (k = 1 - k);
|
6154
6274
|
s.y += y * k;
|
@@ -6244,13 +6364,21 @@
|
|
6244
6364
|
if (!arguments.length) return alpha;
|
6245
6365
|
x = +x;
|
6246
6366
|
if (alpha) {
|
6247
|
-
if (x > 0)
|
6367
|
+
if (x > 0) {
|
6368
|
+
alpha = x;
|
6369
|
+
} else {
|
6370
|
+
timer.c = null, timer.t = NaN, timer = null;
|
6371
|
+
event.end({
|
6372
|
+
type: "end",
|
6373
|
+
alpha: alpha = 0
|
6374
|
+
});
|
6375
|
+
}
|
6248
6376
|
} else if (x > 0) {
|
6249
6377
|
event.start({
|
6250
6378
|
type: "start",
|
6251
6379
|
alpha: alpha = x
|
6252
6380
|
});
|
6253
|
-
|
6381
|
+
timer = d3_timer(force.tick);
|
6254
6382
|
}
|
6255
6383
|
return force;
|
6256
6384
|
};
|
@@ -6292,8 +6420,8 @@
|
|
6292
6420
|
neighbors[o.target.index].push(o.source);
|
6293
6421
|
}
|
6294
6422
|
}
|
6295
|
-
var candidates = neighbors[i], j = -1,
|
6296
|
-
while (++j <
|
6423
|
+
var candidates = neighbors[i], j = -1, l = candidates.length, x;
|
6424
|
+
while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;
|
6297
6425
|
return Math.random() * size;
|
6298
6426
|
}
|
6299
6427
|
return force.resume();
|
@@ -6358,41 +6486,30 @@
|
|
6358
6486
|
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
|
6359
6487
|
d3.layout.hierarchy = function() {
|
6360
6488
|
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
|
6361
|
-
function
|
6362
|
-
var
|
6363
|
-
|
6364
|
-
|
6365
|
-
|
6366
|
-
|
6367
|
-
|
6368
|
-
|
6369
|
-
|
6370
|
-
|
6371
|
-
|
6372
|
-
|
6373
|
-
|
6374
|
-
|
6375
|
-
|
6376
|
-
|
6377
|
-
node.
|
6489
|
+
function hierarchy(root) {
|
6490
|
+
var stack = [ root ], nodes = [], node;
|
6491
|
+
root.depth = 0;
|
6492
|
+
while ((node = stack.pop()) != null) {
|
6493
|
+
nodes.push(node);
|
6494
|
+
if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
|
6495
|
+
var n, childs, child;
|
6496
|
+
while (--n >= 0) {
|
6497
|
+
stack.push(child = childs[n]);
|
6498
|
+
child.parent = node;
|
6499
|
+
child.depth = node.depth + 1;
|
6500
|
+
}
|
6501
|
+
if (value) node.value = 0;
|
6502
|
+
node.children = childs;
|
6503
|
+
} else {
|
6504
|
+
if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
|
6505
|
+
delete node.children;
|
6378
6506
|
}
|
6379
6507
|
}
|
6380
|
-
|
6381
|
-
|
6382
|
-
|
6383
|
-
|
6384
|
-
|
6385
|
-
var i = -1, n, j = depth + 1;
|
6386
|
-
while (++i < n) v += revalue(children[i], j);
|
6387
|
-
} else if (value) {
|
6388
|
-
v = +value.call(hierarchy, node, depth) || 0;
|
6389
|
-
}
|
6390
|
-
if (value) node.value = v;
|
6391
|
-
return v;
|
6392
|
-
}
|
6393
|
-
function hierarchy(d) {
|
6394
|
-
var nodes = [];
|
6395
|
-
recurse(d, 0, nodes);
|
6508
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
6509
|
+
var childs, parent;
|
6510
|
+
if (sort && (childs = node.children)) childs.sort(sort);
|
6511
|
+
if (value && (parent = node.parent)) parent.value += node.value;
|
6512
|
+
});
|
6396
6513
|
return nodes;
|
6397
6514
|
}
|
6398
6515
|
hierarchy.sort = function(x) {
|
@@ -6411,7 +6528,16 @@
|
|
6411
6528
|
return hierarchy;
|
6412
6529
|
};
|
6413
6530
|
hierarchy.revalue = function(root) {
|
6414
|
-
|
6531
|
+
if (value) {
|
6532
|
+
d3_layout_hierarchyVisitBefore(root, function(node) {
|
6533
|
+
if (node.children) node.value = 0;
|
6534
|
+
});
|
6535
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
6536
|
+
var parent;
|
6537
|
+
if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
|
6538
|
+
if (parent = node.parent) parent.value += node.value;
|
6539
|
+
});
|
6540
|
+
}
|
6415
6541
|
return root;
|
6416
6542
|
};
|
6417
6543
|
return hierarchy;
|
@@ -6422,6 +6548,29 @@
|
|
6422
6548
|
object.links = d3_layout_hierarchyLinks;
|
6423
6549
|
return object;
|
6424
6550
|
}
|
6551
|
+
function d3_layout_hierarchyVisitBefore(node, callback) {
|
6552
|
+
var nodes = [ node ];
|
6553
|
+
while ((node = nodes.pop()) != null) {
|
6554
|
+
callback(node);
|
6555
|
+
if ((children = node.children) && (n = children.length)) {
|
6556
|
+
var n, children;
|
6557
|
+
while (--n >= 0) nodes.push(children[n]);
|
6558
|
+
}
|
6559
|
+
}
|
6560
|
+
}
|
6561
|
+
function d3_layout_hierarchyVisitAfter(node, callback) {
|
6562
|
+
var nodes = [ node ], nodes2 = [];
|
6563
|
+
while ((node = nodes.pop()) != null) {
|
6564
|
+
nodes2.push(node);
|
6565
|
+
if ((children = node.children) && (n = children.length)) {
|
6566
|
+
var i = -1, n, children;
|
6567
|
+
while (++i < n) nodes.push(children[i]);
|
6568
|
+
}
|
6569
|
+
}
|
6570
|
+
while ((node = nodes2.pop()) != null) {
|
6571
|
+
callback(node);
|
6572
|
+
}
|
6573
|
+
}
|
6425
6574
|
function d3_layout_hierarchyChildren(d) {
|
6426
6575
|
return d.children;
|
6427
6576
|
}
|
@@ -6479,49 +6628,50 @@
|
|
6479
6628
|
return d3_layout_hierarchyRebind(partition, hierarchy);
|
6480
6629
|
};
|
6481
6630
|
d3.layout.pie = function() {
|
6482
|
-
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle =
|
6631
|
+
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;
|
6483
6632
|
function pie(data) {
|
6484
|
-
var values = data.map(function(d, i) {
|
6633
|
+
var n = data.length, values = data.map(function(d, i) {
|
6485
6634
|
return +value.call(pie, d, i);
|
6486
|
-
});
|
6487
|
-
var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
|
6488
|
-
var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values);
|
6489
|
-
var index = d3.range(data.length);
|
6635
|
+
}), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;
|
6490
6636
|
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
|
6491
6637
|
return values[j] - values[i];
|
6492
6638
|
} : function(i, j) {
|
6493
6639
|
return sort(data[i], data[j]);
|
6494
6640
|
});
|
6495
|
-
var arcs = [];
|
6496
6641
|
index.forEach(function(i) {
|
6497
|
-
var d;
|
6498
6642
|
arcs[i] = {
|
6499
6643
|
data: data[i],
|
6500
|
-
value:
|
6644
|
+
value: v = values[i],
|
6501
6645
|
startAngle: a,
|
6502
|
-
endAngle: a +=
|
6646
|
+
endAngle: a += v * k + pa,
|
6647
|
+
padAngle: p
|
6503
6648
|
};
|
6504
6649
|
});
|
6505
6650
|
return arcs;
|
6506
6651
|
}
|
6507
|
-
pie.value = function(
|
6652
|
+
pie.value = function(_) {
|
6508
6653
|
if (!arguments.length) return value;
|
6509
|
-
value =
|
6654
|
+
value = _;
|
6510
6655
|
return pie;
|
6511
6656
|
};
|
6512
|
-
pie.sort = function(
|
6657
|
+
pie.sort = function(_) {
|
6513
6658
|
if (!arguments.length) return sort;
|
6514
|
-
sort =
|
6659
|
+
sort = _;
|
6515
6660
|
return pie;
|
6516
6661
|
};
|
6517
|
-
pie.startAngle = function(
|
6662
|
+
pie.startAngle = function(_) {
|
6518
6663
|
if (!arguments.length) return startAngle;
|
6519
|
-
startAngle =
|
6664
|
+
startAngle = _;
|
6520
6665
|
return pie;
|
6521
6666
|
};
|
6522
|
-
pie.endAngle = function(
|
6667
|
+
pie.endAngle = function(_) {
|
6523
6668
|
if (!arguments.length) return endAngle;
|
6524
|
-
endAngle =
|
6669
|
+
endAngle = _;
|
6670
|
+
return pie;
|
6671
|
+
};
|
6672
|
+
pie.padAngle = function(_) {
|
6673
|
+
if (!arguments.length) return padAngle;
|
6674
|
+
padAngle = _;
|
6525
6675
|
return pie;
|
6526
6676
|
};
|
6527
6677
|
return pie;
|
@@ -6530,6 +6680,7 @@
|
|
6530
6680
|
d3.layout.stack = function() {
|
6531
6681
|
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
|
6532
6682
|
function stack(data, index) {
|
6683
|
+
if (!(n = data.length)) return data;
|
6533
6684
|
var series = data.map(function(d, i) {
|
6534
6685
|
return values.call(stack, d, i);
|
6535
6686
|
});
|
@@ -6542,7 +6693,7 @@
|
|
6542
6693
|
series = d3.permute(series, orders);
|
6543
6694
|
points = d3.permute(points, orders);
|
6544
6695
|
var offsets = offset.call(stack, points, index);
|
6545
|
-
var
|
6696
|
+
var m = series[0].length, n, i, j, o;
|
6546
6697
|
for (j = 0; j < m; ++j) {
|
6547
6698
|
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
|
6548
6699
|
for (i = 1; i < n; ++i) {
|
@@ -6737,185 +6888,6 @@
|
|
6737
6888
|
function d3_layout_histogramRange(values) {
|
6738
6889
|
return [ d3.min(values), d3.max(values) ];
|
6739
6890
|
}
|
6740
|
-
d3.layout.tree = function() {
|
6741
|
-
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
|
6742
|
-
function tree(d, i) {
|
6743
|
-
var nodes = hierarchy.call(this, d, i), root = nodes[0];
|
6744
|
-
function firstWalk(node, previousSibling) {
|
6745
|
-
var children = node.children, layout = node._tree;
|
6746
|
-
if (children && (n = children.length)) {
|
6747
|
-
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
|
6748
|
-
while (++i < n) {
|
6749
|
-
child = children[i];
|
6750
|
-
firstWalk(child, previousChild);
|
6751
|
-
ancestor = apportion(child, previousChild, ancestor);
|
6752
|
-
previousChild = child;
|
6753
|
-
}
|
6754
|
-
d3_layout_treeShift(node);
|
6755
|
-
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
|
6756
|
-
if (previousSibling) {
|
6757
|
-
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
|
6758
|
-
layout.mod = layout.prelim - midpoint;
|
6759
|
-
} else {
|
6760
|
-
layout.prelim = midpoint;
|
6761
|
-
}
|
6762
|
-
} else {
|
6763
|
-
if (previousSibling) {
|
6764
|
-
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
|
6765
|
-
}
|
6766
|
-
}
|
6767
|
-
}
|
6768
|
-
function secondWalk(node, x) {
|
6769
|
-
node.x = node._tree.prelim + x;
|
6770
|
-
var children = node.children;
|
6771
|
-
if (children && (n = children.length)) {
|
6772
|
-
var i = -1, n;
|
6773
|
-
x += node._tree.mod;
|
6774
|
-
while (++i < n) {
|
6775
|
-
secondWalk(children[i], x);
|
6776
|
-
}
|
6777
|
-
}
|
6778
|
-
}
|
6779
|
-
function apportion(node, previousSibling, ancestor) {
|
6780
|
-
if (previousSibling) {
|
6781
|
-
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
|
6782
|
-
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
|
6783
|
-
vom = d3_layout_treeLeft(vom);
|
6784
|
-
vop = d3_layout_treeRight(vop);
|
6785
|
-
vop._tree.ancestor = node;
|
6786
|
-
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
|
6787
|
-
if (shift > 0) {
|
6788
|
-
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
|
6789
|
-
sip += shift;
|
6790
|
-
sop += shift;
|
6791
|
-
}
|
6792
|
-
sim += vim._tree.mod;
|
6793
|
-
sip += vip._tree.mod;
|
6794
|
-
som += vom._tree.mod;
|
6795
|
-
sop += vop._tree.mod;
|
6796
|
-
}
|
6797
|
-
if (vim && !d3_layout_treeRight(vop)) {
|
6798
|
-
vop._tree.thread = vim;
|
6799
|
-
vop._tree.mod += sim - sop;
|
6800
|
-
}
|
6801
|
-
if (vip && !d3_layout_treeLeft(vom)) {
|
6802
|
-
vom._tree.thread = vip;
|
6803
|
-
vom._tree.mod += sip - som;
|
6804
|
-
ancestor = node;
|
6805
|
-
}
|
6806
|
-
}
|
6807
|
-
return ancestor;
|
6808
|
-
}
|
6809
|
-
d3_layout_treeVisitAfter(root, function(node, previousSibling) {
|
6810
|
-
node._tree = {
|
6811
|
-
ancestor: node,
|
6812
|
-
prelim: 0,
|
6813
|
-
mod: 0,
|
6814
|
-
change: 0,
|
6815
|
-
shift: 0,
|
6816
|
-
number: previousSibling ? previousSibling._tree.number + 1 : 0
|
6817
|
-
};
|
6818
|
-
});
|
6819
|
-
firstWalk(root);
|
6820
|
-
secondWalk(root, -root._tree.prelim);
|
6821
|
-
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
|
6822
|
-
d3_layout_treeVisitAfter(root, nodeSize ? function(node) {
|
6823
|
-
node.x *= size[0];
|
6824
|
-
node.y = node.depth * size[1];
|
6825
|
-
delete node._tree;
|
6826
|
-
} : function(node) {
|
6827
|
-
node.x = (node.x - x0) / (x1 - x0) * size[0];
|
6828
|
-
node.y = node.depth / y1 * size[1];
|
6829
|
-
delete node._tree;
|
6830
|
-
});
|
6831
|
-
return nodes;
|
6832
|
-
}
|
6833
|
-
tree.separation = function(x) {
|
6834
|
-
if (!arguments.length) return separation;
|
6835
|
-
separation = x;
|
6836
|
-
return tree;
|
6837
|
-
};
|
6838
|
-
tree.size = function(x) {
|
6839
|
-
if (!arguments.length) return nodeSize ? null : size;
|
6840
|
-
nodeSize = (size = x) == null;
|
6841
|
-
return tree;
|
6842
|
-
};
|
6843
|
-
tree.nodeSize = function(x) {
|
6844
|
-
if (!arguments.length) return nodeSize ? size : null;
|
6845
|
-
nodeSize = (size = x) != null;
|
6846
|
-
return tree;
|
6847
|
-
};
|
6848
|
-
return d3_layout_hierarchyRebind(tree, hierarchy);
|
6849
|
-
};
|
6850
|
-
function d3_layout_treeSeparation(a, b) {
|
6851
|
-
return a.parent == b.parent ? 1 : 2;
|
6852
|
-
}
|
6853
|
-
function d3_layout_treeLeft(node) {
|
6854
|
-
var children = node.children;
|
6855
|
-
return children && children.length ? children[0] : node._tree.thread;
|
6856
|
-
}
|
6857
|
-
function d3_layout_treeRight(node) {
|
6858
|
-
var children = node.children, n;
|
6859
|
-
return children && (n = children.length) ? children[n - 1] : node._tree.thread;
|
6860
|
-
}
|
6861
|
-
function d3_layout_treeSearch(node, compare) {
|
6862
|
-
var children = node.children;
|
6863
|
-
if (children && (n = children.length)) {
|
6864
|
-
var child, n, i = -1;
|
6865
|
-
while (++i < n) {
|
6866
|
-
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
|
6867
|
-
node = child;
|
6868
|
-
}
|
6869
|
-
}
|
6870
|
-
}
|
6871
|
-
return node;
|
6872
|
-
}
|
6873
|
-
function d3_layout_treeRightmost(a, b) {
|
6874
|
-
return a.x - b.x;
|
6875
|
-
}
|
6876
|
-
function d3_layout_treeLeftmost(a, b) {
|
6877
|
-
return b.x - a.x;
|
6878
|
-
}
|
6879
|
-
function d3_layout_treeDeepest(a, b) {
|
6880
|
-
return a.depth - b.depth;
|
6881
|
-
}
|
6882
|
-
function d3_layout_treeVisitAfter(node, callback) {
|
6883
|
-
function visit(node, previousSibling) {
|
6884
|
-
var children = node.children;
|
6885
|
-
if (children && (n = children.length)) {
|
6886
|
-
var child, previousChild = null, i = -1, n;
|
6887
|
-
while (++i < n) {
|
6888
|
-
child = children[i];
|
6889
|
-
visit(child, previousChild);
|
6890
|
-
previousChild = child;
|
6891
|
-
}
|
6892
|
-
}
|
6893
|
-
callback(node, previousSibling);
|
6894
|
-
}
|
6895
|
-
visit(node, null);
|
6896
|
-
}
|
6897
|
-
function d3_layout_treeShift(node) {
|
6898
|
-
var shift = 0, change = 0, children = node.children, i = children.length, child;
|
6899
|
-
while (--i >= 0) {
|
6900
|
-
child = children[i]._tree;
|
6901
|
-
child.prelim += shift;
|
6902
|
-
child.mod += shift;
|
6903
|
-
shift += child.shift + (change += child.change);
|
6904
|
-
}
|
6905
|
-
}
|
6906
|
-
function d3_layout_treeMove(ancestor, node, shift) {
|
6907
|
-
ancestor = ancestor._tree;
|
6908
|
-
node = node._tree;
|
6909
|
-
var change = shift / (node.number - ancestor.number);
|
6910
|
-
ancestor.change += change;
|
6911
|
-
node.change -= change;
|
6912
|
-
node.shift += shift;
|
6913
|
-
node.prelim += shift;
|
6914
|
-
node.mod += shift;
|
6915
|
-
}
|
6916
|
-
function d3_layout_treeAncestor(vim, node, ancestor) {
|
6917
|
-
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
|
6918
|
-
}
|
6919
6891
|
d3.layout.pack = function() {
|
6920
6892
|
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
|
6921
6893
|
function pack(d, i) {
|
@@ -6923,17 +6895,17 @@
|
|
6923
6895
|
return radius;
|
6924
6896
|
};
|
6925
6897
|
root.x = root.y = 0;
|
6926
|
-
|
6898
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6927
6899
|
d.r = +r(d.value);
|
6928
6900
|
});
|
6929
|
-
|
6901
|
+
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
|
6930
6902
|
if (padding) {
|
6931
6903
|
var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
|
6932
|
-
|
6904
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6933
6905
|
d.r += dr;
|
6934
6906
|
});
|
6935
|
-
|
6936
|
-
|
6907
|
+
d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
|
6908
|
+
d3_layout_hierarchyVisitAfter(root, function(d) {
|
6937
6909
|
d.r -= dr;
|
6938
6910
|
});
|
6939
6911
|
}
|
@@ -7070,11 +7042,158 @@
|
|
7070
7042
|
c.y = a.y;
|
7071
7043
|
}
|
7072
7044
|
}
|
7045
|
+
d3.layout.tree = function() {
|
7046
|
+
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
|
7047
|
+
function tree(d, i) {
|
7048
|
+
var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
|
7049
|
+
d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
|
7050
|
+
d3_layout_hierarchyVisitBefore(root1, secondWalk);
|
7051
|
+
if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
|
7052
|
+
var left = root0, right = root0, bottom = root0;
|
7053
|
+
d3_layout_hierarchyVisitBefore(root0, function(node) {
|
7054
|
+
if (node.x < left.x) left = node;
|
7055
|
+
if (node.x > right.x) right = node;
|
7056
|
+
if (node.depth > bottom.depth) bottom = node;
|
7057
|
+
});
|
7058
|
+
var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
|
7059
|
+
d3_layout_hierarchyVisitBefore(root0, function(node) {
|
7060
|
+
node.x = (node.x + tx) * kx;
|
7061
|
+
node.y = node.depth * ky;
|
7062
|
+
});
|
7063
|
+
}
|
7064
|
+
return nodes;
|
7065
|
+
}
|
7066
|
+
function wrapTree(root0) {
|
7067
|
+
var root1 = {
|
7068
|
+
A: null,
|
7069
|
+
children: [ root0 ]
|
7070
|
+
}, queue = [ root1 ], node1;
|
7071
|
+
while ((node1 = queue.pop()) != null) {
|
7072
|
+
for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
|
7073
|
+
queue.push((children[i] = child = {
|
7074
|
+
_: children[i],
|
7075
|
+
parent: node1,
|
7076
|
+
children: (child = children[i].children) && child.slice() || [],
|
7077
|
+
A: null,
|
7078
|
+
a: null,
|
7079
|
+
z: 0,
|
7080
|
+
m: 0,
|
7081
|
+
c: 0,
|
7082
|
+
s: 0,
|
7083
|
+
t: null,
|
7084
|
+
i: i
|
7085
|
+
}).a = child);
|
7086
|
+
}
|
7087
|
+
}
|
7088
|
+
return root1.children[0];
|
7089
|
+
}
|
7090
|
+
function firstWalk(v) {
|
7091
|
+
var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
|
7092
|
+
if (children.length) {
|
7093
|
+
d3_layout_treeShift(v);
|
7094
|
+
var midpoint = (children[0].z + children[children.length - 1].z) / 2;
|
7095
|
+
if (w) {
|
7096
|
+
v.z = w.z + separation(v._, w._);
|
7097
|
+
v.m = v.z - midpoint;
|
7098
|
+
} else {
|
7099
|
+
v.z = midpoint;
|
7100
|
+
}
|
7101
|
+
} else if (w) {
|
7102
|
+
v.z = w.z + separation(v._, w._);
|
7103
|
+
}
|
7104
|
+
v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
|
7105
|
+
}
|
7106
|
+
function secondWalk(v) {
|
7107
|
+
v._.x = v.z + v.parent.m;
|
7108
|
+
v.m += v.parent.m;
|
7109
|
+
}
|
7110
|
+
function apportion(v, w, ancestor) {
|
7111
|
+
if (w) {
|
7112
|
+
var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
|
7113
|
+
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
|
7114
|
+
vom = d3_layout_treeLeft(vom);
|
7115
|
+
vop = d3_layout_treeRight(vop);
|
7116
|
+
vop.a = v;
|
7117
|
+
shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
|
7118
|
+
if (shift > 0) {
|
7119
|
+
d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
|
7120
|
+
sip += shift;
|
7121
|
+
sop += shift;
|
7122
|
+
}
|
7123
|
+
sim += vim.m;
|
7124
|
+
sip += vip.m;
|
7125
|
+
som += vom.m;
|
7126
|
+
sop += vop.m;
|
7127
|
+
}
|
7128
|
+
if (vim && !d3_layout_treeRight(vop)) {
|
7129
|
+
vop.t = vim;
|
7130
|
+
vop.m += sim - sop;
|
7131
|
+
}
|
7132
|
+
if (vip && !d3_layout_treeLeft(vom)) {
|
7133
|
+
vom.t = vip;
|
7134
|
+
vom.m += sip - som;
|
7135
|
+
ancestor = v;
|
7136
|
+
}
|
7137
|
+
}
|
7138
|
+
return ancestor;
|
7139
|
+
}
|
7140
|
+
function sizeNode(node) {
|
7141
|
+
node.x *= size[0];
|
7142
|
+
node.y = node.depth * size[1];
|
7143
|
+
}
|
7144
|
+
tree.separation = function(x) {
|
7145
|
+
if (!arguments.length) return separation;
|
7146
|
+
separation = x;
|
7147
|
+
return tree;
|
7148
|
+
};
|
7149
|
+
tree.size = function(x) {
|
7150
|
+
if (!arguments.length) return nodeSize ? null : size;
|
7151
|
+
nodeSize = (size = x) == null ? sizeNode : null;
|
7152
|
+
return tree;
|
7153
|
+
};
|
7154
|
+
tree.nodeSize = function(x) {
|
7155
|
+
if (!arguments.length) return nodeSize ? size : null;
|
7156
|
+
nodeSize = (size = x) == null ? null : sizeNode;
|
7157
|
+
return tree;
|
7158
|
+
};
|
7159
|
+
return d3_layout_hierarchyRebind(tree, hierarchy);
|
7160
|
+
};
|
7161
|
+
function d3_layout_treeSeparation(a, b) {
|
7162
|
+
return a.parent == b.parent ? 1 : 2;
|
7163
|
+
}
|
7164
|
+
function d3_layout_treeLeft(v) {
|
7165
|
+
var children = v.children;
|
7166
|
+
return children.length ? children[0] : v.t;
|
7167
|
+
}
|
7168
|
+
function d3_layout_treeRight(v) {
|
7169
|
+
var children = v.children, n;
|
7170
|
+
return (n = children.length) ? children[n - 1] : v.t;
|
7171
|
+
}
|
7172
|
+
function d3_layout_treeMove(wm, wp, shift) {
|
7173
|
+
var change = shift / (wp.i - wm.i);
|
7174
|
+
wp.c -= change;
|
7175
|
+
wp.s += shift;
|
7176
|
+
wm.c += change;
|
7177
|
+
wp.z += shift;
|
7178
|
+
wp.m += shift;
|
7179
|
+
}
|
7180
|
+
function d3_layout_treeShift(v) {
|
7181
|
+
var shift = 0, change = 0, children = v.children, i = children.length, w;
|
7182
|
+
while (--i >= 0) {
|
7183
|
+
w = children[i];
|
7184
|
+
w.z += shift;
|
7185
|
+
w.m += shift;
|
7186
|
+
shift += w.s + (change += w.c);
|
7187
|
+
}
|
7188
|
+
}
|
7189
|
+
function d3_layout_treeAncestor(vim, v, ancestor) {
|
7190
|
+
return vim.a.parent === v.parent ? vim.a : ancestor;
|
7191
|
+
}
|
7073
7192
|
d3.layout.cluster = function() {
|
7074
7193
|
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
|
7075
7194
|
function cluster(d, i) {
|
7076
7195
|
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
|
7077
|
-
|
7196
|
+
d3_layout_hierarchyVisitAfter(root, function(node) {
|
7078
7197
|
var children = node.children;
|
7079
7198
|
if (children && children.length) {
|
7080
7199
|
node.x = d3_layout_clusterX(children);
|
@@ -7086,7 +7205,7 @@
|
|
7086
7205
|
}
|
7087
7206
|
});
|
7088
7207
|
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
|
7089
|
-
|
7208
|
+
d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
|
7090
7209
|
node.x = (node.x - root.x) * size[0];
|
7091
7210
|
node.y = (root.y - node.y) * size[1];
|
7092
7211
|
} : function(node) {
|
@@ -7226,10 +7345,8 @@
|
|
7226
7345
|
}
|
7227
7346
|
function treemap(d) {
|
7228
7347
|
var nodes = stickies || hierarchy(d), root = nodes[0];
|
7229
|
-
root.x = 0;
|
7230
|
-
root.
|
7231
|
-
root.dx = size[0];
|
7232
|
-
root.dy = size[1];
|
7348
|
+
root.x = root.y = 0;
|
7349
|
+
if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;
|
7233
7350
|
if (stickies) hierarchy.revalue(root);
|
7234
7351
|
scale([ root ], root.dx * root.dy / root.value);
|
7235
7352
|
(stickies ? stickify : squarify)(root);
|
@@ -7449,7 +7566,9 @@
|
|
7449
7566
|
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
|
7450
7567
|
}
|
7451
7568
|
function d3_scale_linearNice(domain, m) {
|
7452
|
-
|
7569
|
+
d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
|
7570
|
+
d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
|
7571
|
+
return domain;
|
7453
7572
|
}
|
7454
7573
|
function d3_scale_linearTickRange(domain, m) {
|
7455
7574
|
if (m == null) m = 10;
|
@@ -7465,9 +7584,24 @@
|
|
7465
7584
|
}
|
7466
7585
|
function d3_scale_linearTickFormat(domain, m, format) {
|
7467
7586
|
var range = d3_scale_linearTickRange(domain, m);
|
7468
|
-
|
7469
|
-
|
7470
|
-
|
7587
|
+
if (format) {
|
7588
|
+
var match = d3_format_re.exec(format);
|
7589
|
+
match.shift();
|
7590
|
+
if (match[8] === "s") {
|
7591
|
+
var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
|
7592
|
+
if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
|
7593
|
+
match[8] = "f";
|
7594
|
+
format = d3.format(match.join(""));
|
7595
|
+
return function(d) {
|
7596
|
+
return format(prefix.scale(d)) + prefix.symbol;
|
7597
|
+
};
|
7598
|
+
}
|
7599
|
+
if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
|
7600
|
+
format = match.join("");
|
7601
|
+
} else {
|
7602
|
+
format = ",." + d3_scale_linearPrecision(range[2]) + "f";
|
7603
|
+
}
|
7604
|
+
return d3.format(format);
|
7471
7605
|
}
|
7472
7606
|
var d3_scale_linearFormatSignificant = {
|
7473
7607
|
s: 1,
|
@@ -7481,7 +7615,7 @@
|
|
7481
7615
|
}
|
7482
7616
|
function d3_scale_linearFormatPrecision(type, range) {
|
7483
7617
|
var p = d3_scale_linearPrecision(range[2]);
|
7484
|
-
return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(
|
7618
|
+
return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
|
7485
7619
|
}
|
7486
7620
|
d3.scale.log = function() {
|
7487
7621
|
return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
|
@@ -7536,10 +7670,11 @@
|
|
7536
7670
|
scale.tickFormat = function(n, format) {
|
7537
7671
|
if (!arguments.length) return d3_scale_logFormat;
|
7538
7672
|
if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
|
7539
|
-
var k = Math.max(
|
7540
|
-
Math.floor), e;
|
7673
|
+
var k = Math.max(1, base * n / scale.ticks().length);
|
7541
7674
|
return function(d) {
|
7542
|
-
|
7675
|
+
var i = d / pow(Math.round(log(d)));
|
7676
|
+
if (i * base < base - .5) i *= base;
|
7677
|
+
return i <= k ? format(d) : "";
|
7543
7678
|
};
|
7544
7679
|
};
|
7545
7680
|
scale.copy = function() {
|
@@ -7609,7 +7744,7 @@
|
|
7609
7744
|
function d3_scale_ordinal(domain, ranger) {
|
7610
7745
|
var index, range, rangeBand;
|
7611
7746
|
function scale(x) {
|
7612
|
-
return range[((index.get(x) || ranger.t === "range"
|
7747
|
+
return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
|
7613
7748
|
}
|
7614
7749
|
function steps(start, step) {
|
7615
7750
|
return d3.range(domain.length).map(function(i) {
|
@@ -7636,8 +7771,9 @@
|
|
7636
7771
|
};
|
7637
7772
|
scale.rangePoints = function(x, padding) {
|
7638
7773
|
if (arguments.length < 2) padding = 0;
|
7639
|
-
var start = x[0], stop = x[1], step =
|
7640
|
-
|
7774
|
+
var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2,
|
7775
|
+
0) : (stop - start) / (domain.length - 1 + padding);
|
7776
|
+
range = steps(start + step * padding / 2, step);
|
7641
7777
|
rangeBand = 0;
|
7642
7778
|
ranger = {
|
7643
7779
|
t: "rangePoints",
|
@@ -7645,6 +7781,18 @@
|
|
7645
7781
|
};
|
7646
7782
|
return scale;
|
7647
7783
|
};
|
7784
|
+
scale.rangeRoundPoints = function(x, padding) {
|
7785
|
+
if (arguments.length < 2) padding = 0;
|
7786
|
+
var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2),
|
7787
|
+
0) : (stop - start) / (domain.length - 1 + padding) | 0;
|
7788
|
+
range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);
|
7789
|
+
rangeBand = 0;
|
7790
|
+
ranger = {
|
7791
|
+
t: "rangeRoundPoints",
|
7792
|
+
a: arguments
|
7793
|
+
};
|
7794
|
+
return scale;
|
7795
|
+
};
|
7648
7796
|
scale.rangeBands = function(x, padding, outerPadding) {
|
7649
7797
|
if (arguments.length < 2) padding = 0;
|
7650
7798
|
if (arguments.length < 3) outerPadding = padding;
|
@@ -7661,8 +7809,8 @@
|
|
7661
7809
|
scale.rangeRoundBands = function(x, padding, outerPadding) {
|
7662
7810
|
if (arguments.length < 2) padding = 0;
|
7663
7811
|
if (arguments.length < 3) outerPadding = padding;
|
7664
|
-
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding))
|
7665
|
-
range = steps(start + Math.round(
|
7812
|
+
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));
|
7813
|
+
range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
|
7666
7814
|
if (reverse) range.reverse();
|
7667
7815
|
rangeBand = Math.round(step * (1 - padding));
|
7668
7816
|
ranger = {
|
@@ -7714,9 +7862,7 @@
|
|
7714
7862
|
}
|
7715
7863
|
scale.domain = function(x) {
|
7716
7864
|
if (!arguments.length) return domain;
|
7717
|
-
domain = x.filter(
|
7718
|
-
return !isNaN(d);
|
7719
|
-
}).sort(d3.ascending);
|
7865
|
+
domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);
|
7720
7866
|
return rescale();
|
7721
7867
|
};
|
7722
7868
|
scale.range = function(x) {
|
@@ -7821,12 +7967,91 @@
|
|
7821
7967
|
return identity;
|
7822
7968
|
}
|
7823
7969
|
d3.svg = {};
|
7970
|
+
function d3_zero() {
|
7971
|
+
return 0;
|
7972
|
+
}
|
7824
7973
|
d3.svg.arc = function() {
|
7825
|
-
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
|
7974
|
+
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;
|
7826
7975
|
function arc() {
|
7827
|
-
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments)
|
7828
|
-
|
7829
|
-
|
7976
|
+
var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;
|
7977
|
+
if (r1 < r0) rc = r1, r1 = r0, r0 = rc;
|
7978
|
+
if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z";
|
7979
|
+
var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];
|
7980
|
+
if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {
|
7981
|
+
rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);
|
7982
|
+
if (!cw) p1 *= -1;
|
7983
|
+
if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));
|
7984
|
+
if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));
|
7985
|
+
}
|
7986
|
+
if (r1) {
|
7987
|
+
x0 = r1 * Math.cos(a0 + p1);
|
7988
|
+
y0 = r1 * Math.sin(a0 + p1);
|
7989
|
+
x1 = r1 * Math.cos(a1 - p1);
|
7990
|
+
y1 = r1 * Math.sin(a1 - p1);
|
7991
|
+
var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
|
7992
|
+
if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
|
7993
|
+
var h1 = (a0 + a1) / 2;
|
7994
|
+
x0 = r1 * Math.cos(h1);
|
7995
|
+
y0 = r1 * Math.sin(h1);
|
7996
|
+
x1 = y1 = null;
|
7997
|
+
}
|
7998
|
+
} else {
|
7999
|
+
x0 = y0 = 0;
|
8000
|
+
}
|
8001
|
+
if (r0) {
|
8002
|
+
x2 = r0 * Math.cos(a1 - p0);
|
8003
|
+
y2 = r0 * Math.sin(a1 - p0);
|
8004
|
+
x3 = r0 * Math.cos(a0 + p0);
|
8005
|
+
y3 = r0 * Math.sin(a0 + p0);
|
8006
|
+
var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
|
8007
|
+
if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
|
8008
|
+
var h0 = (a0 + a1) / 2;
|
8009
|
+
x2 = r0 * Math.cos(h0);
|
8010
|
+
y2 = r0 * Math.sin(h0);
|
8011
|
+
x3 = y3 = null;
|
8012
|
+
}
|
8013
|
+
} else {
|
8014
|
+
x2 = y2 = 0;
|
8015
|
+
}
|
8016
|
+
if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {
|
8017
|
+
cr = r0 < r1 ^ cw ? 0 : 1;
|
8018
|
+
var rc1 = rc, rc0 = rc;
|
8019
|
+
if (da < π) {
|
8020
|
+
var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
|
8021
|
+
rc0 = Math.min(rc, (r0 - lc) / (kc - 1));
|
8022
|
+
rc1 = Math.min(rc, (r1 - lc) / (kc + 1));
|
8023
|
+
}
|
8024
|
+
if (x1 != null) {
|
8025
|
+
var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);
|
8026
|
+
if (rc === rc1) {
|
8027
|
+
path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]);
|
8028
|
+
} else {
|
8029
|
+
path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]);
|
8030
|
+
}
|
8031
|
+
} else {
|
8032
|
+
path.push("M", x0, ",", y0);
|
8033
|
+
}
|
8034
|
+
if (x3 != null) {
|
8035
|
+
var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);
|
8036
|
+
if (rc === rc0) {
|
8037
|
+
path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
|
8038
|
+
} else {
|
8039
|
+
path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
|
8040
|
+
}
|
8041
|
+
} else {
|
8042
|
+
path.push("L", x2, ",", y2);
|
8043
|
+
}
|
8044
|
+
} else {
|
8045
|
+
path.push("M", x0, ",", y0);
|
8046
|
+
if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
|
8047
|
+
path.push("L", x2, ",", y2);
|
8048
|
+
if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
|
8049
|
+
}
|
8050
|
+
path.push("Z");
|
8051
|
+
return path.join("");
|
8052
|
+
}
|
8053
|
+
function circleSegment(r1, cw) {
|
8054
|
+
return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1;
|
7830
8055
|
}
|
7831
8056
|
arc.innerRadius = function(v) {
|
7832
8057
|
if (!arguments.length) return innerRadius;
|
@@ -7838,6 +8063,16 @@
|
|
7838
8063
|
outerRadius = d3_functor(v);
|
7839
8064
|
return arc;
|
7840
8065
|
};
|
8066
|
+
arc.cornerRadius = function(v) {
|
8067
|
+
if (!arguments.length) return cornerRadius;
|
8068
|
+
cornerRadius = d3_functor(v);
|
8069
|
+
return arc;
|
8070
|
+
};
|
8071
|
+
arc.padRadius = function(v) {
|
8072
|
+
if (!arguments.length) return padRadius;
|
8073
|
+
padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);
|
8074
|
+
return arc;
|
8075
|
+
};
|
7841
8076
|
arc.startAngle = function(v) {
|
7842
8077
|
if (!arguments.length) return startAngle;
|
7843
8078
|
startAngle = d3_functor(v);
|
@@ -7848,13 +8083,18 @@
|
|
7848
8083
|
endAngle = d3_functor(v);
|
7849
8084
|
return arc;
|
7850
8085
|
};
|
8086
|
+
arc.padAngle = function(v) {
|
8087
|
+
if (!arguments.length) return padAngle;
|
8088
|
+
padAngle = d3_functor(v);
|
8089
|
+
return arc;
|
8090
|
+
};
|
7851
8091
|
arc.centroid = function() {
|
7852
|
-
var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2
|
8092
|
+
var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;
|
7853
8093
|
return [ Math.cos(a) * r, Math.sin(a) * r ];
|
7854
8094
|
};
|
7855
8095
|
return arc;
|
7856
8096
|
};
|
7857
|
-
var
|
8097
|
+
var d3_svg_arcAuto = "auto";
|
7858
8098
|
function d3_svg_arcInnerRadius(d) {
|
7859
8099
|
return d.innerRadius;
|
7860
8100
|
}
|
@@ -7867,6 +8107,17 @@
|
|
7867
8107
|
function d3_svg_arcEndAngle(d) {
|
7868
8108
|
return d.endAngle;
|
7869
8109
|
}
|
8110
|
+
function d3_svg_arcPadAngle(d) {
|
8111
|
+
return d && d.padAngle;
|
8112
|
+
}
|
8113
|
+
function d3_svg_arcSweep(x0, y0, x1, y1) {
|
8114
|
+
return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;
|
8115
|
+
}
|
8116
|
+
function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
|
8117
|
+
var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;
|
8118
|
+
if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
|
8119
|
+
return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];
|
8120
|
+
}
|
7870
8121
|
function d3_svg_line(projection) {
|
7871
8122
|
var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
|
7872
8123
|
function line(data) {
|
@@ -7935,10 +8186,10 @@
|
|
7935
8186
|
value.closed = /-closed$/.test(key);
|
7936
8187
|
});
|
7937
8188
|
function d3_svg_lineLinear(points) {
|
7938
|
-
return points.join("L");
|
8189
|
+
return points.length > 1 ? points.join("L") : points + "Z";
|
7939
8190
|
}
|
7940
8191
|
function d3_svg_lineLinearClosed(points) {
|
7941
|
-
return
|
8192
|
+
return points.join("L") + "Z";
|
7942
8193
|
}
|
7943
8194
|
function d3_svg_lineStep(points) {
|
7944
8195
|
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
|
@@ -7957,10 +8208,10 @@
|
|
7957
8208
|
return path.join("");
|
7958
8209
|
}
|
7959
8210
|
function d3_svg_lineCardinalOpen(points, tension) {
|
7960
|
-
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1,
|
8211
|
+
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));
|
7961
8212
|
}
|
7962
8213
|
function d3_svg_lineCardinalClosed(points, tension) {
|
7963
|
-
return points.length < 3 ?
|
8214
|
+
return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
|
7964
8215
|
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
|
7965
8216
|
}
|
7966
8217
|
function d3_svg_lineCardinal(points, tension) {
|
@@ -8127,7 +8378,7 @@
|
|
8127
8378
|
while (++i < n) {
|
8128
8379
|
point = points[i];
|
8129
8380
|
r = point[0];
|
8130
|
-
a = point[1]
|
8381
|
+
a = point[1] - halfπ;
|
8131
8382
|
point[0] = r * Math.cos(a);
|
8132
8383
|
point[1] = r * Math.sin(a);
|
8133
8384
|
}
|
@@ -8228,7 +8479,7 @@
|
|
8228
8479
|
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
|
8229
8480
|
}
|
8230
8481
|
function subgroup(self, f, d, i) {
|
8231
|
-
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i)
|
8482
|
+
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;
|
8232
8483
|
return {
|
8233
8484
|
r: r,
|
8234
8485
|
a0: a0,
|
@@ -8318,7 +8569,7 @@
|
|
8318
8569
|
};
|
8319
8570
|
function d3_svg_diagonalRadialProjection(projection) {
|
8320
8571
|
return function() {
|
8321
|
-
var d = projection.apply(this, arguments), r = d[0], a = d[1]
|
8572
|
+
var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;
|
8322
8573
|
return [ r * Math.cos(a), r * Math.sin(a) ];
|
8323
8574
|
};
|
8324
8575
|
}
|
@@ -8374,8 +8625,41 @@
|
|
8374
8625
|
});
|
8375
8626
|
d3.svg.symbolTypes = d3_svg_symbols.keys();
|
8376
8627
|
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
|
8377
|
-
function
|
8628
|
+
d3_selectionPrototype.transition = function(name) {
|
8629
|
+
var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {
|
8630
|
+
time: Date.now(),
|
8631
|
+
ease: d3_ease_cubicInOut,
|
8632
|
+
delay: 0,
|
8633
|
+
duration: 250
|
8634
|
+
};
|
8635
|
+
for (var j = -1, m = this.length; ++j < m; ) {
|
8636
|
+
subgroups.push(subgroup = []);
|
8637
|
+
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
|
8638
|
+
if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
|
8639
|
+
subgroup.push(node);
|
8640
|
+
}
|
8641
|
+
}
|
8642
|
+
return d3_transition(subgroups, ns, id);
|
8643
|
+
};
|
8644
|
+
d3_selectionPrototype.interrupt = function(name) {
|
8645
|
+
return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));
|
8646
|
+
};
|
8647
|
+
var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
|
8648
|
+
function d3_selection_interruptNS(ns) {
|
8649
|
+
return function() {
|
8650
|
+
var lock, activeId, active;
|
8651
|
+
if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {
|
8652
|
+
active.timer.c = null;
|
8653
|
+
active.timer.t = NaN;
|
8654
|
+
if (--lock.count) delete lock[activeId]; else delete this[ns];
|
8655
|
+
lock.active += .5;
|
8656
|
+
active.event && active.event.interrupt.call(this, this.__data__, active.index);
|
8657
|
+
}
|
8658
|
+
};
|
8659
|
+
}
|
8660
|
+
function d3_transition(groups, ns, id) {
|
8378
8661
|
d3_subclass(groups, d3_transitionPrototype);
|
8662
|
+
groups.namespace = ns;
|
8379
8663
|
groups.id = id;
|
8380
8664
|
return groups;
|
8381
8665
|
}
|
@@ -8384,44 +8668,44 @@
|
|
8384
8668
|
d3_transitionPrototype.empty = d3_selectionPrototype.empty;
|
8385
8669
|
d3_transitionPrototype.node = d3_selectionPrototype.node;
|
8386
8670
|
d3_transitionPrototype.size = d3_selectionPrototype.size;
|
8387
|
-
d3.transition = function(selection) {
|
8388
|
-
return
|
8671
|
+
d3.transition = function(selection, name) {
|
8672
|
+
return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);
|
8389
8673
|
};
|
8390
8674
|
d3.transition.prototype = d3_transitionPrototype;
|
8391
8675
|
d3_transitionPrototype.select = function(selector) {
|
8392
|
-
var id = this.id, subgroups = [], subgroup, subnode, node;
|
8676
|
+
var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;
|
8393
8677
|
selector = d3_selection_selector(selector);
|
8394
8678
|
for (var j = -1, m = this.length; ++j < m; ) {
|
8395
8679
|
subgroups.push(subgroup = []);
|
8396
8680
|
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
|
8397
8681
|
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
|
8398
8682
|
if ("__data__" in node) subnode.__data__ = node.__data__;
|
8399
|
-
d3_transitionNode(subnode, i, id, node
|
8683
|
+
d3_transitionNode(subnode, i, ns, id, node[ns][id]);
|
8400
8684
|
subgroup.push(subnode);
|
8401
8685
|
} else {
|
8402
8686
|
subgroup.push(null);
|
8403
8687
|
}
|
8404
8688
|
}
|
8405
8689
|
}
|
8406
|
-
return d3_transition(subgroups, id);
|
8690
|
+
return d3_transition(subgroups, ns, id);
|
8407
8691
|
};
|
8408
8692
|
d3_transitionPrototype.selectAll = function(selector) {
|
8409
|
-
var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
|
8693
|
+
var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;
|
8410
8694
|
selector = d3_selection_selectorAll(selector);
|
8411
8695
|
for (var j = -1, m = this.length; ++j < m; ) {
|
8412
8696
|
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
|
8413
8697
|
if (node = group[i]) {
|
8414
|
-
transition = node
|
8698
|
+
transition = node[ns][id];
|
8415
8699
|
subnodes = selector.call(node, node.__data__, i, j);
|
8416
8700
|
subgroups.push(subgroup = []);
|
8417
8701
|
for (var k = -1, o = subnodes.length; ++k < o; ) {
|
8418
|
-
if (subnode = subnodes[k]) d3_transitionNode(subnode, k, id, transition);
|
8702
|
+
if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
|
8419
8703
|
subgroup.push(subnode);
|
8420
8704
|
}
|
8421
8705
|
}
|
8422
8706
|
}
|
8423
8707
|
}
|
8424
|
-
return d3_transition(subgroups, id);
|
8708
|
+
return d3_transition(subgroups, ns, id);
|
8425
8709
|
};
|
8426
8710
|
d3_transitionPrototype.filter = function(filter) {
|
8427
8711
|
var subgroups = [], subgroup, group, node;
|
@@ -8434,23 +8718,23 @@
|
|
8434
8718
|
}
|
8435
8719
|
}
|
8436
8720
|
}
|
8437
|
-
return d3_transition(subgroups, this.id);
|
8721
|
+
return d3_transition(subgroups, this.namespace, this.id);
|
8438
8722
|
};
|
8439
8723
|
d3_transitionPrototype.tween = function(name, tween) {
|
8440
|
-
var id = this.id;
|
8441
|
-
if (arguments.length < 2) return this.node()
|
8724
|
+
var id = this.id, ns = this.namespace;
|
8725
|
+
if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
|
8442
8726
|
return d3_selection_each(this, tween == null ? function(node) {
|
8443
|
-
node
|
8727
|
+
node[ns][id].tween.remove(name);
|
8444
8728
|
} : function(node) {
|
8445
|
-
node
|
8729
|
+
node[ns][id].tween.set(name, tween);
|
8446
8730
|
});
|
8447
8731
|
};
|
8448
8732
|
function d3_transition_tween(groups, name, value, tween) {
|
8449
|
-
var id = groups.id;
|
8733
|
+
var id = groups.id, ns = groups.namespace;
|
8450
8734
|
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
|
8451
|
-
node
|
8735
|
+
node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
|
8452
8736
|
} : (value = tween(value), function(node) {
|
8453
|
-
node
|
8737
|
+
node[ns][id].tween.set(name, value);
|
8454
8738
|
}));
|
8455
8739
|
}
|
8456
8740
|
d3_transitionPrototype.attr = function(nameNS, value) {
|
@@ -8514,7 +8798,7 @@
|
|
8514
8798
|
}
|
8515
8799
|
function styleString(b) {
|
8516
8800
|
return b == null ? styleNull : (b += "", function() {
|
8517
|
-
var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
|
8801
|
+
var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
|
8518
8802
|
return a !== b && (i = d3_interpolate(a, b), function(t) {
|
8519
8803
|
this.style.setProperty(name, i(t), priority);
|
8520
8804
|
});
|
@@ -8525,7 +8809,7 @@
|
|
8525
8809
|
d3_transitionPrototype.styleTween = function(name, tween, priority) {
|
8526
8810
|
if (arguments.length < 3) priority = "";
|
8527
8811
|
function styleTween(d, i) {
|
8528
|
-
var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
|
8812
|
+
var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
|
8529
8813
|
return f && function(t) {
|
8530
8814
|
this.style.setProperty(name, f(t), priority);
|
8531
8815
|
};
|
@@ -8542,119 +8826,155 @@
|
|
8542
8826
|
};
|
8543
8827
|
}
|
8544
8828
|
d3_transitionPrototype.remove = function() {
|
8829
|
+
var ns = this.namespace;
|
8545
8830
|
return this.each("end.transition", function() {
|
8546
8831
|
var p;
|
8547
|
-
if (this.
|
8832
|
+
if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
|
8548
8833
|
});
|
8549
8834
|
};
|
8550
8835
|
d3_transitionPrototype.ease = function(value) {
|
8551
|
-
var id = this.id;
|
8552
|
-
if (arguments.length < 1) return this.node()
|
8836
|
+
var id = this.id, ns = this.namespace;
|
8837
|
+
if (arguments.length < 1) return this.node()[ns][id].ease;
|
8553
8838
|
if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
|
8554
8839
|
return d3_selection_each(this, function(node) {
|
8555
|
-
node
|
8840
|
+
node[ns][id].ease = value;
|
8556
8841
|
});
|
8557
8842
|
};
|
8558
8843
|
d3_transitionPrototype.delay = function(value) {
|
8559
|
-
var id = this.id;
|
8844
|
+
var id = this.id, ns = this.namespace;
|
8845
|
+
if (arguments.length < 1) return this.node()[ns][id].delay;
|
8560
8846
|
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
|
8561
|
-
node
|
8847
|
+
node[ns][id].delay = +value.call(node, node.__data__, i, j);
|
8562
8848
|
} : (value = +value, function(node) {
|
8563
|
-
node
|
8849
|
+
node[ns][id].delay = value;
|
8564
8850
|
}));
|
8565
8851
|
};
|
8566
8852
|
d3_transitionPrototype.duration = function(value) {
|
8567
|
-
var id = this.id;
|
8853
|
+
var id = this.id, ns = this.namespace;
|
8854
|
+
if (arguments.length < 1) return this.node()[ns][id].duration;
|
8568
8855
|
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
|
8569
|
-
node
|
8856
|
+
node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));
|
8570
8857
|
} : (value = Math.max(1, value), function(node) {
|
8571
|
-
node
|
8858
|
+
node[ns][id].duration = value;
|
8572
8859
|
}));
|
8573
8860
|
};
|
8574
8861
|
d3_transitionPrototype.each = function(type, listener) {
|
8575
|
-
var id = this.id;
|
8862
|
+
var id = this.id, ns = this.namespace;
|
8576
8863
|
if (arguments.length < 2) {
|
8577
8864
|
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
|
8578
|
-
|
8579
|
-
|
8580
|
-
|
8581
|
-
|
8582
|
-
|
8583
|
-
|
8584
|
-
|
8865
|
+
try {
|
8866
|
+
d3_transitionInheritId = id;
|
8867
|
+
d3_selection_each(this, function(node, i, j) {
|
8868
|
+
d3_transitionInherit = node[ns][id];
|
8869
|
+
type.call(node, node.__data__, i, j);
|
8870
|
+
});
|
8871
|
+
} finally {
|
8872
|
+
d3_transitionInherit = inherit;
|
8873
|
+
d3_transitionInheritId = inheritId;
|
8874
|
+
}
|
8585
8875
|
} else {
|
8586
8876
|
d3_selection_each(this, function(node) {
|
8587
|
-
var transition = node
|
8588
|
-
(transition.event || (transition.event = d3.dispatch("start", "end"))).on(type, listener);
|
8877
|
+
var transition = node[ns][id];
|
8878
|
+
(transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
|
8589
8879
|
});
|
8590
8880
|
}
|
8591
8881
|
return this;
|
8592
8882
|
};
|
8593
8883
|
d3_transitionPrototype.transition = function() {
|
8594
|
-
var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
|
8884
|
+
var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
|
8595
8885
|
for (var j = 0, m = this.length; j < m; j++) {
|
8596
8886
|
subgroups.push(subgroup = []);
|
8597
8887
|
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
|
8598
8888
|
if (node = group[i]) {
|
8599
|
-
transition =
|
8600
|
-
|
8601
|
-
|
8889
|
+
transition = node[ns][id0];
|
8890
|
+
d3_transitionNode(node, i, ns, id1, {
|
8891
|
+
time: transition.time,
|
8892
|
+
ease: transition.ease,
|
8893
|
+
delay: transition.delay + transition.duration,
|
8894
|
+
duration: transition.duration
|
8895
|
+
});
|
8602
8896
|
}
|
8603
8897
|
subgroup.push(node);
|
8604
8898
|
}
|
8605
8899
|
}
|
8606
|
-
return d3_transition(subgroups, id1);
|
8900
|
+
return d3_transition(subgroups, ns, id1);
|
8607
8901
|
};
|
8608
|
-
function
|
8609
|
-
|
8902
|
+
function d3_transitionNamespace(name) {
|
8903
|
+
return name == null ? "__transition__" : "__transition_" + name + "__";
|
8904
|
+
}
|
8905
|
+
function d3_transitionNode(node, i, ns, id, inherit) {
|
8906
|
+
var lock = node[ns] || (node[ns] = {
|
8610
8907
|
active: 0,
|
8611
8908
|
count: 0
|
8612
|
-
}), transition = lock[id];
|
8909
|
+
}), transition = lock[id], time, timer, duration, ease, tweens;
|
8910
|
+
function schedule(elapsed) {
|
8911
|
+
var delay = transition.delay;
|
8912
|
+
timer.t = delay + time;
|
8913
|
+
if (delay <= elapsed) return start(elapsed - delay);
|
8914
|
+
timer.c = start;
|
8915
|
+
}
|
8916
|
+
function start(elapsed) {
|
8917
|
+
var activeId = lock.active, active = lock[activeId];
|
8918
|
+
if (active) {
|
8919
|
+
active.timer.c = null;
|
8920
|
+
active.timer.t = NaN;
|
8921
|
+
--lock.count;
|
8922
|
+
delete lock[activeId];
|
8923
|
+
active.event && active.event.interrupt.call(node, node.__data__, active.index);
|
8924
|
+
}
|
8925
|
+
for (var cancelId in lock) {
|
8926
|
+
if (+cancelId < id) {
|
8927
|
+
var cancel = lock[cancelId];
|
8928
|
+
cancel.timer.c = null;
|
8929
|
+
cancel.timer.t = NaN;
|
8930
|
+
--lock.count;
|
8931
|
+
delete lock[cancelId];
|
8932
|
+
}
|
8933
|
+
}
|
8934
|
+
timer.c = tick;
|
8935
|
+
d3_timer(function() {
|
8936
|
+
if (timer.c && tick(elapsed || 1)) {
|
8937
|
+
timer.c = null;
|
8938
|
+
timer.t = NaN;
|
8939
|
+
}
|
8940
|
+
return 1;
|
8941
|
+
}, 0, time);
|
8942
|
+
lock.active = id;
|
8943
|
+
transition.event && transition.event.start.call(node, node.__data__, i);
|
8944
|
+
tweens = [];
|
8945
|
+
transition.tween.forEach(function(key, value) {
|
8946
|
+
if (value = value.call(node, node.__data__, i)) {
|
8947
|
+
tweens.push(value);
|
8948
|
+
}
|
8949
|
+
});
|
8950
|
+
ease = transition.ease;
|
8951
|
+
duration = transition.duration;
|
8952
|
+
}
|
8953
|
+
function tick(elapsed) {
|
8954
|
+
var t = elapsed / duration, e = ease(t), n = tweens.length;
|
8955
|
+
while (n > 0) {
|
8956
|
+
tweens[--n].call(node, e);
|
8957
|
+
}
|
8958
|
+
if (t >= 1) {
|
8959
|
+
transition.event && transition.event.end.call(node, node.__data__, i);
|
8960
|
+
if (--lock.count) delete lock[id]; else delete node[ns];
|
8961
|
+
return 1;
|
8962
|
+
}
|
8963
|
+
}
|
8613
8964
|
if (!transition) {
|
8614
|
-
|
8965
|
+
time = inherit.time;
|
8966
|
+
timer = d3_timer(schedule, 0, time);
|
8615
8967
|
transition = lock[id] = {
|
8616
8968
|
tween: new d3_Map(),
|
8617
8969
|
time: time,
|
8618
|
-
|
8970
|
+
timer: timer,
|
8619
8971
|
delay: inherit.delay,
|
8620
|
-
duration: inherit.duration
|
8972
|
+
duration: inherit.duration,
|
8973
|
+
ease: inherit.ease,
|
8974
|
+
index: i
|
8621
8975
|
};
|
8976
|
+
inherit = null;
|
8622
8977
|
++lock.count;
|
8623
|
-
d3.timer(function(elapsed) {
|
8624
|
-
var d = node.__data__, ease = transition.ease, delay = transition.delay, duration = transition.duration, timer = d3_timer_active, tweened = [];
|
8625
|
-
timer.t = delay + time;
|
8626
|
-
if (delay <= elapsed) return start(elapsed - delay);
|
8627
|
-
timer.c = start;
|
8628
|
-
function start(elapsed) {
|
8629
|
-
if (lock.active > id) return stop();
|
8630
|
-
lock.active = id;
|
8631
|
-
transition.event && transition.event.start.call(node, d, i);
|
8632
|
-
transition.tween.forEach(function(key, value) {
|
8633
|
-
if (value = value.call(node, d, i)) {
|
8634
|
-
tweened.push(value);
|
8635
|
-
}
|
8636
|
-
});
|
8637
|
-
d3.timer(function() {
|
8638
|
-
timer.c = tick(elapsed || 1) ? d3_true : tick;
|
8639
|
-
return 1;
|
8640
|
-
}, 0, time);
|
8641
|
-
}
|
8642
|
-
function tick(elapsed) {
|
8643
|
-
if (lock.active !== id) return stop();
|
8644
|
-
var t = elapsed / duration, e = ease(t), n = tweened.length;
|
8645
|
-
while (n > 0) {
|
8646
|
-
tweened[--n].call(node, e);
|
8647
|
-
}
|
8648
|
-
if (t >= 1) {
|
8649
|
-
transition.event && transition.event.end.call(node, d, i);
|
8650
|
-
return stop();
|
8651
|
-
}
|
8652
|
-
}
|
8653
|
-
function stop() {
|
8654
|
-
if (--lock.count) delete lock[id]; else delete node.__transition__;
|
8655
|
-
return 1;
|
8656
|
-
}
|
8657
|
-
}, 0, time);
|
8658
8978
|
}
|
8659
8979
|
}
|
8660
8980
|
d3.svg.axis = function() {
|
@@ -8663,61 +8983,25 @@
|
|
8663
8983
|
g.each(function() {
|
8664
8984
|
var g = d3.select(this);
|
8665
8985
|
var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
|
8666
|
-
var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
|
8986
|
+
var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;
|
8667
8987
|
var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
|
8668
8988
|
d3.transition(path));
|
8669
8989
|
tickEnter.append("line");
|
8670
8990
|
tickEnter.append("text");
|
8671
|
-
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
|
8672
|
-
|
8673
|
-
|
8674
|
-
|
8675
|
-
|
8676
|
-
|
8677
|
-
|
8678
|
-
|
8679
|
-
|
8680
|
-
|
8681
|
-
|
8682
|
-
|
8683
|
-
|
8684
|
-
|
8685
|
-
case "top":
|
8686
|
-
{
|
8687
|
-
tickTransform = d3_svg_axisX;
|
8688
|
-
lineEnter.attr("y2", -innerTickSize);
|
8689
|
-
textEnter.attr("y", -(Math.max(innerTickSize, 0) + tickPadding));
|
8690
|
-
lineUpdate.attr("x2", 0).attr("y2", -innerTickSize);
|
8691
|
-
textUpdate.attr("x", 0).attr("y", -(Math.max(innerTickSize, 0) + tickPadding));
|
8692
|
-
text.attr("dy", "0em").style("text-anchor", "middle");
|
8693
|
-
pathUpdate.attr("d", "M" + range[0] + "," + -outerTickSize + "V0H" + range[1] + "V" + -outerTickSize);
|
8694
|
-
break;
|
8695
|
-
}
|
8696
|
-
|
8697
|
-
case "left":
|
8698
|
-
{
|
8699
|
-
tickTransform = d3_svg_axisY;
|
8700
|
-
lineEnter.attr("x2", -innerTickSize);
|
8701
|
-
textEnter.attr("x", -(Math.max(innerTickSize, 0) + tickPadding));
|
8702
|
-
lineUpdate.attr("x2", -innerTickSize).attr("y2", 0);
|
8703
|
-
textUpdate.attr("x", -(Math.max(innerTickSize, 0) + tickPadding)).attr("y", 0);
|
8704
|
-
text.attr("dy", ".32em").style("text-anchor", "end");
|
8705
|
-
pathUpdate.attr("d", "M" + -outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + -outerTickSize);
|
8706
|
-
break;
|
8707
|
-
}
|
8708
|
-
|
8709
|
-
case "right":
|
8710
|
-
{
|
8711
|
-
tickTransform = d3_svg_axisY;
|
8712
|
-
lineEnter.attr("x2", innerTickSize);
|
8713
|
-
textEnter.attr("x", Math.max(innerTickSize, 0) + tickPadding);
|
8714
|
-
lineUpdate.attr("x2", innerTickSize).attr("y2", 0);
|
8715
|
-
textUpdate.attr("x", Math.max(innerTickSize, 0) + tickPadding).attr("y", 0);
|
8716
|
-
text.attr("dy", ".32em").style("text-anchor", "start");
|
8717
|
-
pathUpdate.attr("d", "M" + outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + outerTickSize);
|
8718
|
-
break;
|
8719
|
-
}
|
8720
|
-
}
|
8991
|
+
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2;
|
8992
|
+
if (orient === "bottom" || orient === "top") {
|
8993
|
+
tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2";
|
8994
|
+
text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle");
|
8995
|
+
pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize);
|
8996
|
+
} else {
|
8997
|
+
tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2";
|
8998
|
+
text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start");
|
8999
|
+
pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize);
|
9000
|
+
}
|
9001
|
+
lineEnter.attr(y2, sign * innerTickSize);
|
9002
|
+
textEnter.attr(y1, sign * tickSpacing);
|
9003
|
+
lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);
|
9004
|
+
textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);
|
8721
9005
|
if (scale1.rangeBand) {
|
8722
9006
|
var x = scale1, dx = x.rangeBand() / 2;
|
8723
9007
|
scale0 = scale1 = function(d) {
|
@@ -8726,10 +9010,10 @@
|
|
8726
9010
|
} else if (scale0.rangeBand) {
|
8727
9011
|
scale0 = scale1;
|
8728
9012
|
} else {
|
8729
|
-
tickExit.call(tickTransform, scale1);
|
9013
|
+
tickExit.call(tickTransform, scale1, scale0);
|
8730
9014
|
}
|
8731
|
-
tickEnter.call(tickTransform, scale0);
|
8732
|
-
tickUpdate.call(tickTransform, scale1);
|
9015
|
+
tickEnter.call(tickTransform, scale0, scale1);
|
9016
|
+
tickUpdate.call(tickTransform, scale1, scale1);
|
8733
9017
|
});
|
8734
9018
|
}
|
8735
9019
|
axis.scale = function(x) {
|
@@ -8744,7 +9028,7 @@
|
|
8744
9028
|
};
|
8745
9029
|
axis.ticks = function() {
|
8746
9030
|
if (!arguments.length) return tickArguments_;
|
8747
|
-
tickArguments_ = arguments;
|
9031
|
+
tickArguments_ = d3_array(arguments);
|
8748
9032
|
return axis;
|
8749
9033
|
};
|
8750
9034
|
axis.tickValues = function(x) {
|
@@ -8790,14 +9074,16 @@
|
|
8790
9074
|
bottom: 1,
|
8791
9075
|
left: 1
|
8792
9076
|
};
|
8793
|
-
function d3_svg_axisX(selection,
|
9077
|
+
function d3_svg_axisX(selection, x0, x1) {
|
8794
9078
|
selection.attr("transform", function(d) {
|
8795
|
-
|
9079
|
+
var v0 = x0(d);
|
9080
|
+
return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)";
|
8796
9081
|
});
|
8797
9082
|
}
|
8798
|
-
function d3_svg_axisY(selection,
|
9083
|
+
function d3_svg_axisY(selection, y0, y1) {
|
8799
9084
|
selection.attr("transform", function(d) {
|
8800
|
-
|
9085
|
+
var v0 = y0(d);
|
9086
|
+
return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")";
|
8801
9087
|
});
|
8802
9088
|
}
|
8803
9089
|
d3.svg.brush = function() {
|
@@ -8902,8 +9188,8 @@
|
|
8902
9188
|
g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]);
|
8903
9189
|
}
|
8904
9190
|
function brushstart() {
|
8905
|
-
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(), center, origin = d3.mouse(target), offset;
|
8906
|
-
var w = d3.select(d3_window).on("keydown.brush", keydown).on("keyup.brush", keyup);
|
9191
|
+
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;
|
9192
|
+
var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup);
|
8907
9193
|
if (d3.event.changedTouches) {
|
8908
9194
|
w.on("touchmove.brush", brushmove).on("touchend.brush", brushend);
|
8909
9195
|
} else {
|
@@ -9213,7 +9499,7 @@
|
|
9213
9499
|
} ], [ "%Y", d3_true ] ]);
|
9214
9500
|
var d3_time_scaleMilliseconds = {
|
9215
9501
|
range: function(start, stop, step) {
|
9216
|
-
return d3.range(
|
9502
|
+
return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
|
9217
9503
|
},
|
9218
9504
|
floor: d3_identity,
|
9219
9505
|
ceil: d3_identity
|
@@ -9264,11 +9550,5 @@
|
|
9264
9550
|
d3.xml = d3_xhrType(function(request) {
|
9265
9551
|
return request.responseXML;
|
9266
9552
|
});
|
9267
|
-
if (typeof define === "function" && define.amd)
|
9268
|
-
define(d3);
|
9269
|
-
} else if (typeof module === "object" && module.exports) {
|
9270
|
-
module.exports = d3;
|
9271
|
-
} else {
|
9272
|
-
this.d3 = d3;
|
9273
|
-
}
|
9553
|
+
if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3;
|
9274
9554
|
}();
|