SYMBOL INDEX (4709 symbols across 853 files) FILE: app/channels/application_cable/channel.rb type ApplicationCable (line 1) | module ApplicationCable class Channel (line 2) | class Channel < ActionCable::Channel::Base FILE: app/channels/application_cable/connection.rb type ApplicationCable (line 1) | module ApplicationCable class Connection (line 2) | class Connection < ActionCable::Connection::Base method report_error (line 6) | def report_error(e) FILE: app/components/DS/alert.rb class DS::Alert (line 1) | class DS::Alert < DesignSystemComponent method initialize (line 2) | def initialize(message:, variant: :info) method container_classes (line 10) | def container_classes method icon_name (line 27) | def icon_name method icon_color (line 40) | def icon_color FILE: app/components/DS/button.rb class DS::Button (line 5) | class DS::Button < DS::Buttonish method initialize (line 8) | def initialize(confirm: nil, **opts) method container (line 13) | def container(&block) method merged_opts (line 22) | def merged_opts FILE: app/components/DS/buttonish.rb class DS::Buttonish (line 1) | class DS::Buttonish < DesignSystemComponent method initialize (line 60) | def initialize(variant: :primary, size: :md, href: nil, text: nil, ico... method call (line 73) | def call method container_classes (line 77) | def container_classes(override_classes = nil) method container_size_classes (line 88) | def container_size_classes method icon_color (line 92) | def icon_color method icon_classes (line 104) | def icon_classes method icon_only? (line 110) | def icon_only? method variant_data (line 115) | def variant_data method size_data (line 119) | def size_data method merged_base_classes (line 124) | def merged_base_classes method permitted_radius_override_classes (line 149) | def permitted_radius_override_classes method permitted_display_override_classes (line 153) | def permitted_display_override_classes FILE: app/components/DS/dialog.rb class DS::Dialog (line 1) | class DS::Dialog < DesignSystemComponent method initialize (line 46) | def initialize(variant: "modal", auto_open: true, reload_on_close: fal... method frame (line 56) | def frame method wrapper_element (line 61) | def wrapper_element(&block) method dialog_outer_classes (line 69) | def dialog_outer_classes method dialog_inner_classes (line 82) | def dialog_inner_classes method merged_opts (line 98) | def merged_opts method drawer? (line 112) | def drawer? FILE: app/components/DS/dialog_controller.js method connect (line 12) | connect() { method clickOutside (line 20) | clickOutside(e) { method close (line 26) | close() { FILE: app/components/DS/disclosure.rb class DS::Disclosure (line 1) | class DS::Disclosure < DesignSystemComponent method initialize (line 6) | def initialize(title: nil, align: "right", open: false, **opts) FILE: app/components/DS/filled_icon.rb class DS::FilledIcon (line 1) | class DS::FilledIcon < DesignSystemComponent method initialize (line 27) | def initialize(variant: :default, icon: nil, text: nil, hex_color: nil... method container_classes (line 36) | def container_classes method icon_size (line 45) | def icon_size method text_classes (line 49) | def text_classes method container_styles (line 56) | def container_styles method transparent? (line 64) | def transparent? method solid_bg_class (line 69) | def solid_bg_class method size_classes (line 80) | def size_classes method radius_classes (line 84) | def radius_classes method custom_fg_color (line 88) | def custom_fg_color method transparent_bg_color (line 92) | def transparent_bg_color method transparent_border_color (line 96) | def transparent_border_color FILE: app/components/DS/link.rb class DS::Link (line 3) | class DS::Link < DS::Buttonish method merged_opts (line 13) | def merged_opts method container_size_classes (line 28) | def container_size_classes FILE: app/components/DS/menu.rb class DS::Menu (line 3) | class DS::Menu < DesignSystemComponent method initialize (line 26) | def initialize(variant: "icon", avatar_url: nil, initials: nil, placem... FILE: app/components/DS/menu_controller.js method connect (line 22) | connect() { method disconnect (line 29) | disconnect() { method addEventListeners (line 35) | addEventListeners() { method removeEventListeners (line 42) | removeEventListeners() { method close (line 73) | close() { method focusFirstElement (line 78) | focusFirstElement() { method startAutoUpdate (line 88) | startAutoUpdate() { method stopAutoUpdate (line 98) | stopAutoUpdate() { method update (line 105) | update() { FILE: app/components/DS/menu_item.rb class DS::MenuItem (line 1) | class DS::MenuItem < DesignSystemComponent method initialize (line 6) | def initialize(variant:, text: nil, icon: nil, href: nil, method: :pos... method wrapper (line 19) | def wrapper(&block) method text_classes (line 29) | def text_classes method destructive? (line 36) | def destructive? method container_classes (line 41) | def container_classes method merged_opts (line 48) | def merged_opts FILE: app/components/DS/tab.rb class DS::Tab (line 1) | class DS::Tab < DesignSystemComponent method initialize (line 4) | def initialize(id:, label:) method call (line 9) | def call FILE: app/components/DS/tabs.rb class DS::Tabs (line 1) | class DS::Tabs < DesignSystemComponent method initialize (line 32) | def initialize(active_tab:, url_param_key: nil, session_key: nil, vari... method active_btn_classes (line 42) | def active_btn_classes method inactive_btn_classes (line 46) | def inactive_btn_classes method unstyled? (line 51) | def unstyled? method base_btn_classes (line 55) | def base_btn_classes method nav_container_classes (line 61) | def nav_container_classes FILE: app/components/DS/tabs/nav.rb class DS::Tabs::Nav (line 1) | class DS::Tabs::Nav < DesignSystemComponent method initialize (line 22) | def initialize(active_tab:, classes: nil, active_btn_classes: nil, ina... FILE: app/components/DS/tabs/panel.rb class DS::Tabs::Panel (line 1) | class DS::Tabs::Panel < DesignSystemComponent method initialize (line 4) | def initialize(tab_id:) method call (line 8) | def call FILE: app/components/DS/tabs_controller.js method show (line 9) | show(e) { method #updateSessionPreference (line 43) | #updateSessionPreference(selectedTabId) { FILE: app/components/DS/toggle.rb class DS::Toggle (line 1) | class DS::Toggle < DesignSystemComponent method initialize (line 4) | def initialize(id:, name: nil, checked: false, disabled: false, checke... method label_classes (line 14) | def label_classes FILE: app/components/DS/tooltip.rb class DS::Tooltip (line 1) | class DS::Tooltip < ApplicationComponent method initialize (line 4) | def initialize(text: nil, placement: "top", offset: 10, cross_axis: 0,... method tooltip_content (line 14) | def tooltip_content FILE: app/components/DS/tooltip_controller.js method connect (line 18) | connect() { method disconnect (line 24) | disconnect() { method addEventListeners (line 29) | addEventListeners() { method removeEventListeners (line 34) | removeEventListeners() { method startAutoUpdate (line 50) | startAutoUpdate() { method stopAutoUpdate (line 61) | stopAutoUpdate() { method update (line 68) | update() { FILE: app/components/UI/account/activity_date.rb class UI::Account::ActivityDate (line 1) | class UI::Account::ActivityDate < ApplicationComponent method initialize (line 6) | def initialize(account:, data:) method id (line 11) | def id method broadcast_channel (line 15) | def broadcast_channel method end_balance_money (line 19) | def end_balance_money method broadcast_refresh! (line 23) | def broadcast_refresh! FILE: app/components/UI/account/activity_feed.rb class UI::Account::ActivityFeed (line 1) | class UI::Account::ActivityFeed < ApplicationComponent method initialize (line 4) | def initialize(feed_data:, pagy:, search: nil) method id (line 10) | def id method broadcast_channel (line 14) | def broadcast_channel method broadcast_refresh! (line 18) | def broadcast_refresh! method activity_dates (line 27) | def activity_dates method account (line 32) | def account FILE: app/components/UI/account/balance_reconciliation.rb class UI::Account::BalanceReconciliation (line 1) | class UI::Account::BalanceReconciliation < ApplicationComponent method initialize (line 4) | def initialize(balance:, account:) method reconciliation_items (line 9) | def reconciliation_items method default_items (line 30) | def default_items method credit_card_items (line 45) | def credit_card_items method investment_items (line 61) | def investment_items method loan_items (line 84) | def loan_items method asset_items (line 99) | def asset_items # Property/Vehicle method crypto_items (line 114) | def crypto_items method net_cash_flow (line 132) | def net_cash_flow method net_non_cash_flow (line 136) | def net_non_cash_flow method net_total_flow (line 140) | def net_total_flow method total_adjustments (line 144) | def total_adjustments method has_adjustments? (line 148) | def has_adjustments? method end_balance_before_adjustments (line 152) | def end_balance_before_adjustments FILE: app/components/UI/account/chart.rb class UI::Account::Chart (line 1) | class UI::Account::Chart < ApplicationComponent method initialize (line 4) | def initialize(account:, period: nil, view: nil) method period (line 10) | def period method holdings_value_money (line 14) | def holdings_value_money method view_balance_money (line 18) | def view_balance_money method title (line 29) | def title method foreign_currency? (line 51) | def foreign_currency? method converted_balance_money (line 55) | def converted_balance_money method view (line 61) | def view method series (line 65) | def series method trend (line 69) | def trend FILE: app/components/UI/account_page.rb class UI::AccountPage (line 1) | class UI::AccountPage < ApplicationComponent method initialize (line 6) | def initialize(account:, chart_view: nil, chart_period: nil, active_ta... method id (line 13) | def id method broadcast_channel (line 17) | def broadcast_channel method broadcast_refresh! (line 21) | def broadcast_refresh! method title (line 25) | def title method subtitle (line 29) | def subtitle method active_tab (line 35) | def active_tab method tabs (line 39) | def tabs method tab_content_for (line 50) | def tab_content_for(tab) FILE: app/components/application_component.rb class ApplicationComponent (line 1) | class ApplicationComponent < ViewComponent::Base FILE: app/components/design_system_component.rb class DesignSystemComponent (line 1) | class DesignSystemComponent < ViewComponent::Base FILE: app/controllers/accountable_sparklines_controller.rb class AccountableSparklinesController (line 1) | class AccountableSparklinesController < ApplicationController method show (line 2) | def show method family (line 26) | def family method accountable (line 30) | def accountable method account_ids (line 34) | def account_ids method cache_key (line 38) | def cache_key FILE: app/controllers/accounts_controller.rb class AccountsController (line 1) | class AccountsController < ApplicationController method index (line 5) | def index method sync_all (line 12) | def sync_all method show (line 17) | def show method sync (line 28) | def sync method sparkline (line 36) | def sparkline method toggle_active (line 47) | def toggle_active method destroy (line 56) | def destroy method family (line 66) | def family method set_account (line 70) | def set_account FILE: app/controllers/api/v1/accounts_controller.rb class Api::V1::AccountsController (line 3) | class Api::V1::AccountsController < Api::V1::BaseController method index (line 9) | def index method ensure_read_scope (line 37) | def ensure_read_scope method safe_page_param (line 43) | def safe_page_param method safe_per_page_param (line 48) | def safe_per_page_param FILE: app/controllers/api/v1/auth_controller.rb type Api (line 1) | module Api type V1 (line 2) | module V1 class AuthController (line 3) | class AuthController < BaseController method signup (line 10) | def signup method login (line 64) | def login method refresh (line 102) | def refresh method user_signup_params (line 147) | def user_signup_params method validate_password (line 151) | def validate_password(password) method valid_device_info? (line 167) | def valid_device_info? method create_or_update_device (line 175) | def create_or_update_device(user) method create_oauth_token_for_device (line 184) | def create_oauth_token_for_device(user, device) FILE: app/controllers/api/v1/base_controller.rb class Api::V1::BaseController (line 3) | class Api::V1::BaseController < ApplicationController method doorkeeper_unauthorized_render_options (line 25) | def doorkeeper_unauthorized_render_options(error: nil) method force_json_format (line 37) | def force_json_format method authenticate_request! (line 42) | def authenticate_request! method authenticate_oauth (line 49) | def authenticate_oauth method authenticate_api_key (line 91) | def authenticate_api_key method check_api_key_rate_limit (line 107) | def check_api_key_rate_limit method render_rate_limit_exceeded (line 124) | def render_rate_limit_exceeded(usage_info) method add_rate_limit_headers (line 144) | def add_rate_limit_headers(usage_info) method render_unauthorized (line 151) | def render_unauthorized method current_resource_owner (line 156) | def current_resource_owner method current_scopes (line 161) | def current_scopes method authorize_scope! (line 174) | def authorize_scope!(required_scope) method render_json (line 198) | def render_json(data, status: :ok) method handle_not_found (line 203) | def handle_not_found(exception) method handle_unauthorized (line 208) | def handle_unauthorized(exception) method handle_bad_request (line 213) | def handle_bad_request(exception) method log_api_access (line 219) | def log_api_access method ensure_current_family_access (line 235) | def ensure_current_family_access(resource) method doorkeeper_token (line 248) | def doorkeeper_token method setup_current_context_for_api (line 253) | def setup_current_context_for_api method require_ai_enabled (line 274) | def require_ai_enabled FILE: app/controllers/api/v1/chats_controller.rb class Api::V1::ChatsController (line 3) | class Api::V1::ChatsController < Api::V1::BaseController method index (line 10) | def index method show (line 14) | def show method create (line 19) | def create method update (line 45) | def update method destroy (line 55) | def destroy method ensure_read_scope (line 63) | def ensure_read_scope method ensure_write_scope (line 67) | def ensure_write_scope method set_chat (line 71) | def set_chat method chat_params (line 77) | def chat_params method update_chat_params (line 81) | def update_chat_params FILE: app/controllers/api/v1/messages_controller.rb class Api::V1::MessagesController (line 3) | class Api::V1::MessagesController < Api::V1::BaseController method create (line 8) | def create method retry (line 23) | def retry method ensure_write_scope (line 42) | def ensure_write_scope method set_chat (line 46) | def set_chat method message_params (line 52) | def message_params FILE: app/controllers/api/v1/test_controller.rb class Api::V1::TestController (line 5) | class Api::V1::TestController < Api::V1::BaseController method index (line 6) | def index method not_found (line 10) | def not_found method family_access (line 15) | def family_access method scope_required (line 27) | def scope_required method multiple_scopes_required (line 38) | def multiple_scopes_required FILE: app/controllers/api/v1/transactions_controller.rb class Api::V1::TransactionsController (line 3) | class Api::V1::TransactionsController < Api::V1::BaseController method index (line 11) | def index method show (line 52) | def show method create (line 66) | def create method update (line 107) | def update method destroy (line 133) | def destroy method set_transaction (line 153) | def set_transaction method ensure_read_scope (line 164) | def ensure_read_scope method ensure_write_scope (line 168) | def ensure_write_scope method apply_filters (line 172) | def apply_filters(query) method apply_search (line 242) | def apply_search(query) method transaction_params (line 253) | def transaction_params method entry_params_for_create (line 260) | def entry_params_for_create method entry_params_for_update (line 278) | def entry_params_for_update method calculate_signed_amount (line 299) | def calculate_signed_amount method safe_page_param (line 313) | def safe_page_param method safe_per_page_param (line 318) | def safe_per_page_param FILE: app/controllers/api/v1/usage_controller.rb class Api::V1::UsageController (line 1) | class Api::V1::UsageController < Api::V1::BaseController method show (line 3) | def show FILE: app/controllers/application_controller.rb class ApplicationController (line 1) | class ApplicationController < ActionController::Base method detect_os (line 13) | def detect_os method set_default_chat (line 26) | def set_default_chat method set_active_storage_url_options (line 31) | def set_active_storage_url_options FILE: app/controllers/budget_categories_controller.rb class BudgetCategoriesController (line 1) | class BudgetCategoriesController < ApplicationController method index (line 4) | def index method show (line 9) | def show method update (line 24) | def update method budget_category_params (line 38) | def budget_category_params method set_budget (line 44) | def set_budget FILE: app/controllers/budgets_controller.rb class BudgetsController (line 1) | class BudgetsController < ApplicationController method index (line 4) | def index method show (line 8) | def show method edit (line 11) | def edit method update (line 15) | def update method picker (line 20) | def picker method budget_create_params (line 29) | def budget_create_params method budget_params (line 33) | def budget_params method set_budget (line 37) | def set_budget method redirect_to_current_month_budget (line 43) | def redirect_to_current_month_budget FILE: app/controllers/categories_controller.rb class CategoriesController (line 1) | class CategoriesController < ApplicationController method index (line 6) | def index method new (line 12) | def new method create (line 17) | def create method edit (line 36) | def edit method update (line 39) | def update method destroy (line 53) | def destroy method destroy_all (line 59) | def destroy_all method bootstrap (line 64) | def bootstrap method set_category (line 71) | def set_category method set_categories (line 75) | def set_categories method set_transaction (line 83) | def set_transaction method category_params (line 89) | def category_params FILE: app/controllers/category/deletions_controller.rb class Category::DeletionsController (line 1) | class Category::DeletionsController < ApplicationController method new (line 5) | def new method create (line 8) | def create method set_category (line 15) | def set_category method set_replacement_category (line 19) | def set_replacement_category FILE: app/controllers/category/dropdowns_controller.rb class Category::DropdownsController (line 1) | class Category::DropdownsController < ApplicationController method show (line 4) | def show method set_from_params (line 9) | def set_from_params method categories_scope (line 19) | def categories_scope FILE: app/controllers/chats_controller.rb class ChatsController (line 1) | class ChatsController < ApplicationController method index (line 6) | def index method show (line 11) | def show method new (line 15) | def new method create (line 19) | def create method edit (line 25) | def edit method update (line 28) | def update method destroy (line 37) | def destroy method retry (line 44) | def retry method set_chat (line 50) | def set_chat method set_last_viewed_chat (line 54) | def set_last_viewed_chat(chat) method clear_last_viewed_chat (line 58) | def clear_last_viewed_chat method chat_params (line 62) | def chat_params FILE: app/controllers/concerns/accountable_resource.rb type AccountableResource (line 1) | module AccountableResource function permitted_accountable_attributes (line 12) | def permitted_accountable_attributes(*attrs) function new (line 18) | def new function show (line 25) | def show function edit (line 33) | def edit function create (line 36) | def create function update (line 43) | def update function set_link_options (line 68) | def set_link_options function accountable_type (line 73) | def accountable_type function set_account (line 77) | def set_account function account_params (line 81) | def account_params FILE: app/controllers/concerns/authentication.rb type Authentication (line 1) | module Authentication function skip_authentication (line 11) | def skip_authentication(**options) function authenticate_user! (line 18) | def authenticate_user! function find_session_by_cookie (line 30) | def find_session_by_cookie function create_session_for (line 40) | def create_session_for(user) function self_hosted_first_login? (line 46) | def self_hosted_first_login? function set_request_details (line 50) | def set_request_details function set_sentry_user (line 55) | def set_sentry_user FILE: app/controllers/concerns/auto_sync.rb type AutoSync (line 1) | module AutoSync function sync_family (line 9) | def sync_family function family_needs_auto_sync? (line 13) | def family_needs_auto_sync? FILE: app/controllers/concerns/breadcrumbable.rb type Breadcrumbable (line 1) | module Breadcrumbable function set_breadcrumbs (line 10) | def set_breadcrumbs FILE: app/controllers/concerns/entryable_resource.rb type EntryableResource (line 1) | module EntryableResource function show (line 10) | def show function new (line 13) | def new function create (line 23) | def create function update (line 27) | def update function destroy (line 31) | def destroy function entryable (line 40) | def entryable function set_entry (line 44) | def set_entry FILE: app/controllers/concerns/feature_guardable.rb type FeatureGuardable (line 10) | module FeatureGuardable function guard_feature (line 14) | def guard_feature(**options) function guard_feature (line 20) | def guard_feature FILE: app/controllers/concerns/impersonatable.rb type Impersonatable (line 1) | module Impersonatable function create_impersonation_session_log (line 9) | def create_impersonation_session_log FILE: app/controllers/concerns/invitable.rb type Invitable (line 1) | module Invitable function invite_code_required? (line 9) | def invite_code_required? function self_hosted? (line 14) | def self_hosted? FILE: app/controllers/concerns/localize.rb type Localize (line 1) | module Localize function switch_locale (line 10) | def switch_locale(&action) function switch_timezone (line 15) | def switch_timezone(&action) FILE: app/controllers/concerns/notifiable.rb type Notifiable (line 1) | module Notifiable function render_flash_notifications (line 10) | def render_flash_notifications function flash_notification_stream_items (line 18) | def flash_notification_stream_items function resolve_cta (line 36) | def resolve_cta(cta) function resolve_notifications (line 43) | def resolve_notifications(type, data) FILE: app/controllers/concerns/onboardable.rb type Onboardable (line 1) | module Onboardable function require_onboarding_and_upgrade (line 10) | def require_onboarding_and_upgrade function redirectable_path? (line 23) | def redirectable_path?(path) FILE: app/controllers/concerns/periodable.rb type Periodable (line 1) | module Periodable function set_period (line 9) | def set_period FILE: app/controllers/concerns/restore_layout_preferences.rb type RestoreLayoutPreferences (line 1) | module RestoreLayoutPreferences function restore_active_tabs (line 9) | def restore_active_tabs function valid_account_group_tabs (line 15) | def valid_account_group_tabs function account_group_tab_param (line 19) | def account_group_tab_param FILE: app/controllers/concerns/self_hostable.rb type SelfHostable (line 1) | module SelfHostable function self_hosted? (line 11) | def self_hosted? function self_hosted_first_login? (line 15) | def self_hosted_first_login? function verify_self_host_config (line 19) | def verify_self_host_config function redis_connected? (line 37) | def redis_connected? FILE: app/controllers/concerns/store_location.rb type StoreLocation (line 1) | module StoreLocation function previous_path (line 12) | def previous_path function handle_not_found (line 17) | def handle_not_found function store_return_to (line 26) | def store_return_to function clear_previous_path (line 32) | def clear_previous_path function fallback_path (line 38) | def fallback_path FILE: app/controllers/concerns/stream_extensions.rb type StreamExtensions (line 1) | module StreamExtensions function stream_redirect_to (line 4) | def stream_redirect_to(path, notice: nil, alert: nil) function stream_redirect_back_or_to (line 8) | def stream_redirect_back_or_to(path, notice: nil, alert: nil) function custom_stream_redirect (line 13) | def custom_stream_redirect(path, redirect_back: false, notice: nil, al... FILE: app/controllers/cookie_sessions_controller.rb class CookieSessionsController (line 1) | class CookieSessionsController < ApplicationController method update (line 2) | def update method cookie_session_params (line 12) | def cookie_session_params method save_kv_to_session (line 16) | def save_kv_to_session(key, value) FILE: app/controllers/credit_cards_controller.rb class CreditCardsController (line 1) | class CreditCardsController < ApplicationController FILE: app/controllers/cryptos_controller.rb class CryptosController (line 1) | class CryptosController < ApplicationController FILE: app/controllers/currencies_controller.rb class CurrenciesController (line 1) | class CurrenciesController < ApplicationController method show (line 2) | def show FILE: app/controllers/current_sessions_controller.rb class CurrentSessionsController (line 1) | class CurrentSessionsController < ApplicationController method update (line 2) | def update method session_params (line 11) | def session_params FILE: app/controllers/depositories_controller.rb class DepositoriesController (line 1) | class DepositoriesController < ApplicationController FILE: app/controllers/email_confirmations_controller.rb class EmailConfirmationsController (line 1) | class EmailConfirmationsController < ApplicationController method new (line 5) | def new FILE: app/controllers/family_exports_controller.rb class FamilyExportsController (line 1) | class FamilyExportsController < ApplicationController method new (line 7) | def new method create (line 11) | def create method index (line 23) | def index method download (line 28) | def download method set_export (line 38) | def set_export method require_admin (line 42) | def require_admin FILE: app/controllers/family_merchants_controller.rb class FamilyMerchantsController (line 1) | class FamilyMerchantsController < ApplicationController method index (line 4) | def index method new (line 12) | def new method create (line 16) | def create method edit (line 29) | def edit method update (line 32) | def update method destroy (line 40) | def destroy method set_merchant (line 46) | def set_merchant method merchant_params (line 50) | def merchant_params FILE: app/controllers/holdings_controller.rb class HoldingsController (line 1) | class HoldingsController < ApplicationController method index (line 4) | def index method show (line 8) | def show method destroy (line 11) | def destroy method set_holding (line 26) | def set_holding FILE: app/controllers/impersonation_sessions_controller.rb class ImpersonationSessionsController (line 1) | class ImpersonationSessionsController < ApplicationController method create (line 5) | def create method join (line 10) | def join method leave (line 16) | def leave method approve (line 21) | def approve method reject (line 28) | def reject method complete (line 35) | def complete method session_params (line 41) | def session_params method set_impersonation_session (line 45) | def set_impersonation_session method require_super_admin! (line 51) | def require_super_admin! method raise_unauthorized! (line 55) | def raise_unauthorized! FILE: app/controllers/import/cleans_controller.rb class Import::CleansController (line 1) | class Import::CleansController < ApplicationController method show (line 6) | def show method set_import (line 19) | def set_import FILE: app/controllers/import/configurations_controller.rb class Import::ConfigurationsController (line 1) | class Import::ConfigurationsController < ApplicationController method show (line 6) | def show method update (line 9) | def update method set_import (line 18) | def set_import method import_params (line 22) | def import_params FILE: app/controllers/import/confirms_controller.rb class Import::ConfirmsController (line 1) | class Import::ConfirmsController < ApplicationController method show (line 6) | def show method set_import (line 15) | def set_import FILE: app/controllers/import/mappings_controller.rb class Import::MappingsController (line 1) | class Import::MappingsController < ApplicationController method update (line 4) | def update method mapping_params (line 16) | def mapping_params method set_import (line 20) | def set_import method mappable (line 24) | def mappable method create_when_empty (line 30) | def create_when_empty method mappable_class (line 36) | def mappable_class method mapping_class (line 40) | def mapping_class FILE: app/controllers/import/rows_controller.rb class Import::RowsController (line 1) | class Import::RowsController < ApplicationController method update (line 4) | def update method show (line 10) | def show method row_params (line 14) | def row_params method set_import_row (line 18) | def set_import_row FILE: app/controllers/import/uploads_controller.rb class Import::UploadsController (line 1) | class Import::UploadsController < ApplicationController method show (line 6) | def show method sample_csv (line 9) | def sample_csv method update (line 16) | def update method set_import (line 31) | def set_import method csv_str (line 35) | def csv_str method csv_valid? (line 39) | def csv_valid?(str) method upload_params (line 50) | def upload_params FILE: app/controllers/imports_controller.rb class ImportsController (line 1) | class ImportsController < ApplicationController method publish (line 4) | def publish method index (line 12) | def index method new (line 18) | def new method create (line 22) | def create method show (line 33) | def show method revert (line 41) | def revert method apply_template (line 46) | def apply_template method destroy (line 55) | def destroy method set_import (line 62) | def set_import method import_params (line 66) | def import_params FILE: app/controllers/investments_controller.rb class InvestmentsController (line 1) | class InvestmentsController < ApplicationController FILE: app/controllers/invitations_controller.rb class InvitationsController (line 1) | class InvitationsController < ApplicationController method new (line 3) | def new method create (line 7) | def create method accept (line 27) | def accept method destroy (line 37) | def destroy method invitation_params (line 57) | def invitation_params FILE: app/controllers/invite_codes_controller.rb class InviteCodesController (line 1) | class InviteCodesController < ApplicationController method index (line 4) | def index method create (line 8) | def create method ensure_self_hosted (line 16) | def ensure_self_hosted FILE: app/controllers/loans_controller.rb class LoansController (line 1) | class LoansController < ApplicationController FILE: app/controllers/lookbooks_controller.rb class LookbooksController (line 1) | class LookbooksController < Lookbook::PreviewController FILE: app/controllers/messages_controller.rb class MessagesController (line 1) | class MessagesController < ApplicationController method create (line 6) | def create method set_chat (line 17) | def set_chat method message_params (line 21) | def message_params FILE: app/controllers/mfa_controller.rb class MfaController (line 1) | class MfaController < ApplicationController method new (line 5) | def new method create (line 10) | def create method verify (line 21) | def verify method verify_code (line 29) | def verify_code method disable (line 42) | def disable method determine_layout (line 49) | def determine_layout FILE: app/controllers/onboardings_controller.rb class OnboardingsController (line 1) | class OnboardingsController < ApplicationController method show (line 7) | def show method preferences (line 10) | def preferences method trial (line 13) | def trial method set_user (line 17) | def set_user method load_invitation (line 21) | def load_invitation FILE: app/controllers/other_assets_controller.rb class OtherAssetsController (line 1) | class OtherAssetsController < ApplicationController FILE: app/controllers/other_liabilities_controller.rb class OtherLiabilitiesController (line 1) | class OtherLiabilitiesController < ApplicationController FILE: app/controllers/pages_controller.rb class PagesController (line 1) | class PagesController < ApplicationController method dashboard (line 6) | def dashboard method changelog (line 30) | def changelog method feedback (line 47) | def feedback method redis_configuration_error (line 51) | def redis_configuration_error method github_provider (line 56) | def github_provider method build_cashflow_sankey_data (line 60) | def build_cashflow_sankey_data(income_totals, expense_totals, currency... FILE: app/controllers/password_resets_controller.rb class PasswordResetsController (line 1) | class PasswordResetsController < ApplicationController method new (line 8) | def new method create (line 11) | def create method edit (line 22) | def edit method update (line 26) | def update method set_user_by_token (line 36) | def set_user_by_token method password_params (line 41) | def password_params FILE: app/controllers/passwords_controller.rb class PasswordsController (line 1) | class PasswordsController < ApplicationController method edit (line 2) | def edit method update (line 5) | def update method password_params (line 15) | def password_params FILE: app/controllers/plaid_items_controller.rb class PlaidItemsController (line 1) | class PlaidItemsController < ApplicationController method new (line 4) | def new method edit (line 16) | def edit method create (line 25) | def create method destroy (line 35) | def destroy method sync (line 40) | def sync method set_plaid_item (line 52) | def set_plaid_item method plaid_item_params (line 56) | def plaid_item_params method item_name (line 60) | def item_name method plaid_us_webhooks_url (line 64) | def plaid_us_webhooks_url method plaid_eu_webhooks_url (line 70) | def plaid_eu_webhooks_url FILE: app/controllers/properties_controller.rb class PropertiesController (line 1) | class PropertiesController < ApplicationController method new (line 6) | def new method create (line 10) | def create method update (line 18) | def update method edit (line 33) | def edit method balances (line 36) | def balances method update_balances (line 39) | def update_balances method address (line 56) | def address method update_address (line 61) | def update_address method balance_params (line 81) | def balance_params method address_params (line 85) | def address_params method property_params (line 90) | def property_params method set_property (line 95) | def set_property FILE: app/controllers/registrations_controller.rb class RegistrationsController (line 1) | class RegistrationsController < ApplicationController method new (line 11) | def new method create (line 15) | def create method set_invitation (line 37) | def set_invitation method set_user (line 43) | def set_user method user_params (line 47) | def user_params(specific_param = nil) method claim_invite_code (line 52) | def claim_invite_code method validate_password_requirements (line 58) | def validate_password_requirements FILE: app/controllers/rules_controller.rb class RulesController (line 1) | class RulesController < ApplicationController method index (line 6) | def index method new (line 18) | def new method create (line 24) | def create method apply (line 34) | def apply method confirm (line 40) | def confirm method edit (line 43) | def edit method update (line 46) | def update method destroy (line 57) | def destroy method destroy_all (line 62) | def destroy_all method set_rule (line 68) | def set_rule method rule_params (line 72) | def rule_params FILE: app/controllers/securities_controller.rb class SecuritiesController (line 1) | class SecuritiesController < ApplicationController method index (line 2) | def index FILE: app/controllers/sessions_controller.rb class SessionsController (line 1) | class SessionsController < ApplicationController method new (line 7) | def new method create (line 10) | def create method destroy (line 25) | def destroy method set_session (line 31) | def set_session FILE: app/controllers/settings/api_keys_controller.rb class Settings::ApiKeysController (line 3) | class Settings::ApiKeysController < ApplicationController method show (line 8) | def show method new (line 12) | def new method create (line 19) | def create method destroy (line 38) | def destroy method set_api_key (line 49) | def set_api_key method api_key_params (line 53) | def api_key_params FILE: app/controllers/settings/billings_controller.rb class Settings::BillingsController (line 1) | class Settings::BillingsController < ApplicationController method show (line 4) | def show FILE: app/controllers/settings/hostings_controller.rb class Settings::HostingsController (line 1) | class Settings::HostingsController < ApplicationController method show (line 8) | def show method update (line 13) | def update method clear_cache (line 32) | def clear_cache method hosting_params (line 38) | def hosting_params method ensure_admin (line 42) | def ensure_admin FILE: app/controllers/settings/preferences_controller.rb class Settings::PreferencesController (line 1) | class Settings::PreferencesController < ApplicationController method show (line 4) | def show FILE: app/controllers/settings/profiles_controller.rb class Settings::ProfilesController (line 1) | class Settings::ProfilesController < ApplicationController method show (line 4) | def show method destroy (line 10) | def destroy FILE: app/controllers/settings/securities_controller.rb class Settings::SecuritiesController (line 1) | class Settings::SecuritiesController < ApplicationController method show (line 4) | def show FILE: app/controllers/subscriptions_controller.rb class SubscriptionsController (line 1) | class SubscriptionsController < ApplicationController method upgrade (line 6) | def upgrade method new (line 15) | def new method create (line 30) | def create method show (line 39) | def show method success (line 49) | def success method stripe (line 61) | def stripe FILE: app/controllers/tag/deletions_controller.rb class Tag::DeletionsController (line 1) | class Tag::DeletionsController < ApplicationController method new (line 5) | def new method create (line 8) | def create method set_tag (line 15) | def set_tag method set_replacement_tag (line 19) | def set_replacement_tag FILE: app/controllers/tags_controller.rb class TagsController (line 1) | class TagsController < ApplicationController method index (line 4) | def index method new (line 10) | def new method create (line 14) | def create method edit (line 24) | def edit method update (line 27) | def update method destroy (line 32) | def destroy method destroy_all (line 37) | def destroy_all method set_tag (line 44) | def set_tag method tag_params (line 48) | def tag_params FILE: app/controllers/trades_controller.rb class TradesController (line 1) | class TradesController < ApplicationController method new (line 5) | def new method create (line 15) | def create method update (line 31) | def update method entry_params (line 54) | def entry_params method create_params (line 61) | def create_params method update_entry_params (line 67) | def update_entry_params FILE: app/controllers/transaction_categories_controller.rb class TransactionCategoriesController (line 1) | class TransactionCategoriesController < ApplicationController method update (line 4) | def update method entry_params (line 37) | def entry_params method needs_rule_notification? (line 41) | def needs_rule_notification?(transaction) FILE: app/controllers/transactions/bulk_deletions_controller.rb class Transactions::BulkDeletionsController (line 1) | class Transactions::BulkDeletionsController < ApplicationController method create (line 2) | def create method bulk_delete_params (line 9) | def bulk_delete_params FILE: app/controllers/transactions/bulk_updates_controller.rb class Transactions::BulkUpdatesController (line 1) | class Transactions::BulkUpdatesController < ApplicationController method new (line 2) | def new method create (line 5) | def create method bulk_update_params (line 15) | def bulk_update_params FILE: app/controllers/transactions_controller.rb class TransactionsController (line 1) | class TransactionsController < ApplicationController method new (line 6) | def new method index (line 12) | def index method clear_filter (line 27) | def clear_filter method create (line 56) | def create method update (line 76) | def update method per_page (line 112) | def per_page method needs_rule_notification? (line 116) | def needs_rule_notification?(transaction) method entry_params (line 128) | def entry_params method search_params (line 144) | def search_params method store_params! (line 161) | def store_params! method should_restore_params? (line 181) | def should_restore_params? method stored_params (line 185) | def stored_params FILE: app/controllers/transfer_matches_controller.rb class TransferMatchesController (line 1) | class TransferMatchesController < ApplicationController method new (line 4) | def new method create (line 9) | def create method set_entry (line 23) | def set_entry method transfer_match_params (line 27) | def transfer_match_params method build_transfer (line 31) | def build_transfer FILE: app/controllers/transfers_controller.rb class TransfersController (line 1) | class TransfersController < ApplicationController method new (line 6) | def new method show (line 10) | def show method create (line 14) | def create method update (line 34) | def update method destroy (line 46) | def destroy method set_transfer (line 52) | def set_transfer method transfer_params (line 60) | def transfer_params method transfer_update_params (line 64) | def transfer_update_params method update_transfer_status (line 68) | def update_transfer_status method update_transfer_details (line 76) | def update_transfer_details FILE: app/controllers/users_controller.rb class UsersController (line 1) | class UsersController < ApplicationController method update (line 5) | def update method reset (line 38) | def reset method destroy (line 43) | def destroy method rule_prompt_settings (line 52) | def rule_prompt_settings method handle_redirect (line 58) | def handle_redirect(notice) method should_purge_profile_image? (line 75) | def should_purge_profile_image? method email_changed? (line 80) | def email_changed? method rule_prompt_settings_params (line 84) | def rule_prompt_settings_params method user_params (line 88) | def user_params method set_user (line 97) | def set_user method ensure_admin (line 101) | def ensure_admin FILE: app/controllers/valuations_controller.rb class ValuationsController (line 1) | class ValuationsController < ApplicationController method confirm_create (line 4) | def confirm_create method confirm_update (line 17) | def confirm_update method create (line 32) | def create method update (line 51) | def update method entry_params (line 86) | def entry_params FILE: app/controllers/vehicles_controller.rb class VehiclesController (line 1) | class VehiclesController < ApplicationController FILE: app/controllers/webhooks_controller.rb class WebhooksController (line 1) | class WebhooksController < ApplicationController method plaid (line 5) | def plaid method plaid_eu (line 21) | def plaid_eu method stripe (line 37) | def stripe FILE: app/data_migrations/balance_component_migrator.rb class BalanceComponentMigrator (line 1) | class BalanceComponentMigrator method run (line 2) | def self.run FILE: app/helpers/accounts_helper.rb type AccountsHelper (line 1) | module AccountsHelper function summary_card (line 2) | def summary_card(title:, &block) FILE: app/helpers/application_helper.rb type ApplicationHelper (line 1) | module ApplicationHelper function styled_form_with (line 4) | def styled_form_with(**options, &block) function icon (line 9) | def icon(key, size: "md", color: "default", custom: false, as_button: ... function hex_with_alpha (line 31) | def hex_with_alpha(hex, alpha) function title (line 36) | def title(page_title) function header_title (line 40) | def header_title(page_title) function header_description (line 44) | def header_description(page_description) function page_active? (line 48) | def page_active?(path) function format_date (line 53) | def format_date(object, format = :default, options = {}) function format_money (line 65) | def format_money(number_or_money, options = {}) function totals_by_currency (line 71) | def totals_by_currency(collection:, money_method:, separator: " | ", n... function show_super_admin_bar? (line 78) | def show_super_admin_bar? function markdown (line 87) | def markdown(text) function calculate_total (line 112) | def calculate_total(item, money_method, negate) FILE: app/helpers/categories_helper.rb type CategoriesHelper (line 1) | module CategoriesHelper function transfer_category (line 2) | def transfer_category function payment_category (line 9) | def payment_category function trade_category (line 16) | def trade_category function family_categories (line 22) | def family_categories FILE: app/helpers/chats_helper.rb type ChatsHelper (line 1) | module ChatsHelper function chat_frame (line 2) | def chat_frame function chat_view_path (line 6) | def chat_view_path(chat) FILE: app/helpers/custom_confirm.rb class CustomConfirm (line 3) | class CustomConfirm method for_resource_deletion (line 5) | def for_resource_deletion(resource_name, high_severity: false) method initialize (line 16) | def initialize(title: default_title, body: default_body, btn_text: def... method to_data_attribute (line 23) | def to_data_attribute method derive_btn_variant (line 35) | def derive_btn_variant(destructive, high_severity) method default_title (line 40) | def default_title method default_body (line 44) | def default_body method default_btn_text (line 48) | def default_btn_text FILE: app/helpers/entries_helper.rb type EntriesHelper (line 1) | module EntriesHelper function entries_by_date (line 2) | def entries_by_date(entries, totals: false) function entry_name_detailed (line 32) | def entry_name_detailed(entry) FILE: app/helpers/imports_helper.rb type ImportsHelper (line 1) | module ImportsHelper function mapping_label (line 2) | def mapping_label(mapping_class) function import_col_label (line 11) | def import_col_label(key) function dry_run_resource (line 29) | def dry_run_resource(key) function permitted_import_configuration_path (line 40) | def permitted_import_configuration_path(import) function cell_class (line 48) | def cell_class(row, field) function cell_is_valid? (line 58) | def cell_is_valid?(row, field) function permitted_import_types (line 64) | def permitted_import_types FILE: app/helpers/languages_helper.rb type LanguagesHelper (line 1) | module LanguagesHelper function country_options (line 353) | def country_options function language_options (line 357) | def language_options function timezone_options (line 367) | def timezone_options FILE: app/helpers/mfa_helper.rb type MfaHelper (line 1) | module MfaHelper function generate_mfa_qr_code (line 2) | def generate_mfa_qr_code(provisioning_uri) FILE: app/helpers/settings_helper.rb type SettingsHelper (line 1) | module SettingsHelper function adjacent_setting (line 19) | def adjacent_setting(current_path, offset) function settings_section (line 36) | def settings_section(title:, subtitle: nil, &block) function settings_nav_footer (line 41) | def settings_nav_footer function settings_nav_footer_mobile (line 51) | def settings_nav_footer_mobile function not_self_hosted? (line 62) | def not_self_hosted? FILE: app/helpers/styled_form_builder.rb class StyledFormBuilder (line 1) | class StyledFormBuilder < ActionView::Helpers::FormBuilder method radio_button (line 17) | def radio_button(method, tag_value, options = {}) method select (line 22) | def select(method, choices, options = {}, html_options = {}) method collection_select (line 30) | def collection_select(method, collection, value_method, text_method, o... method money_field (line 38) | def money_field(amount_method, options = {}) method toggle (line 47) | def toggle(method, options = {}, checked_value = "1", unchecked_value ... method submit (line 65) | def submit(value = nil, options = {}) method build_field (line 79) | def build_field(method, options = {}, html_options = {}, &block) method normalize_options (line 108) | def normalize_options(options, html_options) method build_label (line 112) | def build_label(method, options) method build_tooltip (line 128) | def build_tooltip(tooltip_text) FILE: app/helpers/transactions_helper.rb type TransactionsHelper (line 1) | module TransactionsHelper function transaction_search_filters (line 2) | def transaction_search_filters function get_transaction_search_filter_partial_path (line 14) | def get_transaction_search_filter_partial_path(filter) function get_default_transaction_search_filter (line 18) | def get_default_transaction_search_filter FILE: app/javascript/controllers/app_layout_controller.js method openMobileSidebar (line 13) | openMobileSidebar() { method closeMobileSidebar (line 17) | closeMobileSidebar() { method toggleLeftSidebar (line 21) | toggleLeftSidebar() { method toggleRightSidebar (line 27) | toggleRightSidebar() { method #toggleSidebarWidth (line 33) | #toggleSidebarWidth(el, isCurrentlyOpen) { method #updateUserPreference (line 43) | #updateUserPreference(field, value) { FILE: app/javascript/controllers/auto_submit_form_controller.js method connect (line 11) | connect() { method disconnect (line 18) | disconnect() { method #getTriggerEvent (line 34) | #getTriggerEvent(element) { method #debounceTimeout (line 78) | #debounceTimeout(element) { FILE: app/javascript/controllers/budget_form_controller.js method toggleAutoFill (line 5) | toggleAutoFill(e) { method #fillField (line 18) | #fillField(id, value) { method #clearField (line 22) | #clearField(id) { FILE: app/javascript/controllers/bulk_select_controller.js method connect (line 18) | connect() { method disconnect (line 24) | disconnect() { method bulkEditDrawerHeaderTargetConnected (line 28) | bulkEditDrawerHeaderTargetConnected(element) { method submitBulkRequest (line 35) | submitBulkRequest(e) { method togglePageSelection (line 46) | togglePageSelection(e) { method toggleGroupSelection (line 54) | toggleGroupSelection(e) { method toggleRowSelection (line 66) | toggleRowSelection(e) { method deselectAll (line 74) | deselectAll() { method selectedIdsValueChanged (line 81) | selectedIdsValueChanged() { method _addHiddenFormInputsForSelectedIds (line 85) | _addHiddenFormInputsForSelectedIds(form, paramName, transactionIds) { method _resetFormInputs (line 97) | _resetFormInputs(form, paramName) { method _rowsForGroup (line 102) | _rowsForGroup(group) { method _addToSelection (line 108) | _addToSelection(idToAdd) { method _removeFromSelection (line 114) | _removeFromSelection(idToRemove) { method _selectAll (line 120) | _selectAll() { method _updateSelectionBar (line 132) | _updateSelectionBar() { method _pluralizedResourceName (line 140) | _pluralizedResourceName() { method _updateGroups (line 148) | _updateGroups() { method _updateRows (line 160) | _updateRows() { FILE: app/javascript/controllers/category_controller.js method initialize (line 25) | initialize() { method initPicker (line 52) | initPicker() { method updateAvatarColors (line 87) | updateAvatarColors(color) { method handleIconColorChange (line 92) | handleIconColorChange(e) { method handleIconChange (line 107) | handleIconChange(e) { method updateSelectedIconColor (line 118) | updateSelectedIconColor(color) { method handleColorChange (line 126) | handleColorChange(e) { method handleContrastValidation (line 134) | handleContrastValidation(contrastRatio) { method autoAdjust (line 147) | autoAdjust(e) { method handleParentChange (line 153) | handleParentChange(e) { method backgroundColor (line 160) | backgroundColor([r, g, b, a], percentage) { method luminance (line 173) | luminance([r, g, b]) { method contrast (line 183) | contrast(foregroundColor, backgroundColor) { method darkenColor (line 190) | darkenColor(color) { method showPaletteSection (line 211) | showPaletteSection() { method showColorsSection (line 220) | showColorsSection() { method toggleSections (line 230) | toggleSections() { method updatePopupPosition (line 244) | updatePopupPosition() { method #backgroundColor (line 259) | #backgroundColor(color) { FILE: app/javascript/controllers/chat_controller.js method connect (line 6) | connect() { method disconnect (line 10) | disconnect() { method autoResize (line 16) | autoResize() { method submitSampleQuestion (line 27) | submitSampleQuestion(e) { method handleInputKeyDown (line 36) | handleInputKeyDown(e) { method #configureAutoScroll (line 43) | #configureAutoScroll() { FILE: app/javascript/controllers/clipboard_controller.js method copy (line 6) | copy(event) { method showSuccess (line 20) | showSuccess() { FILE: app/javascript/controllers/color_avatar_controller.js method connect (line 8) | connect() { method disconnect (line 12) | disconnect() { method handleColorChange (line 22) | handleColorChange(e) { FILE: app/javascript/controllers/color_select_controller.js method connect (line 7) | connect() { method select (line 11) | select({ target }) { method selectionValueChanged (line 15) | selectionValueChanged() { method #renderOptions (line 26) | #renderOptions() { method #check (line 32) | #check(option) { method #uncheck (line 41) | #uncheck(option) { method #options (line 46) | get #options() { function hexToRGBA (line 51) | function hexToRGBA(hex, alpha = 1) { FILE: app/javascript/controllers/confirm_dialog_controller.js method handleConfirm (line 8) | handleConfirm(rawData) { method #prepareDialog (line 27) | #prepareDialog(data) { method #normalizeRawData (line 46) | #normalizeRawData(rawData) { FILE: app/javascript/controllers/deletion_controller.js method chooseSubmitButton (line 15) | chooseSubmitButton() { FILE: app/javascript/controllers/donut_chart_controller.js method connect (line 18) | connect() { method disconnect (line 24) | disconnect() { method #data (line 30) | get #data() { method #teardown (line 60) | #teardown() { method #draw (line 64) | #draw() { method #handleSegmentHover (line 127) | #handleSegmentHover(event) { FILE: app/javascript/controllers/element_removal_controller.js method remove (line 5) | remove() { FILE: app/javascript/controllers/file_upload_controller.js method connect (line 6) | connect() { method disconnect (line 18) | disconnect() { method triggerFileInput (line 28) | triggerFileInput() { method fileSelected (line 34) | fileSelected() { method formSubmitting (line 56) | formSubmitting() { FILE: app/javascript/controllers/hotkey_controller.js method connect (line 6) | connect() { method disconnect (line 10) | disconnect() { method navigateBack (line 14) | navigateBack(event) { FILE: app/javascript/controllers/import_controller.js method connect (line 17) | connect() { method handleAmountTypeStrategyChange (line 26) | handleAmountTypeStrategyChange(event) { method handleAmountTypeChange (line 42) | handleAmountTypeChange(event) { method #showAmountTypeValueTargets (line 48) | #showAmountTypeValueTargets(amountTypeColumnKey) { method #uniqueValuesForColumn (line 75) | #uniqueValuesForColumn(column) { method #enableCustomColumnFieldset (line 81) | #enableCustomColumnFieldset() { method #enableSignedAmountFieldset (line 100) | #enableSignedAmountFieldset() { FILE: app/javascript/controllers/intercom_controller.js method show (line 5) | show() { FILE: app/javascript/controllers/list_filter_controller.js method connect (line 7) | connect() { method filter (line 11) | filter() { FILE: app/javascript/controllers/list_keyboard_navigation_controller.js method focusPrevious (line 5) | focusPrevious() { method focusNext (line 9) | focusNext() { method focusLinkTargetInDirection (line 13) | focusLinkTargetInDirection(direction) { method getLinkTargetInDirection (line 18) | getLinkTargetInDirection(direction) { method indexOfLastFocus (line 26) | indexOfLastFocus(targets = this.focusableLinks) { method focusableLinks (line 37) | get focusableLinks() { FILE: app/javascript/controllers/mobile_cell_interaction_controller.js method connect (line 12) | connect() { method disconnect (line 17) | disconnect() { method handleDocumentClick (line 23) | handleDocumentClick(event) { method highlightCell (line 32) | highlightCell(event) { method unhighlightCell (line 40) | unhighlightCell(event) { method handleCellTouch (line 50) | handleCellTouch(event) { method toggleErrorMessage (line 73) | toggleErrorMessage(event) { method showErrorTooltip (line 104) | showErrorTooltip() { method hideAllErrorTooltips (line 119) | hideAllErrorTooltips() { method hideAllTooltipsExcept (line 126) | hideAllTooltipsExcept(tooltipToKeep) { method selectCell (line 134) | selectCell(event) { method findHighlightForField (line 145) | findHighlightForField(field) { FILE: app/javascript/controllers/money_field_controller.js method handleCurrencyChange (line 9) | handleCurrencyChange(e) { method updateAmount (line 14) | updateAmount(currency) { FILE: app/javascript/controllers/onboarding_controller.js method setLocale (line 5) | setLocale(event) { method setDateFormat (line 9) | setDateFormat(event) { method setCurrency (line 13) | setCurrency(event) { method setTheme (line 17) | setTheme(event) { method refreshWithParam (line 21) | refreshWithParam(key, value) { FILE: app/javascript/controllers/password_validator_controller.js method connect (line 7) | connect() { method validate (line 11) | validate() { method validateRequirementText (line 37) | validateRequirementText(type, isValid) { method updateBlockLines (line 51) | updateBlockLines(requirementsMet) { FILE: app/javascript/controllers/password_visibility_controller.js method connect (line 7) | connect() { method toggle (line 11) | toggle() { FILE: app/javascript/controllers/plaid_controller.js method connect (line 12) | connect() { method open (line 16) | open() { FILE: app/javascript/controllers/preserve_scroll_controller.js method connect (line 12) | connect() { method disconnect (line 21) | disconnect() { method preserveScroll (line 27) | preserveScroll() { method restoreScroll (line 36) | restoreScroll(event) { FILE: app/javascript/controllers/profile_image_preview_controller.js method clearFileInput (line 16) | clearFileInput() { method showFileInputPreview (line 31) | showFileInputPreview(event) { FILE: app/javascript/controllers/rule/actions_controller.js method remove (line 13) | remove(e) { method handleActionTypeChange (line 22) | handleActionTypeChange(e) { method #hideActionValue (line 40) | #hideActionValue() { method #clearFormFields (line 44) | #clearFormFields() { method #buildSelectFor (line 49) | #buildSelectFor(actionExecutor) { method #buildTextInputFor (line 78) | #buildTextInputFor() { FILE: app/javascript/controllers/rule/conditions_controller.js method addSubCondition (line 14) | addSubCondition() { method remove (line 23) | remove(e) { method handleConditionTypeChange (line 43) | handleConditionTypeChange(e) { method valueInputEl (line 57) | get valueInputEl() { method #updateOperatorsField (line 64) | #updateOperatorsField(conditionFilter) { method #buildSelectFor (line 75) | #buildSelectFor(conditionFilter) { method #buildTextInputFor (line 88) | #buildTextInputFor(conditionFilter) { method #convertFormFieldTo (line 99) | #convertFormFieldTo(type, el) { method #uniqueKey (line 112) | #uniqueKey() { FILE: app/javascript/controllers/rules_controller.js method connect (line 14) | connect() { method addConditionGroup (line 19) | addConditionGroup() { method addCondition (line 27) | addCondition() { method addAction (line 35) | addAction() { method clearEffectiveDate (line 39) | clearEffectiveDate() { method #appendTemplate (line 43) | #appendTemplate(templateEl, listEl) { method #uniqueKey (line 52) | #uniqueKey() { method updateConditionPrefixes (line 58) | updateConditionPrefixes() { FILE: app/javascript/controllers/sankey_chart_controller.js method connect (line 14) | connect() { method disconnect (line 20) | disconnect() { method #draw (line 24) | #draw() { FILE: app/javascript/controllers/scroll_on_connect_controller.js method connect (line 9) | connect() { method scrollToActiveItem (line 15) | scrollToActiveItem() { FILE: app/javascript/controllers/selectable_link_controller.js method connect (line 5) | connect() { method disconnect (line 9) | disconnect() { method handleChange (line 13) | handleChange(event) { FILE: app/javascript/controllers/theme_controller.js method connect (line 6) | connect() { method disconnect (line 10) | disconnect() { method userPreferenceValueChanged (line 15) | userPreferenceValueChanged() { method updateTheme (line 20) | updateTheme(event) { method applyTheme (line 32) | applyTheme() { method setTheme (line 43) | setTheme(isDark) { method systemPrefersDark (line 51) | systemPrefersDark() { method toggle (line 62) | toggle() { method startSystemThemeListener (line 71) | startSystemThemeListener() { method stopSystemThemeListener (line 79) | stopSystemThemeListener() { FILE: app/javascript/controllers/time_series_chart_controller.js method connect (line 22) | connect() { method disconnect (line 28) | disconnect() { method _teardown (line 39) | _teardown() { method _install (line 48) | _install() { method _normalizeDataPoints (line 54) | _normalizeDataPoints() { method _rememberInitialContainerSize (line 63) | _rememberInitialContainerSize() { method _draw (line 68) | _draw() { method _drawEmpty (line 76) | _drawEmpty() { method _drawDashedLineEmptyState (line 84) | _drawDashedLineEmptyState() { method _drawCenteredCircleEmptyState (line 95) | _drawCenteredCircleEmptyState() { method _drawChart (line 105) | _drawChart() { method _drawTrendline (line 119) | _drawTrendline() { method _installTrendlineSplit (line 133) | _installTrendlineSplit() { method _setTrendlineSplitAt (line 171) | _setTrendlineSplitAt(percent) { method _drawXAxisLabels (line 190) | _drawXAxisLabels() { method _drawGradientBelowTrendline (line 222) | _drawGradientBelowTrendline() { method _drawTooltip (line 274) | _drawTooltip() { method _trackMouseForShowingTooltip (line 284) | _trackMouseForShowingTooltip() { method _tooltipTemplate (line 375) | _tooltipTemplate(datum) { method _getTrendIcon (line 401) | _getTrendIcon(datum) { method _createMainSvg (line 436) | _createMainSvg() { method _createMainGroup (line 449) | _createMainGroup() { method _d3Svg (line 455) | get _d3Svg() { method _d3Group (line 462) | get _d3Group() { method _margin (line 469) | get _margin() { method _d3ContainerWidth (line 476) | get _d3ContainerWidth() { method _d3ContainerHeight (line 482) | get _d3ContainerHeight() { method _d3Container (line 488) | get _d3Container() { method _trendColor (line 492) | get _trendColor() { method _d3Line (line 496) | get _d3Line() { method _d3XScale (line 503) | get _d3XScale() { method _d3YScale (line 510) | get _d3YScale() { method _setupResizeObserver (line 564) | _setupResizeObserver() { FILE: app/javascript/controllers/tooltip_controller.js method connect (line 19) | connect() { method disconnect (line 26) | disconnect() { method addEventListeners (line 31) | addEventListeners() { method removeEventListeners (line 36) | removeEventListeners() { method startAutoUpdate (line 50) | startAutoUpdate() { method stopAutoUpdate (line 60) | stopAutoUpdate() { method update (line 67) | update() { FILE: app/javascript/controllers/trade_form_controller.js method changeType (line 6) | async changeType(event) { FILE: app/javascript/controllers/transfer_match_controller.js method update (line 7) | update(event) { FILE: app/javascript/controllers/turbo_frame_timeout_controller.js method connect (line 7) | connect() { method disconnect (line 16) | disconnect() { method clearTimeout (line 20) | clearTimeout() { method handleTimeout (line 27) | handleTimeout() { FILE: app/javascript/services/currencies_service.js class CurrenciesService (line 1) | class CurrenciesService { method get (line 2) | get(id) { FILE: app/jobs/application_job.rb class ApplicationJob (line 1) | class ApplicationJob < ActiveJob::Base FILE: app/jobs/assistant_response_job.rb class AssistantResponseJob (line 1) | class AssistantResponseJob < ApplicationJob method perform (line 4) | def perform(message) FILE: app/jobs/auto_categorize_job.rb class AutoCategorizeJob (line 1) | class AutoCategorizeJob < ApplicationJob method perform (line 4) | def perform(family, transaction_ids: []) FILE: app/jobs/auto_detect_merchants_job.rb class AutoDetectMerchantsJob (line 1) | class AutoDetectMerchantsJob < ApplicationJob method perform (line 4) | def perform(family, transaction_ids: []) FILE: app/jobs/data_cache_clear_job.rb class DataCacheClearJob (line 1) | class DataCacheClearJob < ApplicationJob method perform (line 4) | def perform(family) FILE: app/jobs/destroy_job.rb class DestroyJob (line 1) | class DestroyJob < ApplicationJob method perform (line 4) | def perform(model) FILE: app/jobs/family_data_export_job.rb class FamilyDataExportJob (line 1) | class FamilyDataExportJob < ApplicationJob method perform (line 4) | def perform(family_export) FILE: app/jobs/family_reset_job.rb class FamilyResetJob (line 1) | class FamilyResetJob < ApplicationJob method perform (line 4) | def perform(family) FILE: app/jobs/import_job.rb class ImportJob (line 1) | class ImportJob < ApplicationJob method perform (line 4) | def perform(import) FILE: app/jobs/import_market_data_job.rb class ImportMarketDataJob (line 10) | class ImportMarketDataJob < ApplicationJob method perform (line 13) | def perform(opts) FILE: app/jobs/revert_import_job.rb class RevertImportJob (line 1) | class RevertImportJob < ApplicationJob method perform (line 4) | def perform(import) FILE: app/jobs/rule_job.rb class RuleJob (line 1) | class RuleJob < ApplicationJob method perform (line 4) | def perform(rule, ignore_attribute_locks: false) FILE: app/jobs/security_health_check_job.rb class SecurityHealthCheckJob (line 1) | class SecurityHealthCheckJob < ApplicationJob method perform (line 4) | def perform FILE: app/jobs/stripe_event_handler_job.rb class StripeEventHandlerJob (line 1) | class StripeEventHandlerJob < ApplicationJob method perform (line 4) | def perform(event_id) FILE: app/jobs/sync_cleaner_job.rb class SyncCleanerJob (line 1) | class SyncCleanerJob < ApplicationJob method perform (line 4) | def perform FILE: app/jobs/sync_job.rb class SyncJob (line 1) | class SyncJob < ApplicationJob method perform (line 4) | def perform(sync) FILE: app/jobs/user_purge_job.rb class UserPurgeJob (line 1) | class UserPurgeJob < ApplicationJob method perform (line 4) | def perform(user) FILE: app/mailers/application_mailer.rb class ApplicationMailer (line 1) | class ApplicationMailer < ActionMailer::Base FILE: app/mailers/email_confirmation_mailer.rb class EmailConfirmationMailer (line 1) | class EmailConfirmationMailer < ApplicationMailer method confirmation_email (line 7) | def confirmation_email FILE: app/mailers/invitation_mailer.rb class InvitationMailer (line 1) | class InvitationMailer < ApplicationMailer method invite_email (line 2) | def invite_email(invitation) FILE: app/mailers/password_mailer.rb class PasswordMailer (line 1) | class PasswordMailer < ApplicationMailer method password_reset (line 2) | def password_reset FILE: app/models/account.rb class Account (line 1) | class Account < ApplicationRecord method create_and_sync (line 58) | def create_and_sync(attributes) method institution_domain (line 76) | def institution_domain method destroy_later (line 91) | def destroy_later method destroy (line 97) | def destroy method current_holdings (line 106) | def current_holdings method start_date (line 117) | def start_date method lock_saved_attributes! (line 122) | def lock_saved_attributes! method first_valuation (line 127) | def first_valuation method first_valuation_amount (line 131) | def first_valuation_amount method short_subtype_label (line 136) | def short_subtype_label method long_subtype_label (line 141) | def long_subtype_label method balance_type (line 151) | def balance_type FILE: app/models/account/activity_feed_data.rb class Account::ActivityFeedData (line 4) | class Account::ActivityFeedData method initialize (line 9) | def initialize(account, entries) method entries_by_date (line 14) | def entries_by_date method balance_for_date (line 28) | def balance_for_date(date) method transfers_for_date (line 32) | def transfers_for_date(date) method grouped_entries (line 36) | def grouped_entries method balances_by_date (line 40) | def balances_by_date method transfers_by_date (line 51) | def transfers_by_date method transaction_ids (line 79) | def transaction_ids FILE: app/models/account/anchorable.rb type Account::Anchorable (line 3) | module Account::Anchorable function set_opening_anchor_balance (line 12) | def set_opening_anchor_balance(**opts) function opening_anchor_date (line 18) | def opening_anchor_date function opening_anchor_balance (line 22) | def opening_anchor_balance function has_opening_anchor? (line 26) | def has_opening_anchor? function set_current_balance (line 30) | def set_current_balance(balance) function current_anchor_balance (line 36) | def current_anchor_balance function current_anchor_date (line 40) | def current_anchor_date function has_current_anchor? (line 44) | def has_current_anchor? function opening_balance_manager (line 49) | def opening_balance_manager function current_balance_manager (line 53) | def current_balance_manager FILE: app/models/account/chartable.rb type Account::Chartable (line 1) | module Account::Chartable function favorable_direction (line 4) | def favorable_direction function balance_series (line 8) | def balance_series(period: Period.last_30_days, view: :balance, interv... function sparkline_series (line 26) | def sparkline_series FILE: app/models/account/current_balance_manager.rb class Account::CurrentBalanceManager (line 1) | class Account::CurrentBalanceManager method initialize (line 6) | def initialize(account) method has_current_anchor? (line 10) | def has_current_anchor? method current_balance (line 16) | def current_balance method current_date (line 25) | def current_date method set_current_balance (line 33) | def set_current_balance(balance) method opening_balance_manager (line 51) | def opening_balance_manager method reconciliation_manager (line 55) | def reconciliation_manager method set_current_balance_for_manual_account (line 69) | def set_current_balance_for_manual_account(balance) method adjust_opening_balance_with_delta (line 83) | def adjust_opening_balance_with_delta(new_balance:, old_balance:) method set_current_balance_for_linked_account (line 95) | def set_current_balance_for_linked_account(balance) method current_anchor_valuation (line 105) | def current_anchor_valuation method create_current_anchor (line 109) | def create_current_anchor(balance) method update_current_anchor (line 119) | def update_current_anchor(balance) FILE: app/models/account/linkable.rb type Account::Linkable (line 1) | module Account::Linkable function linked? (line 9) | def linked? function unlinked? (line 15) | def unlinked? FILE: app/models/account/market_data_importer.rb class Account::MarketDataImporter (line 1) | class Account::MarketDataImporter method initialize (line 4) | def initialize(account) method import_all (line 8) | def import_all method import_exchange_rates (line 13) | def import_exchange_rates method import_security_prices (line 45) | def import_security_prices method first_required_price_date (line 64) | def first_required_price_date(security) method needs_exchange_rates? (line 71) | def needs_exchange_rates? method has_multi_currency_entries? (line 75) | def has_multi_currency_entries? method foreign_account? (line 79) | def foreign_account? FILE: app/models/account/opening_balance_manager.rb class Account::OpeningBalanceManager (line 1) | class Account::OpeningBalanceManager method initialize (line 4) | def initialize(account) method has_opening_anchor? (line 8) | def has_opening_anchor? method opening_date (line 13) | def opening_date method opening_balance (line 22) | def opening_balance method set_opening_balance (line 26) | def set_opening_balance(balance:, date: nil) method opening_anchor_valuation (line 49) | def opening_anchor_valuation method oldest_entry_date (line 53) | def oldest_entry_date method default_date (line 57) | def default_date method create_opening_anchor (line 65) | def create_opening_anchor(balance:, date:) method update_opening_anchor (line 77) | def update_opening_anchor(balance:, date: nil) FILE: app/models/account/reconcileable.rb type Account::Reconcileable (line 1) | module Account::Reconcileable function create_reconciliation (line 4) | def create_reconciliation(balance:, date:, dry_run: false) function update_reconciliation (line 10) | def update_reconciliation(existing_valuation_entry, balance:, date:, d... function reconciliation_manager (line 17) | def reconciliation_manager FILE: app/models/account/reconciliation_manager.rb class Account::ReconciliationManager (line 1) | class Account::ReconciliationManager method initialize (line 4) | def initialize(account) method reconcile_balance (line 9) | def reconcile_balance(balance:, date: Date.current, dry_run: false, ex... method prepare_reconciliation (line 44) | def prepare_reconciliation(balance, date, existing_valuation) method derived_cash_balance (line 61) | def derived_cash_balance(date:, total_balance:) method old_balance_components (line 73) | def old_balance_components(reconciliation_date:, existing_valuation_en... method get_balance_components_for_date (line 81) | def get_balance_components_for_date(date) FILE: app/models/account/sync_complete_event.rb class Account::SyncCompleteEvent (line 1) | class Account::SyncCompleteEvent method initialize (line 6) | def initialize(account) method broadcast (line 10) | def broadcast method sidebar_targets (line 43) | def sidebar_targets method account_group (line 54) | def account_group method family_balance_sheet (line 60) | def family_balance_sheet FILE: app/models/account/syncer.rb class Account::Syncer (line 1) | class Account::Syncer method initialize (line 4) | def initialize(account) method perform_sync (line 8) | def perform_sync(sync) method perform_post_sync (line 14) | def perform_post_sync method materialize_balances (line 19) | def materialize_balances method import_market_data (line 31) | def import_market_data FILE: app/models/account_import.rb class AccountImport (line 1) | class AccountImport < Import method import! (line 4) | def import! method mapping_steps (line 31) | def mapping_steps method required_column_keys (line 35) | def required_column_keys method column_keys (line 39) | def column_keys method dry_run (line 43) | def dry_run method csv_template (line 49) | def csv_template method max_row_count (line 60) | def max_row_count FILE: app/models/address.rb class Address (line 1) | class Address < ApplicationRecord method to_s (line 4) | def to_s FILE: app/models/api_key.rb class ApiKey (line 1) | class ApiKey < ApplicationRecord method find_by_value (line 25) | def self.find_by_value(plain_key) method generate_secure_key (line 34) | def self.generate_secure_key method active? (line 39) | def active? method revoked? (line 43) | def revoked? method expired? (line 47) | def expired? method key_matches? (line 51) | def key_matches?(plain_key) method revoke! (line 55) | def revoke! method update_last_used! (line 59) | def update_last_used! method plain_key (line 64) | def plain_key method set_display_key (line 73) | def set_display_key method scopes_not_empty (line 79) | def scopes_not_empty method one_active_key_per_user_per_source (line 89) | def one_active_key_per_user_per_source FILE: app/models/application_record.rb class ApplicationRecord (line 1) | class ApplicationRecord < ActiveRecord::Base FILE: app/models/assistant.rb class Assistant (line 1) | class Assistant method for_chat (line 7) | def for_chat(chat) method initialize (line 13) | def initialize(chat, instructions: nil, functions: []) method respond_to (line 19) | def respond_to(message) method function_tool_caller (line 68) | def function_tool_caller FILE: app/models/assistant/broadcastable.rb type Assistant::Broadcastable (line 1) | module Assistant::Broadcastable function update_thinking (line 5) | def update_thinking(thought) function stop_thinking (line 9) | def stop_thinking FILE: app/models/assistant/configurable.rb type Assistant::Configurable (line 1) | module Assistant::Configurable function config_for (line 5) | def config_for(chat) function default_functions (line 16) | def default_functions function default_instructions (line 25) | def default_instructions(preferred_currency, preferred_date_format) FILE: app/models/assistant/function.rb class Assistant::Function (line 1) | class Assistant::Function method name (line 3) | def name method description (line 7) | def description method initialize (line 12) | def initialize(user) method call (line 16) | def call(params = {}) method name (line 20) | def name method description (line 24) | def description method params_schema (line 28) | def params_schema method strict_mode? (line 33) | def strict_mode? method to_definition (line 37) | def to_definition method build_schema (line 49) | def build_schema(properties: {}, required: []) method family_account_names (line 58) | def family_account_names method family_category_names (line 62) | def family_category_names method family_merchant_names (line 70) | def family_merchant_names method family_tag_names (line 74) | def family_tag_names method family (line 78) | def family method to_ai_time_series (line 84) | def to_ai_time_series(series) FILE: app/models/assistant/function/get_accounts.rb class Assistant::Function::GetAccounts (line 1) | class Assistant::Function::GetAccounts < Assistant::Function method name (line 3) | def name method description (line 7) | def description method call (line 12) | def call(params = {}) method historical_balances (line 33) | def historical_balances(account) FILE: app/models/assistant/function/get_balance_sheet.rb class Assistant::Function::GetBalanceSheet (line 1) | class Assistant::Function::GetBalanceSheet < Assistant::Function method name (line 5) | def name method description (line 9) | def description method call (line 20) | def call(params = {}) method historical_data (line 46) | def historical_data(period, classification: nil) method insights_data (line 67) | def insights_data FILE: app/models/assistant/function/get_income_statement.rb class Assistant::Function::GetIncomeStatement (line 1) | class Assistant::Function::GetIncomeStatement < Assistant::Function method name (line 5) | def name method description (line 9) | def description method call (line 30) | def call(params = {}) method params_schema (line 53) | def params_schema method format_money (line 70) | def format_money(value) method calculate_savings_rate (line 74) | def calculate_savings_rate(total_income, total_expenses) method to_ai_category_totals (line 81) | def to_ai_category_totals(category_totals) method get_insights (line 110) | def get_insights(income_data, expense_data) FILE: app/models/assistant/function/get_transactions.rb class Assistant::Function::GetTransactions (line 1) | class Assistant::Function::GetTransactions < Assistant::Function method default_page_size (line 5) | def default_page_size method name (line 9) | def name method description (line 13) | def description method strict_mode? (line 65) | def strict_mode? method params_schema (line 69) | def params_schema method call (line 134) | def call(params = {}) method default_page_size (line 183) | def default_page_size FILE: app/models/assistant/function_tool_caller.rb class Assistant::FunctionToolCaller (line 1) | class Assistant::FunctionToolCaller method initialize (line 7) | def initialize(functions = []) method fulfill_requests (line 11) | def fulfill_requests(function_requests) method function_definitions (line 19) | def function_definitions method execute (line 24) | def execute(function_request) method find_function (line 34) | def find_function(function_request) FILE: app/models/assistant/provided.rb type Assistant::Provided (line 1) | module Assistant::Provided function get_model_provider (line 4) | def get_model_provider(ai_model) function registry (line 9) | def registry FILE: app/models/assistant/responder.rb class Assistant::Responder (line 1) | class Assistant::Responder method initialize (line 2) | def initialize(message:, instructions:, function_tool_caller:, llm:) method on (line 9) | def on(event_name, &block) method respond (line 13) | def respond(previous_response_id: nil) method handle_follow_up_response (line 36) | def handle_follow_up_response(response) method get_llm_response (line 62) | def get_llm_response(streamer:, function_results: [], previous_respons... method emit (line 80) | def emit(event_name, payload = nil) method listeners (line 84) | def listeners FILE: app/models/assistant_message.rb class AssistantMessage (line 1) | class AssistantMessage < Message method role (line 4) | def role method append_text! (line 8) | def append_text!(text) FILE: app/models/balance.rb class Balance (line 1) | class Balance < ApplicationRecord method balance_trend (line 18) | def balance_trend method favorable_direction (line 28) | def favorable_direction FILE: app/models/balance/base_calculator.rb class Balance::BaseCalculator (line 1) | class Balance::BaseCalculator method initialize (line 4) | def initialize(account) method calculate (line 8) | def calculate method sync_cache (line 13) | def sync_cache method holdings_value_for_date (line 17) | def holdings_value_for_date(date) method derive_cash_balance_on_date_from_total (line 22) | def derive_cash_balance_on_date_from_total(total_balance:, date:) method cash_adjustments_for_date (line 32) | def cash_adjustments_for_date(start_cash, end_cash, net_cash_flows) method non_cash_adjustments_for_date (line 38) | def non_cash_adjustments_for_date(start_non_cash, end_non_cash, non_ca... method market_value_change_on_date (line 47) | def market_value_change_on_date(date, flows) method flows_for_date (line 59) | def flows_for_date(date) method derive_cash_balance (line 93) | def derive_cash_balance(cash_balance, date) method derive_non_cash_balance (line 103) | def derive_non_cash_balance(non_cash_balance, date, direction: :forward) method signed_entry_flows (line 117) | def signed_entry_flows(entries) method build_balance (line 121) | def build_balance(date:, **args) FILE: app/models/balance/chart_series_builder.rb class Balance::ChartSeriesBuilder (line 1) | class Balance::ChartSeriesBuilder method initialize (line 2) | def initialize(account_ids:, currency:, period: Period.last_30_days, i... method balance_series (line 10) | def balance_series method cash_balance_series (line 17) | def cash_balance_series method holdings_balance_series (line 24) | def holdings_balance_series method interval (line 34) | def interval method build_series_for (line 38) | def build_series_for(column) method query_data (line 68) | def query_data method sign_multiplier (line 89) | def sign_multiplier method query (line 93) | def query FILE: app/models/balance/forward_calculator.rb class Balance::ForwardCalculator (line 1) | class Balance::ForwardCalculator < Balance::BaseCalculator method calculate (line 2) | def calculate method calc_start_date (line 55) | def calc_start_date method calc_end_date (line 59) | def calc_end_date method signed_entry_flows (line 67) | def signed_entry_flows(entries) method derive_end_cash_balance (line 73) | def derive_end_cash_balance(start_cash_balance:, date:) method derive_end_non_cash_balance (line 78) | def derive_end_non_cash_balance(start_non_cash_balance:, date:) method flows_factor (line 82) | def flows_factor FILE: app/models/balance/materializer.rb class Balance::Materializer (line 1) | class Balance::Materializer method initialize (line 4) | def initialize(account, strategy:) method materialize_balances (line 9) | def materialize_balances method materialize_holdings (line 26) | def materialize_holdings method update_account_info (line 30) | def update_account_info method calculate_balances (line 54) | def calculate_balances method persist_balances (line 58) | def persist_balances method purge_stale_balances (line 74) | def purge_stale_balances method calculator (line 82) | def calculator FILE: app/models/balance/reverse_calculator.rb class Balance::ReverseCalculator (line 1) | class Balance::ReverseCalculator < Balance::BaseCalculator method calculate (line 2) | def calculate method signed_entry_flows (line 59) | def signed_entry_flows(entries) method derive_start_cash_balance (line 66) | def derive_start_cash_balance(end_cash_balance:, date:) method derive_start_non_cash_balance (line 72) | def derive_start_non_cash_balance(end_non_cash_balance:, date:) method use_opening_anchor_for_date? (line 79) | def use_opening_anchor_for_date?(date) FILE: app/models/balance/sync_cache.rb class Balance::SyncCache (line 1) | class Balance::SyncCache method initialize (line 2) | def initialize(account) method get_valuation (line 6) | def get_valuation(date) method get_holdings (line 10) | def get_holdings(date) method get_entries (line 14) | def get_entries(date) method converted_entries (line 21) | def converted_entries method converted_holdings (line 34) | def converted_holdings FILE: app/models/balance_sheet.rb class BalanceSheet (line 1) | class BalanceSheet method initialize (line 8) | def initialize(family) method assets (line 12) | def assets method liabilities (line 20) | def liabilities method classification_groups (line 28) | def classification_groups method account_groups (line 32) | def account_groups method net_worth (line 36) | def net_worth method net_worth_series (line 40) | def net_worth_series(period: Period.last_30_days) method currency (line 44) | def currency method syncing? (line 48) | def syncing? method sync_status_monitor (line 53) | def sync_status_monitor method account_totals (line 57) | def account_totals method net_worth_series_builder (line 61) | def net_worth_series_builder FILE: app/models/balance_sheet/account_group.rb class BalanceSheet::AccountGroup (line 1) | class BalanceSheet::AccountGroup method initialize (line 8) | def initialize(name:, color:, accountable_type:, accounts:, classifica... method dom_id (line 24) | def dom_id(tab: nil, mobile: false) method key (line 32) | def key method total (line 36) | def total method weight (line 40) | def weight method syncing? (line 46) | def syncing? method classification (line 51) | def classification method currency (line 55) | def currency FILE: app/models/balance_sheet/account_totals.rb class BalanceSheet::AccountTotals (line 1) | class BalanceSheet::AccountTotals method initialize (line 2) | def initialize(family, sync_status_monitor:) method asset_accounts (line 7) | def asset_accounts method liability_accounts (line 11) | def liability_accounts method syncing? (line 19) | def syncing? = is_syncing method to_param (line 22) | def to_param = account.to_param method visible_accounts (line 26) | def visible_accounts method account_rows (line 30) | def account_rows method cache_key (line 40) | def cache_key method query (line 47) | def query FILE: app/models/balance_sheet/classification_group.rb class BalanceSheet::ClassificationGroup (line 1) | class BalanceSheet::ClassificationGroup method initialize (line 8) | def initialize(classification:, currency:, accounts:) method name (line 15) | def name method icon (line 19) | def icon method total (line 23) | def total method syncing? (line 27) | def syncing? method account_groups (line 32) | def account_groups method normalize_classification! (line 57) | def normalize_classification!(classification) FILE: app/models/balance_sheet/net_worth_series_builder.rb class BalanceSheet::NetWorthSeriesBuilder (line 1) | class BalanceSheet::NetWorthSeriesBuilder method initialize (line 2) | def initialize(family) method net_worth_series (line 6) | def net_worth_series(period: Period.last_30_days) method visible_account_ids (line 22) | def visible_account_ids method cache_key (line 26) | def cache_key(period) FILE: app/models/balance_sheet/sync_status_monitor.rb class BalanceSheet::SyncStatusMonitor (line 1) | class BalanceSheet::SyncStatusMonitor method initialize (line 2) | def initialize(family) method syncing? (line 6) | def syncing? method account_syncing? (line 10) | def account_syncing?(account) method syncing_account_ids (line 17) | def syncing_account_ids method cache_key (line 28) | def cache_key FILE: app/models/budget.rb class Budget (line 1) | class Budget < ApplicationRecord method date_to_param (line 18) | def date_to_param(date) method param_to_date (line 22) | def param_to_date(param) method budget_date_valid? (line 26) | def budget_date_valid?(date, family:) method find_or_bootstrap (line 32) | def find_or_bootstrap(family, start_date:) method oldest_valid_budget_date (line 51) | def oldest_valid_budget_date(family) method period (line 59) | def period method to_param (line 63) | def to_param method sync_budget_categories (line 67) | def sync_budget_categories method uncategorized_budget_category (line 86) | def uncategorized_budget_category method transactions (line 93) | def transactions method name (line 97) | def name method initialized? (line 101) | def initialized? method income_category_totals (line 105) | def income_category_totals method expense_category_totals (line 109) | def expense_category_totals method current? (line 113) | def current? method previous_budget_param (line 117) | def previous_budget_param method next_budget_param (line 124) | def next_budget_param method to_donut_segments_json (line 133) | def to_donut_segments_json method estimated_spending (line 153) | def estimated_spending method actual_spending (line 157) | def actual_spending method budget_category_actual_spending (line 161) | def budget_category_actual_spending(budget_category) method category_median_monthly_expense (line 165) | def category_median_monthly_expense(category) method category_avg_monthly_expense (line 169) | def category_avg_monthly_expense(category) method available_to_spend (line 173) | def available_to_spend method percent_of_budget_spent (line 177) | def percent_of_budget_spent method overage_percent (line 183) | def overage_percent method allocated_spending (line 192) | def allocated_spending method allocated_percent (line 196) | def allocated_percent method available_to_allocate (line 202) | def available_to_allocate method allocations_valid? (line 206) | def allocations_valid? method estimated_income (line 213) | def estimated_income method actual_income (line 217) | def actual_income method actual_income_percent (line 221) | def actual_income_percent method remaining_expected_income (line 227) | def remaining_expected_income method surplus_percent (line 231) | def surplus_percent method income_statement (line 238) | def income_statement method expense_totals (line 242) | def expense_totals method income_totals (line 246) | def income_totals FILE: app/models/budget_category.rb class BudgetCategory (line 1) | class BudgetCategory < ApplicationRecord class Group (line 11) | class Group method for (line 17) | def self.for(budget_categories) method initialize (line 25) | def initialize(budget_category, budget_subcategories = []) method uncategorized (line 32) | def uncategorized method initialized? (line 40) | def initialized? method category (line 44) | def category method name (line 48) | def name method actual_spending (line 52) | def actual_spending method avg_monthly_expense (line 56) | def avg_monthly_expense method median_monthly_expense (line 60) | def median_monthly_expense method subcategory? (line 64) | def subcategory? method available_to_spend (line 68) | def available_to_spend method percent_of_budget_spent (line 72) | def percent_of_budget_spent method to_donut_segments_json (line 78) | def to_donut_segments_json method siblings (line 95) | def siblings method max_allocation (line 99) | def max_allocation method subcategories (line 108) | def subcategories method subcategory? (line 116) | def subcategory? FILE: app/models/category.rb class Category (line 1) | class Category < ApplicationRecord class Group (line 31) | class Group method for (line 36) | def self.for(categories) method initialize (line 42) | def initialize(category, subcategories = nil) method icon_codes (line 49) | def icon_codes method bootstrap! (line 53) | def bootstrap! method uncategorized (line 63) | def uncategorized method default_categories (line 72) | def default_categories method inherit_color_from_parent (line 92) | def inherit_color_from_parent method replace_and_destroy! (line 98) | def replace_and_destroy!(replacement) method parent? (line 105) | def parent? method subcategory? (line 109) | def subcategory? method category_level_limit (line 114) | def category_level_limit method nested_category_matches_parent_classification (line 120) | def nested_category_matches_parent_classification method monetizable_currency (line 126) | def monetizable_currency FILE: app/models/chat.rb class Chat (line 1) | class Chat < ApplicationRecord method start! (line 14) | def start!(prompt, model:) method generate_title (line 21) | def generate_title(prompt) method needs_assistant_response? (line 26) | def needs_assistant_response? method retry_last_message! (line 30) | def retry_last_message! method update_latest_response! (line 41) | def update_latest_response!(provider_response_id) method add_error (line 45) | def add_error(e) method clear_error (line 50) | def clear_error method assistant (line 55) | def assistant method ask_assistant_later (line 59) | def ask_assistant_later(message) method ask_assistant (line 64) | def ask_assistant(message) method conversation_messages (line 68) | def conversation_messages FILE: app/models/chat/debuggable.rb type Chat::Debuggable (line 1) | module Chat::Debuggable function debug_mode? (line 4) | def debug_mode? FILE: app/models/concerns/accountable.rb type Accountable (line 1) | module Accountable function from_type (line 9) | def self.from_type(type) function classification (line 21) | def classification function icon (line 25) | def icon function color (line 29) | def color function subtype_label_for (line 34) | def subtype_label_for(subtype, format: :short) function short_subtype_label_for (line 42) | def short_subtype_label_for(subtype) function long_subtype_label_for (line 47) | def long_subtype_label_for(subtype) function favorable_direction (line 51) | def favorable_direction function display_name (line 55) | def display_name function balance_money (line 59) | def balance_money(family) function display_name (line 71) | def display_name function balance_display_name (line 75) | def balance_display_name function opening_balance_display_name (line 79) | def opening_balance_display_name function icon (line 83) | def icon function color (line 87) | def color function classification (line 91) | def classification FILE: app/models/concerns/enrichable.rb type Enrichable (line 12) | module Enrichable function enrich_attribute (line 26) | def enrich_attribute(attr, value, source:, metadata: {}) function enrich_attributes (line 34) | def enrich_attributes(attrs, source:, metadata: {}) function locked? (line 53) | def locked?(attr) function enrichable? (line 57) | def enrichable?(attr) function lock_attr! (line 61) | def lock_attr!(attr) function unlock_attr! (line 65) | def unlock_attr!(attr) function lock_saved_attributes! (line 69) | def lock_saved_attributes! function log_enrichment (line 76) | def log_enrichment(attribute_name:, attribute_value:, source:, metadat... function ignored_enrichable_attributes (line 88) | def ignored_enrichable_attributes FILE: app/models/concerns/monetizable.rb type Monetizable (line 1) | module Monetizable function monetize (line 5) | def monetize(*fields) function monetizable_currency (line 19) | def monetizable_currency FILE: app/models/concerns/syncable.rb type Syncable (line 1) | module Syncable function syncing? (line 8) | def syncing? function sync_later (line 14) | def sync_later(parent_sync: nil, window_start_date: nil, window_end_da... function perform_sync (line 37) | def perform_sync(sync) function perform_post_sync (line 41) | def perform_post_sync function broadcast_sync_complete (line 45) | def broadcast_sync_complete function sync_error (line 49) | def sync_error function last_synced_at (line 53) | def last_synced_at function last_sync_created_at (line 57) | def last_sync_created_at function latest_sync (line 62) | def latest_sync function syncer (line 66) | def syncer function sync_broadcaster (line 70) | def sync_broadcaster FILE: app/models/credit_card.rb class CreditCard (line 1) | class CreditCard < ApplicationRecord method color (line 9) | def color method icon (line 13) | def icon method classification (line 17) | def classification method available_credit_money (line 22) | def available_credit_money method minimum_payment_money (line 26) | def minimum_payment_money method annual_fee_money (line 30) | def annual_fee_money FILE: app/models/crypto.rb class Crypto (line 1) | class Crypto < ApplicationRecord method color (line 5) | def color method classification (line 9) | def classification method icon (line 13) | def icon method display_name (line 17) | def display_name FILE: app/models/current.rb class Current (line 1) | class Current < ActiveSupport::CurrentAttributes method user (line 8) | def user method impersonated_user (line 12) | def impersonated_user method true_user (line 16) | def true_user FILE: app/models/data_enrichment.rb class DataEnrichment (line 1) | class DataEnrichment < ApplicationRecord FILE: app/models/demo/data_cleaner.rb class Demo::DataCleaner (line 2) | class Demo::DataCleaner method initialize (line 5) | def initialize method destroy_everything! (line 10) | def destroy_everything! method ensure_safe_environment! (line 23) | def ensure_safe_environment! FILE: app/models/demo/generator.rb class Demo::Generator (line 1) | class Demo::Generator method initialize (line 11) | def initialize(seed: ENV.fetch("DEMO_DATA_SEED", nil)) method generate_empty_data! (line 33) | def generate_empty_data!(skip_clear: false) method generate_new_user_data! (line 48) | def generate_new_user_data!(skip_clear: false) method generate_default_data! (line 63) | def generate_default_data!(skip_clear: false, email: "user@maybe.local") method with_timing (line 92) | def with_timing(label, max_seconds: nil) method rand (line 107) | def rand(*args) method clear_all_data! (line 113) | def clear_all_data! method create_family_and_users! (line 121) | def create_family_and_users!(family_name, email, onboarded:, subscribed:) method create_realistic_categories! (line 156) | def create_realistic_categories!(family) method create_realistic_accounts! (line 190) | def create_realistic_accounts!(family) method create_realistic_transactions! (line 233) | def create_realistic_transactions!(family) method generate_budget_auto_fill! (line 294) | def generate_budget_auto_fill!(family) method weighted_random_date (line 330) | def weighted_random_date method random_checking_account (line 336) | def random_checking_account method generate_salary_history! (line 343) | def generate_salary_history! method generate_housing_transactions! (line 393) | def generate_housing_transactions! method generate_food_transactions! (line 425) | def generate_food_transactions! method generate_transportation_transactions! (line 451) | def generate_transportation_transactions! method generate_entertainment_transactions! (line 470) | def generate_entertainment_transactions! method generate_shopping_transactions! (line 496) | def generate_shopping_transactions! method generate_healthcare_transactions! (line 514) | def generate_healthcare_transactions! method generate_travel_transactions! (line 532) | def generate_travel_transactions! method generate_personal_care_transactions! (line 557) | def generate_personal_care_transactions! method generate_investment_transactions! (line 573) | def generate_investment_transactions! method generate_401k_trades! (line 583) | def generate_401k_trades!(security) method generate_brokerage_trades! (line 596) | def generate_brokerage_trades!(security) method generate_roth_trades! (line 608) | def generate_roth_trades!(security) method generate_uk_isa_trades! (line 621) | def generate_uk_isa_trades!(security) method collect_payroll_dates (line 633) | def collect_payroll_dates method create_trade_for (line 644) | def create_trade_for(account, security, investment_amount, date, memo,... method generate_major_purchases! (line 650) | def generate_major_purchases! method generate_transfers_and_payments! (line 675) | def generate_transfers_and_payments! method generate_additional_savings_transfers! (line 684) | def generate_additional_savings_transfers! method generate_monthly_ally_transfers! (line 724) | def generate_monthly_ally_transfers! method generate_quarterly_fx_transfers! (line 734) | def generate_quarterly_fx_transfers! method first_business_day (line 744) | def first_business_day(date) method generate_credit_card_cycles! (line 750) | def generate_credit_card_cycles! method generate_credit_card_charges (line 829) | def generate_credit_card_charges(account, base_date, count) method random_expense_category (line 852) | def random_expense_category method create_transaction! (line 856) | def create_transaction!(account, amount, name, category, date) method create_investment_transaction! (line 869) | def create_investment_transaction!(account, security, qty, price, date... method create_transfer! (line 879) | def create_transfer!(from_account, to_account, amount, name, date) method load_securities! (line 897) | def load_securities! method sync_family_accounts! (line 907) | def sync_family_accounts!(family) method pick (line 924) | def pick(array) method jitter (line 934) | def jitter(num, pct = 0.03) method generate_loan_payments! (line 942) | def generate_loan_payments! method make_loan_payment! (line 981) | def make_loan_payment!(principal_account:, principal_amount:, interest... method generate_regular_expenses! (line 990) | def generate_regular_expenses! method generate_micro_transactions! (line 1013) | def generate_micro_transactions! method generate_legacy_transactions! (line 1097) | def generate_legacy_transactions! method generate_crypto_and_misc_assets! (line 1162) | def generate_crypto_and_misc_assets! method reconcile_balances! (line 1171) | def reconcile_balances!(family) FILE: app/models/depository.rb class Depository (line 1) | class Depository < ApplicationRecord method display_name (line 13) | def display_name method color (line 17) | def color method classification (line 21) | def classification method icon (line 25) | def icon FILE: app/models/developer_message.rb class DeveloperMessage (line 1) | class DeveloperMessage < Message method role (line 2) | def role method broadcast? (line 7) | def broadcast? FILE: app/models/entry.rb class Entry (line 1) | class Entry < ApplicationRecord method classification (line 37) | def classification method lock_saved_attributes! (line 41) | def lock_saved_attributes! method sync_account_later (line 46) | def sync_account_later method entryable_name_short (line 51) | def entryable_name_short method balance_trend (line 55) | def balance_trend(entries, balances) method linked? (line 59) | def linked? method search (line 64) | def search(params) method min_supported_date (line 69) | def min_supported_date method bulk_update! (line 73) | def bulk_update!(bulk_update_params) FILE: app/models/entry_search.rb class EntrySearch (line 1) | class EntrySearch method apply_search_filter (line 15) | def apply_search_filter(scope, search) method apply_date_filters (line 25) | def apply_date_filters(scope, start_date, end_date) method apply_amount_filter (line 34) | def apply_amount_filter(scope, amount, amount_operator) method apply_accounts_filter (line 51) | def apply_accounts_filter(scope, accounts, account_ids) method build_query (line 61) | def build_query(scope) FILE: app/models/entryable.rb type Entryable (line 1) | module Entryable function from_type (line 6) | def self.from_type(entryable_type) FILE: app/models/exchange_rate.rb class ExchangeRate (line 1) | class ExchangeRate < ApplicationRecord FILE: app/models/exchange_rate/importer.rb class ExchangeRate::Importer (line 1) | class ExchangeRate::Importer method initialize (line 5) | def initialize(exchange_rate_provider:, from:, to:, start_date:, end_d... method import_provider_rates (line 15) | def import_provider_rates method upsert_rows (line 66) | def upsert_rows(rows) method start_rate_value (line 85) | def start_rate_value method effective_start_date (line 92) | def effective_start_date method provider_rates (line 107) | def provider_rates method all_rates_exist? (line 130) | def all_rates_exist? method expected_count (line 134) | def expected_count method db_count (line 138) | def db_count method db_rates (line 142) | def db_rates method normalize_end_date (line 152) | def normalize_end_date(requested_end_date) FILE: app/models/exchange_rate/provided.rb type ExchangeRate::Provided (line 1) | module ExchangeRate::Provided function provider (line 5) | def provider function find_or_fetch_rate (line 10) | def find_or_fetch_rate(from:, to:, date: Date.current, cache: true) function import_provider_rates (line 31) | def import_provider_rates(from:, to:, start_date:, end_date:, clear_ca... FILE: app/models/family.rb class Family (line 1) | class Family < ApplicationRecord method assigned_merchants (line 39) | def assigned_merchants method auto_categorize_transactions_later (line 44) | def auto_categorize_transactions_later(transactions) method auto_categorize_transactions (line 48) | def auto_categorize_transactions(transaction_ids) method auto_detect_transaction_merchants_later (line 52) | def auto_detect_transaction_merchants_later(transactions) method auto_detect_transaction_merchants (line 56) | def auto_detect_transaction_merchants(transaction_ids) method balance_sheet (line 60) | def balance_sheet method income_statement (line 64) | def income_statement method eu? (line 68) | def eu? method requires_data_provider? (line 72) | def requires_data_provider? method missing_data_provider? (line 87) | def missing_data_provider? method oldest_entry_date (line 91) | def oldest_entry_date method build_cache_key (line 96) | def build_cache_key(key, invalidate_on_data_updates: false) method entries_cache_version (line 110) | def entries_cache_version method self_hoster? (line 117) | def self_hoster? FILE: app/models/family/auto_categorizer.rb class Family::AutoCategorizer (line 1) | class Family::AutoCategorizer method initialize (line 4) | def initialize(family, transaction_ids: []) method auto_categorize (line 9) | def auto_categorize method llm_provider (line 50) | def llm_provider method user_categories_input (line 54) | def user_categories_input method transactions_input (line 66) | def transactions_input method scope (line 78) | def scope FILE: app/models/family/auto_merchant_detector.rb class Family::AutoMerchantDetector (line 1) | class Family::AutoMerchantDetector method initialize (line 4) | def initialize(family, transaction_ids: []) method auto_detect (line 9) | def auto_detect method llm_provider (line 64) | def llm_provider method default_logo_provider_url (line 68) | def default_logo_provider_url method user_merchants_input (line 72) | def user_merchants_input method transactions_input (line 81) | def transactions_input method scope (line 93) | def scope FILE: app/models/family/auto_transfer_matchable.rb type Family::AutoTransferMatchable (line 1) | module Family::AutoTransferMatchable function transfer_match_candidates (line 2) | def transfer_match_candidates function auto_match_transfers! (line 49) | def auto_match_transfers! FILE: app/models/family/data_exporter.rb class Family::DataExporter (line 4) | class Family::DataExporter method initialize (line 5) | def initialize(family) method generate_export (line 9) | def generate_export method generate_accounts_csv (line 40) | def generate_accounts_csv method generate_transactions_csv (line 59) | def generate_transactions_csv method generate_trades_csv (line 81) | def generate_trades_csv method generate_categories_csv (line 102) | def generate_categories_csv method generate_ndjson (line 118) | def generate_ndjson FILE: app/models/family/plaid_connectable.rb type Family::PlaidConnectable (line 1) | module Family::PlaidConnectable function can_connect_plaid_us? (line 8) | def can_connect_plaid_us? function can_connect_plaid_eu? (line 13) | def can_connect_plaid_eu? function create_plaid_item! (line 17) | def create_plaid_item!(public_token:, item_name:, region:) function get_link_token (line 32) | def get_link_token(webhooks_url:, redirect_url:, accountable_type: nil... function plaid (line 45) | def plaid(region) FILE: app/models/family/subscribeable.rb type Family::Subscribeable (line 1) | module Family::Subscribeable function billing_email (line 8) | def billing_email function upgrade_required? (line 18) | def upgrade_required? function can_start_trial? (line 25) | def can_start_trial? function start_trial_subscription! (line 29) | def start_trial_subscription! function trialing? (line 36) | def trialing? function has_active_subscription? (line 40) | def has_active_subscription? function needs_subscription? (line 44) | def needs_subscription? function next_billing_date (line 48) | def next_billing_date function start_subscription! (line 52) | def start_subscription!(stripe_subscription_id) function days_left_in_trial (line 60) | def days_left_in_trial function percentage_of_trial_remaining (line 65) | def percentage_of_trial_remaining function percentage_of_trial_completed (line 70) | def percentage_of_trial_completed function sync_trial_status! (line 75) | def sync_trial_status! FILE: app/models/family/sync_complete_event.rb class Family::SyncCompleteEvent (line 1) | class Family::SyncCompleteEvent method initialize (line 4) | def initialize(family) method broadcast (line 8) | def broadcast FILE: app/models/family/syncer.rb class Family::Syncer (line 1) | class Family::Syncer method initialize (line 4) | def initialize(family) method perform_sync (line 8) | def perform_sync(sync) method perform_post_sync (line 23) | def perform_post_sync method child_syncables (line 28) | def child_syncables FILE: app/models/family_export.rb class FamilyExport (line 1) | class FamilyExport < ApplicationRecord method filename (line 15) | def filename method downloadable? (line 19) | def downloadable? FILE: app/models/family_merchant.rb class FamilyMerchant (line 1) | class FamilyMerchant < Merchant method set_default_color (line 12) | def set_default_color FILE: app/models/holding.rb class Holding (line 1) | class Holding < ApplicationRecord method name (line 17) | def name method weight (line 21) | def weight method avg_cost (line 29) | def avg_cost method trend (line 46) | def trend method trades (line 50) | def trades method destroy_holding_and_entries! (line 54) | def destroy_holding_and_entries! method calculate_trend (line 64) | def calculate_trend FILE: app/models/holding/forward_calculator.rb class Holding::ForwardCalculator (line 1) | class Holding::ForwardCalculator method initialize (line 4) | def initialize(account) method calculate (line 8) | def calculate method portfolio_cache (line 26) | def portfolio_cache method empty_portfolio (line 30) | def empty_portfolio method generate_starting_portfolio (line 35) | def generate_starting_portfolio method transform_portfolio (line 39) | def transform_portfolio(previous_portfolio, trade_entries, direction: ... method build_holdings (line 53) | def build_holdings(portfolio, date, price_source: nil) FILE: app/models/holding/gapfillable.rb type Holding::Gapfillable (line 1) | module Holding::Gapfillable function gapfill (line 5) | def gapfill(holdings) FILE: app/models/holding/materializer.rb class Holding::Materializer (line 3) | class Holding::Materializer method initialize (line 4) | def initialize(account, strategy:) method materialize_holdings (line 9) | def materialize_holdings method calculate_holdings (line 25) | def calculate_holdings method persist_holdings (line 29) | def persist_holdings method purge_stale_holdings (line 40) | def purge_stale_holdings method calculator (line 53) | def calculator FILE: app/models/holding/portfolio_cache.rb class Holding::PortfolioCache (line 1) | class Holding::PortfolioCache class SecurityNotFound (line 4) | class SecurityNotFound < StandardError method initialize (line 5) | def initialize(security_id, account_id) method initialize (line 10) | def initialize(account, use_holdings: false) method get_trades (line 16) | def get_trades(date: nil) method get_price (line 24) | def get_price(security_id, date, source: nil) method get_securities (line 48) | def get_securities method trades (line 55) | def trades method holdings (line 59) | def holdings method collect_unique_securities (line 63) | def collect_unique_securities method load_prices (line 77) | def load_prices FILE: app/models/holding/portfolio_snapshot.rb class Holding::PortfolioSnapshot (line 3) | class Holding::PortfolioSnapshot method initialize (line 6) | def initialize(account) method to_h (line 12) | def to_h method build_portfolio (line 17) | def build_portfolio FILE: app/models/holding/reverse_calculator.rb class Holding::ReverseCalculator (line 1) | class Holding::ReverseCalculator method initialize (line 4) | def initialize(account, portfolio_snapshot:) method calculate (line 9) | def calculate method portfolio_cache (line 20) | def portfolio_cache method calculate_holdings (line 24) | def calculate_holdings method transform_portfolio (line 43) | def transform_portfolio(previous_portfolio, trade_entries, direction: ... method build_holdings (line 57) | def build_holdings(portfolio, date, price_source: nil) FILE: app/models/impersonation_session.rb class ImpersonationSession (line 1) | class ImpersonationSession < ApplicationRecord method approve! (line 15) | def approve! method reject! (line 19) | def reject! method complete! (line 23) | def complete! method impersonator_is_super_admin (line 28) | def impersonator_is_super_admin method impersonated_is_not_super_admin (line 32) | def impersonated_is_not_super_admin method impersonator_different_from_impersonated (line 36) | def impersonator_different_from_impersonated FILE: app/models/impersonation_session_log.rb class ImpersonationSessionLog (line 1) | class ImpersonationSessionLog < ApplicationRecord FILE: app/models/import.rb class Import (line 1) | class Import < ApplicationRecord method parse_csv_str (line 45) | def parse_csv_str(csv_str, col_sep: ",") method publish_later (line 56) | def publish_later method publish (line 65) | def publish method revert_later (line 77) | def revert_later method revert (line 85) | def revert method csv_rows (line 98) | def csv_rows method csv_headers (line 102) | def csv_headers method csv_sample (line 106) | def csv_sample method dry_run (line 110) | def dry_run method required_column_keys (line 124) | def required_column_keys method column_keys (line 128) | def column_keys method generate_rows_from_csv (line 132) | def generate_rows_from_csv method sync_mappings (line 156) | def sync_mappings method mapping_steps (line 174) | def mapping_steps method uploaded? (line 178) | def uploaded? method configured? (line 182) | def configured? method cleaned? (line 186) | def cleaned? method publishable? (line 190) | def publishable? method revertable? (line 194) | def revertable? method has_unassigned_account? (line 198) | def has_unassigned_account? method requires_account? (line 202) | def requires_account? method suggested_template (line 207) | def suggested_template method apply_template! (line 215) | def apply_template!(import_template) method max_row_count (line 228) | def max_row_count method row_count_exceeded? (line 233) | def row_count_exceeded? method import! (line 237) | def import! method default_row_name (line 241) | def default_row_name method default_currency (line 245) | def default_currency method parsed_csv (line 249) | def parsed_csv method sanitize_number (line 253) | def sanitize_number(value) method set_default_number_format (line 287) | def set_default_number_format FILE: app/models/import/account_mapping.rb class Import::AccountMapping (line 1) | class Import::AccountMapping < Import::Mapping method mappables_by_key (line 5) | def mappables_by_key(import) method selectable_values (line 13) | def selectable_values method requires_selection? (line 23) | def requires_selection? method values_count (line 27) | def values_count method mappable_class (line 31) | def mappable_class method create_mappable! (line 35) | def create_mappable! method requires_mapping? (line 50) | def requires_mapping? FILE: app/models/import/account_type_mapping.rb class Import::AccountTypeMapping (line 1) | class Import::AccountTypeMapping < Import::Mapping method mappables_by_key (line 5) | def mappables_by_key(import) method selectable_values (line 10) | def selectable_values method requires_selection? (line 14) | def requires_selection? method values_count (line 18) | def values_count method create_mappable! (line 22) | def create_mappable! FILE: app/models/import/category_mapping.rb class Import::CategoryMapping (line 1) | class Import::CategoryMapping < Import::Mapping method mappables_by_key (line 3) | def mappables_by_key(import) method selectable_values (line 11) | def selectable_values method requires_selection? (line 21) | def requires_selection? method values_count (line 25) | def values_count method mappable_class (line 29) | def mappable_class method create_mappable! (line 33) | def create_mappable! FILE: app/models/import/mapping.rb class Import::Mapping (line 1) | class Import::Mapping < ApplicationRecord method mappable_for (line 17) | def mappable_for(key) method mappables_by_key (line 21) | def mappables_by_key(import) method selectable_values (line 26) | def selectable_values method values_count (line 30) | def values_count method mappable_class (line 34) | def mappable_class method creatable? (line 38) | def creatable? method create_mappable! (line 42) | def create_mappable! FILE: app/models/import/row.rb class Import::Row (line 1) | class Import::Row < ApplicationRecord method tags_list (line 13) | def tags_list method date_iso (line 21) | def date_iso method signed_amount (line 25) | def signed_amount method update_and_sync (line 33) | def update_and_sync(params) method apply_trade_signage_convention (line 41) | def apply_trade_signage_convention(value) method apply_transaction_signage_convention (line 46) | def apply_transaction_signage_convention(value) method required_columns (line 62) | def required_columns method date_valid (line 68) | def date_valid method currency_is_valid (line 86) | def currency_is_valid FILE: app/models/import/tag_mapping.rb class Import::TagMapping (line 1) | class Import::TagMapping < Import::Mapping method mappables_by_key (line 3) | def mappables_by_key(import) method selectable_values (line 12) | def selectable_values method requires_selection? (line 22) | def requires_selection? method values_count (line 26) | def values_count method mappable_class (line 30) | def mappable_class method create_mappable! (line 34) | def create_mappable! FILE: app/models/income_statement.rb class IncomeStatement (line 1) | class IncomeStatement method initialize (line 8) | def initialize(family) method totals (line 12) | def totals(transactions_scope: nil) method expense_totals (line 27) | def expense_totals(period: Period.current_month) method income_totals (line 31) | def income_totals(period: Period.current_month) method median_expense (line 35) | def median_expense(interval: "month", category: nil) method avg_expense (line 43) | def avg_expense(interval: "month", category: nil) method median_income (line 51) | def median_income(interval: "month") method categories (line 60) | def categories method build_period_total (line 64) | def build_period_total(classification:, period:) method family_stats (line 101) | def family_stats(interval: "month") method category_stats (line 108) | def category_stats(interval: "month") method totals_query (line 115) | def totals_query(transactions_scope:) method monetizable_currency (line 123) | def monetizable_currency FILE: app/models/income_statement/category_stats.rb class IncomeStatement::CategoryStats (line 1) | class IncomeStatement::CategoryStats method initialize (line 2) | def initialize(family, interval: "month") method call (line 7) | def call method sanitized_query_sql (line 21) | def sanitized_query_sql method query_sql (line 32) | def query_sql FILE: app/models/income_statement/family_stats.rb class IncomeStatement::FamilyStats (line 1) | class IncomeStatement::FamilyStats method initialize (line 2) | def initialize(family, interval: "month") method call (line 7) | def call method sanitized_query_sql (line 20) | def sanitized_query_sql method query_sql (line 31) | def query_sql FILE: app/models/income_statement/totals.rb class IncomeStatement::Totals (line 1) | class IncomeStatement::Totals method initialize (line 2) | def initialize(family, transactions_scope:) method call (line 7) | def call method query_sql (line 22) | def query_sql method optimized_query_sql (line 31) | def optimized_query_sql method sql_params (line 53) | def sql_params FILE: app/models/investment.rb class Investment (line 1) | class Investment < ApplicationRecord method color (line 19) | def color method classification (line 23) | def classification method icon (line 27) | def icon FILE: app/models/invitation.rb class Invitation (line 1) | class Invitation < ApplicationRecord method pending? (line 17) | def pending? method generate_token (line 23) | def generate_token method set_expiration (line 30) | def set_expiration method inviter_is_admin (line 34) | def inviter_is_admin FILE: app/models/invite_code.rb class InviteCode (line 1) | class InviteCode < ApplicationRecord method claim! (line 5) | def claim!(token) method generate! (line 12) | def generate! method generate_token (line 19) | def generate_token FILE: app/models/loan.rb class Loan (line 1) | class Loan < ApplicationRecord method monthly_payment (line 11) | def monthly_payment method original_balance (line 27) | def original_balance method color (line 32) | def color method icon (line 36) | def icon method classification (line 40) | def classification FILE: app/models/market_data_importer.rb class MarketDataImporter (line 1) | class MarketDataImporter method initialize (line 8) | def initialize(mode: :full, clear_cache: false) method import_all (line 13) | def import_all method import_security_prices (line 19) | def import_security_prices method import_exchange_rates (line 37) | def import_exchange_rates method snapshot? (line 60) | def snapshot? method required_exchange_rate_pairs (line 68) | def required_exchange_rate_pairs method get_first_required_price_date (line 102) | def get_first_required_price_date(security) method get_first_required_exchange_rate_date (line 109) | def get_first_required_exchange_rate_date(from_currency:) method default_start_date (line 115) | def default_start_date method end_date (line 120) | def end_date method set_mode! (line 124) | def set_mode!(mode) FILE: app/models/measurement.rb class Measurement (line 1) | class Measurement method initialize (line 11) | def initialize(value, unit) method to_s (line 17) | def to_s FILE: app/models/merchant.rb class Merchant (line 1) | class Merchant < ApplicationRecord FILE: app/models/message.rb class Message (line 1) | class Message < ApplicationRecord method broadcast? (line 19) | def broadcast? FILE: app/models/mint_import.rb class MintImport (line 1) | class MintImport < Import method generate_rows_from_csv (line 4) | def generate_rows_from_csv method import! (line 23) | def import! method mapping_steps (line 46) | def mapping_steps method required_column_keys (line 50) | def required_column_keys method column_keys (line 54) | def column_keys method csv_template (line 58) | def csv_template method signed_csv_amount (line 68) | def signed_csv_amount(csv_row) method set_mappings (line 80) | def set_mappings FILE: app/models/mobile_device.rb class MobileDevice (line 1) | class MobileDevice < ApplicationRecord method active? (line 13) | def active? method update_last_seen! (line 17) | def update_last_seen! method create_oauth_application! (line 21) | def create_oauth_application! method active_tokens (line 36) | def active_tokens method revoke_all_tokens! (line 46) | def revoke_all_tokens! method set_last_seen_at (line 52) | def set_last_seen_at FILE: app/models/other_asset.rb class OtherAsset (line 1) | class OtherAsset < ApplicationRecord method color (line 5) | def color method icon (line 9) | def icon method classification (line 13) | def classification FILE: app/models/other_liability.rb class OtherLiability (line 1) | class OtherLiability < ApplicationRecord method color (line 5) | def color method icon (line 9) | def icon method classification (line 13) | def classification FILE: app/models/period.rb class Period (line 1) | class Period class InvalidKeyError (line 4) | class InvalidKeyError < StandardError; end method from_key (line 70) | def from_key(key) method custom (line 80) | def custom(start_date:, end_date:) method all (line 84) | def all method as_options (line 88) | def as_options method initialize (line 99) | def initialize(start_date: nil, end_date: nil, key: nil, date_format: ... method <=> (line 107) | def <=>(other) method date_range (line 111) | def date_range method days (line 115) | def days method within? (line 119) | def within?(other) method interval (line 123) | def interval method label (line 131) | def label method label_short (line 139) | def label_short method comparison_label (line 147) | def comparison_label method key_metadata (line 156) | def key_metadata method must_be_valid_date_range (line 160) | def must_be_valid_date_range FILE: app/models/plaid_account.rb class PlaidAccount (line 1) | class PlaidAccount < ApplicationRecord method upsert_plaid_snapshot! (line 9) | def upsert_plaid_snapshot!(account_snapshot) method upsert_plaid_transactions_snapshot! (line 24) | def upsert_plaid_transactions_snapshot!(transactions_snapshot) method upsert_plaid_investments_snapshot! (line 32) | def upsert_plaid_investments_snapshot!(investments_snapshot) method upsert_plaid_liabilities_snapshot! (line 40) | def upsert_plaid_liabilities_snapshot!(liabilities_snapshot) method has_balance (line 50) | def has_balance FILE: app/models/plaid_account/importer.rb class PlaidAccount::Importer (line 1) | class PlaidAccount::Importer method initialize (line 2) | def initialize(plaid_account, account_snapshot:) method import (line 7) | def import method import_account_info (line 17) | def import_account_info method import_transactions (line 21) | def import_transactions method import_investments (line 25) | def import_investments method import_liabilities (line 29) | def import_liabilities FILE: app/models/plaid_account/investments/balance_calculator.rb class PlaidAccount::Investments::BalanceCalculator (line 3) | class PlaidAccount::Investments::BalanceCalculator method initialize (line 7) | def initialize(plaid_account, security_resolver:) method balance (line 12) | def balance method cash_balance (line 30) | def cash_balance method holdings (line 46) | def holdings method calculate_investment_brokerage_cash (line 50) | def calculate_investment_brokerage_cash method total_investment_account_value (line 57) | def total_investment_account_value method true_holdings_value (line 62) | def true_holdings_value FILE: app/models/plaid_account/investments/holdings_processor.rb class PlaidAccount::Investments::HoldingsProcessor (line 1) | class PlaidAccount::Investments::HoldingsProcessor method initialize (line 2) | def initialize(plaid_account, security_resolver:) method process (line 7) | def process method account (line 43) | def account method holdings (line 47) | def holdings FILE: app/models/plaid_account/investments/security_resolver.rb class PlaidAccount::Investments::SecurityResolver (line 2) | class PlaidAccount::Investments::SecurityResolver method initialize (line 5) | def initialize(plaid_account) method resolve (line 11) | def resolve(plaid_security_id:) method securities (line 45) | def securities method get_plaid_security (line 50) | def get_plaid_security(plaid_security_id) method report_unresolvable_security (line 58) | def report_unresolvable_security(plaid_security_id) method known_plaid_brokerage_cash_tickers (line 80) | def known_plaid_brokerage_cash_tickers method brokerage_cash? (line 84) | def brokerage_cash?(plaid_security) method cash_equivalent? (line 89) | def cash_equivalent?(plaid_security) FILE: app/models/plaid_account/investments/transactions_processor.rb class PlaidAccount::Investments::TransactionsProcessor (line 1) | class PlaidAccount::Investments::TransactionsProcessor method initialize (line 4) | def initialize(plaid_account, security_resolver:) method process (line 9) | def process method account (line 22) | def account method cash_transaction? (line 26) | def cash_transaction?(transaction) method find_or_create_trade_entry (line 30) | def find_or_create_trade_entry(transaction) method find_or_create_cash_entry (line 67) | def find_or_create_cash_entry(transaction) method transactions (line 87) | def transactions method derived_qty (line 95) | def derived_qty(transaction) FILE: app/models/plaid_account/liabilities/credit_processor.rb class PlaidAccount::Liabilities::CreditProcessor (line 1) | class PlaidAccount::Liabilities::CreditProcessor method initialize (line 2) | def initialize(plaid_account) method process (line 6) | def process method account (line 18) | def account method credit_data (line 22) | def credit_data FILE: app/models/plaid_account/liabilities/mortgage_processor.rb class PlaidAccount::Liabilities::MortgageProcessor (line 1) | class PlaidAccount::Liabilities::MortgageProcessor method initialize (line 2) | def initialize(plaid_account) method process (line 6) | def process method account (line 18) | def account method mortgage_data (line 22) | def mortgage_data FILE: app/models/plaid_account/liabilities/student_loan_processor.rb class PlaidAccount::Liabilities::StudentLoanProcessor (line 1) | class PlaidAccount::Liabilities::StudentLoanProcessor method initialize (line 2) | def initialize(plaid_account) method process (line 6) | def process method account (line 20) | def account method term_months (line 24) | def term_months method origination_date (line 30) | def origination_date method expected_payoff_date (line 34) | def expected_payoff_date method parse_date (line 38) | def parse_date(value) method student_loan_data (line 47) | def student_loan_data FILE: app/models/plaid_account/processor.rb class PlaidAccount::Processor (line 1) | class PlaidAccount::Processor method initialize (line 6) | def initialize(plaid_account) method process (line 14) | def process method family (line 22) | def family method security_resolver (line 27) | def security_resolver method process_account! (line 31) | def process_account! method process_transactions (line 64) | def process_transactions method process_investments (line 70) | def process_investments method process_liabilities (line 77) | def process_liabilities method balance_calculator (line 90) | def balance_calculator method report_exception (line 104) | def report_exception(error) FILE: app/models/plaid_account/transactions/category_matcher.rb class PlaidAccount::Transactions::CategoryMatcher (line 13) | class PlaidAccount::Transactions::CategoryMatcher method initialize (line 16) | def initialize(user_categories = []) method match (line 20) | def match(plaid_detailed_category) method get_plaid_category_details (line 78) | def get_plaid_category_details(plaid_category_name) method detailed_plaid_categories (line 82) | def detailed_plaid_categories method normalized_user_categories (line 96) | def normalized_user_categories method normalize_user_category_name (line 106) | def normalize_user_category_name(name) FILE: app/models/plaid_account/transactions/category_taxonomy.rb type PlaidAccount::Transactions::CategoryTaxonomy (line 2) | module PlaidAccount::Transactions::CategoryTaxonomy FILE: app/models/plaid_account/transactions/processor.rb class PlaidAccount::Transactions::Processor (line 1) | class PlaidAccount::Transactions::Processor method initialize (line 2) | def initialize(plaid_account) method process (line 6) | def process method category_matcher (line 27) | def category_matcher method family_categories (line 31) | def family_categories method account (line 41) | def account method remove_plaid_transaction (line 45) | def remove_plaid_transaction(raw_transaction) method modified_transactions (line 50) | def modified_transactions method removed_transactions (line 57) | def removed_transactions FILE: app/models/plaid_account/type_mappable.rb type PlaidAccount::TypeMappable (line 1) | module PlaidAccount::TypeMappable function map_accountable (line 6) | def map_accountable(plaid_type) function map_subtype (line 19) | def map_subtype(plaid_type, plaid_subtype) FILE: app/models/plaid_entry/processor.rb class PlaidEntry::Processor (line 1) | class PlaidEntry::Processor method initialize (line 3) | def initialize(plaid_transaction, plaid_account:, category_matcher:) method process (line 9) | def process method account (line 52) | def account method plaid_id (line 56) | def plaid_id method name (line 60) | def name method amount (line 64) | def amount method currency (line 68) | def currency method date (line 72) | def date method detailed_category (line 76) | def detailed_category method merchant (line 80) | def merchant FILE: app/models/plaid_item.rb class PlaidItem (line 1) | class PlaidItem < ApplicationRecord method get_update_link_token (line 25) | def get_update_link_token(webhooks_url:, redirect_url:) method destroy_later (line 44) | def destroy_later method import_latest_plaid_data (line 49) | def import_latest_plaid_data method process_accounts (line 56) | def process_accounts method schedule_account_syncs (line 63) | def schedule_account_syncs(parent_sync: nil, window_start_date: nil, w... method upsert_plaid_snapshot! (line 74) | def upsert_plaid_snapshot!(item_snapshot) method upsert_plaid_institution_snapshot! (line 85) | def upsert_plaid_institution_snapshot!(institution_snapshot) method supports_product? (line 96) | def supports_product?(product) method remove_plaid_item (line 101) | def remove_plaid_item method supported_products (line 117) | def supported_products FILE: app/models/plaid_item/accounts_snapshot.rb class PlaidItem::AccountsSnapshot (line 4) | class PlaidItem::AccountsSnapshot method initialize (line 5) | def initialize(plaid_item, plaid_provider:) method accounts (line 10) | def accounts method get_account_data (line 14) | def get_account_data(account_id) method transactions_cursor (line 23) | def transactions_cursor method account_scoped_transactions_data (line 36) | def account_scoped_transactions_data(account_id) method account_scoped_investments_data (line 46) | def account_scoped_investments_data(account_id) method account_scoped_liabilities_data (line 60) | def account_scoped_liabilities_data(account_id) method can_fetch_transactions? (line 70) | def can_fetch_transactions? method transactions_data (line 74) | def transactions_data method can_fetch_investments? (line 83) | def can_fetch_investments? method investments_data (line 88) | def investments_data method can_fetch_liabilities? (line 93) | def can_fetch_liabilities? method liabilities_data (line 101) | def liabilities_data FILE: app/models/plaid_item/importer.rb class PlaidItem::Importer (line 1) | class PlaidItem::Importer method initialize (line 2) | def initialize(plaid_item, plaid_provider:) method import (line 7) | def import method handle_plaid_error (line 19) | def handle_plaid_error(error) method fetch_and_import_item_data (line 30) | def fetch_and_import_item_data method fetch_and_import_accounts_data (line 38) | def fetch_and_import_accounts_data FILE: app/models/plaid_item/provided.rb type PlaidItem::Provided (line 1) | module PlaidItem::Provided function plaid_provider (line 4) | def plaid_provider FILE: app/models/plaid_item/sync_complete_event.rb class PlaidItem::SyncCompleteEvent (line 1) | class PlaidItem::SyncCompleteEvent method initialize (line 4) | def initialize(plaid_item) method broadcast (line 8) | def broadcast FILE: app/models/plaid_item/syncer.rb class PlaidItem::Syncer (line 1) | class PlaidItem::Syncer method initialize (line 4) | def initialize(plaid_item) method perform_sync (line 8) | def perform_sync(sync) method perform_post_sync (line 23) | def perform_post_sync FILE: app/models/plaid_item/webhook_processor.rb class PlaidItem::WebhookProcessor (line 1) | class PlaidItem::WebhookProcessor method initialize (line 4) | def initialize(webhook_body) method process (line 12) | def process method plaid_item (line 40) | def plaid_item method handle_missing_item (line 44) | def handle_missing_item FILE: app/models/property.rb class Property (line 1) | class Property < ApplicationRecord method icon (line 20) | def icon method color (line 24) | def color method classification (line 28) | def classification method area (line 33) | def area method purchase_price (line 37) | def purchase_price method trend (line 41) | def trend method balance_display_name (line 45) | def balance_display_name method opening_balance_display_name (line 49) | def opening_balance_display_name method first_valuation_amount (line 54) | def first_valuation_amount FILE: app/models/provider.rb class Provider (line 1) | class Provider class Error (line 4) | class Error < StandardError method initialize (line 7) | def initialize(message, details: nil) method as_json (line 12) | def as_json method with_provider_response (line 24) | def with_provider_response(error_transformer: nil, &block) method default_error_transformer (line 47) | def default_error_transformer(error) FILE: app/models/provider/exchange_rate_concept.rb type Provider::ExchangeRateConcept (line 1) | module Provider::ExchangeRateConcept function fetch_exchange_rate (line 6) | def fetch_exchange_rate(from:, to:, date:) function fetch_exchange_rates (line 10) | def fetch_exchange_rates(from:, to:, start_date:, end_date:) FILE: app/models/provider/github.rb class Provider::Github (line 1) | class Provider::Github method initialize (line 4) | def initialize method fetch_latest_release_notes (line 10) | def fetch_latest_release_notes method repo (line 34) | def repo FILE: app/models/provider/llm_concept.rb type Provider::LlmConcept (line 1) | module Provider::LlmConcept function auto_categorize (line 6) | def auto_categorize(transactions) function auto_detect_merchants (line 12) | def auto_detect_merchants(transactions) function chat_response (line 21) | def chat_response(prompt, model:, instructions: nil, functions: [], fu... FILE: app/models/provider/openai.rb class Provider::Openai (line 1) | class Provider::Openai < Provider method initialize (line 9) | def initialize(access_token) method supports_model? (line 13) | def supports_model?(model) method auto_categorize (line 17) | def auto_categorize(transactions: [], user_categories: []) method auto_detect_merchants (line 29) | def auto_detect_merchants(transactions: [], user_merchants: []) method chat_response (line 41) | def chat_response(prompt, model:, instructions: nil, functions: [], fu... FILE: app/models/provider/openai/auto_categorizer.rb class Provider::Openai::AutoCategorizer (line 1) | class Provider::Openai::AutoCategorizer method initialize (line 2) | def initialize(client, transactions: [], user_categories: []) method auto_categorize (line 8) | def auto_categorize method build_response (line 33) | def build_response(categorizations) method normalize_category_name (line 42) | def normalize_category_name(category_name) method extract_categorizations (line 48) | def extract_categorizations(response) method json_schema (line 53) | def json_schema method developer_message (line 84) | def developer_message method instructions (line 100) | def instructions FILE: app/models/provider/openai/auto_merchant_detector.rb class Provider::Openai::AutoMerchantDetector (line 1) | class Provider::Openai::AutoMerchantDetector method initialize (line 2) | def initialize(client, transactions:, user_merchants:) method auto_detect_merchants (line 8) | def auto_detect_merchants method build_response (line 33) | def build_response(categorizations) method normalize_ai_value (line 43) | def normalize_ai_value(ai_value) method extract_categorizations (line 49) | def extract_categorizations(response) method json_schema (line 54) | def json_schema method developer_message (line 88) | def developer_message method instructions (line 106) | def instructions FILE: app/models/provider/openai/chat_config.rb class Provider::Openai::ChatConfig (line 1) | class Provider::Openai::ChatConfig method initialize (line 2) | def initialize(functions: [], function_results: []) method tools (line 7) | def tools method build_input (line 19) | def build_input(prompt) FILE: app/models/provider/openai/chat_parser.rb class Provider::Openai::ChatParser (line 1) | class Provider::Openai::ChatParser method initialize (line 4) | def initialize(object) method parsed (line 8) | def parsed method response_id (line 24) | def response_id method response_model (line 28) | def response_model method messages (line 32) | def messages method function_requests (line 47) | def function_requests FILE: app/models/provider/openai/chat_stream_parser.rb class Provider::Openai::ChatStreamParser (line 1) | class Provider::Openai::ChatStreamParser method initialize (line 4) | def initialize(object) method parsed (line 8) | def parsed method parse_response (line 25) | def parse_response(response) FILE: app/models/provider/plaid.rb class Provider::Plaid (line 1) | class Provider::Plaid method initialize (line 7) | def initialize(config, region: :us) method validate_webhook! (line 14) | def validate_webhook!(verification_header, raw_body) method get_link_token (line 45) | def get_link_token(user_id:, webhooks_url:, redirect_url:, accountable... method exchange_public_token (line 68) | def exchange_public_token(token) method get_item (line 76) | def get_item(access_token) method remove_item (line 81) | def remove_item(access_token) method get_item_accounts (line 86) | def get_item_accounts(access_token) method get_transactions (line 91) | def get_transactions(access_token, next_cursor: nil) method get_item_investments (line 119) | def get_item_investments(access_token, start_date: nil, end_date: Date... method get_item_liabilities (line 129) | def get_item_liabilities(access_token) method get_institution (line 135) | def get_institution(institution_id) method get_item_holdings (line 150) | def get_item_holdings(access_token:) method get_item_investment_transactions (line 157) | def get_item_investment_transactions(access_token:, start_date:, end_d... method get_primary_product (line 182) | def get_primary_product(accountable_type) method get_additional_consented_products (line 195) | def get_additional_consented_products(accountable_type) method eu? (line 201) | def eu? method country_codes (line 205) | def country_codes FILE: app/models/provider/plaid_sandbox.rb class Provider::PlaidSandbox (line 1) | class Provider::PlaidSandbox < Provider::Plaid method initialize (line 4) | def initialize method create_public_token (line 9) | def create_public_token(username: nil) method fire_webhook (line 21) | def fire_webhook(item, type: "TRANSACTIONS", code: "SYNC_UPDATES_AVAIL... method reset_login (line 31) | def reset_login(item) method create_client (line 40) | def create_client FILE: app/models/provider/registry.rb class Provider::Registry (line 1) | class Provider::Registry method for_concept (line 11) | def for_concept(concept) method get_provider (line 15) | def get_provider(name) method plaid_provider_for_region (line 21) | def plaid_provider_for_region(region) method stripe (line 26) | def stripe method synth (line 35) | def synth method plaid_us (line 43) | def plaid_us method plaid_eu (line 51) | def plaid_eu method github (line 59) | def github method openai (line 63) | def openai method initialize (line 72) | def initialize(concept) method providers (line 77) | def providers method get_provider (line 81) | def get_provider(name) method available_providers (line 92) | def available_providers FILE: app/models/provider/security_concept.rb type Provider::SecurityConcept (line 1) | module Provider::SecurityConcept function search_securities (line 8) | def search_securities(symbol, country_code: nil, exchange_operating_mi... function fetch_security_info (line 12) | def fetch_security_info(symbol:, exchange_operating_mic:) function fetch_security_price (line 16) | def fetch_security_price(symbol:, exchange_operating_mic:, date:) function fetch_security_prices (line 20) | def fetch_security_prices(symbol:, exchange_operating_mic:, start_date... FILE: app/models/provider/stripe.rb class Provider::Stripe (line 1) | class Provider::Stripe method initialize (line 4) | def initialize(secret_key:, webhook_secret:) method process_event (line 9) | def process_event(event_id) method process_webhook_later (line 20) | def process_webhook_later(webhook_body, sig_header) method create_checkout_session (line 25) | def create_checkout_session(plan:, family_id:, family_email:, success_... method get_checkout_result (line 45) | def get_checkout_result(session_id) method create_billing_portal_session_url (line 59) | def create_billing_portal_session_url(customer_id:, return_url:) method update_customer_metadata (line 66) | def update_customer_metadata(customer_id:, metadata:) method price_id_for (line 76) | def price_id_for(plan) method retrieve_event (line 85) | def retrieve_event(event_id) FILE: app/models/provider/stripe/event_processor.rb class Provider::Stripe::EventProcessor (line 1) | class Provider::Stripe::EventProcessor method initialize (line 2) | def initialize(event) method process (line 6) | def process method event_data (line 13) | def event_data FILE: app/models/provider/stripe/subscription_event_processor.rb class Provider::Stripe::SubscriptionEventProcessor (line 1) | class Provider::Stripe::SubscriptionEventProcessor < Provider::Stripe::E... method process (line 4) | def process method family (line 18) | def family method subscription_details (line 22) | def subscription_details method subscription (line 26) | def subscription FILE: app/models/provider/synth.rb class Provider::Synth (line 1) | class Provider::Synth < Provider method initialize (line 9) | def initialize(api_key) method healthy? (line 13) | def healthy? method usage (line 20) | def usage method fetch_exchange_rate (line 43) | def fetch_exchange_rate(from:, to:, date:) method fetch_exchange_rates (line 57) | def fetch_exchange_rates(from:, to:, start_date:, end_date:) method search_securities (line 91) | def search_securities(symbol, country_code: nil, exchange_operating_mi... method fetch_security_info (line 116) | def fetch_security_info(symbol:, exchange_operating_mic:) method fetch_security_price (line 136) | def fetch_security_price(symbol:, exchange_operating_mic: nil, date:) method fetch_security_prices (line 146) | def fetch_security_prices(symbol:, exchange_operating_mic: nil, start_... method base_url (line 191) | def base_url method app_name (line 195) | def app_name method app_type (line 199) | def app_type method client (line 203) | def client method fetch_page (line 219) | def fetch_page(url, page, params = {}) method paginate (line 223) | def paginate(url, params = {}) FILE: app/models/provider_merchant.rb class ProviderMerchant (line 1) | class ProviderMerchant < Merchant FILE: app/models/rejected_transfer.rb class RejectedTransfer (line 1) | class RejectedTransfer < ApplicationRecord FILE: app/models/rule.rb class Rule (line 1) | class Rule < ApplicationRecord method action_executors (line 21) | def action_executors method condition_filters (line 25) | def condition_filters method registry (line 29) | def registry method affected_resource_count (line 38) | def affected_resource_count method apply (line 42) | def apply(ignore_attribute_locks: false) method apply_later (line 48) | def apply_later(ignore_attribute_locks: false) method primary_condition_title (line 52) | def primary_condition_title method matching_resources_scope (line 65) | def matching_resources_scope method min_actions (line 81) | def min_actions method no_duplicate_actions (line 87) | def no_duplicate_actions method no_nested_compound_conditions (line 94) | def no_nested_compound_conditions method normalize_name (line 106) | def normalize_name FILE: app/models/rule/action.rb class Rule::Action (line 1) | class Rule::Action < ApplicationRecord method apply (line 6) | def apply(resource_scope, ignore_attribute_locks: false) method options (line 10) | def options method value_display (line 14) | def value_display method executor (line 26) | def executor FILE: app/models/rule/action_executor.rb class Rule::ActionExecutor (line 1) | class Rule::ActionExecutor method initialize (line 4) | def initialize(rule) method key (line 8) | def key method label (line 12) | def label method type (line 16) | def type method options (line 20) | def options method execute (line 24) | def execute(scope, value: nil, ignore_attribute_locks: false) method as_json (line 28) | def as_json method family (line 40) | def family FILE: app/models/rule/action_executor/auto_categorize.rb class Rule::ActionExecutor::AutoCategorize (line 1) | class Rule::ActionExecutor::AutoCategorize < Rule::ActionExecutor method label (line 2) | def label method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/action_executor/auto_detect_merchants.rb class Rule::ActionExecutor::AutoDetectMerchants (line 1) | class Rule::ActionExecutor::AutoDetectMerchants < Rule::ActionExecutor method label (line 2) | def label method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/action_executor/set_transaction_category.rb class Rule::ActionExecutor::SetTransactionCategory (line 1) | class Rule::ActionExecutor::SetTransactionCategory < Rule::ActionExecutor method type (line 2) | def type method options (line 6) | def options method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/action_executor/set_transaction_merchant.rb class Rule::ActionExecutor::SetTransactionMerchant (line 1) | class Rule::ActionExecutor::SetTransactionMerchant < Rule::ActionExecutor method type (line 2) | def type method options (line 6) | def options method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/action_executor/set_transaction_name.rb class Rule::ActionExecutor::SetTransactionName (line 1) | class Rule::ActionExecutor::SetTransactionName < Rule::ActionExecutor method type (line 2) | def type method options (line 6) | def options method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/action_executor/set_transaction_tags.rb class Rule::ActionExecutor::SetTransactionTags (line 1) | class Rule::ActionExecutor::SetTransactionTags < Rule::ActionExecutor method type (line 2) | def type method options (line 6) | def options method execute (line 10) | def execute(transaction_scope, value: nil, ignore_attribute_locks: false) FILE: app/models/rule/condition.rb class Rule::Condition (line 1) | class Rule::Condition < ApplicationRecord method rule (line 14) | def rule method compound? (line 18) | def compound? method apply (line 22) | def apply(scope) method prepare (line 30) | def prepare(scope) method value_display (line 38) | def value_display method options (line 50) | def options method operators (line 54) | def operators method filter (line 58) | def filter method build_compound_scope (line 63) | def build_compound_scope(scope) FILE: app/models/rule/condition_filter.rb class Rule::ConditionFilter (line 1) | class Rule::ConditionFilter method initialize (line 12) | def initialize(rule) method type (line 16) | def type method number_step (line 20) | def number_step method key (line 25) | def key method label (line 29) | def label method options (line 33) | def options method operators (line 37) | def operators method prepare (line 42) | def prepare(scope) method apply (line 47) | def apply(scope, operator, value) method as_json (line 51) | def as_json method family (line 65) | def family method build_sanitized_where_condition (line 69) | def build_sanitized_where_condition(field, operator, value) method sanitize_operator (line 78) | def sanitize_operator(operator) FILE: app/models/rule/condition_filter/transaction_amount.rb class Rule::ConditionFilter::TransactionAmount (line 1) | class Rule::ConditionFilter::TransactionAmount < Rule::ConditionFilter method type (line 2) | def type method prepare (line 6) | def prepare(scope) method apply (line 10) | def apply(scope, operator, value) FILE: app/models/rule/condition_filter/transaction_merchant.rb class Rule::ConditionFilter::TransactionMerchant (line 1) | class Rule::ConditionFilter::TransactionMerchant < Rule::ConditionFilter method type (line 2) | def type method options (line 6) | def options method prepare (line 10) | def prepare(scope) method apply (line 14) | def apply(scope, operator, value) FILE: app/models/rule/condition_filter/transaction_name.rb class Rule::ConditionFilter::TransactionName (line 1) | class Rule::ConditionFilter::TransactionName < Rule::ConditionFilter method prepare (line 2) | def prepare(scope) method apply (line 6) | def apply(scope, operator, value) FILE: app/models/rule/registry.rb class Rule::Registry (line 1) | class Rule::Registry method initialize (line 5) | def initialize(rule) method resource_scope (line 9) | def resource_scope method condition_filters (line 13) | def condition_filters method action_executors (line 17) | def action_executors method get_filter! (line 21) | def get_filter!(key) method get_executor! (line 27) | def get_executor!(key) method as_json (line 33) | def as_json method family (line 43) | def family FILE: app/models/rule/registry/transaction_resource.rb class Rule::Registry::TransactionResource (line 1) | class Rule::Registry::TransactionResource < Rule::Registry method resource_scope (line 2) | def resource_scope method condition_filters (line 6) | def condition_filters method action_executors (line 14) | def action_executors method ai_enabled? (line 31) | def ai_enabled? FILE: app/models/security.rb class Security (line 1) | class Security < ApplicationRecord method current_price (line 14) | def current_price method to_combobox_option (line 20) | def to_combobox_option method upcase_symbols (line 31) | def upcase_symbols FILE: app/models/security/health_checker.rb class Security::HealthChecker (line 12) | class Security::HealthChecker method check_all (line 18) | def check_all method never_checked_scope (line 32) | def never_checked_scope method due_for_check_scope (line 39) | def due_for_check_scope method initialize (line 45) | def initialize(security) method run_check (line 49) | def run_check method provider (line 68) | def provider method latest_provider_price (line 72) | def latest_provider_price method handle_success (line 87) | def handle_success method handle_failure (line 95) | def handle_failure method convert_to_offline_security! (line 110) | def convert_to_offline_security! FILE: app/models/security/price.rb class Security::Price (line 1) | class Security::Price < ApplicationRecord FILE: app/models/security/price/importer.rb class Security::Price::Importer (line 1) | class Security::Price::Importer method initialize (line 5) | def initialize(security:, security_provider:, start_date:, end_date:, ... method import_provider_prices (line 15) | def import_provider_prices method provider_prices (line 71) | def provider_prices method db_prices (line 96) | def db_prices method all_prices_exist? (line 103) | def all_prices_exist? method expected_count (line 107) | def expected_count method effective_start_date (line 112) | def effective_start_date method start_price_value (line 118) | def start_price_value method upsert_rows (line 126) | def upsert_rows(rows) method db_price_currency (line 142) | def db_price_currency method prev_price_currency (line 146) | def prev_price_currency method normalize_end_date (line 151) | def normalize_end_date(requested_end_date) FILE: app/models/security/provided.rb type Security::Provided (line 1) | module Security::Provided function provider (line 7) | def provider function search_provider (line 12) | def search_provider(symbol, country_code: nil, exchange_operating_mic:... function find_or_fetch_price (line 39) | def find_or_fetch_price(date: Date.current, cache: true) function import_provider_details (line 64) | def import_provider_details(clear_cache: false) function import_provider_prices (line 93) | def import_provider_prices(start_date:, end_date:, clear_cache: false) function provider (line 109) | def provider FILE: app/models/security/resolver.rb class Security::Resolver (line 1) | class Security::Resolver method initialize (line 2) | def initialize(symbol, exchange_operating_mic: nil, country_code: nil) method resolve (line 13) | def resolve method validate_symbol! (line 25) | def validate_symbol!(symbol) method offline_security (line 30) | def offline_security method exact_match_from_db (line 46) | def exact_match_from_db method exact_match_from_provider (line 57) | def exact_match_from_provider method close_match_from_provider (line 77) | def close_match_from_provider method find_or_create_provider_match! (line 103) | def find_or_create_provider_match!(match) method provider_search_result (line 115) | def provider_search_result method sorted_country_codes_by_relevance (line 126) | def sorted_country_codes_by_relevance method sorted_exchange_operating_mics_by_relevance (line 132) | def sorted_exchange_operating_mics_by_relevance FILE: app/models/security/synth_combobox_option.rb class Security::SynthComboboxOption (line 1) | class Security::SynthComboboxOption method id (line 6) | def id method to_combobox_display (line 10) | def to_combobox_display FILE: app/models/series.rb class Series (line 1) | class Series method each (line 9) | def each(&block) method from_raw_values (line 24) | def from_raw_values(values, interval: "1 day") method initialize (line 51) | def initialize(start_date:, end_date:, interval:, values:, favorable_d... method trend (line 59) | def trend method as_json (line 67) | def as_json FILE: app/models/session.rb class Session (line 1) | class Session < ApplicationRecord method get_preferred_tab (line 13) | def get_preferred_tab(tab_key) method set_preferred_tab (line 17) | def set_preferred_tab(tab_key, tab_value) FILE: app/models/setting.rb class Setting (line 2) | class Setting < RailsSettings::Base FILE: app/models/subscription.rb class Subscription (line 1) | class Subscription < ApplicationRecord method new_trial_ends_at (line 23) | def new_trial_ends_at method name (line 28) | def name FILE: app/models/sync.rb class Sync (line 1) | class Sync < ApplicationRecord method clean (line 55) | def clean method perform (line 60) | def perform method finalize_if_all_children_finalized (line 83) | def finalize_if_all_children_finalized method expand_window_if_needed (line 107) | def expand_window_if_needed(new_window_start_date, new_window_end_date) method log_status_change (line 130) | def log_status_change method has_failed_children? (line 134) | def has_failed_children? method all_children_finalized? (line 138) | def all_children_finalized? method perform_post_sync (line 142) | def perform_post_sync method report_error (line 151) | def report_error(error) method report_warnings (line 157) | def report_warnings method handle_start_transition (line 168) | def handle_start_transition method handle_transition (line 172) | def handle_transition method handle_completion_transition (line 176) | def handle_completion_transition method window_valid (line 180) | def window_valid method update_family_sync_timestamp (line 186) | def update_family_sync_timestamp method family (line 190) | def family FILE: app/models/tag.rb class Tag (line 1) | class Tag < ApplicationRecord method replace_and_destroy! (line 15) | def replace_and_destroy!(replacement) FILE: app/models/tagging.rb class Tagging (line 1) | class Tagging < ApplicationRecord FILE: app/models/tool_call.rb class ToolCall (line 1) | class ToolCall < ApplicationRecord FILE: app/models/tool_call/function.rb class ToolCall::Function (line 1) | class ToolCall::Function < ToolCall method from_function_request (line 7) | def from_function_request(function_request, result) method to_result (line 18) | def to_result FILE: app/models/trade.rb class Trade (line 1) | class Trade < ApplicationRecord method build_name (line 12) | def build_name(type, qty, ticker) method unrealized_gain_loss (line 18) | def unrealized_gain_loss FILE: app/models/trade/create_form.rb class Trade::CreateForm (line 1) | class Trade::CreateForm method create (line 9) | def create method security (line 22) | def security method create_trade (line 31) | def create_trade method create_interest_income (line 56) | def create_interest_income method create_transfer (line 75) | def create_transfer method create_unlinked_transfer (line 93) | def create_unlinked_transfer FILE: app/models/trade_import.rb class TradeImport (line 1) | class TradeImport < Import method import! (line 2) | def import! method mapping_steps (line 39) | def mapping_steps method required_column_keys (line 45) | def required_column_keys method column_keys (line 49) | def column_keys method dry_run (line 55) | def dry_run method csv_template (line 65) | def csv_template method find_or_create_security (line 79) | def find_or_create_security(ticker: nil, exchange_operating_mic: nil) FILE: app/models/transaction.rb class Transaction (line 1) | class Transaction < ApplicationRecord method transfer? (line 21) | def transfer? method set_category! (line 25) | def set_category!(category) FILE: app/models/transaction/ruleable.rb type Transaction::Ruleable (line 1) | module Transaction::Ruleable function eligible_for_category_rule? (line 4) | def eligible_for_category_rule? function rules (line 14) | def rules FILE: app/models/transaction/search.rb class Transaction::Search (line 1) | class Transaction::Search method initialize (line 20) | def initialize(family, filters: {}) method transactions_scope (line 25) | def transactions_scope method totals (line 45) | def totals method cache_key_base (line 71) | def cache_key_base method apply_active_accounts_filter (line 82) | def apply_active_accounts_filter(query, active_accounts_only_filter) method apply_category_filter (line 91) | def apply_category_filter(query, categories) method apply_type_filter (line 108) | def apply_type_filter(query, types) method apply_merchant_filter (line 134) | def apply_merchant_filter(query, merchants) method apply_tag_filter (line 139) | def apply_tag_filter(query, tags) FILE: app/models/transaction/transferable.rb type Transaction::Transferable (line 1) | module Transaction::Transferable function transfer (line 13) | def transfer function transfer_match_candidates (line 17) | def transfer_match_candidates function family_matches_scope (line 33) | def family_matches_scope FILE: app/models/transaction_import.rb class TransactionImport (line 1) | class TransactionImport < Import method import! (line 2) | def import! method required_column_keys (line 35) | def required_column_keys method column_keys (line 39) | def column_keys method mapping_steps (line 45) | def mapping_steps method selectable_amount_type_values (line 51) | def selectable_amount_type_values method csv_template (line 57) | def csv_template FILE: app/models/transfer.rb class Transfer (line 1) | class Transfer < ApplicationRecord method kind_for_account (line 16) | def kind_for_account(account) method reject! (line 27) | def reject! method destroy! (line 35) | def destroy! method confirm! (line 43) | def confirm! method date (line 47) | def date method sync_account_later (line 51) | def sync_account_later method to_account (line 56) | def to_account method from_account (line 60) | def from_account method amount_abs (line 64) | def amount_abs method name (line 68) | def name method payment? (line 77) | def payment? method loan_payment? (line 81) | def loan_payment? method liability_payment? (line 85) | def liability_payment? method regular_transfer? (line 89) | def regular_transfer? method transfer_type (line 93) | def transfer_type method categorizable? (line 99) | def categorizable? method transfer_has_different_accounts (line 104) | def transfer_has_different_accounts method transfer_has_same_family (line 109) | def transfer_has_same_family method transfer_has_opposite_amounts (line 114) | def transfer_has_opposite_amounts method transfer_within_date_range (line 132) | def transfer_within_date_range FILE: app/models/transfer/creator.rb class Transfer::Creator (line 1) | class Transfer::Creator method initialize (line 2) | def initialize(family:, source_account_id:, destination_account_id:, d... method create (line 10) | def create method outflow_transaction (line 28) | def outflow_transaction method inflow_transaction (line 42) | def inflow_transaction method inflow_converted_money (line 58) | def inflow_converted_money method outflow_transaction_kind (line 68) | def outflow_transaction_kind method name_prefix (line 78) | def name_prefix FILE: app/models/trend.rb class Trend (line 1) | class Trend method initialize (line 10) | def initialize(current:, previous:, favorable_direction: nil) method direction (line 18) | def direction method color (line 28) | def color method icon (line 39) | def icon method value (line 49) | def value method percent (line 53) | def percent method percent_formatted (line 62) | def percent_formatted method as_json (line 70) | def as_json method red_hex (line 83) | def red_hex method green_hex (line 87) | def green_hex method gray_hex (line 91) | def gray_hex FILE: app/models/user.rb class User (line 1) | class User < ApplicationRecord method pending_email_change? (line 40) | def pending_email_change? method initiate_email_change (line 44) | def initiate_email_change(new_email) method request_impersonation_for (line 60) | def request_impersonation_for(user_id) method admin? (line 65) | def admin? method display_name (line 69) | def display_name method initial (line 73) | def initial method initials (line 77) | def initials method show_ai_sidebar? (line 85) | def show_ai_sidebar? method ai_available? (line 89) | def ai_available? method ai_enabled? (line 93) | def ai_enabled? method deactivate (line 101) | def deactivate method can_deactivate (line 105) | def can_deactivate method purge_later (line 111) | def purge_later method purge (line 115) | def purge method setup_mfa! (line 124) | def setup_mfa! method enable_mfa! (line 132) | def enable_mfa! method disable_mfa! (line 139) | def disable_mfa! method verify_otp? (line 147) | def verify_otp?(code) method provisioning_uri (line 153) | def provisioning_uri method onboarded? (line 158) | def onboarded? method needs_onboarding? (line 162) | def needs_onboarding? method ensure_valid_profile_image (line 167) | def ensure_valid_profile_image method last_user_in_family? (line 176) | def last_user_in_family? method deactivated_email (line 180) | def deactivated_email method profile_image_size (line 184) | def profile_image_size method totp (line 190) | def totp method verify_backup_code? (line 194) | def verify_backup_code?(code) method generate_backup_codes (line 208) | def generate_backup_codes FILE: app/models/user_message.rb class UserMessage (line 1) | class UserMessage < Message method role (line 6) | def role method request_response_later (line 10) | def request_response_later method request_response (line 14) | def request_response FILE: app/models/valuation.rb class Valuation (line 1) | class Valuation < ApplicationRecord method build_reconciliation_name (line 11) | def build_reconciliation_name(accountable_type) method build_opening_anchor_name (line 15) | def build_opening_anchor_name(accountable_type) method build_current_anchor_name (line 19) | def build_current_anchor_name(accountable_type) FILE: app/models/valuation/name.rb class Valuation::Name (line 1) | class Valuation::Name method initialize (line 2) | def initialize(valuation_kind, accountable_type) method to_s (line 7) | def to_s method opening_anchor_name (line 21) | def opening_anchor_name method current_anchor_name (line 34) | def current_anchor_name method recon_name (line 47) | def recon_name FILE: app/models/vehicle.rb class Vehicle (line 1) | class Vehicle < ApplicationRecord method mileage (line 6) | def mileage method purchase_price (line 10) | def purchase_price method trend (line 14) | def trend method color (line 19) | def color method icon (line 23) | def icon method classification (line 27) | def classification method first_valuation_amount (line 33) | def first_valuation_amount FILE: app/services/api_rate_limiter.rb class ApiRateLimiter (line 1) | class ApiRateLimiter method initialize (line 11) | def initialize(api_key) method rate_limit_exceeded? (line 17) | def rate_limit_exceeded? method increment_request_count! (line 22) | def increment_request_count! method current_count (line 35) | def current_count method rate_limit (line 45) | def rate_limit method reset_time (line 51) | def reset_time method usage_info (line 58) | def usage_info method usage_for (line 69) | def self.usage_for(api_key) method limit (line 73) | def self.limit(api_key) method redis_key (line 85) | def redis_key method determine_tier (line 89) | def determine_tier FILE: app/services/noop_api_rate_limiter.rb class NoopApiRateLimiter (line 1) | class NoopApiRateLimiter method initialize (line 2) | def initialize(api_key) method rate_limit_exceeded? (line 6) | def rate_limit_exceeded? method increment_request_count! (line 10) | def increment_request_count! method current_count (line 14) | def current_count method rate_limit (line 18) | def rate_limit method reset_time (line 22) | def reset_time method usage_info (line 26) | def usage_info method usage_for (line 36) | def self.usage_for(api_key) FILE: config/application.rb type Maybe (line 9) | module Maybe class Application (line 10) | class Application < Rails::Application FILE: config/initializers/rack_attack.rb class Rack::Attack (line 3) | class Rack::Attack FILE: config/initializers/version.rb type Maybe (line 1) | module Maybe function version (line 3) | def version function commit_sha (line 7) | def commit_sha function semver (line 16) | def semver FILE: db/migrate/20240201183314_enable_uuid.rb class EnableUuid (line 1) | class EnableUuid < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240201184038_create_families.rb class CreateFamilies (line 1) | class CreateFamilies < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240201184212_create_users.rb class CreateUsers (line 1) | class CreateUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202015428_create_accounts.rb class CreateAccounts (line 1) | class CreateAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202191425_create_account_loans.rb class CreateAccountLoans (line 1) | class CreateAccountLoans < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202191746_add_accountable_to_account.rb class AddAccountableToAccount (line 1) | class AddAccountableToAccount < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192214_create_account_depositories.rb class CreateAccountDepositories (line 1) | class CreateAccountDepositories < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192231_create_account_credits.rb class CreateAccountCredits (line 1) | class CreateAccountCredits < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192238_create_account_investments.rb class CreateAccountInvestments (line 1) | class CreateAccountInvestments < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192312_create_account_properties.rb class CreateAccountProperties (line 1) | class CreateAccountProperties < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192319_create_account_vehicles.rb class CreateAccountVehicles (line 1) | class CreateAccountVehicles < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192327_create_account_other_assets.rb class CreateAccountOtherAssets (line 1) | class CreateAccountOtherAssets < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202192333_create_account_other_liabilities.rb class CreateAccountOtherLiabilities (line 1) | class CreateAccountOtherLiabilities < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240202230325_create_invite_codes.rb class CreateInviteCodes (line 1) | class CreateInviteCodes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240203030754_remove_type_from_accounts.rb class RemoveTypeFromAccounts (line 1) | class RemoveTypeFromAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240203050018_add_token_index_to_invite_codes.rb class AddTokenIndexToInviteCodes (line 1) | class AddTokenIndexToInviteCodes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240206031739_replace_money_field.rb class ReplaceMoneyField (line 1) | class ReplaceMoneyField < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240209153232_add_currency_to_families.rb class AddCurrencyToFamilies (line 1) | class AddCurrencyToFamilies < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240209174912_redo_money_storage.rb class RedoMoneyStorage (line 1) | class RedoMoneyStorage < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240209200519_create_currencies.rb class CreateCurrencies (line 1) | class CreateCurrencies < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240209200924_create_exchange_rates.rb class CreateExchangeRates (line 1) | class CreateExchangeRates < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240210155058_create_good_jobs.rb class CreateGoodJobs (line 3) | class CreateGoodJobs < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20240212150110_create_account_balances.rb class CreateAccountBalances (line 1) | class CreateAccountBalances < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240215201527_create_valuations.rb class CreateValuations (line 1) | class CreateValuations < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240221004818_remove_valuation_type.rb class RemoveValuationType (line 1) | class RemoveValuationType < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240222144849_add_status_to_account.rb class AddStatusToAccount (line 1) | class AddStatusToAccount < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240223162105_create_transactions.rb class CreateTransactions (line 1) | class CreateTransactions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240227142457_rename_account_balance.rb class RenameAccountBalance (line 1) | class RenameAccountBalance < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240302145715_add_classification_to_accounts.rb class AddClassificationToAccounts (line 1) | class AddClassificationToAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240306193345_add_is_active_to_account.rb class AddIsActiveToAccount (line 1) | class AddIsActiveToAccount < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240307082827_create_transaction_categories.rb class CreateTransactionCategories (line 1) | class CreateTransactionCategories < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240308121431_remove_currency_table.rb class RemoveCurrencyTable (line 1) | class RemoveCurrencyTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240308214956_add_notes_and_excluded_to_transaction.rb class AddNotesAndExcludedToTransaction (line 1) | class AddNotesAndExcludedToTransaction < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240309180636_add_sync_status_fields_to_account.rb class AddSyncStatusFieldsToAccount (line 1) | class AddSyncStatusFieldsToAccount < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240313141813_update_unique_indexes_for_account_balance_and_exchange_rate.rb class UpdateUniqueIndexesForAccountBalanceAndExchangeRate (line 1) | class UpdateUniqueIndexesForAccountBalanceAndExchangeRate < ActiveRecord... method change (line 2) | def change FILE: db/migrate/20240313203622_remove_converted_balance_from_account.rb class RemoveConvertedBalanceFromAccount (line 1) | class RemoveConvertedBalanceFromAccount < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240319154732_create_account_cryptos.rb class CreateAccountCryptos (line 1) | class CreateAccountCryptos < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240325064211_add_uniq_index_to_users_email.rb class AddUniqIndexToUsersEmail (line 1) | class AddUniqIndexToUsersEmail < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240401213443_add_last_sync_date_to_accounts.rb class AddLastSyncDateToAccounts (line 1) | class AddLastSyncDateToAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240403192649_add_last_login_at_to_users.rb class AddLastLoginAtToUsers (line 1) | class AddLastLoginAtToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240404112829_change_transaction_category_delete_behavior.rb class ChangeTransactionCategoryDeleteBehavior (line 1) | class ChangeTransactionCategoryDeleteBehavior < ActiveRecord::Migration[... method change (line 2) | def change FILE: db/migrate/20240410183531_create_settings.rb class CreateSettings (line 1) | class CreateSettings < ActiveRecord::Migration[7.2] method up (line 2) | def self.up method down (line 12) | def self.down FILE: db/migrate/20240411102931_add_last_seen_upgrade_to_user.rb class AddLastSeenUpgradeToUser (line 1) | class AddLastSeenUpgradeToUser < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240425000110_add_role_to_users.rb class AddRoleToUsers (line 1) | class AddRoleToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240426162500_create_active_storage_tables.active_storage.rb class CreateActiveStorageTables (line 2) | class CreateActiveStorageTables < ActiveRecord::Migration[7.0] method change (line 3) | def change method primary_and_foreign_key_types (line 50) | def primary_and_foreign_key_types FILE: db/migrate/20240426191312_add_transaction_merchants.rb class AddTransactionMerchants (line 1) | class AddTransactionMerchants < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240430111641_add_active_to_users.rb class AddActiveToUsers (line 1) | class AddActiveToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240502205006_create_imports.rb class CreateImports (line 1) | class CreateImports < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240520074309_add_admin_role_to_current_users.rb class AddAdminRoleToCurrentUsers (line 1) | class AddAdminRoleToCurrentUsers < ActiveRecord::Migration[7.2] method up (line 2) | def up FILE: db/migrate/20240522133147_create_tags.rb class CreateTags (line 1) | class CreateTags < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240522151453_create_taggings.rb class CreateTaggings (line 1) | class CreateTaggings < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240524203959_change_account_error_columns_default.rb class ChangeAccountErrorColumnsDefault (line 1) | class ChangeAccountErrorColumnsDefault < ActiveRecord::Migration[7.2] method up (line 2) | def up FILE: db/migrate/20240612164751_create_institutions.rb class CreateInstitutions (line 1) | class CreateInstitutions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240612164944_add_institution_to_accounts.rb class AddInstitutionToAccounts (line 1) | class AddInstitutionToAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240614120946_create_transfers.rb class CreateTransfers (line 1) | class CreateTransfers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240614121110_add_transfer_fields_to_transaction.rb class AddTransferFieldsToTransaction (line 1) | class AddTransferFieldsToTransaction < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240619125949_rename_accountable_tables.rb class RenameAccountableTables (line 1) | class RenameAccountableTables < ActiveRecord::Migration[7.2] method change (line 2) | def change method update_accountable_types (line 80) | def update_accountable_types(mapping) FILE: db/migrate/20240620114307_rename_categories_table.rb class RenameCategoriesTable (line 1) | class RenameCategoriesTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240620122201_rename_merchants_table.rb class RenameMerchantsTable (line 1) | class RenameMerchantsTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240620125026_rename_transfer_table.rb class RenameTransferTable (line 1) | class RenameTransferTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240620221801_rename_valuation_table.rb class RenameValuationTable (line 1) | class RenameValuationTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240621212528_rename_transactions_table.rb class RenameTransactionsTable (line 1) | class RenameTransactionsTable < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240624160611_create_account_entries.rb class CreateAccountEntries (line 1) | class CreateAccountEntries < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240624161153_migrate_entryables.rb class MigrateEntryables (line 1) | class MigrateEntryables < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240624164119_remove_old_columns_from_entryables.rb class RemoveOldColumnsFromEntryables (line 1) | class RemoveOldColumnsFromEntryables < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240628104551_move_transfers_association_from_transactions_to_entries.rb class MoveTransfersAssociationFromTransactionsToEntries (line 1) | class MoveTransfersAssociationFromTransactionsToEntries < ActiveRecord::... method change (line 2) | def change FILE: db/migrate/20240706151026_rename_rate_fields.rb class RenameRateFields (line 1) | class RenameRateFields < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240707130331_create_account_syncs.rb class CreateAccountSyncs (line 1) | class CreateAccountSyncs < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240709113713_create_good_job_execution_error_backtrace.rb class CreateGoodJobExecutionErrorBacktrace (line 3) | class CreateGoodJobExecutionErrorBacktrace < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20240709113714_create_good_job_process_lock_ids.rb class CreateGoodJobProcessLockIds (line 3) | class CreateGoodJobProcessLockIds < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20240709113715_create_good_job_process_lock_indexes.rb class CreateGoodJobProcessLockIndexes (line 3) | class CreateGoodJobProcessLockIndexes < ActiveRecord::Migration[7.2] method change (line 6) | def change FILE: db/migrate/20240709152243_create_good_job_execution_duration.rb class CreateGoodJobExecutionDuration (line 3) | class CreateGoodJobExecutionDuration < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20240710182529_create_securities.rb class CreateSecurities (line 1) | class CreateSecurities < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240710182728_create_security_prices.rb class CreateSecurityPrices (line 1) | class CreateSecurityPrices < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240710184048_create_account_trades.rb class CreateAccountTrades (line 1) | class CreateAccountTrades < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240710184249_create_account_holdings.rb class CreateAccountHoldings (line 1) | class CreateAccountHoldings < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240717113535_remove_default_from_account_balance.rb class RemoveDefaultFromAccountBalance (line 1) | class RemoveDefaultFromAccountBalance < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240725163339_add_last_synced_at_to_family.rb class AddLastSyncedAtToFamily (line 1) | class AddLastSyncedAtToFamily < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240731191344_change_primary_identifier_for_security.rb class ChangePrimaryIdentifierForSecurity (line 1) | class ChangePrimaryIdentifierForSecurity < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240807153618_add_currency_field_to_trade.rb class AddCurrencyFieldToTrade (line 1) | class AddCurrencyFieldToTrade < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240813170608_fix_invalid_accountable_data.rb class FixInvalidAccountableData (line 1) | class FixInvalidAccountableData < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 12) | def down FILE: db/migrate/20240815125404_create_issues.rb class CreateIssues (line 1) | class CreateIssues < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240815190722_remove_warnings_from_sync.rb class RemoveWarningsFromSync (line 1) | class RemoveWarningsFromSync < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240816071555_add_col_sep_to_imports.rb class AddColSepToImports (line 1) | class AddColSepToImports < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240817144454_rename_import_raw_csv_str_to_raw_file_str.rb class RenameImportRawCsvStrToRawFileStr (line 1) | class RenameImportRawCsvStrToRawFileStr < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240822174006_create_addresses.rb class CreateAddresses (line 1) | class CreateAddresses < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240822180845_add_property_attributes.rb class AddPropertyAttributes (line 1) | class AddPropertyAttributes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240823125526_add_details_to_vehicle.rb class AddDetailsToVehicle (line 1) | class AddDetailsToVehicle < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240911143158_add_last_synced_at_institution.rb class AddLastSyncedAtInstitution (line 1) | class AddLastSyncedAtInstitution < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20240921170426_change_import_owner.rb class ChangeImportOwner (line 1) | class ChangeImportOwner < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 16) | def down FILE: db/migrate/20240925112218_add_import_types.rb class AddImportTypes (line 1) | class AddImportTypes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241001181256_add_locale_preference.rb class AddLocalePreference (line 1) | class AddLocalePreference < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241003163448_create_sessions.rb class CreateSessions (line 1) | class CreateSessions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241007211438_add_billing_to_families.rb class AddBillingToFamilies (line 1) | class AddBillingToFamilies < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241008122449_add_debt_account_views.rb class AddDebtAccountViews (line 1) | class AddDebtAccountViews < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241009132959_add_notes_to_entry.rb class AddNotesToEntry (line 1) | class AddNotesToEntry < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241009214601_add_super_admin_to_users.rb class AddSuperAdminToUsers (line 1) | class AddSuperAdminToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241017162347_create_impersonation_sessions.rb class CreateImpersonationSessions (line 1) | class CreateImpersonationSessions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241017162536_create_impersonation_session_logs.rb class CreateImpersonationSessionLogs (line 1) | class CreateImpersonationSessionLogs < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241017204250_add_accounts_indexes.rb class AddAccountsIndexes (line 1) | class AddAccountsIndexes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241018201653_add_account_mode.rb class AddAccountMode (line 1) | class AddAccountMode < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241022170439_create_stock_exchanges.rb class CreateStockExchanges (line 1) | class CreateStockExchanges < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241022192319_fix_user_role_column_type.rb class FixUserRoleColumnType (line 1) | class FixUserRoleColumnType < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241022221544_add_onboarding_fields.rb class AddOnboardingFields (line 1) | class AddOnboardingFields < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241023195438_add_stock_exchange_reference.rb class AddStockExchangeReference (line 1) | class AddStockExchangeReference < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241024142537_add_subscription_timestamp_to_session.rb class AddSubscriptionTimestampToSession (line 1) | class AddSubscriptionTimestampToSession < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241025174650_add_mic_to_securities.rb class AddMicToSecurities (line 1) | class AddMicToSecurities < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241025182612_add_search_vector_to_securities.rb class AddSearchVectorToSecurities (line 1) | class AddSearchVectorToSecurities < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241029125406_add_reference_to_security_prices.rb class AddReferenceToSecurityPrices (line 1) | class AddReferenceToSecurityPrices < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241029184115_remove_prices_missing_issue.rb class RemovePricesMissingIssue (line 1) | class RemovePricesMissingIssue < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 6) | def down FILE: db/migrate/20241029234028_remove_search_vector.rb class RemoveSearchVector (line 1) | class RemoveSearchVector < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241030121302_fix_not_null_stock_exchange_data.rb class FixNotNullStockExchangeData (line 1) | class FixNotNullStockExchangeData < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241030151105_remove_account_mode.rb class RemoveAccountMode (line 1) | class RemoveAccountMode < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241030222235_create_invitations.rb class CreateInvitations (line 1) | class CreateInvitations < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241106193743_add_plaid_domain.rb class AddPlaidDomain (line 1) | class AddPlaidDomain < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241108150422_add_unique_email_index_to_invitations.rb class AddUniqueEmailIndexToInvitations (line 1) | class AddUniqueEmailIndexToInvitations < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241114164118_add_products_to_plaid_item.rb class AddProductsToPlaidItem (line 1) | class AddProductsToPlaidItem < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241122183828_change_loan_interest_rate_precision.rb.rb class ChangeLoanInterestRatePrecision (line 1) | class ChangeLoanInterestRatePrecision < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241126211249_add_logo_url_to_security.rb class AddLogoUrlToSecurity (line 1) | class AddLogoUrlToSecurity < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241204235400_add_balance_components.rb class AddBalanceComponents (line 1) | class AddBalanceComponents < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241207002408_add_family_timezone.rb class AddFamilyTimezone (line 1) | class AddFamilyTimezone < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241212141453_add_merchant_logo.rb class AddMerchantLogo (line 1) | class AddMerchantLogo < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241217141716_add_enrichment_setting.rb class AddEnrichmentSetting (line 1) | class AddEnrichmentSetting < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241218132503_add_enriched_name_field.rb class AddEnrichedNameField (line 1) | class AddEnrichedNameField < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241219151540_add_region_to_plaid_item.rb class AddRegionToPlaidItem (line 1) | class AddRegionToPlaidItem < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241219174803_add_parent_category.rb class AddParentCategory (line 1) | class AddParentCategory < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241227142333_add_error_trace_to_syncs.rb class AddErrorTraceToSyncs (line 1) | class AddErrorTraceToSyncs < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20241231140709_reverse_transfer_relations.rb class ReverseTransferRelations (line 1) | class ReverseTransferRelations < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250108182147_create_budgets.rb class CreateBudgets (line 1) | class CreateBudgets < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250108200055_create_budget_categories.rb class CreateBudgetCategories (line 1) | class CreateBudgetCategories < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250110012347_category_classification.rb class CategoryClassification (line 1) | class CategoryClassification < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250120210449_align_transfer_cascade_behavior.rb class AlignTransferCascadeBehavior (line 1) | class AlignTransferCascadeBehavior < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250124224316_create_rejected_transfers.rb class CreateRejectedTransfers (line 1) | class CreateRejectedTransfers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250128203303_store_transaction_filters_in_session.rb class StoreTransactionFiltersInSession (line 1) | class StoreTransactionFiltersInSession < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250130191533_add_email_confirmation_to_users.rb class AddEmailConfirmationToUsers (line 1) | class AddEmailConfirmationToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250130214500_remove_email_confirmation_sent_at_from_users.rb class RemoveEmailConfirmationSentAtFromUsers (line 1) | class RemoveEmailConfirmationSentAtFromUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250131171943_remove_email_confirmation_token_from_users.rb class RemoveEmailConfirmationTokenFromUsers (line 1) | class RemoveEmailConfirmationTokenFromUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250206003115_remove_import_status_enum.rb class RemoveImportStatusEnum (line 1) | class RemoveImportStatusEnum < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 8) | def down FILE: db/migrate/20250206141452_add_institution_details_to_plaid_items.rb class AddInstitutionDetailsToPlaidItems (line 1) | class AddInstitutionDetailsToPlaidItems < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250206151825_add_mfa_fields_to_users.rb class AddMfaFieldsToUsers (line 1) | class AddMfaFieldsToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250206204404_add_constraints_to_account_holdings.rb class AddConstraintsToAccountHoldings (line 1) | class AddConstraintsToAccountHoldings < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 33) | def down FILE: db/migrate/20250207011850_add_exchange_operating_mic_to_securities.rb class AddExchangeOperatingMicToSecurities (line 1) | class AddExchangeOperatingMicToSecurities < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250207014022_add_number_format_to_imports.rb class AddNumberFormatToImports (line 1) | class AddNumberFormatToImports < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250207194638_adjust_securities_indexes.rb class AdjustSecuritiesIndexes (line 1) | class AdjustSecuritiesIndexes < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250211161238_make_ticker_not_null.rb class MakeTickerNotNull (line 1) | class MakeTickerNotNull < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250212163624_add_status_to_plaid_items.rb class AddStatusToPlaidItems (line 1) | class AddStatusToPlaidItems < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250212213301_add_user_sidebar_preference.rb class AddUserSidebarPreference (line 1) | class AddUserSidebarPreference < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250220153958_update_imports_for_operating_mic_v2.rb class UpdateImportsForOperatingMicV2 (line 1) | class UpdateImportsForOperatingMicV2 < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250220200735_add_default_lucide_icon_to_categories.rb class AddDefaultLucideIconToCategories (line 1) | class AddDefaultLucideIconToCategories < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 13) | def down FILE: db/migrate/20250303141007_add_optional_account_for_import.rb class AddOptionalAccountForImport (line 1) | class AddOptionalAccountForImport < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250304140435_add_default_period_to_users.rb class AddDefaultPeriodToUsers (line 1) | class AddDefaultPeriodToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250304200956_add_signage_type_to_imports.rb class AddSignageTypeToImports (line 1) | class AddSignageTypeToImports < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250315191233_remove_ticker_from_security_prices.rb class RemoveTickerFromSecurityPrices (line 1) | class RemoveTickerFromSecurityPrices < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250316103753_remove_issues.rb class RemoveIssues (line 1) | class RemoveIssues < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250316122019_security_price_unique_index.rb class SecurityPriceUniqueIndex (line 1) | class SecurityPriceUniqueIndex < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250318212559_remove_good_job.rb class RemoveGoodJob (line 1) | class RemoveGoodJob < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 10) | def down FILE: db/migrate/20250319145426_remove_self_host_upgrades.rb class RemoveSelfHostUpgrades (line 1) | class RemoveSelfHostUpgrades < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250319212839_create_ai_chats.rb class CreateAiChats (line 1) | class CreateAiChats < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250405210514_add_initial_balance_field.rb class AddInitialBalanceField (line 1) | class AddInitialBalanceField < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250410144939_add_theme_to_users.rb class AddThemeToUsers (line 1) | class AddThemeToUsers < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250411140604_add_parent_syncs.rb class AddParentSyncs (line 1) | class AddParentSyncs < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250413141446_table_renames.rb class TableRenames (line 1) | class TableRenames < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250416235317_add_rules_engine.rb class AddRulesEngine (line 1) | class AddRulesEngine < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250416235420_add_data_enrichments.rb class AddDataEnrichments (line 1) | class AddDataEnrichments < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250416235758_merchant_and_category_enrichment.rb class MerchantAndCategoryEnrichment (line 1) | class MerchantAndCategoryEnrichment < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250429021255_add_name_to_rules.rb class AddNameToRules (line 1) | class AddNameToRules < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250501172430_add_user_goals.rb class AddUserGoals (line 1) | class AddUserGoals < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250502164951_create_subscriptions.rb class CreateSubscriptions (line 1) | class CreateSubscriptions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250509182903_dynamic_last_synced.rb class DynamicLastSynced (line 1) | class DynamicLastSynced < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250512171654_update_sync_timestamps.rb class UpdateSyncTimestamps (line 1) | class UpdateSyncTimestamps < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250513122703_add_uniqueness_to_subscriptions.rb class AddUniquenessToSubscriptions (line 1) | class AddUniquenessToSubscriptions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250514214242_add_metadata_to_session.rb class AddMetadataToSession (line 1) | class AddMetadataToSession < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250516180846_remove_stock_exchanges.rb class RemoveStockExchanges (line 1) | class RemoveStockExchanges < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250518181619_add_auto_sync_preference_to_family.rb class AddAutoSyncPreferenceToFamily (line 1) | class AddAutoSyncPreferenceToFamily < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250521112347_add_security_resolver_fields.rb class AddSecurityResolverFields (line 1) | class AddSecurityResolverFields < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250522201031_stronger_unique_index_on_security.rb class StrongerUniqueIndexOnSecurity (line 1) | class StrongerUniqueIndexOnSecurity < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250523131455_add_raw_payloads_to_plaid_accounts.rb class AddRawPayloadsToPlaidAccounts (line 1) | class AddRawPayloadsToPlaidAccounts < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250605031616_add_index_to_sync_status.rb class AddIndexToSyncStatus (line 1) | class AddIndexToSyncStatus < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20250610181219_add_sync_timestamps_to_family.rb class AddSyncTimestampsToFamily (line 1) | class AddSyncTimestampsToFamily < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250612150749_create_doorkeeper_tables.rb class CreateDoorkeeperTables (line 3) | class CreateDoorkeeperTables < ActiveRecord::Migration[7.2] method change (line 4) | def change FILE: db/migrate/20250612154522_fix_doorkeeper_resource_owner_id_for_uuid.rb class FixDoorkeeperResourceOwnerIdForUuid (line 1) | class FixDoorkeeperResourceOwnerIdForUuid < ActiveRecord::Migration[7.1] method up (line 2) | def up method down (line 6) | def down FILE: db/migrate/20250613002027_create_api_keys.rb class CreateApiKeys (line 1) | class CreateApiKeys < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250613100842_add_display_key_to_api_keys.rb class AddDisplayKeyToApiKeys (line 1) | class AddDisplayKeyToApiKeys < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250613101036_remove_key_from_api_keys.rb class RemoveKeyFromApiKeys (line 1) | class RemoveKeyFromApiKeys < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250613101051_remove_key_index_from_api_keys.rb class RemoveKeyIndexFromApiKeys (line 1) | class RemoveKeyIndexFromApiKeys < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250613152743_fix_doorkeeper_access_grants_resource_owner_id_for_uuid.rb class FixDoorkeeperAccessGrantsResourceOwnerIdForUuid (line 1) | class FixDoorkeeperAccessGrantsResourceOwnerIdForUuid < ActiveRecord::Mi... method up (line 2) | def up method down (line 6) | def down FILE: db/migrate/20250616183654_add_kind_to_transactions.rb class AddKindToTransactions (line 1) | class AddKindToTransactions < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250618104425_add_source_to_api_keys.rb class AddSourceToApiKeys (line 1) | class AddSourceToApiKeys < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250618110104_create_mobile_devices.rb class CreateMobileDevices (line 1) | class CreateMobileDevices < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250618110736_add_owner_to_oauth_applications.rb class AddOwnerToOauthApplications (line 1) | class AddOwnerToOauthApplications < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250618120703_add_oauth_application_to_mobile_devices.rb class AddOauthApplicationToMobileDevices (line 1) | class AddOauthApplicationToMobileDevices < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250620204550_update_excluded_transactions_to_one_time.rb class UpdateExcludedTransactionsToOneTime (line 1) | class UpdateExcludedTransactionsToOneTime < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250623162207_update_outdated_timezones.rb class UpdateOutdatedTimezones (line 1) | class UpdateOutdatedTimezones < ActiveRecord::Migration[7.2] method up (line 12) | def up method down (line 22) | def down FILE: db/migrate/20250701161640_add_account_status.rb class AddAccountStatus (line 1) | class AddAccountStatus < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 21) | def down FILE: db/migrate/20250702173231_fix_mobile_devices_unique_constraint.rb class FixMobileDevicesUniqueConstraint (line 1) | class FixMobileDevicesUniqueConstraint < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250710225721_add_valuation_kind.rb class AddValuationKind (line 1) | class AddValuationKind < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250718120146_add_indexes_to_core_models.rb class AddIndexesToCoreModels (line 1) | class AddIndexesToCoreModels < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: db/migrate/20250719121103_add_start_end_columns_to_balances.rb class AddStartEndColumnsToBalances (line 1) | class AddStartEndColumnsToBalances < ActiveRecord::Migration[7.2] method up (line 2) | def up method down (line 54) | def down FILE: db/migrate/20250724115507_create_family_exports.rb class CreateFamilyExports (line 1) | class CreateFamilyExports < ActiveRecord::Migration[7.2] method change (line 2) | def change FILE: lib/money.rb class Money (line 1) | class Money class ConversionError (line 5) | class ConversionError < StandardError method initialize (line 8) | def initialize(from_currency:, to_currency:, date:) method default_currency (line 24) | def default_currency method default_currency= (line 28) | def default_currency=(object) method initialize (line 33) | def initialize(obj, currency = Money.default_currency, store: Exchange... method exchange_to (line 42) | def exchange_to(other_currency, date: Date.current, fallback_rate: nil) method as_json (line 57) | def as_json method <=> (line 61) | def <=>(other) method source_must_be_of_known_type (line 78) | def source_must_be_of_known_type FILE: lib/money/arithmetic.rb type Money::Arithmetic (line 1) | module Money::Arithmetic function + (line 4) | def +(other) function - (line 13) | def -(other) function -@ (line 22) | def -@ function * (line 26) | def *(other) function / (line 32) | def /(other) function abs (line 41) | def abs function zero? (line 45) | def zero? function negative? (line 49) | def negative? function positive? (line 53) | def positive? function to_f (line 57) | def to_f function coerce (line 63) | def coerce(other) FILE: lib/money/currency.rb class Money::Currency (line 1) | class Money::Currency class UnknownCurrencyError (line 4) | class UnknownCurrencyError < ArgumentError; end method new (line 12) | def new(object) method all (line 25) | def all method all_instances (line 34) | def all_instances method as_options (line 38) | def as_options method popular (line 44) | def popular method initialize (line 53) | def initialize(iso_code) method step (line 72) | def step method <=> (line 76) | def <=>(other) FILE: lib/money/formatting.rb type Money::Formatting (line 1) | module Money::Formatting function format (line 4) | def format(options = {}) function format_options (line 12) | def format_options(locale = nil) function get_symbol (line 25) | def get_symbol function locale_options (line 33) | def locale_options(locale) FILE: lib/semver.rb class Semver (line 2) | class Semver method initialize (line 5) | def initialize(version_string) method > (line 10) | def > (other) method < (line 14) | def < (other) method == (line 18) | def == (other) method to_s (line 22) | def to_s method to_release_tag (line 26) | def to_release_tag method from_release_tag (line 30) | def self.from_release_tag(tag) FILE: lib/tasks/benchmarking.rake function setup_benchmark_env (line 124) | def setup_benchmark_env(path) function benchmark_file (line 132) | def benchmark_file(path) function extract_clean_results (line 141) | def extract_clean_results(output) function format_table_row (line 171) | def format_table_row(type, data) function no_data_hash (line 183) | def no_data_hash(ips_msg = "No data") FILE: lib/tasks/demo_data.rake function validate_demo_data (line 40) | def validate_demo_data FILE: perf.rake class CustomAuth (line 10) | class CustomAuth < DerailedBenchmarks::AuthHelper method setup (line 11) | def setup method call (line 15) | def call(env) FILE: test/application_system_test_case.rb class ApplicationSystemTestCase (line 3) | class ApplicationSystemTestCase < ActionDispatch::SystemTestCase method sign_in (line 12) | def sign_in(user) method login_as (line 24) | def login_as(user) method sign_out (line 28) | def sign_out method within_testid (line 36) | def within_testid(testid) FILE: test/channels/application_cable/connection_test.rb type ApplicationCable (line 3) | module ApplicationCable class ConnectionTest (line 4) | class ConnectionTest < ActionCable::Connection::TestCase FILE: test/components/previews/alert_component_preview.rb class AlertComponentPreview (line 1) | class AlertComponentPreview < Lookbook::Preview method default (line 4) | def default(message: "This is an alert message.", variant: :info) FILE: test/components/previews/button_component_preview.rb class ButtonComponentPreview (line 1) | class ButtonComponentPreview < ViewComponent::Preview method default (line 6) | def default(variant: "primary", size: "md", disabled: false, icon: "pl... FILE: test/components/previews/dialog_component_preview.rb class DialogComponentPreview (line 1) | class DialogComponentPreview < ViewComponent::Preview method modal (line 3) | def modal(show_overflow: false) method drawer (line 23) | def drawer(show_overflow: false) FILE: test/components/previews/disclosure_component_preview.rb class DisclosureComponentPreview (line 1) | class DisclosureComponentPreview < ViewComponent::Preview method default (line 4) | def default(align: "right") FILE: test/components/previews/filled_icon_component_preview.rb class FilledIconComponentPreview (line 1) | class FilledIconComponentPreview < ViewComponent::Preview method default (line 3) | def default(size: "md") method text (line 8) | def text(size: "md") FILE: test/components/previews/link_component_preview.rb class LinkComponentPreview (line 1) | class LinkComponentPreview < ViewComponent::Preview method default (line 14) | def default(variant: "default", size: "md", icon: "plus", icon_positio... FILE: test/components/previews/menu_component_preview.rb class MenuComponentPreview (line 1) | class MenuComponentPreview < ViewComponent::Preview method icon (line 2) | def icon method button (line 8) | def button method avatar (line 15) | def avatar method menu_contents (line 22) | def menu_contents(menu) FILE: test/components/previews/tabs_component_preview.rb class TabsComponentPreview (line 1) | class TabsComponentPreview < ViewComponent::Preview method default (line 2) | def default method custom (line 5) | def custom FILE: test/components/previews/toggle_component_preview.rb class ToggleComponentPreview (line 1) | class ToggleComponentPreview < ViewComponent::Preview method default (line 3) | def default(disabled: false) FILE: test/components/previews/tooltip_component_preview.rb class TooltipComponentPreview (line 1) | class TooltipComponentPreview < ViewComponent::Preview method default (line 9) | def default(text: "This is helpful information", placement: "top", off... method with_block_content (line 21) | def with_block_content FILE: test/controllers/accountable_sparklines_controller_test.rb class AccountableSparklinesControllerTest (line 3) | class AccountableSparklinesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/accounts_controller_test.rb class AccountsControllerTest (line 3) | class AccountsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/api/v1/accounts_controller_test.rb class Api::V1::AccountsControllerTest (line 5) | class Api::V1::AccountsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/api/v1/auth_controller_test.rb class Api::V1::AuthControllerTest (line 3) | class Api::V1::AuthControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/api/v1/base_controller_test.rb class Api::V1::BaseControllerTest (line 5) | class Api::V1::BaseControllerTest < ActionDispatch::IntegrationTest method capture_log (line 430) | def capture_log(&block) FILE: test/controllers/api/v1/chats_controller_test.rb class Api::V1::ChatsControllerTest (line 5) | class Api::V1::ChatsControllerTest < ActionDispatch::IntegrationTest method bearer_auth_header (line 130) | def bearer_auth_header(token) FILE: test/controllers/api/v1/messages_controller_test.rb class Api::V1::MessagesControllerTest (line 5) | class Api::V1::MessagesControllerTest < ActionDispatch::IntegrationTest method bearer_auth_header (line 108) | def bearer_auth_header(token) FILE: test/controllers/api/v1/transactions_controller_test.rb class Api::V1::TransactionsControllerTest (line 5) | class Api::V1::TransactionsControllerTest < ActionDispatch::IntegrationTest method api_headers (line 358) | def api_headers(api_key) FILE: test/controllers/api/v1/usage_controller_test.rb class Api::V1::UsageControllerTest (line 3) | class Api::V1::UsageControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/categories_controller_test.rb class CategoriesControllerTest (line 3) | class CategoriesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/category/deletions_controller_test.rb class Category::DeletionsControllerTest (line 3) | class Category::DeletionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/chats_controller_test.rb class ChatsControllerTest (line 3) | class ChatsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/concerns/auto_sync_test.rb class AutoSyncTest (line 3) | class AutoSyncTest < ActionDispatch::IntegrationTest FILE: test/controllers/concerns/onboardable_test.rb class OnboardableTest (line 3) | class OnboardableTest < ActionDispatch::IntegrationTest FILE: test/controllers/credit_cards_controller_test.rb class CreditCardsControllerTest (line 3) | class CreditCardsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/cryptos_controller_test.rb class CryptosControllerTest (line 3) | class CryptosControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/currencies_controller_test.rb class CurrenciesControllerTest (line 3) | class CurrenciesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/current_sessions_controller_test.rb class CurrentSessionsControllerTest (line 3) | class CurrentSessionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/depositories_controller_test.rb class DepositoriesControllerTest (line 3) | class DepositoriesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/email_confirmations_controller_test.rb class EmailConfirmationsControllerTest (line 3) | class EmailConfirmationsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/family_exports_controller_test.rb class FamilyExportsControllerTest (line 3) | class FamilyExportsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/family_merchants_controller_test.rb class FamilyMerchantsControllerTest (line 3) | class FamilyMerchantsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/holdings_controller_test.rb class HoldingsControllerTest (line 3) | class HoldingsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/impersonation_sessions_controller_test.rb class ImpersonationSessionsControllerTest (line 3) | class ImpersonationSessionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/import/cleans_controller_test.rb class Import::CleansControllerTest (line 3) | class Import::CleansControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/import/configurations_controller_test.rb class Import::ConfigurationsControllerTest (line 3) | class Import::ConfigurationsControllerTest < ActionDispatch::Integration... FILE: test/controllers/import/confirms_controller_test.rb class Import::ConfirmsControllerTest (line 3) | class Import::ConfirmsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/import/mappings_controller_test.rb class Import::MappingsControllerTest (line 3) | class Import::MappingsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/import/rows_controller_test.rb class Import::RowsControllerTest (line 3) | class Import::RowsControllerTest < ActionDispatch::IntegrationTest method assert_row_fields (line 74) | def assert_row_fields(row, fields) FILE: test/controllers/import/uploads_controller_test.rb class Import::UploadsControllerTest (line 3) | class Import::UploadsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/imports_controller_test.rb class ImportsControllerTest (line 3) | class ImportsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/investments_controller_test.rb class InvestmentsControllerTest (line 3) | class InvestmentsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/invitations_controller_test.rb class InvitationsControllerTest (line 3) | class InvitationsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/invite_codes_controller_test.rb class InviteCodesControllerTest (line 3) | class InviteCodesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/loans_controller_test.rb class LoansControllerTest (line 3) | class LoansControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/messages_controller_test.rb class MessagesControllerTest (line 3) | class MessagesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/mfa_controller_test.rb class MfaControllerTest (line 3) | class MfaControllerTest < ActionDispatch::IntegrationTest method sign_out (line 9) | def sign_out FILE: test/controllers/onboardings_controller_test.rb class OnboardingsControllerTest (line 3) | class OnboardingsControllerTest < ActionDispatch::IntegrationTest method sign_out (line 164) | def sign_out FILE: test/controllers/other_assets_controller_test.rb class OtherAssetsControllerTest (line 3) | class OtherAssetsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/other_liabilities_controller_test.rb class OtherLiabilitiesControllerTest (line 3) | class OtherLiabilitiesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/pages_controller_test.rb class PagesControllerTest (line 3) | class PagesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/password_resets_controller_test.rb class PasswordResetsControllerTest (line 3) | class PasswordResetsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/plaid_items_controller_test.rb class PlaidItemsControllerTest (line 4) | class PlaidItemsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/properties_controller_test.rb class PropertiesControllerTest (line 3) | class PropertiesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/registrations_controller_test.rb class RegistrationsControllerTest (line 3) | class RegistrationsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/rules_controller_test.rb class RulesControllerTest (line 3) | class RulesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/sessions_controller_test.rb class SessionsControllerTest (line 3) | class SessionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/settings/api_keys_controller_test.rb class Settings::ApiKeysControllerTest (line 3) | class Settings::ApiKeysControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/settings/billings_controller_test.rb class Settings::BillingsControllerTest (line 3) | class Settings::BillingsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/settings/hostings_controller_test.rb class Settings::HostingsControllerTest (line 4) | class Settings::HostingsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/settings/preferences_controller_test.rb class Settings::PreferencesControllerTest (line 3) | class Settings::PreferencesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/settings/profiles_controller_test.rb class Settings::ProfilesControllerTest (line 3) | class Settings::ProfilesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/subscriptions_controller_test.rb class SubscriptionsControllerTest (line 4) | class SubscriptionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/tag/deletions_controller_test.rb class Tag::DeletionsControllerTest (line 3) | class Tag::DeletionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/tags_controller_test.rb class TagsControllerTest (line 3) | class TagsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/trades_controller_test.rb class TradesControllerTest (line 3) | class TradesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/transactions/bulk_deletions_controller_test.rb class Transactions::BulkDeletionsControllerTest (line 3) | class Transactions::BulkDeletionsControllerTest < ActionDispatch::Integr... FILE: test/controllers/transactions/bulk_updates_controller_test.rb class Transactions::BulkUpdatesControllerTest (line 3) | class Transactions::BulkUpdatesControllerTest < ActionDispatch::Integrat... FILE: test/controllers/transactions_controller_test.rb class TransactionsControllerTest (line 3) | class TransactionsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/transfer_matches_controller_test.rb class TransferMatchesControllerTest (line 3) | class TransferMatchesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/transfers_controller_test.rb class TransfersControllerTest (line 3) | class TransfersControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/users_controller_test.rb class UsersControllerTest (line 3) | class UsersControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/valuations_controller_test.rb class ValuationsControllerTest (line 3) | class ValuationsControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/vehicles_controller_test.rb class VehiclesControllerTest (line 3) | class VehiclesControllerTest < ActionDispatch::IntegrationTest FILE: test/controllers/webhooks_controller_test.rb class WebhooksControllerTest (line 3) | class WebhooksControllerTest < ActionDispatch::IntegrationTest FILE: test/data_migrations/balance_component_migrator_test.rb class BalanceComponentMigratorTest (line 3) | class BalanceComponentMigratorTest < ActiveSupport::TestCase method create_balance_history (line 111) | def create_balance_history(account, balances) method assert_migrated_balances (line 122) | def assert_migrated_balances(account, expected) FILE: test/helpers/application_helper_test.rb class ApplicationHelperTest (line 3) | class ApplicationHelperTest < ActionView::TestCase method setup (line 14) | def setup FILE: test/i18n_test.rb class I18nTest (line 6) | class I18nTest < ActiveSupport::TestCase method setup (line 7) | def setup method test_no_missing_keys (line 11) | def test_no_missing_keys method test_no_unused_keys (line 18) | def test_no_unused_keys method test_files_are_normalized (line 25) | def test_files_are_normalized method test_no_inconsistent_interpolations (line 34) | def test_no_inconsistent_interpolations FILE: test/integration/oauth_basic_test.rb class OauthBasicTest (line 5) | class OauthBasicTest < ActionDispatch::IntegrationTest FILE: test/integration/oauth_mobile_test.rb class OauthMobileTest (line 5) | class OauthMobileTest < ActionDispatch::IntegrationTest FILE: test/integration/rack_attack_test.rb class RackAttackTest (line 5) | class RackAttackTest < ActionDispatch::IntegrationTest FILE: test/interfaces/accountable_resource_interface_test.rb type AccountableResourceInterfaceTest (line 3) | module AccountableResourceInterfaceTest FILE: test/interfaces/entryable_resource_interface_test.rb type EntryableResourceInterfaceTest (line 3) | module EntryableResourceInterfaceTest FILE: test/interfaces/exchange_rate_provider_interface_test.rb type ExchangeRateProviderInterfaceTest (line 3) | module ExchangeRateProviderInterfaceTest function vcr_key_prefix (line 35) | def vcr_key_prefix FILE: test/interfaces/import_interface_test.rb type ImportInterfaceTest (line 3) | module ImportInterfaceTest FILE: test/interfaces/llm_interface_test.rb type LLMInterfaceTest (line 3) | module LLMInterfaceTest function vcr_key_prefix (line 7) | def vcr_key_prefix FILE: test/interfaces/security_provider_interface_test.rb type SecurityProviderInterfaceTest (line 3) | module SecurityProviderInterfaceTest function vcr_key_prefix (line 65) | def vcr_key_prefix FILE: test/interfaces/syncable_interface_test.rb type SyncableInterfaceTest (line 3) | module SyncableInterfaceTest FILE: test/jobs/family_data_export_job_test.rb class FamilyDataExportJobTest (line 3) | class FamilyDataExportJobTest < ActiveJob::TestCase FILE: test/jobs/import_job_test.rb class ImportJobTest (line 3) | class ImportJobTest < ActiveJob::TestCase FILE: test/jobs/stripe_event_handler_job_test.rb class StripeEventHandlerJobTest (line 3) | class StripeEventHandlerJobTest < ActiveJob::TestCase FILE: test/jobs/sync_job_test.rb class SyncJobTest (line 3) | class SyncJobTest < ActiveJob::TestCase FILE: test/lib/money/currency_test.rb class Money::CurrencyTest (line 3) | class Money::CurrencyTest < ActiveSupport::TestCase FILE: test/lib/money_test.rb class MoneyTest (line 4) | class MoneyTest < ActiveSupport::TestCase FILE: test/mailers/email_confirmation_mailer_test.rb class EmailConfirmationMailerTest (line 3) | class EmailConfirmationMailerTest < ActionMailer::TestCase FILE: test/mailers/password_mailer_test.rb class PasswordMailerTest (line 3) | class PasswordMailerTest < ActionMailer::TestCase FILE: test/mailers/previews/email_confirmation_mailer_preview.rb class EmailConfirmationMailerPreview (line 2) | class EmailConfirmationMailerPreview < ActionMailer::Preview method confirmation_email (line 4) | def confirmation_email FILE: test/mailers/previews/password_mailer_preview.rb class PasswordMailerPreview (line 2) | class PasswordMailerPreview < ActionMailer::Preview FILE: test/models/account/activity_feed_data_test.rb class Account::ActivityFeedDataTest (line 3) | class Account::ActivityFeedDataTest < ActiveSupport::TestCase method find_activity_for_date (line 190) | def find_activity_for_date(activities, date) method setup_test_data (line 194) | def setup_test_data FILE: test/models/account/chartable_test.rb class Account::ChartableTest (line 3) | class Account::ChartableTest < ActiveSupport::TestCase FILE: test/models/account/current_balance_manager_test.rb class Account::CurrentBalanceManagerTest (line 3) | class Account::CurrentBalanceManagerTest < ActiveSupport::TestCase FILE: test/models/account/entry_test.rb class EntryTest (line 3) | class EntryTest < ActiveSupport::TestCase FILE: test/models/account/market_data_importer_test.rb class Account::MarketDataImporterTest (line 4) | class Account::MarketDataImporterTest < ActiveSupport::TestCase FILE: test/models/account/opening_balance_manager_test.rb class Account::OpeningBalanceManagerTest (line 3) | class Account::OpeningBalanceManagerTest < ActiveSupport::TestCase FILE: test/models/account/reconciliation_manager_test.rb class Account::ReconciliationManagerTest (line 3) | class Account::ReconciliationManagerTest < ActiveSupport::TestCase FILE: test/models/account/transaction_test.rb class TransactionTest (line 3) | class TransactionTest < ActiveSupport::TestCase FILE: test/models/account_import_test.rb class AccountImportTest (line 3) | class AccountImportTest < ActiveSupport::TestCase FILE: test/models/account_test.rb class AccountTest (line 3) | class AccountTest < ActiveSupport::TestCase FILE: test/models/address_test.rb class AddressTest (line 3) | class AddressTest < ActiveSupport::TestCase FILE: test/models/api_key_test.rb class ApiKeyTest (line 3) | class ApiKeyTest < ActiveSupport::TestCase method setup (line 4) | def setup FILE: test/models/assistant_message_test.rb class AssistantMessageTest (line 3) | class AssistantMessageTest < ActiveSupport::TestCase FILE: test/models/assistant_test.rb class AssistantTest (line 3) | class AssistantTest < ActiveSupport::TestCase method provider_function_request (line 122) | def provider_function_request(id:, call_id:, function_name:, function_... method provider_message (line 131) | def provider_message(id:, text:) method provider_text_chunk (line 135) | def provider_text_chunk(text) method provider_response_chunk (line 139) | def provider_response_chunk(id:, model:, messages:, function_requests:) FILE: test/models/balance/chart_series_builder_test.rb class Balance::ChartSeriesBuilderTest (line 3) | class Balance::ChartSeriesBuilderTest < ActiveSupport::TestCase FILE: test/models/balance/forward_calculator_test.rb class Balance::ForwardCalculatorTest (line 4) | class Balance::ForwardCalculatorTest < ActiveSupport::TestCase method assert_balances (line 585) | def assert_balances(calculated_data:, expected_balances:) FILE: test/models/balance/materializer_test.rb class Balance::MaterializerTest (line 3) | class Balance::MaterializerTest < ActiveSupport::TestCase method assert_balance_fields_persisted (line 139) | def assert_balance_fields_persisted(expected_balances) FILE: test/models/balance/reverse_calculator_test.rb class Balance::ReverseCalculatorTest (line 3) | class Balance::ReverseCalculatorTest < ActiveSupport::TestCase FILE: test/models/balance_sheet_test.rb class BalanceSheetTest (line 3) | class BalanceSheetTest < ActiveSupport::TestCase method create_account (line 79) | def create_account(attributes = {}) FILE: test/models/budget_test.rb class BudgetTest (line 3) | class BudgetTest < ActiveSupport::TestCase FILE: test/models/category_test.rb class CategoryTest (line 3) | class CategoryTest < ActiveSupport::TestCase method setup (line 4) | def setup FILE: test/models/chat_test.rb class ChatTest (line 3) | class ChatTest < ActiveSupport::TestCase FILE: test/models/concerns/enrichable_test.rb class EnrichableTest (line 3) | class EnrichableTest < ActiveSupport::TestCase FILE: test/models/current_test.rb class CurrentTest (line 3) | class CurrentTest < ActiveSupport::TestCase FILE: test/models/developer_message_test.rb class DeveloperMessageTest (line 3) | class DeveloperMessageTest < ActiveSupport::TestCase FILE: test/models/exchange_rate/importer_test.rb class ExchangeRate::ImporterTest (line 4) | class ExchangeRate::ImporterTest < ActiveSupport::TestCase method get_provider_fetch_start_date (line 144) | def get_provider_fetch_start_date(start_date) FILE: test/models/exchange_rate_test.rb class ExchangeRateTest (line 4) | class ExchangeRateTest < ActiveSupport::TestCase FILE: test/models/family/auto_categorizer_test.rb class Family::AutoCategorizerTest (line 3) | class Family::AutoCategorizerTest < ActiveSupport::TestCase FILE: test/models/family/auto_merchant_detector_test.rb class Family::AutoMerchantDetectorTest (line 3) | class Family::AutoMerchantDetectorTest < ActiveSupport::TestCase FILE: test/models/family/auto_transfer_matchable_test.rb class Family::AutoTransferMatchableTest (line 3) | class Family::AutoTransferMatchableTest < ActiveSupport::TestCase method load_exchange_prices (line 121) | def load_exchange_prices FILE: test/models/family/data_exporter_test.rb class Family::DataExporterTest (line 3) | class Family::DataExporterTest < ActiveSupport::TestCase FILE: test/models/family/subscribeable_test.rb class Family::SubscribeableTest (line 3) | class Family::SubscribeableTest < ActiveSupport::TestCase FILE: test/models/family/syncer_test.rb class Family::SyncerTest (line 3) | class Family::SyncerTest < ActiveSupport::TestCase FILE: test/models/family_export_test.rb class FamilyExportTest (line 3) | class FamilyExportTest < ActiveSupport::TestCase FILE: test/models/family_test.rb class FamilyTest (line 3) | class FamilyTest < ActiveSupport::TestCase method setup (line 6) | def setup FILE: test/models/holding/forward_calculator_test.rb class Holding::ForwardCalculatorTest (line 3) | class Holding::ForwardCalculatorTest < ActiveSupport::TestCase method assert_holdings (line 134) | def assert_holdings(expected, calculated) method load_prices (line 144) | def load_prices FILE: test/models/holding/materializer_test.rb class Holding::MaterializerTest (line 3) | class Holding::MaterializerTest < ActiveSupport::TestCase FILE: test/models/holding/portfolio_cache_test.rb class Holding::PortfolioCacheTest (line 3) | class Holding::PortfolioCacheTest < ActiveSupport::TestCase FILE: test/models/holding/portfolio_snapshot_test.rb class Holding::PortfolioSnapshotTest (line 3) | class Holding::PortfolioSnapshotTest < ActiveSupport::TestCase FILE: test/models/holding/reverse_calculator_test.rb class Holding::ReverseCalculatorTest (line 3) | class Holding::ReverseCalculatorTest < ActiveSupport::TestCase method assert_holdings (line 162) | def assert_holdings(expected, calculated) method load_prices (line 172) | def load_prices method load_today_portfolio (line 205) | def load_today_portfolio FILE: test/models/holding_test.rb class HoldingTest (line 4) | class HoldingTest < ActiveSupport::TestCase method load_holdings (line 59) | def load_holdings method create_holding (line 79) | def create_holding(security, date, qty) FILE: test/models/impersonation_session_test.rb class ImpersonationSessionTest (line 3) | class ImpersonationSessionTest < ActiveSupport::TestCase FILE: test/models/income_statement_test.rb class IncomeStatementTest (line 3) | class IncomeStatementTest < ActiveSupport::TestCase FILE: test/models/invite_code_test.rb class InviteCodeTest (line 3) | class InviteCodeTest < ActiveSupport::TestCase FILE: test/models/loan_test.rb class LoanTest (line 3) | class LoanTest < ActiveSupport::TestCase FILE: test/models/market_data_importer_test.rb class MarketDataImporterTest (line 4) | class MarketDataImporterTest < ActiveSupport::TestCase FILE: test/models/mobile_device_test.rb class MobileDeviceTest (line 3) | class MobileDeviceTest < ActiveSupport::TestCase FILE: test/models/period_test.rb class PeriodTest (line 3) | class PeriodTest < ActiveSupport::TestCase FILE: test/models/plaid_account/importer_test.rb class PlaidAccount::ImporterTest (line 3) | class PlaidAccount::ImporterTest < ActiveSupport::TestCase FILE: test/models/plaid_account/investments/balance_calculator_test.rb class PlaidAccount::Investments::BalanceCalculatorTest (line 3) | class PlaidAccount::Investments::BalanceCalculatorTest < ActiveSupport::... FILE: test/models/plaid_account/investments/holdings_processor_test.rb class PlaidAccount::Investments::HoldingsProcessorTest (line 3) | class PlaidAccount::Investments::HoldingsProcessorTest < ActiveSupport::... FILE: test/models/plaid_account/investments/security_resolver_test.rb class PlaidAccount::Investments::SecurityResolverTest (line 3) | class PlaidAccount::Investments::SecurityResolverTest < ActiveSupport::T... FILE: test/models/plaid_account/investments/transactions_processor_test.rb class PlaidAccount::Investments::TransactionsProcessorTest (line 3) | class PlaidAccount::Investments::TransactionsProcessorTest < ActiveSuppo... FILE: test/models/plaid_account/liabilities/credit_processor_test.rb class PlaidAccount::Liabilities::CreditProcessorTest (line 3) | class PlaidAccount::Liabilities::CreditProcessorTest < ActiveSupport::Te... FILE: test/models/plaid_account/liabilities/mortgage_processor_test.rb class PlaidAccount::Liabilities::MortgageProcessorTest (line 3) | class PlaidAccount::Liabilities::MortgageProcessorTest < ActiveSupport::... FILE: test/models/plaid_account/liabilities/student_loan_processor_test.rb class PlaidAccount::Liabilities::StudentLoanProcessorTest (line 3) | class PlaidAccount::Liabilities::StudentLoanProcessorTest < ActiveSuppor... FILE: test/models/plaid_account/processor_test.rb class PlaidAccount::ProcessorTest (line 3) | class PlaidAccount::ProcessorTest < ActiveSupport::TestCase method expect_investment_product_processor_calls (line 227) | def expect_investment_product_processor_calls method expect_depository_product_processor_calls (line 232) | def expect_depository_product_processor_calls method expect_no_investment_balance_calculator_calls (line 236) | def expect_no_investment_balance_calculator_calls method expect_no_liability_processor_calls (line 241) | def expect_no_liability_processor_calls method expect_default_subprocessor_calls (line 247) | def expect_default_subprocessor_calls FILE: test/models/plaid_account/transactions/category_matcher_test.rb class PlaidAccount::Transactions::CategoryMatcherTest (line 3) | class PlaidAccount::Transactions::CategoryMatcherTest < ActiveSupport::T... FILE: test/models/plaid_account/transactions/processor_test.rb class PlaidAccount::Transactions::ProcessorTest (line 3) | class PlaidAccount::Transactions::ProcessorTest < ActiveSupport::TestCase FILE: test/models/plaid_account/type_mappable_test.rb class PlaidAccount::TypeMappableTest (line 3) | class PlaidAccount::TypeMappableTest < ActiveSupport::TestCase class MockProcessor (line 5) | class MockProcessor FILE: test/models/plaid_entry/processor_test.rb class PlaidEntry::ProcessorTest (line 3) | class PlaidEntry::ProcessorTest < ActiveSupport::TestCase FILE: test/models/plaid_item/accounts_snapshot_test.rb class PlaidItem::AccountsSnapshotTest (line 3) | class PlaidItem::AccountsSnapshotTest < ActiveSupport::TestCase FILE: test/models/plaid_item/importer_test.rb class PlaidItem::ImporterTest (line 4) | class PlaidItem::ImporterTest < ActiveSupport::TestCase FILE: test/models/plaid_item_test.rb class PlaidItemTest (line 3) | class PlaidItemTest < ActiveSupport::TestCase FILE: test/models/provider/openai_test.rb class Provider::OpenaiTest (line 3) | class Provider::OpenaiTest < ActiveSupport::TestCase FILE: test/models/provider/plaid_test.rb class Provider::PlaidTest (line 3) | class Provider::PlaidTest < ActiveSupport::TestCase method get_access_token (line 73) | def get_access_token FILE: test/models/provider/registry_test.rb class Provider::RegistryTest (line 3) | class Provider::RegistryTest < ActiveSupport::TestCase FILE: test/models/provider/stripe/subscription_event_processor_test.rb class Provider::Stripe::SubscriptionEventProcessorTest (line 4) | class Provider::Stripe::SubscriptionEventProcessorTest < ActiveSupport::... FILE: test/models/provider/stripe_test.rb class Provider::StripeTest (line 3) | class Provider::StripeTest < ActiveSupport::TestCase FILE: test/models/provider/synth_test.rb class Provider::SynthTest (line 4) | class Provider::SynthTest < ActiveSupport::TestCase FILE: test/models/provider_test.rb class TestProvider (line 4) | class TestProvider < Provider method initialize (line 7) | def initialize(client) method fetch_data (line 11) | def fetch_data method fetch_data_with_error_transformer (line 17) | def fetch_data_with_error_transformer class ProviderTest (line 24) | class ProviderTest < ActiveSupport::TestCase FILE: test/models/rule/action_test.rb class Rule::ActionTest (line 3) | class Rule::ActionTest < ActiveSupport::TestCase FILE: test/models/rule/condition_test.rb class Rule::ConditionTest (line 3) | class Rule::ConditionTest < ActiveSupport::TestCase FILE: test/models/rule_test.rb class RuleTest (line 3) | class RuleTest < ActiveSupport::TestCase FILE: test/models/security/health_checker_test.rb class Security::HealthCheckerTest (line 3) | class Security::HealthCheckerTest < ActiveSupport::TestCase FILE: test/models/security/price/importer_test.rb class Security::Price::ImporterTest (line 4) | class Security::Price::ImporterTest < ActiveSupport::TestCase method get_provider_fetch_start_date (line 140) | def get_provider_fetch_start_date(start_date) FILE: test/models/security/price_test.rb class Security::PriceTest (line 4) | class Security::PriceTest < ActiveSupport::TestCase method expect_provider_price (line 53) | def expect_provider_price(security:, price:, date:) method expect_provider_prices (line 59) | def expect_provider_prices(security:, prices:, start_date:, end_date:) FILE: test/models/security/resolver_test.rb class Security::ResolverTest (line 3) | class Security::ResolverTest < ActiveSupport::TestCase FILE: test/models/security_test.rb class SecurityTest (line 3) | class SecurityTest < ActiveSupport::TestCase FILE: test/models/subscription_test.rb class SubscriptionTest (line 3) | class SubscriptionTest < ActiveSupport::TestCase FILE: test/models/sync_test.rb class SyncTest (line 3) | class SyncTest < ActiveSupport::TestCase FILE: test/models/tag_test.rb class TagTest (line 3) | class TagTest < ActiveSupport::TestCase FILE: test/models/trade_import_test.rb class TradeImportTest (line 4) | class TradeImportTest < ActiveSupport::TestCase FILE: test/models/trade_test.rb class TradeTest (line 3) | class TradeTest < ActiveSupport::TestCase FILE: test/models/transaction/search_test.rb class Transaction::SearchTest (line 3) | class Transaction::SearchTest < ActiveSupport::TestCase FILE: test/models/transaction_import_test.rb class TransactionImportTest (line 3) | class TransactionImportTest < ActiveSupport::TestCase FILE: test/models/transfer/creator_test.rb class Transfer::CreatorTest (line 3) | class Transfer::CreatorTest < ActiveSupport::TestCase FILE: test/models/transfer_test.rb class TransferTest (line 3) | class TransferTest < ActiveSupport::TestCase FILE: test/models/trend_test.rb class TrendTest (line 3) | class TrendTest < ActiveSupport::TestCase FILE: test/models/user_message_test.rb class UserMessageTest (line 3) | class UserMessageTest < ActiveSupport::TestCase FILE: test/models/user_test.rb class UserTest (line 3) | class UserTest < ActiveSupport::TestCase method setup (line 4) | def setup FILE: test/models/valuation/name_test.rb class Valuation::NameTest (line 3) | class Valuation::NameTest < ActiveSupport::TestCase FILE: test/services/api_rate_limiter_test.rb class ApiRateLimiterTest (line 3) | class ApiRateLimiterTest < ActiveSupport::TestCase FILE: test/services/noop_api_rate_limiter_test.rb class NoopApiRateLimiterTest (line 3) | class NoopApiRateLimiterTest < ActiveSupport::TestCase FILE: test/support/balance_test_helper.rb type BalanceTestHelper (line 1) | module BalanceTestHelper function create_balance (line 2) | def create_balance(account:, date:, balance:, cash_balance: nil, **att... function create_balance_with_flows (line 33) | def create_balance_with_flows(account:, date:, start_balance:, end_bal... FILE: test/support/entries_test_helper.rb type EntriesTestHelper (line 1) | module EntriesTestHelper function create_transaction (line 2) | def create_transaction(attributes = {}) function create_valuation (line 18) | def create_valuation(attributes = {}) function create_trade (line 37) | def create_trade(security, account:, qty:, date:, price: nil, currency... function create_transfer (line 54) | def create_transfer(from_account:, to_account:, amount:, date: Date.cu... FILE: test/support/ledger_testing_helper.rb type LedgerTestingHelper (line 1) | module LedgerTestingHelper function create_account_with_ledger (line 2) | def create_account_with_ledger(account:, entries: [], exchange_rates: ... function assert_calculated_ledger_balances (line 114) | def assert_calculated_ledger_balances(calculated_data:, expected_data:) FILE: test/support/provider_test_helper.rb type ProviderTestHelper (line 1) | module ProviderTestHelper function provider_success_response (line 2) | def provider_success_response(data) function provider_error_response (line 10) | def provider_error_response(error) FILE: test/support/securities_test_helper.rb type SecuritiesTestHelper (line 1) | module SecuritiesTestHelper function create_security (line 2) | def create_security(ticker, prices:) FILE: test/system/accounts_test.rb class AccountsTest (line 3) | class AccountsTest < ApplicationSystemTestCase method open_new_account_modal (line 100) | def open_new_account_modal method assert_account_created (line 107) | def assert_account_created(accountable_type, &block) method humanized_accountable (line 143) | def humanized_accountable(accountable_type) FILE: test/system/categories_test.rb class CategoriesTest (line 3) | class CategoriesTest < ApplicationSystemTestCase FILE: test/system/chats_test.rb class ChatsTest (line 3) | class ChatsTest < ApplicationSystemTestCase FILE: test/system/imports_test.rb class ImportsTest (line 3) | class ImportsTest < ApplicationSystemTestCase FILE: test/system/onboardings_test.rb class OnboardingsTest (line 3) | class OnboardingsTest < ApplicationSystemTestCase method sign_in (line 184) | def sign_in(user) FILE: test/system/settings/api_keys_test.rb class Settings::ApiKeysTest (line 3) | class Settings::ApiKeysTest < ApplicationSystemTestCase FILE: test/system/settings_test.rb class SettingsTest (line 3) | class SettingsTest < ApplicationSystemTestCase method open_settings_from_sidebar (line 58) | def open_settings_from_sidebar FILE: test/system/trades_test.rb class TradesTest (line 3) | class TradesTest < ApplicationSystemTestCase method open_new_trade_modal (line 60) | def open_new_trade_modal method within_trades (line 64) | def within_trades(&block) method visit_trades (line 68) | def visit_trades method visit_account_portfolio (line 72) | def visit_account_portfolio FILE: test/system/transactions_test.rb class TransactionsTest (line 3) | class TransactionsTest < ApplicationSystemTestCase method create_transaction (line 218) | def create_transaction(name, date, amount, category: nil, merchant: ni... method number_of_transactions_on_page (line 229) | def number_of_transactions_on_page method all_transactions_checkbox (line 233) | def all_transactions_checkbox method date_transactions_checkbox (line 237) | def date_transactions_checkbox(date) method transaction_checkbox (line 241) | def transaction_checkbox(transaction) method assert_selection_count (line 245) | def assert_selection_count(count) FILE: test/system/transfers_test.rb class TransfersTest (line 3) | class TransfersTest < ApplicationSystemTestCase FILE: test/test_helper.rb type ActiveSupport (line 40) | module ActiveSupport class TestCase (line 41) | class TestCase method sign_in (line 60) | def sign_in(user) method with_env_overrides (line 64) | def with_env_overrides(overrides = {}, &block) method with_self_hosting (line 68) | def with_self_hosting method user_password_test (line 73) | def user_password_test FILE: vendor/javascript/@floating-ui--core.js function computeCoordsFromPlacement (line 1) | function computeCoordsFromPlacement(c,i,r){let{reference:l,floating:a}=c... function detectOverflow (line 1) | async function detectOverflow(t,e){var n;e===void 0&&(e={});const{x:o,y:... method fn (line 1) | async fn(o){const{x:r,y:f,placement:m,rects:u,platform:d,elements:g,midd... function getPlacementList (line 1) | function getPlacementList(t,e,n){const c=t?[...n.filter((e=>s(e)===t)),.... method fn (line 1) | async fn(e){var n,i,r;const{rects:l,middlewareData:a,placement:f,platfor... method fn (line 1) | async fn(n){var s,i;const{placement:r,middlewareData:l,rects:a,initialPl... function getSideOffsets (line 1) | function getSideOffsets(t,e){return{top:t.top-e.height,right:t.right-e.w... function isAnySideFullyClipped (line 1) | function isAnySideFullyClipped(t){return y.some((e=>t[e]>=0))} method fn (line 1) | async fn(e){const{rects:n}=e;const{strategy:o="referenceHidden",...s}=c(... function getBoundingRect (line 1) | function getBoundingRect(t){const e=l(...t.map((t=>t.left)));const n=l(.... function getRectsByLine (line 1) | function getRectsByLine(t){const e=t.slice().sort(((t,e)=>t.y-e.y));cons... method fn (line 1) | async fn(n){const{placement:s,elements:a,rects:f,platform:m,strategy:u}=... function convertValueToCoords (line 1) | async function convertValueToCoords(e,n){const{placement:i,platform:r,el... method fn (line 1) | async fn(e){var n,o;const{x:s,y:c,placement:i,middlewareData:r}=e;const ... method fn (line 1) | async fn(n){const{x:s,y:i,placement:r}=n;const{mainAxis:l=true,crossAxis... method fn (line 1) | fn(n){const{x:s,y:i,placement:r,rects:l,middlewareData:a}=n;const{offset... method fn (line 1) | async fn(n){const{placement:i,rects:r,platform:a,elements:f}=n;const{app... FILE: vendor/javascript/@floating-ui--dom.js function getCssDimensions (line 1) | function getCssDimensions(t){const e=w(t);let n=parseFloat(e.width)||0;l... function unwrapElement (line 1) | function unwrapElement(t){return R(t)?t:t.contextElement} function getScale (line 1) | function getScale(t){const e=unwrapElement(t);if(!x(e))return h(1);const... function getVisualOffsets (line 1) | function getVisualOffsets(t){const e=v(t);return y()&&e.visualViewport?{... function shouldAddVisualOffsets (line 1) | function shouldAddVisualOffsets(t,e,n){e===void 0&&(e=false);return!(!n|... function getBoundingClientRect (line 1) | function getBoundingClientRect(e,n,i,o){n===void 0&&(n=false);i===void 0... function convertOffsetParentRelativeRectToViewportRelativeRect (line 1) | function convertOffsetParentRelativeRectToViewportRelativeRect(t){let{el... function getClientRects (line 1) | function getClientRects(t){return Array.from(t.getClientRects())} function getWindowScrollBarX (line 1) | function getWindowScrollBarX(t){return getBoundingClientRect(O(t)).left+... function getDocumentRect (line 1) | function getDocumentRect(t){const e=O(t);const n=L(t);const i=t.ownerDoc... function getViewportRect (line 1) | function getViewportRect(t,e){const n=v(t);const i=O(t);const o=n.visual... function getInnerBoundingClientRect (line 1) | function getInnerBoundingClientRect(t,e){const n=getBoundingClientRect(t... function getClientRectFromClippingAncestor (line 1) | function getClientRectFromClippingAncestor(e,n,i){let o;if(n==="viewport... function hasFixedPositionAncestor (line 1) | function hasFixedPositionAncestor(t,e){const n=B(t);return!(n===e||!R(n)... function getClippingElementAncestors (line 1) | function getClippingElementAncestors(t,e){const n=e.get(t);if(n)return n... function getClippingRect (line 1) | function getClippingRect(t){let{element:e,boundary:n,rootBoundary:i,stra... function getDimensions (line 1) | function getDimensions(t){const{width:e,height:n}=getCssDimensions(t);re... function getRectRelativeToOffsetParent (line 1) | function getRectRelativeToOffsetParent(t,e,n){const i=x(e);const o=O(e);... function isStaticPositioned (line 1) | function isStaticPositioned(t){return w(t).position==="static"} function getTrueOffsetParent (line 1) | function getTrueOffsetParent(t,e){return x(t)&&w(t).position!=="fixed"?e... function getOffsetParent (line 1) | function getOffsetParent(t,e){const n=v(t);if(b(t))return n;if(!x(t)){le... function isRTL (line 1) | function isRTL(t){return w(t).direction==="rtl"} function observeMove (line 1) | function observeMove(t,e){let n=null;let i;const o=O(t);function cleanup... function autoUpdate (line 9) | function autoUpdate(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:o=t... FILE: vendor/javascript/@floating-ui--utils--dom.js function hasWindow (line 3) | function hasWindow(){return typeof window!=="undefined"} function getNodeName (line 3) | function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():... function getWindow (line 3) | function getWindow(e){var t;return(e==null||(t=e.ownerDocument)==null?vo... function getDocumentElement (line 3) | function getDocumentElement(e){var t;return(t=(isNode(e)?e.ownerDocument... function isNode (line 3) | function isNode(e){return!!hasWindow()&&(e instanceof Node||e instanceof... function isElement (line 3) | function isElement(e){return!!hasWindow()&&(e instanceof Element||e inst... function isHTMLElement (line 3) | function isHTMLElement(e){return!!hasWindow()&&(e instanceof HTMLElement... function isShadowRoot (line 3) | function isShadowRoot(e){return!(!hasWindow()||typeof ShadowRoot==="unde... function isOverflowElement (line 3) | function isOverflowElement(e){const{overflow:t,overflowX:n,overflowY:o,d... function isTableElement (line 3) | function isTableElement(e){return["table","td","th"].includes(getNodeNam... function isTopLayer (line 3) | function isTopLayer(e){return[":popover-open",":modal"].some((t=>{try{re... function isContainingBlock (line 3) | function isContainingBlock(e){const t=isWebKit();const n=isElement(e)?ge... function getContainingBlock (line 3) | function getContainingBlock(e){let t=getParentNode(e);while(isHTMLElemen... function isWebKit (line 3) | function isWebKit(){return!(typeof CSS==="undefined"||!CSS.supports)&&CS... function isLastTraversableNode (line 3) | function isLastTraversableNode(e){return["html","body","#document"].incl... function getComputedStyle (line 3) | function getComputedStyle(e){return getWindow(e).getComputedStyle(e)} function getNodeScroll (line 3) | function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,s... function getParentNode (line 3) | function getParentNode(e){if(getNodeName(e)==="html")return e;const t=e.... function getNearestOverflowAncestor (line 3) | function getNearestOverflowAncestor(e){const t=getParentNode(e);return i... function getOverflowAncestors (line 3) | function getOverflowAncestors(e,t,n){var o;t===void 0&&(t=[]);n===void 0... function getFrameElement (line 3) | function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.par... FILE: vendor/javascript/@floating-ui--utils.js function clamp (line 1) | function clamp(t,e,n){return o(t,i(e,n))} function evaluate (line 1) | function evaluate(t,e){return typeof t==="function"?t(e):t} function getSide (line 1) | function getSide(t){return t.split("-")[0]} function getAlignment (line 1) | function getAlignment(t){return t.split("-")[1]} function getOppositeAxis (line 1) | function getOppositeAxis(t){return t==="x"?"y":"x"} function getAxisLength (line 1) | function getAxisLength(t){return t==="y"?"height":"width"} function getSideAxis (line 1) | function getSideAxis(t){return["top","bottom"].includes(getSide(t))?"y":... function getAlignmentAxis (line 1) | function getAlignmentAxis(t){return getOppositeAxis(getSideAxis(t))} function getAlignmentSides (line 1) | function getAlignmentSides(t,e,n){n===void 0&&(n=false);const i=getAlign... function getExpandedPlacements (line 1) | function getExpandedPlacements(t){const e=getOppositePlacement(t);return... function getOppositeAlignmentPlacement (line 1) | function getOppositeAlignmentPlacement(t){return t.replace(/start|end/g,... function getSideList (line 1) | function getSideList(t,e,n){const i=["left","right"];const o=["right","l... function getOppositeAxisPlacements (line 1) | function getOppositeAxisPlacements(t,e,n,i){const o=getAlignment(t);let ... function getOppositePlacement (line 1) | function getOppositePlacement(t){return t.replace(/left|right|bottom|top... function expandPaddingObject (line 1) | function expandPaddingObject(t){return{top:0,right:0,bottom:0,left:0,...t}} function getPaddingObject (line 1) | function getPaddingObject(t){return typeof t!=="number"?expandPaddingObj... function rectToClientRect (line 1) | function rectToClientRect(t){const{x:e,y:n,width:i,height:o}=t;return{wi... FILE: vendor/javascript/@github--hotkey.js class Leaf (line 1) | class Leaf{constructor(e){this.children=[];this.parent=e}delete(e){const... method constructor (line 1) | constructor(e){this.children=[];this.parent=e} method delete (line 1) | delete(e){const t=this.children.indexOf(e);if(t===-1)return false;this... method add (line 1) | add(e){this.children.push(e);return this} class RadixTrie (line 1) | class RadixTrie{constructor(e){this.parent=null;this.children={};this.pa... method constructor (line 1) | constructor(e){this.parent=null;this.children={};this.parent=e||null} method get (line 1) | get(e){return this.children[e]} method insert (line 1) | insert(e){let t=this;for(let n=0;nthis.r... function normalizeSequence (line 1) | function normalizeSequence(e){return e.split(s).map((e=>normalizeHotkey(... function isFormField (line 1) | function isFormField(e){if(!(e instanceof HTMLElement))return false;cons... function fireDeterminedAction (line 1) | function fireDeterminedAction(e,t){const n=new CustomEvent("hotkey-fire"... function expandHotkeyToEdges (line 1) | function expandHotkeyToEdges(e){const t=[];let n=[""];let i=false;for(le... method onReset (line 1) | onReset(){c=o} function keyDownHandler (line 1) | function keyDownHandler(e){if(e.defaultPrevented)return;if(!(e.target in... function install (line 1) | function install(e,t){Object.keys(o.children).length===0&&document.addEv... function uninstall (line 1) | function uninstall(e){const t=l.get(e);if(t&&t.length)for(const n of t)n... FILE: vendor/javascript/@simonwep--pickr.js function n (line 3) | function n(t,u,h,d,m={}){u instanceof HTMLCollection||u instanceof NodeL... function r (line 3) | function r(t){const u=document.createElement("div");return u.innerHTML=t... function a (line 3) | function a(t){const e=(t,u)=>{const h=t.getAttribute(u);return t.removeA... function l (line 3) | function l(t){let u=t.path||t.composedPath&&t.composedPath();if(u)return... function c (line 3) | function c(t){return t instanceof Element?t:"string"==typeof t?t.split(/... function p (line 3) | function p(t,u=(t=>t)){function o(h){const d=[.001,.01,.1][Number(h.shif... function f (line 3) | function f(t,u,h){u/=100,h/=100;const d=B(t=t/360*6),m=t-d,S=h*(1-u),L=h... function v (line 3) | function v(t,u,h){const d=(2-(u/=100))*(h/=100)/2;return 0!==d&&(u=1===d... function b (line 3) | function b(t,u,h){const d=S(t/=255,u/=255,h/=255),m=L(t,u,h),B=m-d;let P... function y (line 3) | function y(t,u,h,d){u/=100,h/=100;return[...b(255*(1-S(1,(t/=100)*(1-(d/... function g (line 3) | function g(t,u,h){u/=100;const d=2*(u*=(h/=100)<.5?h:1-h)/(h+u)*100,m=10... function _ (line 3) | function _(t){return b(...t.match(/.{2}/g).map((t=>parseInt(t,16))))} function w (line 3) | function w(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowe... function A (line 3) | function A(t=0,u=0,h=0,d=1){const i=(t,u)=>(h=-1)=>u(~h?t.map((t=>Number... function C (line 3) | function C(t){const u={options:Object.assign({lock:null,onchange:()=>0,o... function k (line 3) | function k(t={}){t=Object.assign({onchange:()=>0,className:"",elements:[... method update (line 3) | update(t=d){const{reference:u,popper:h}=Object.assign(d,t);if(!h||!u)thr... class E (line 3) | class E{static utils=h;static version="1.9.1";static I18N_DEFAULTS={"ui:... method constructor (line 3) | constructor(t){this.options=t=Object.assign({...E.DEFAULT_OPTIONS},t);... method _preBuild (line 3) | _preBuild(){const{options:t}=this;for(const u of["el","container"])t[u... method _finalBuild (line 3) | _finalBuild(){const t=this.options,u=this._root;if(t.container.removeC... method _buildComponents (line 3) | _buildComponents(){const t=this,u=this.options.components,h=(t.options... method _bindEvents (line 3) | _bindEvents(){const{_root:t,options:u}=this,h=[d(t.interaction.clear,"... method _rePositioningPicker (line 3) | _rePositioningPicker(){const{options:t}=this;if(!t.inline&&!this._nano... method _updateOutput (line 3) | _updateOutput(t){const{_root:u,_color:h,options:d}=this;if(u.interacti... method _clearColor (line 3) | _clearColor(t=!1){const{_root:u,options:h}=this;h.useAsButton||u.butto... method _parseLocalColor (line 3) | _parseLocalColor(t){const{values:u,type:h,a:d}=w(t),{lockOpacity:m}=th... method _t (line 3) | _t(t){return this.options.i18n[t]||E.I18N_DEFAULTS[t]} method _emit (line 3) | _emit(t,...u){this._eventListener[t].forEach((t=>t(...u,this)))} method on (line 3) | on(t,u){return this._eventListener[t].push(u),this} method off (line 3) | off(t,u){const h=this._eventListener[t]||[],d=h.indexOf(u);return~d&&h... method addSwatch (line 3) | addSwatch(t){const{values:u}=this._parseLocalColor(t);if(u){const{_swa... method removeSwatch (line 3) | removeSwatch(t){const u=this._swatchColors[t];if(u){const{el:h}=u;retu... method applyColor (line 3) | applyColor(t=!1){const{preview:u,button:h}=this._root,d=this._color.to... method destroy (line 3) | destroy(){cancelAnimationFrame(this._setupAnimationFrame),this._eventB... method destroyAndRemove (line 3) | destroyAndRemove(){this.destroy();const{root:t,app:u}=this._root;t.par... method hide (line 3) | hide(){return!!this.isOpen()&&(this._root.app.classList.remove("visibl... method show (line 3) | show(){return!this.options.disabled&&!this.isOpen()&&(this._root.app.c... method isOpen (line 3) | isOpen(){return this._root.app.classList.contains("visible")} method setHSVA (line 3) | setHSVA(t=360,u=0,h=0,d=1,m=!1){const S=this._recalc;if(this._recalc=!... method setColor (line 3) | setColor(t,u=!1){if(null===t)return this._clearColor(u),!0;const{value... method setColorRepresentation (line 3) | setColorRepresentation(t){return t=t.toUpperCase(),!!this._root.intera... method getColorRepresentation (line 3) | getColorRepresentation(){return this._representation} method getColor (line 3) | getColor(){return this._color} method getSelectedColor (line 3) | getSelectedColor(){return this._lastColor} method getRoot (line 3) | getRoot(){return this._root} method disable (line 3) | disable(){return this.hide(),this.options.disabled=!0,this._root.butto... method enable (line 3) | enable(){return this.options.disabled=!1,this._root.button.classList.r... FILE: vendor/javascript/d3-array.js function ascending (line 3) | function ascending(t,n){return null==t||null==n?NaN:tn?1:t>=n?0:... function descending (line 3) | function descending(t,n){return null==t||null==n?NaN:nt?1:n>=t?0... function bisector (line 3) | function bisector(t){let n,e,r;if(2!==t.length){n=ascending;e=(n,e)=>asc... function zero (line 3) | function zero(){return 0} function number (line 3) | function number(t){return null===t?NaN:+t} function blur (line 3) | function blur(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let... function Blur2 (line 3) | function Blur2(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new Ran... function blurh (line 3) | function blurh(t,n,e,r,o){for(let i=0,f=r*o;i{r<<=2,o<<=2,... function blurf (line 3) | function blurf(t){const n=Math.floor(t);if(n===t)return bluri(t);const e... function bluri (line 3) | function bluri(t){const n=2*t+1;return(e,r,o,i,f)=>{if(!((i-=f)>=o))retu... function count (line 3) | function count(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)... function length$1 (line 3) | function length$1(t){return 0|t.length} function empty (line 3) | function empty(t){return!(t>0)} function arrayify (line 3) | function arrayify(t){return"object"!==typeof t||"length"in t?t:Array.fro... function reducer (line 3) | function reducer(t){return n=>t(...n)} function cross (line 3) | function cross(...t){const n="function"===typeof t[t.length-1]&&reducer(... function cumsum (line 3) | function cumsum(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t... function variance (line 3) | function variance(t,n){let e=0;let r;let o=0;let i=0;if(void 0===n){for(... function deviation (line 3) | function deviation(t,n){const e=variance(t,n);return e?Math.sqrt(e):e} function extent (line 3) | function extent(t,n){let e;let r;if(void 0===n){for(const n of t)if(null... class Adder (line 3) | class Adder{constructor(){this._partials=new Float64Array(32);this._n=0}... method constructor (line 3) | constructor(){this._partials=new Float64Array(32);this._n=0} method add (line 3) | add(t){const n=this._partials;let e=0;for(let r=0;r0){i=t[-... function fsum (line 3) | function fsum(t,n){const e=new Adder;if(void 0===n)for(let n of t)(n=+n)... function fcumsum (line 3) | function fcumsum(t,n){const e=new Adder;let r=-1;return Float64Array.fro... function identity (line 3) | function identity(t){return t} function group (line 3) | function group(t,...n){return nest(t,identity,identity,n)} function groups (line 3) | function groups(t,...n){return nest(t,Array.from,identity,n)} function flatten$1 (line 3) | function flatten$1(t,n){for(let e=1,r=n.length;et... function flatGroup (line 3) | function flatGroup(t,...n){return flatten$1(groups(t,...n),n)} function flatRollup (line 3) | function flatRollup(t,n,...e){return flatten$1(rollups(t,n,...e),e)} function rollup (line 3) | function rollup(t,n,...e){return nest(t,identity,n,e)} function rollups (line 3) | function rollups(t,n,...e){return nest(t,Array.from,n,e)} function index (line 3) | function index(t,...n){return nest(t,identity,unique,n)} function indexes (line 3) | function indexes(t,...n){return nest(t,Array.from,unique,n)} function unique (line 3) | function unique(t){if(1!==t.length)throw new Error("duplicate key");retu... function nest (line 3) | function nest(n,e,r,o){return function regroup(n,i){if(i>=o.length)retur... function permute (line 3) | function permute(t,n){return Array.from(n,(n=>t[n]))} function sort (line 3) | function sort(t,...n){if("function"!==typeof t[Symbol.iterator])throw ne... function compareDefined (line 3) | function compareDefined(t=ascending){if(t===ascending)return ascendingDe... function ascendingDefined (line 3) | function ascendingDefined(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n... function groupSort (line 3) | function groupSort(t,n,e){return(2!==n.length?sort(rollup(t,n,e),(([t,n]... function constant (line 3) | function constant(t){return()=>t} function tickSpec (line 3) | function tickSpec(t,n,e){const r=(n-t)/Math.max(0,e),o=Math.floor(Math.l... function ticks (line 3) | function ticks(t,n,e){n=+n,t=+t,e=+e;if(!(e>0))return[];if(t===n)return[... function tickIncrement (line 3) | function tickIncrement(t,n,e){n=+n,t=+t,e=+e;return tickSpec(t,n,e)[2]} function tickStep (line 3) | function tickStep(t,n,e){n=+n,t=+t,e=+e;const r=nn||vo... function minIndex (line 3) | function minIndex(t,n){let e;let r=-1;let o=-1;if(void 0===n)for(const n... function quickselect (line 3) | function quickselect(t,n,e=0,r=Infinity,o){n=Math.floor(n);e=Math.floor(... function swap (line 3) | function swap(t,n,e){const r=t[n];t[n]=t[e];t[e]=r} function greatest (line 3) | function greatest(t,n=ascending){let e;let r=false;if(1===n.length){let ... function quantile (line 3) | function quantile(t,n,e){t=Float64Array.from(numbers(t,e));if((r=t.lengt... function quantileSorted (line 3) | function quantileSorted(t,n,e=number){if((r=t.length)&&!isNaN(n=+n)){if(... function quantileIndex (line 3) | function quantileIndex(t,n,e=number){if(!isNaN(n=+n)){r=Float64Array.fro... function thresholdFreedmanDiaconis (line 3) | function thresholdFreedmanDiaconis(t,n,e){const r=count(t),o=quantile(t,... function thresholdScott (line 3) | function thresholdScott(t,n,e){const r=count(t),o=deviation(t);return r&... function mean (line 3) | function mean(t,n){let e=0;let r=0;if(void 0===n)for(let n of t)null!=n&... function median (line 3) | function median(t,n){return quantile(t,.5,n)} function medianIndex (line 3) | function medianIndex(t,n){return quantileIndex(t,.5,n)} function merge (line 3) | function merge(t){return Array.from(flatten(t))} function mode (line 3) | function mode(n,e){const r=new t;if(void 0===e)for(let t of n)null!=t&&t... function pairs (line 3) | function pairs(t,n=pair){const e=[];let r;let o=false;for(const i of t){... function pair (line 3) | function pair(t,n){return[t,n]} function range (line 3) | function range(t,n,e){t=+t,n=+n,e=(o=arguments.length)<2?(n=t,t=0,1):o<3... function rank (line 3) | function rank(t,n=ascending){if("function"!==typeof t[Symbol.iterator])t... function least (line 3) | function least(t,n=ascending){let e;let r=false;if(1===n.length){let o;f... function leastIndex (line 3) | function leastIndex(t,n=ascending){if(1===n.length)return minIndex(t,n);... function greatestIndex (line 3) | function greatestIndex(t,n=ascending){if(1===n.length)return maxIndex(t,... function scan (line 3) | function scan(t,n){const e=leastIndex(t,n);return e<0?void 0:e} function shuffler (line 3) | function shuffler(t){return function shuffle(n,e=0,r=n.length){let o=r-(... function sum (line 3) | function sum(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);el... function transpose (line 3) | function transpose(t){if(!(o=t.length))return[];for(var n=-1,e=min(t,len... function length (line 3) | function length(t){return t.length} function zip (line 3) | function zip(){return transpose(arguments)} function every (line 3) | function every(t,n){if("function"!==typeof n)throw new TypeError("test i... function some (line 3) | function some(t,n){if("function"!==typeof n)throw new TypeError("test is... function filter (line 3) | function filter(t,n){if("function"!==typeof n)throw new TypeError("test ... function map (line 3) | function map(t,n){if("function"!==typeof t[Symbol.iterator])throw new Ty... function reduce (line 3) | function reduce(t,n,e){if("function"!==typeof n)throw new TypeError("red... function reverse (line 3) | function reverse(t){if("function"!==typeof t[Symbol.iterator])throw new ... function difference (line 3) | function difference(t,...e){t=new n(t);for(const n of e)for(const e of n... function disjoint (line 3) | function disjoint(t,e){const r=e[Symbol.iterator](),o=new n;for(const n ... function intersection (line 3) | function intersection(t,...e){t=new n(t);e=e.map(set);t:for(const n of t... function set (line 3) | function set(t){return t instanceof n?t:new n(t)} function superset (line 3) | function superset(t,n){const e=t[Symbol.iterator](),r=new Set;for(const ... function intern (line 3) | function intern(t){return null!==t&&"object"===typeof t?t.valueOf():t} function subset (line 3) | function subset(t,n){return superset(n,t)} function union (line 3) | function union(...t){const e=new n;for(const n of t)for(const t of n)e.a... FILE: vendor/javascript/d3-axis.js function identity (line 3) | function identity(t){return t} function translateX (line 3) | function translateX(t){return"translate("+t+",0)"} function translateY (line 3) | function translateY(t){return"translate(0,"+t+")"} function number (line 3) | function number(t){return n=>+t(n)} function center (line 3) | function center(t,n){n=Math.max(0,t.bandwidth()-2*n)/2;t.round()&&(n=Mat... function entering (line 3) | function entering(){return!this.__axis} function axis (line 3) | function axis(a,s){var o=[],u=null,c=null,l=6,x=6,f=3,d="undefined"!==ty... function axisTop (line 3) | function axisTop(n){return axis(t,n)} function axisRight (line 3) | function axisRight(t){return axis(n,t)} function axisBottom (line 3) | function axisBottom(t){return axis(r,t)} function axisLeft (line 3) | function axisLeft(t){return axis(i,t)} FILE: vendor/javascript/d3-brush.js function BrushEvent (line 3) | function BrushEvent(e,{sourceEvent:t,target:n,selection:r,mode:u,dispatc... function nopropagation (line 3) | function nopropagation(e){e.stopImmediatePropagation()} function noevent (line 3) | function noevent(e){e.preventDefault();e.stopImmediatePropagation()} function number1 (line 3) | function number1(e){return[+e[0],+e[1]]} function number2 (line 3) | function number2(e){return[number1(e[0]),number1(e[1])]} function type (line 3) | function type(e){return{type:e}} function defaultFilter (line 3) | function defaultFilter(e){return!e.ctrlKey&&!e.button} function defaultExtent (line 3) | function defaultExtent(){var e=this.ownerSVGElement||this;if(e.hasAttrib... function defaultTouchable (line 3) | function defaultTouchable(){return navigator.maxTouchPoints||"ontouchsta... function local (line 3) | function local(e){while(!e.__brush)if(!(e=e.parentNode))return;return e.... function empty (line 3) | function empty(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]} function brushSelection (line 3) | function brushSelection(e){var t=e.__brush;return t?t.dim.output(t.selec... function brushX (line 3) | function brushX(){return brush$1(b)} function brushY (line 3) | function brushY(){return brush$1(p)} function brush (line 3) | function brush(){return brush$1(m)} function brush$1 (line 3) | function brush$1(m){var k,x=defaultExtent,E=defaultFilter,z=defaultTouch... FILE: vendor/javascript/d3-chord.js function range (line 3) | function range(n,r){return Array.from({length:r-n},((r,t)=>n+t))} function compareValue (line 3) | function compareValue(n){return function(r,t){return n(r.source.value+r.... function chord (line 3) | function chord(){return chord$1(false,false)} function chordTranspose (line 3) | function chordTranspose(){return chord$1(false,true)} function chordDirected (line 3) | function chordDirected(){return chord$1(true,false)} function chord$1 (line 3) | function chord$1(n,r){var t=0,e=null,o=null,u=null;function chord(i){var... function constant (line 3) | function constant(n){return function(){return n}} function defaultSource (line 3) | function defaultSource(n){return n.source} function defaultTarget (line 3) | function defaultTarget(n){return n.target} function defaultRadius (line 3) | function defaultRadius(n){return n.radius} function defaultStartAngle (line 3) | function defaultStartAngle(n){return n.startAngle} function defaultEndAngle (line 3) | function defaultEndAngle(n){return n.endAngle} function defaultPadAngle (line 3) | function defaultPadAngle(){return 0} function defaultArrowheadRadius (line 3) | function defaultArrowheadRadius(){return 10} function ribbon (line 3) | function ribbon(o){var a=defaultSource,l=defaultTarget,s=defaultRadius,f... function ribbon$1 (line 3) | function ribbon$1(){return ribbon()} function ribbonArrow (line 3) | function ribbonArrow(){return ribbon(defaultArrowheadRadius)} FILE: vendor/javascript/d3-color.js function define (line 3) | function define(t,e,r){t.prototype=e.prototype=r;r.constructor=t} function extend (line 3) | function extend(t,e){var r=Object.create(t.prototype);for(var n in e)r[n... function Color (line 3) | function Color(){} method copy (line 3) | copy(t){return Object.assign(new this.constructor,this,t)} method displayable (line 3) | displayable(){return this.rgb().displayable()} function color_formatHex (line 3) | function color_formatHex(){return this.rgb().formatHex()} function color_formatHex8 (line 3) | function color_formatHex8(){return this.rgb().formatHex8()} function color_formatHsl (line 3) | function color_formatHsl(){return hslConvert(this).formatHsl()} function color_formatRgb (line 3) | function color_formatRgb(){return this.rgb().formatRgb()} function color (line 3) | function color(t){var e,r;t=(t+"").trim().toLowerCase();return(e=a.exec(... function rgbn (line 3) | function rgbn(t){return new Rgb(t>>16&255,t>>8&255,255&t,1)} function rgba (line 3) | function rgba(t,e,r,n){n<=0&&(t=e=r=NaN);return new Rgb(t,e,r,n)} function rgbConvert (line 3) | function rgbConvert(t){t instanceof Color||(t=color(t));if(!t)return new... function rgb (line 3) | function rgb(t,e,r,n){return 1===arguments.length?rgbConvert(t):new Rgb(... function Rgb (line 3) | function Rgb(t,e,r,n){this.r=+t;this.g=+e;this.b=+r;this.opacity=+n} method brighter (line 3) | brighter(t){t=null==t?e:Math.pow(e,t);return new Rgb(this.r*t,this.g*t,t... method darker (line 3) | darker(e){e=null==e?t:Math.pow(t,e);return new Rgb(this.r*e,this.g*e,thi... method rgb (line 3) | rgb(){return this} method clamp (line 3) | clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clam... method displayable (line 3) | displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5... function rgb_formatHex (line 3) | function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.... function rgb_formatHex8 (line 3) | function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this... function rgb_formatRgb (line 3) | function rgb_formatRgb(){const t=clampa(this.opacity);return`${1===t?"rg... function clampa (line 3) | function clampa(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))} function clampi (line 3) | function clampi(t){return Math.max(0,Math.min(255,Math.round(t)||0))} function hex (line 3) | function hex(t){t=clampi(t);return(t<16?"0":"")+t.toString(16)} function hsla (line 3) | function hsla(t,e,r,n){n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN);r... function hslConvert (line 3) | function hslConvert(t){if(t instanceof Hsl)return new Hsl(t.h,t.s,t.l,t.... function hsl (line 3) | function hsl(t,e,r,n){return 1===arguments.length?hslConvert(t):new Hsl(... function Hsl (line 3) | function Hsl(t,e,r,n){this.h=+t;this.s=+e;this.l=+r;this.opacity=+n} method brighter (line 3) | brighter(t){t=null==t?e:Math.pow(e,t);return new Hsl(this.h,this.s,this.... method darker (line 3) | darker(e){e=null==e?t:Math.pow(t,e);return new Hsl(this.h,this.s,this.l*... method rgb (line 3) | rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s... method clamp (line 3) | clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clam... method displayable (line 3) | displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&th... method formatHsl (line 3) | formatHsl(){const t=clampa(this.opacity);return`${1===t?"hsl(":"hsla("}$... function clamph (line 3) | function clamph(t){t=(t||0)%360;return t<0?t+360:t} function clampt (line 3) | function clampt(t){return Math.max(0,Math.min(1,t||0))} function hsl2rgb (line 3) | function hsl2rgb(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r... function labConvert (line 3) | function labConvert(t){if(t instanceof Lab)return new Lab(t.l,t.a,t.b,t.... function gray (line 3) | function gray(t,e){return new Lab(t,0,0,null==e?1:e)} function lab (line 3) | function lab(t,e,r,n){return 1===arguments.length?labConvert(t):new Lab(... function Lab (line 3) | function Lab(t,e,r,n){this.l=+t;this.a=+e;this.b=+r;this.opacity=+n} method brighter (line 3) | brighter(t){return new Lab(this.l+f*(null==t?1:t),this.a,this.b,this.opa... method darker (line 3) | darker(t){return new Lab(this.l-f*(null==t?1:t),this.a,this.b,this.opaci... method rgb (line 3) | rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.... function xyz2lab (line 3) | function xyz2lab(t){return t>v?Math.pow(t,1/3):t/$+w} function lab2xyz (line 3) | function lab2xyz(t){return t>x?t*t*t:$*(t-w)} function lrgb2rgb (line 3) | function lrgb2rgb(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/... function rgb2lrgb (line 3) | function rgb2lrgb(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.... function hclConvert (line 3) | function hclConvert(t){if(t instanceof Hcl)return new Hcl(t.h,t.c,t.l,t.... function lch (line 3) | function lch(t,e,r,n){return 1===arguments.length?hclConvert(t):new Hcl(... function hcl (line 3) | function hcl(t,e,r,n){return 1===arguments.length?hclConvert(t):new Hcl(... function Hcl (line 3) | function Hcl(t,e,r,n){this.h=+t;this.c=+e;this.l=+r;this.opacity=+n} function hcl2lab (line 3) | function hcl2lab(t){if(isNaN(t.h))return new Lab(t.l,0,0,t.opacity);var ... method brighter (line 3) | brighter(t){return new Hcl(this.h,this.c,this.l+f*(null==t?1:t),this.opa... method darker (line 3) | darker(t){return new Hcl(this.h,this.c,this.l-f*(null==t?1:t),this.opaci... method rgb (line 3) | rgb(){return hcl2lab(this).rgb()} function cubehelixConvert (line 3) | function cubehelixConvert(t){if(t instanceof Cubehelix)return new Cubehe... function cubehelix (line 3) | function cubehelix(t,e,r,n){return 1===arguments.length?cubehelixConvert... function Cubehelix (line 3) | function Cubehelix(t,e,r,n){this.h=+t;this.s=+e;this.l=+r;this.opacity=+n} method brighter (line 3) | brighter(t){t=null==t?e:Math.pow(e,t);return new Cubehelix(this.h,this.s... method darker (line 3) | darker(e){e=null==e?t:Math.pow(t,e);return new Cubehelix(this.h,this.s,t... method rgb (line 3) | rgb(){var t=isNaN(this.h)?0:(this.h+120)*g,e=+this.l,r=isNaN(this.s)?0:t... FILE: vendor/javascript/d3-contour.js function ascending (line 3) | function ascending(n,t){return n-t} function area (line 3) | function area(n){var t=0,r=n.length,o=n[r-1][1]*n[0][0]-n[r-1][0]*n[0][1... function contains (line 3) | function contains(n,t){var r,o=-1,i=t.length;while(++o=t} function valid (line 3) | function valid(n){return null==n||isNaN(n=+n)?-Infinity:n} function smooth1 (line 3) | function smooth1(n,t,r,o){const i=o-t;const e=r-t;const a=isFinite(i)||i... function defaultX (line 3) | function defaultX(n){return n[0]} function defaultY (line 3) | function defaultY(n){return n[1]} function defaultWeight (line 3) | function defaultWeight(){return 1} function density (line 3) | function density(){var n=defaultX,t=defaultY,o=defaultWeight,a=960,u=500... FILE: vendor/javascript/d3-delaunay.js class Path (line 3) | class Path{constructor(){this._x0=this._y0=this._x1=this._y1=null;this._... method constructor (line 3) | constructor(){this._x0=this._y0=this._x1=this._y1=null;this._=""} method moveTo (line 3) | moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`} method closePath (line 3) | closePath(){if(null!==this._x1){this._x1=this._x0,this._y1=this._y0;th... method lineTo (line 3) | lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`} method arc (line 3) | arc(t,e,i){t=+t,e=+e,i=+i;const s=t+i;const l=e;if(i<0)throw new Error... method rect (line 3) | rect(t,n,e,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n... method value (line 3) | value(){return this._||null} class Polygon (line 3) | class Polygon{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}clo... method constructor (line 3) | constructor(){this._=[]} method moveTo (line 3) | moveTo(t,n){this._.push([t,n])} method closePath (line 3) | closePath(){this._.push(this._[0].slice())} method lineTo (line 3) | lineTo(t,n){this._.push([t,n])} method value (line 3) | value(){return this._.length?this._:null} class Voronoi (line 3) | class Voronoi{constructor(t,[n,e,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n)... method constructor (line 3) | constructor(t,[n,e,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>... method update (line 3) | update(){this.delaunay.update();this._init();return this} method _init (line 3) | _init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:i}=this;l... method render (line 3) | render(t){const n=null==t?t=new Path:void 0;const{delaunay:{halfedges:... method renderBounds (line 3) | renderBounds(t){const n=null==t?t=new Path:void 0;t.rect(this.xmin,thi... method renderCell (line 3) | renderCell(t,n){const e=null==n?n=new Path:void 0;const i=this._clip(t... method cellPolygons (line 3) | *cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length... method cellPolygon (line 3) | cellPolygon(t){const n=new Polygon;this.renderCell(t,n);return n.value()} method _renderSegment (line 3) | _renderSegment(t,n,e,i,s){let l;const h=this._regioncode(t,n);const o=... method contains (line 3) | contains(t,n,e){return(n=+n,n===n)&&(e=+e,e===e)&&this.delaunay._step(... method neighbors (line 3) | *neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.... method _cell (line 3) | _cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:i,triangl... method _clip (line 3) | _clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this... method _clipFinite (line 3) | _clipFinite(t,n){const e=n.length;let i=null;let s,l,h=n[e-2],o=n[e-1]... method _clipSegment (line 3) | _clipSegment(t,n,e,i,s,l){const h=sthis.xmax?2:0)|(n4){for(let n=0;n9999?"+"+pad(r,6):pad(... function formatDate (line 3) | function formatDate(r){var e=r.getUTCHours(),t=r.getUTCMinutes(),a=r.get... function dsv (line 3) | function dsv(n){var u=new RegExp('["'+n+"\n\r]"),f=n.charCodeAt(0);funct... function autoType (line 3) | function autoType(r){for(var e in r){var t,a,o=r[e].trim();if(o)if("true... FILE: vendor/javascript/d3-ease.js function quadIn (line 3) | function quadIn(t){return t*t} function quadOut (line 3) | function quadOut(t){return t*(2-t)} function quadInOut (line 3) | function quadInOut(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2} function cubicIn (line 3) | function cubicIn(t){return t*t*t} function cubicOut (line 3) | function cubicOut(t){return--t*t*t+1} function cubicInOut (line 3) | function cubicInOut(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2} function polyIn (line 3) | function polyIn(n){return Math.pow(n,t)} function polyOut (line 3) | function polyOut(n){return 1-Math.pow(1-n,t)} function polyInOut (line 3) | function polyInOut(n){return((n*=2)<=1?Math.pow(n,t):2-Math.pow(2-n,t))/2} function sinIn (line 3) | function sinIn(t){return 1===+t?1:1-Math.cos(t*c)} function sinOut (line 3) | function sinOut(t){return Math.sin(t*c)} function sinInOut (line 3) | function sinInOut(t){return(1-Math.cos(a*t))/2} function tpmt (line 3) | function tpmt(t){return 1.0009775171065494*(Math.pow(2,-10*t)-.0009765625)} function expIn (line 3) | function expIn(t){return tpmt(1-+t)} function expOut (line 3) | function expOut(t){return 1-tpmt(t)} function expInOut (line 3) | function expInOut(t){return((t*=2)<=1?tpmt(1-t):2-tpmt(t-1))/2} function circleIn (line 3) | function circleIn(t){return 1-Math.sqrt(1-t*t)} function circleOut (line 3) | function circleOut(t){return Math.sqrt(1- --t*t)} function circleInOut (line 3) | function circleInOut(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-... function bounceIn (line 3) | function bounceIn(t){return 1-bounceOut(1-t)} function bounceOut (line 3) | function bounceOut(t){return(t=+t)text(t,e).then((t=>(new DOMParser).parse... FILE: vendor/javascript/d3-force.js function center (line 3) | function center(n,t){var e,i=1;null==n&&(n=0);null==t&&(t=0);function fo... function constant (line 3) | function constant(n){return function(){return n}} function jiggle (line 3) | function jiggle(n){return 1e-6*(n()-.5)} function x$2 (line 3) | function x$2(n){return n.x+n.vx} function y$2 (line 3) | function y$2(n){return n.y+n.vy} function collide (line 3) | function collide(t){var e,i,r,o=1,f=1;"function"!==typeof t&&(t=constant... function index (line 3) | function index(n){return n.index} function find (line 3) | function find(n,t){var e=n.get(t);if(!e)throw new Error("node not found:... function link (line 3) | function link(n){var t,e,i,r,o,f,c=index,a=defaultStrength,u=constant(30... function lcg (line 3) | function lcg(){let n=1;return()=>(n=(i*n+r)%o)/o} function x$1 (line 3) | function x$1(n){return n.x} function y$1 (line 3) | function y$1(n){return n.y} function simulation (line 3) | function simulation(n){var i,r=1,o=.001,a=1-Math.pow(o,1/300),u=0,l=.6,s... function manyBody (line 3) | function manyBody(){var t,e,i,r,o,f=constant(-30),c=1,a=Infinity,u=.81;f... function radial (line 3) | function radial(n,t,e){var i,r,o,f=constant(.1);"function"!==typeof n&&(... function x (line 3) | function x(n){var t,e,i,r=constant(.1);"function"!==typeof n&&(n=constan... function y (line 3) | function y(n){var t,e,i,r=constant(.1);"function"!==typeof n&&(n=constan... FILE: vendor/javascript/d3-format.js function formatDecimal (line 3) | function formatDecimal(t){return Math.abs(t=Math.round(t))>=1e21?t.toLoc... function formatDecimalParts (line 3) | function formatDecimalParts(t,r){if((i=(t=r?t.toExponential(r-1):t.toExp... function exponent (line 3) | function exponent(t){return t=formatDecimalParts(Math.abs(t)),t?t[1]:NaN} function formatGroup (line 3) | function formatGroup(t,r){return function(i,e){var n=i.length,a=[],o=0,c... function formatNumerals (line 3) | function formatNumerals(t){return function(r){return r.replace(/[0-9]/g,... function formatSpecifier (line 3) | function formatSpecifier(r){if(!(i=t.exec(r)))throw new Error("invalid f... function FormatSpecifier (line 3) | function FormatSpecifier(t){this.fill=void 0===t.fill?" ":t.fill+"";this... function formatTrim (line 3) | function formatTrim(t){t:for(var r,i=t.length,e=1,n=-1;e1?0:n<-1?o:Math.acos(n)} function asin (line 3) | function asin(n){return n>1?a:n<-1?-a:Math.asin(n)} function haversin (line 3) | function haversin(n){return(n=y(n/2))*n} function noop (line 3) | function noop(){} function streamGeometry (line 3) | function streamGeometry(n,t){n&&M.hasOwnProperty(n.type)&&M[n.type](n,t)} function streamLine (line 3) | function streamLine(n,t,r){var e,i=-1,o=n.length-r;t.lineStart();while(+... function streamPolygon (line 3) | function streamPolygon(n,t){var r=-1,e=n.length;t.polygonStart();while(+... function geoStream (line 3) | function geoStream(n,t){n&&j.hasOwnProperty(n.type)?j[n.type](n,t):strea... function areaRingStart$1 (line 3) | function areaRingStart$1(){N.point=areaPointFirst$1} function areaRingEnd$1 (line 3) | function areaRingEnd$1(){areaPoint$1(L,x)} function areaPointFirst$1 (line 3) | function areaPointFirst$1(n,t){N.point=areaPoint$1;L=n,x=t;n*=s,t*=s;C=n... function areaPoint$1 (line 3) | function areaPoint$1(n,t){n*=s,t*=s;t=t/2+c;var r=n-C,e=r>=0?1:-1,i=e*r,... function area (line 3) | function area(t){_=new n;geoStream(t,N);return _*2} function spherical (line 3) | function spherical(n){return[g(n[1],n[0]),asin(n[2])]} function cartesian (line 3) | function cartesian(n){var t=n[0],r=n[1],e=h(r);return[e*h(t),e*y(t),y(r)]} function cartesianDot (line 3) | function cartesianDot(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]} function cartesianCross (line 3) | function cartesianCross(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t... function cartesianAddInPlace (line 3) | function cartesianAddInPlace(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]} function cartesianScale (line 3) | function cartesianScale(n,t){return[n[0]*t,n[1]*t,n[2]*t]} function cartesianNormalizeInPlace (line 3) | function cartesianNormalizeInPlace(n){var t=w(n[0]*n[0]+n[1]*n[1]+n[2]*n... function boundsPoint$1 (line 3) | function boundsPoint$1(n,t){W.push(D=[I=n,z=n]);tF&&(F=t)} function linePoint (line 3) | function linePoint(n,t){var r=cartesian([n*s,t*s]);if(k){var e=cartesian... function boundsLineStart (line 3) | function boundsLineStart(){O.point=linePoint} function boundsLineEnd (line 3) | function boundsLineEnd(){D[0]=I,D[1]=z;O.point=boundsPoint$1;k=null} function boundsRingPoint (line 3) | function boundsRingPoint(n,t){if(k){var r=n-T;H.add(f(r)>180?r+(r>0?360:... function boundsRingStart (line 3) | function boundsRingStart(){N.lineStart()} function boundsRingEnd (line 3) | function boundsRingEnd(){boundsRingPoint(U,G);N.lineEnd();f(H)>e&&(I=-(z... function angle (line 3) | function angle(n,t){return(t-=n)<0?t+360:t} function rangeCompare (line 3) | function rangeCompare(n,t){return n[0]-t[0]} function rangeContains (line 3) | function rangeContains(n,t){return n[0]<=n[1]?n[0]<=t&&t<=n[1]:to&&(n-=Math.round(n/u)*u);return[n,t]} function rotateRadians (line 3) | function rotateRadians(n,t,r){return(n%=u)?t||r?compose(rotationLambda(n... function forwardRotationLambda (line 3) | function forwardRotationLambda(n){return function(t,r){t+=n;f(t)>o&&(t-=... function rotationLambda (line 3) | function rotationLambda(n){var t=forwardRotationLambda(n);t.invert=forwa... function rotationPhiGamma (line 3) | function rotationPhiGamma(n,t){var r=h(n),e=y(n),i=h(t),o=y(t);function ... function rotation (line 3) | function rotation(n){n=rotateRadians(n[0]*s,n[1]*s,n.length>2?n[2]*s:0);... function circleStream (line 3) | function circleStream(n,t,r,e,i,o){if(r){var a=h(t),c=y(t),l=e*r;if(i==n... function circleRadius (line 3) | function circleRadius(n,t){t=cartesian(t),t[0]-=n;cartesianNormalizeInPl... function circle (line 3) | function circle(){var n,t,r=constant([0,0]),e=constant(90),i=constant(2)... function clipBuffer (line 3) | function clipBuffer(){var n,t=[];return{point:function(t,r,e){n.push([t,... function pointEqual (line 3) | function pointEqual(n,t){return f(n[0]-t[0])1} function compareIntersection (line 3) | function compareIntersection(n,t){return((n=n.x)[0]<0?n[1]-a-e:a-n[1])-(... function clipAntimeridianLine (line 3) | function clipAntimeridianLine(n){var t,r=NaN,i=NaN,c=NaN;return{lineStar... function clipAntimeridianIntersect (line 3) | function clipAntimeridianIntersect(n,t,r,i){var o,a,c=y(n-r);return f(c)... function clipAntimeridianInterpolate (line 3) | function clipAntimeridianInterpolate(n,t,r,i){var c;if(n==null){c=r*a;i.... function clipCircle (line 3) | function clipCircle(n){var t=h(n),r=2*s,i=t>0,a=f(t)>e;function interpol... function clipLine (line 3) | function clipLine(n,t,r,e,i,o){var a,c=n[0],u=n[1],l=t[0],s=t[1],f=0,p=1... function clipRectangle (line 3) | function clipRectangle(n,r,i,o){function visible(t,e){return n<=t&&t<=i&... function extent (line 3) | function extent(){var n,t,r,e=0,i=0,o=960,a=500;return r={stream:functio... function lengthLineStart (line 3) | function lengthLineStart(){mn.point=lengthPointFirst$1;mn.lineEnd=length... function lengthLineEnd (line 3) | function lengthLineEnd(){mn.point=mn.lineEnd=noop} function lengthPointFirst$1 (line 3) | function lengthPointFirst$1(n,t){n*=s,t*=s;hn=n,dn=y(t),vn=h(t);mn.point... function lengthPoint$1 (line 3) | function lengthPoint$1(n,t){n*=s,t*=s;var r=y(t),e=h(t),i=f(n-hn),o=h(i)... function length (line 3) | function length(t){gn=new n;geoStream(t,mn);return+gn} function distance (line 3) | function distance(n,t){En[0]=n;En[1]=t;return length(Sn)} function containsGeometry (line 3) | function containsGeometry(n,t){return!(!n||!Rn.hasOwnProperty(n.type))&&... function containsPoint (line 3) | function containsPoint(n,t){return distance(n,t)===0} function containsLine (line 3) | function containsLine(n,t){var r,e,o;for(var a=0,c=n.length;a$n&&($n=n);t_n&&(... function centroidPoint (line 3) | function centroidPoint(n,t){Tn+=n;Un+=t;++Gn} function centroidLineStart (line 3) | function centroidLineStart(){Yn.point=centroidPointFirstLine} function centroidPointFirstLine (line 3) | function centroidPointFirstLine(n,t){Yn.point=centroidPointLine;centroid... function centroidPointLine (line 3) | function centroidPointLine(n,t){var r=n-zn,e=t-Fn,i=w(r*r+e*e);kn+=i*(zn... function centroidLineEnd (line 3) | function centroidLineEnd(){Yn.point=centroidPoint} function centroidRingStart (line 3) | function centroidRingStart(){Yn.point=centroidPointFirstRing} function centroidRingEnd (line 3) | function centroidRingEnd(){centroidPointRing(In,An)} function centroidPointFirstRing (line 3) | function centroidPointFirstRing(n,t){Yn.point=centroidPointRing;centroid... function centroidPointRing (line 3) | function centroidPointRing(n,t){var r=n-zn,e=t-Fn,i=w(r*r+e*e);kn+=i*(zn... function PathContext (line 3) | function PathContext(n){this._context=n} function lengthPointFirst (line 3) | function lengthPointFirst(n,t){nt.point=lengthPoint;Zn=Kn=n,Jn=Qn=t} function lengthPoint (line 3) | function lengthPoint(n,t){Kn-=n,Qn-=t;Vn.add(w(Kn*Kn+Qn*Qn));Kn=n,Qn=t} class PathString (line 3) | class PathString{constructor(n){this._append=n==null?append:appendRound(... method constructor (line 3) | constructor(n){this._append=n==null?append:appendRound(n);this._radius... method pointRadius (line 3) | pointRadius(n){this._radius=+n;return this} method polygonStart (line 3) | polygonStart(){this._line=0} method polygonEnd (line 3) | polygonEnd(){this._line=NaN} method lineStart (line 3) | lineStart(){this._point=0} method lineEnd (line 3) | lineEnd(){this._line===0&&(this._+="Z");this._point=NaN} method point (line 3) | point(n,t){switch(this._point){case 0:this._append`M${n},${t}`;this._p... method result (line 3) | result(){const n=this._;this._="";return n.length?n:null} function append (line 3) | function append(n){let t=1;this._+=n[0];for(const r=n.length;t=0))throw new Range... function index (line 3) | function index(n,t){let r,e,i=3,o=4.5;function path(n){if(n){typeof o===... function transform (line 3) | function transform(n){return{stream:transformer(n)}} function transformer (line 3) | function transformer(n){return function(t){var r=new TransformStream;for... function TransformStream (line 3) | function TransformStream(){} function fit (line 3) | function fit(n,t,r){var e=n.clipExtent&&n.clipExtent();n.scale(150).tran... function fitExtent (line 3) | function fitExtent(n,t,r){return fit(n,(function(r){var e=t[1][0]-t[0][0... function fitSize (line 3) | function fitSize(n,t,r){return fitExtent(n,[[0,0],t],r)} function fitWidth (line 3) | function fitWidth(n,t,r){return fit(n,(function(r){var e=+t,i=e/(r[1][0]... function fitHeight (line 3) | function fitHeight(n,t,r){return fit(n,(function(r){var e=+t,i=e/(r[1][1... function resample (line 3) | function resample(n,t){return+t?resample$1(n,t):resampleNone(n)} function resampleNone (line 3) | function resampleNone(n){return transformer({point:function(t,r){t=n(t,r... function resample$1 (line 3) | function resample$1(n,t){function resampleLineTo(r,i,o,a,c,u,l,s,p,h,d,v... function transformRotate (line 3) | function transformRotate(n){return transformer({point:function(t,r){var ... function scaleTranslate (line 3) | function scaleTranslate(n,t,r,e,i){function transform(o,a){o*=e;a*=i;ret... function scaleTranslateRotate (line 3) | function scaleTranslateRotate(n,t,r,e,i,o){if(!o)return scaleTranslate(n... function projection (line 3) | function projection(n){return projectionMutator((function(){return n}))()} function projectionMutator (line 3) | function projectionMutator(n){var t,r,e,i,o,a,c,u,f,p,g=150,h=480,d=250,... function conicProjection (line 3) | function conicProjection(n){var t=0,r=o/3,e=projectionMutator(n),i=e(t,r... function cylindricalEqualAreaRaw (line 3) | function cylindricalEqualAreaRaw(n){var t=h(n);function forward(n,r){ret... function conicEqualAreaRaw (line 3) | function conicEqualAreaRaw(n,t){var r=y(n),i=(r+y(t))/2;if(f(i)=0)n... function node_count (line 3) | function node_count(){return this.eachAfter(count)} function node_each (line 3) | function node_each(e,n){let t=-1;for(const r of this)e.call(n,r,++t,this... function node_eachBefore (line 3) | function node_eachBefore(e,n){var t,r,i=this,a=[i],o=-1;while(i=a.pop())... function node_eachAfter (line 3) | function node_eachAfter(e,n){var t,r,i,a=this,o=[a],u=[],c=-1;while(a=o.... function node_find (line 3) | function node_find(e,n){let t=-1;for(const r of this)if(e.call(n,r,++t,t... function node_sum (line 3) | function node_sum(e){return this.eachAfter((function(n){var t=+e(n.data)... function node_sort (line 3) | function node_sort(e){return this.eachBefore((function(n){n.children&&n.... function node_path (line 3) | function node_path(e){var n=this,t=leastCommonAncestor(n,e),r=[n];while(... function leastCommonAncestor (line 3) | function leastCommonAncestor(e,n){if(e===n)return e;var t=e.ancestors(),... function node_ancestors (line 3) | function node_ancestors(){var e=this,n=[e];while(e=e.parent)n.push(e);re... function node_descendants (line 3) | function node_descendants(){return Array.from(this)} function node_leaves (line 3) | function node_leaves(){var e=[];this.eachBefore((function(n){n.children|... function node_links (line 3) | function node_links(){var e=this,n=[];e.each((function(t){t!==e&&n.push(... function hierarchy (line 3) | function hierarchy(e,n){if(e instanceof Map){e=[void 0,e];void 0===n&&(n... function node_copy (line 3) | function node_copy(){return hierarchy(this).eachBefore(copyData)} function objectChildren (line 3) | function objectChildren(e){return e.children} function mapChildren (line 3) | function mapChildren(e){return Array.isArray(e)?e[1]:null} function copyData (line 3) | function copyData(e){void 0!==e.data.value&&(e.value=e.data.value);e.dat... function computeHeight (line 3) | function computeHeight(e){var n=0;do{e.height=n}while((e=e.parent)&&e.he... function Node$1 (line 3) | function Node$1(e){this.data=e;this.depth=this.height=0;this.parent=null} function optional (line 3) | function optional(e){return null==e?null:required(e)} function required (line 3) | function required(e){if("function"!==typeof e)throw new Error;return e} function constantZero (line 3) | function constantZero(){return 0} function constant (line 3) | function constant(e){return function(){return e}} function lcg (line 3) | function lcg(){let r=1;return()=>(r=(e*r+n)%t)/t} function array (line 3) | function array(e){return"object"===typeof e&&"length"in e?e:Array.from(e)} function shuffle (line 3) | function shuffle(e,n){let t,r,i=e.length;while(i){r=n()*i--|0;t=e[i];e[i... function enclose (line 3) | function enclose(e){return packEncloseRandom(e,lcg())} function packEncloseRandom (line 3) | function packEncloseRandom(e,n){var t,r,i=0,a=(e=shuffle(Array.from(e),n... function extendBasis (line 3) | function extendBasis(e,n){var t,r;if(enclosesWeakAll(n,e))return[n];for(... function enclosesNot (line 3) | function enclosesNot(e,n){var t=e.r-n.r,r=n.x-e.x,i=n.y-e.y;return t<0||... function enclosesWeak (line 3) | function enclosesWeak(e,n){var t=e.r-n.r+1e-9*Math.max(e.r,n.r,1),r=n.x-... function enclosesWeakAll (line 3) | function enclosesWeakAll(e,n){for(var t=0;t1)if(slash... function slash (line 3) | function slash(e,n){if("/"===e[n]){let t=0;while(n>0&&"\\"===e[--n])++t;... function defaultSeparation (line 3) | function defaultSeparation(e,n){return e.parent===n.parent?1:2} function nextLeft (line 3) | function nextLeft(e){var n=e.children;return n?n[0]:e.t} function nextRight (line 3) | function nextRight(e){var n=e.children;return n?n[n.length-1]:e.t} function moveSubtree (line 3) | function moveSubtree(e,n,t){var r=t/(n.i-e.i);n.c-=r;n.s+=t;e.c+=r;n.z+=... function executeShifts (line 3) | function executeShifts(e){var n,t=0,r=0,i=e.children,a=i.length;while(--... function nextAncestor (line 3) | function nextAncestor(e,n,t){return e.a.parent===n.parent?e.a:t} function TreeNode (line 3) | function TreeNode(e,n){this._=e;this.parent=null;this.children=null;this... function treeRoot (line 3) | function treeRoot(e){var n,t,r,i,a,o=new TreeNode(e,0),u=[o];while(n=u.p... function tree (line 3) | function tree(){var e=defaultSeparation,n=1,t=1,r=null;function tree(i){... function treemapSlice (line 3) | function treemapSlice(e,n,t,r,i){var a,o=e.children,u=-1,c=o.length,l=e.... function squarifyRatio (line 3) | function squarifyRatio(e,n,t,r,i,a){var o,u,c,l,s,f,h,d,p,y,x,m=[],v=n.c... function squarify (line 3) | function squarify(n,t,r,i,a){squarifyRatio(e,n,t,r,i,a)} function index (line 3) | function index(){var e=u,n=false,t=1,r=1,i=[0],a=constantZero,o=constant... function binary (line 3) | function binary(e,n,t,r,i){var a,o,u=e.children,c=u.length,l=new Array(c... function sliceDice (line 3) | function sliceDice(e,n,t,r,i){(1&e.depth?treemapSlice:treemapDice)(e,n,t... function resquarify (line 3) | function resquarify(n,t,r,i,a){if((o=n._squarify)&&o.ratio===e){var o,u,... FILE: vendor/javascript/d3-interpolate.js function basis (line 3) | function basis(n,r,t,e,a){var o=n*n,u=o*n;return((1-3*n+3*o-u)*r+(4-6*o+... function basis$1 (line 3) | function basis$1(n){var r=n.length-1;return function(t){var e=t<=0?t=0:t... function basisClosed (line 3) | function basisClosed(n){var r=n.length;return function(t){var e=Math.flo... function linear (line 3) | function linear(n,r){return function(t){return n+t*r}} function exponential (line 3) | function exponential(n,r,t){return n=Math.pow(n,t),r=Math.pow(r,t)-n,t=1... function hue$1 (line 3) | function hue$1(n,r){var t=r-n;return t?linear(n,t>180||t<-180?t-360*Math... function gamma (line 3) | function gamma(n){return 1===(n=+n)?nogamma:function(r,t){return t-r?exp... function nogamma (line 3) | function nogamma(n,r){var t=r-n;return t?linear(n,t):constant(isNaN(n)?r... function rgb (line 3) | function rgb(r,e){var a=t((r=n(r)).r,(e=n(e)).r),o=t(r.g,e.g),u=t(r.b,e.... function rgbSpline (line 3) | function rgbSpline(r){return function(t){var e,a,o=t.length,u=new Array(... function numberArray (line 3) | function numberArray(n,r){r||(r=[]);var t,e=n?Math.min(r.length,n.length... function isNumberArray (line 3) | function isNumberArray(n){return ArrayBuffer.isView(n)&&!(n instanceof D... function array (line 3) | function array(n,r){return(isNumberArray(r)?numberArray:genericArray)(n,r)} function genericArray (line 3) | function genericArray(n,r){var t,e=r?r.length:0,a=n?Math.min(e,n.length)... function date (line 3) | function date(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.... function number (line 3) | function number(n,r){return n=+n,r=+r,function(t){return n*(1-t)+r*t}} function object (line 3) | function object(n,r){var t,e={},a={};null!==n&&"object"===typeof n||(n={... function zero (line 3) | function zero(n){return function(){return n}} function one (line 3) | function one(n){return function(r){return n(r)+""}} function string (line 3) | function string(n,r){var t,e,a,o=l.lastIndex=c.lastIndex=0,u=-1,i=[],s=[... function value (line 3) | function value(n,t){var e,a=typeof t;return null==t||"boolean"===a?const... function discrete (line 3) | function discrete(n){var r=n.length;return function(t){return n[Math.max... function hue (line 3) | function hue(n,r){var t=hue$1(+n,+r);return function(n){var r=t(n);retur... function round (line 3) | function round(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-... function decompose (line 3) | function decompose(n,r,t,e,a,o){var u,i,s;(u=Math.sqrt(n*n+r*r))&&(n/=u,... function parseCss (line 3) | function parseCss(n){const r=new("function"===typeof DOMMatrix?DOMMatrix... function parseSvg (line 3) | function parseSvg(n){if(null==n)return h;p||(p=document.createElementNS(... function interpolateTransform (line 3) | function interpolateTransform(n,r,t,e){function pop(n){return n.length?n... function cosh (line 3) | function cosh(n){return((n=Math.exp(n))+1/n)/2} function sinh (line 3) | function sinh(n){return((n=Math.exp(n))-1/n)/2} function tanh (line 3) | function tanh(n){return((n=Math.exp(2*n))-1)/(n+1)} function zoom (line 3) | function zoom(e,a){var o,u,i=e[0],s=e[1],l=e[2],c=a[0],f=a[1],h=a[2],p=c... function hsl (line 3) | function hsl(n){return function(r,e){var a=n((r=t(r)).h,(e=t(e)).h),o=no... function lab (line 3) | function lab(n,r){var t=nogamma((n=e(n)).l,(r=e(r)).l),a=nogamma(n.a,r.a... function hcl (line 3) | function hcl(n){return function(r,t){var e=n((r=a(r)).h,(t=a(t)).h),o=no... function cubehelix (line 3) | function cubehelix(n){return function cubehelixGamma(r){r=+r;function cu... function piecewise (line 3) | function piecewise(n,r){void 0===r&&(r=n,n=value);var t=0,e=r.length-1,a... function quantize (line 3) | function quantize(n,r){var t=new Array(r);for(var e=0;e0:function(){for(var o=0... function randomBates (line 3) | function randomBates(o){if(0===(o=+o))return r;var a=n(o);return functio... function randomExponential (line 3) | function randomExponential(n){return function(){return-Math.log1p(-r())/n}} function randomPareto (line 3) | function randomPareto(n){if((n=+n)<0)throw new RangeError("invalid alpha... function randomBernoulli (line 3) | function randomBernoulli(n){if((n=+n)<0||n>1)throw new RangeError("inval... function randomGeometric (line 3) | function randomGeometric(n){if((n=+n)<0||n>1)throw new RangeError("inval... function randomGamma (line 3) | function randomGamma(o,a){if((o=+o)<0)throw new RangeError("invalid k");... function randomBeta (line 3) | function randomBeta(r,o){var a=n(r),u=n(o);return function(){var r=a();r... function randomBinomial (line 3) | function randomBinomial(r,a){r=+r;return(a=+a)>=1?()=>r:a<=0?()=>0:funct... function randomWeibull (line 3) | function randomWeibull(n,o,a){var u;if(0===(n=+n))u=r=>-Math.log(r);else... function randomCauchy (line 3) | function randomCauchy(n,o){n=null==n?0:+n;o=null==o?1:+o;return function... function randomLogistic (line 3) | function randomLogistic(n,o){n=null==n?0:+n;o=null==o?1:+o;return functi... function randomPoisson (line 3) | function randomPoisson(a){return function(){var u=0,t=a;while(t>16){var ... function lcg (line 3) | function lcg(r=Math.random()){let n=0|(0<=r&&r<1?r/p:Math.abs(r));return... FILE: vendor/javascript/d3-sankey.js function targetDepth (line 3) | function targetDepth(e){return e.target.depth} function left (line 3) | function left(e){return e.depth} function right (line 3) | function right(e,t){return t-1-e.height} function justify (line 3) | function justify(e,t){return e.sourceLinks.length?e.depth:t-1} function center (line 3) | function center(e){return e.targetLinks.length?e.depth:e.sourceLinks.len... function constant (line 3) | function constant(e){return function(){return e}} function ascendingSourceBreadth (line 3) | function ascendingSourceBreadth(e,t){return ascendingBreadth(e.source,t.... function ascendingTargetBreadth (line 3) | function ascendingTargetBreadth(e,t){return ascendingBreadth(e.target,t.... function ascendingBreadth (line 3) | function ascendingBreadth(e,t){return e.y0-t.y0} function value (line 3) | function value(e){return e.value} function defaultId (line 3) | function defaultId(e){return e.index} function defaultNodes (line 3) | function defaultNodes(e){return e.nodes} function defaultLinks (line 3) | function defaultLinks(e){return e.links} function find (line 3) | function find(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t)... function computeLinkBreadths (line 3) | function computeLinkBreadths({nodes:e}){for(const t of e){let e=t.y0;let... function Sankey (line 3) | function Sankey(){let e=0,n=0,o=1,r=1;let s=24;let i=8,a;let u=defaultId... function horizontalSource (line 3) | function horizontalSource(e){return[e.source.x1,e.y0]} function horizontalTarget (line 3) | function horizontalTarget(e){return[e.target.x0,e.y1]} function sankeyLinkHorizontal (line 3) | function sankeyLinkHorizontal(){return n.linkHorizontal().source(horizon... FILE: vendor/javascript/d3-scale-chromatic.js function colors (line 3) | function colors(f){var e=f.length/6|0,a=new Array(e),d=0;while(d1)&&(f-=Math.floor(f));var e=Math.abs(f-.5);... function sinebow (line 3) | function sinebow(f){var e;f=(.5-f)*Math.PI;yf.r=255*(e=Math.sin(f))*e;yf... function turbo (line 3) | function turbo(f){f=Math.max(0,Math.min(1,f));return"rgb("+Math.max(0,Ma... function ramp (line 3) | function ramp(f){var e=f.length;return function(a){return f[Math.max(0,M... FILE: vendor/javascript/d3-scale.js function initRange (line 3) | function initRange(n,e){switch(arguments.length){case 0:break;case 1:thi... function initInterpolator (line 3) | function initInterpolator(n,e){switch(arguments.length){case 0:break;cas... function ordinal (line 3) | function ordinal(){var e=new n,t=[],r=[],a=T;function scale(n){let i=e.g... function band (line 3) | function band(){var n,t,r=ordinal().unknown(void 0),a=r.domain,i=r.range... function pointish (line 3) | function pointish(n){var e=n.copy;n.padding=n.paddingOuter;delete n.padd... function point (line 3) | function point(){return pointish(band.apply(null,arguments).paddingInner... function constants (line 3) | function constants(n){return function(){return n}} function number$1 (line 3) | function number$1(n){return+n} function identity$1 (line 3) | function identity$1(n){return n} function normalize (line 3) | function normalize(n,e){return(e-=n=+n)?function(t){return(t-n)/e}:const... function clamper (line 3) | function clamper(n,e){var t;n>e&&(t=n,n=e,e=t);return function(t){return... function bimap (line 3) | function bimap(n,e,t){var r=n[0],a=n[1],i=e[0],o=e[1];aMath.pow(n,e)} function logp (line 3) | function logp(n){return n===Math.E?Math.log:10===n&&Math.log10||2===n&&M... function reflect (line 3) | function reflect(n){return(e,t)=>-n(-e,t)} function loggish (line 3) | function loggish(n){const e=n(transformLog,transformExp);const t=e.domai... function log (line 3) | function log(){const n=loggish(transformer$2()).domain([1,10]);n.copy=()... function transformSymlog (line 3) | function transformSymlog(n){return function(e){return Math.sign(e)*Math.... function transformSymexp (line 3) | function transformSymexp(n){return function(e){return Math.sign(e)*Math.... function symlogish (line 3) | function symlogish(n){var e=1,t=n(transformSymlog(e),transformSymexp(e))... function symlog (line 3) | function symlog(){var n=symlogish(transformer$2());n.copy=function(){ret... function transformPow (line 3) | function transformPow(n){return function(e){return e<0?-Math.pow(-e,n):M... function transformSqrt (line 3) | function transformSqrt(n){return n<0?-Math.sqrt(-n):Math.sqrt(n)} function transformSquare (line 3) | function transformSquare(n){return n<0?-n*n:n*n} function powish (line 3) | function powish(n){var e=n(identity$1,identity$1),t=1;function rescale()... function pow (line 3) | function pow(){var n=powish(transformer$2());n.copy=function(){return co... function sqrt (line 3) | function sqrt(){return pow.apply(null,arguments).exponent(.5)} function square (line 3) | function square(n){return Math.sign(n)*n*n} function unsquare (line 3) | function unsquare(n){return Math.sign(n)*Math.sqrt(Math.abs(n))} function radial (line 3) | function radial(){var n,e=continuous(),t=[0,1],r=false;function scale(t)... function quantile (line 3) | function quantile(){var n,e=[],r=[],a=[];function rescale(){var n=0,t=Ma... function quantize (line 3) | function quantize(){var n,e=0,r=1,a=1,i=[.5],o=[0,1];function scale(e){r... function threshold (line 3) | function threshold(){var n,e=[.5],r=[0,1],a=1;function scale(i){return n... function date (line 3) | function date(n){return new Date(n)} function number (line 3) | function number(n){return n instanceof Date?+n:+new Date(+n)} function calendar (line 3) | function calendar(n,e,t,r,a,i,o,l,u,c){var s=continuous(),f=s.invert,g=s... function time (line 3) | function time(){return initRange.apply(calendar(w,M,q,k,b,x,$,N,S,O).dom... function utcTime (line 3) | function utcTime(){return initRange.apply(calendar(I,R,A,L,P,D,E,F,z,Q).... function transformer$1 (line 3) | function transformer$1(){var n,e,t,r,a,i=0,o=1,l=identity$1,u=false;func... function copy (line 3) | function copy(n,e){return e.domain(n.domain()).interpolator(n.interpolat... function sequential (line 3) | function sequential(){var n=linearish(transformer$1()(identity$1));n.cop... function sequentialLog (line 3) | function sequentialLog(){var n=loggish(transformer$1()).domain([1,10]);n... function sequentialSymlog (line 3) | function sequentialSymlog(){var n=symlogish(transformer$1());n.copy=func... function sequentialPow (line 3) | function sequentialPow(){var n=powish(transformer$1());n.copy=function()... function sequentialSqrt (line 3) | function sequentialSqrt(){return sequentialPow.apply(null,arguments).exp... function sequentialQuantile (line 3) | function sequentialQuantile(){var n=[],e=identity$1;function scale(r){if... function transformer (line 3) | function transformer(){var n,e,t,r,a,i,o,l=0,u=.5,s=1,p=1,h=identity$1,m... function diverging (line 3) | function diverging(){var n=linearish(transformer()(identity$1));n.copy=f... function divergingLog (line 3) | function divergingLog(){var n=loggish(transformer()).domain([.1,1,10]);n... function divergingSymlog (line 3) | function divergingSymlog(){var n=symlogish(transformer());n.copy=functio... function divergingPow (line 3) | function divergingPow(){var n=powish(transformer());n.copy=function(){re... function divergingSqrt (line 3) | function divergingSqrt(){return divergingPow.apply(null,arguments).expon... FILE: vendor/javascript/d3-selection.js function namespace (line 3) | function namespace(t){var n=t+="",r=n.indexOf(":");r>=0&&"xmlns"!==(n=t.... function creatorInherit (line 3) | function creatorInherit(e){return function(){var n=this.ownerDocument,r=... function creatorFixed (line 3) | function creatorFixed(t){return function(){return this.ownerDocument.cre... function creator (line 3) | function creator(t){var e=namespace(t);return(e.local?creatorFixed:creat... function none (line 3) | function none(){} function selector (line 3) | function selector(t){return null==t?none:function(){return this.querySel... function selection_select (line 3) | function selection_select(t){"function"!==typeof t&&(t=selector(t));for(... function array (line 3) | function array(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)} function empty (line 3) | function empty(){return[]} function selectorAll (line 3) | function selectorAll(t){return null==t?empty:function(){return this.quer... function arrayAll (line 3) | function arrayAll(t){return function(){return array(t.apply(this,argumen... function selection_selectAll (line 3) | function selection_selectAll(t){t="function"===typeof t?arrayAll(t):sele... function matcher (line 3) | function matcher(t){return function(){return this.matches(t)}} function childMatcher (line 3) | function childMatcher(t){return function(e){return e.matches(t)}} function childFind (line 3) | function childFind(t){return function(){return n.call(this.children,t)}} function childFirst (line 3) | function childFirst(){return this.firstElementChild} function selection_selectChild (line 3) | function selection_selectChild(t){return this.select(null==t?childFirst:... function children (line 3) | function children(){return Array.from(this.children)} function childrenFilter (line 3) | function childrenFilter(t){return function(){return r.call(this.children... function selection_selectChildren (line 3) | function selection_selectChildren(t){return this.selectAll(null==t?child... function selection_filter (line 3) | function selection_filter(t){"function"!==typeof t&&(t=matcher(t));for(v... function sparse (line 3) | function sparse(t){return new Array(t.length)} function selection_enter (line 3) | function selection_enter(){return new Selection(this._enter||this._group... function EnterNode (line 3) | function EnterNode(t,e){this.ownerDocument=t.ownerDocument;this.namespac... function constant (line 3) | function constant(t){return function(){return t}} function bindIndex (line 3) | function bindIndex(t,e,n,r,i,o){var s,c=0,l=e.length,a=o.length;for(;ce?1:t>=e?0:NaN} function selection_call (line 3) | function selection_call(){var t=arguments[0];arguments[0]=this;t.apply(n... function selection_nodes (line 3) | function selection_nodes(){return Array.from(this)} function selection_node (line 3) | function selection_node(){for(var t=this._groups,e=0,n=t.length;e1?this.each((nul... function styleValue (line 3) | function styleValue(t,e){return t.style.getPropertyValue(e)||defaultView... function propertyRemove (line 3) | function propertyRemove(t){return function(){delete this[t]}} function propertyConstant (line 3) | function propertyConstant(t,e){return function(){this[t]=e}} function propertyFunction (line 3) | function propertyFunction(t,e){return function(){var n=e.apply(this,argu... function selection_property (line 3) | function selection_property(t,e){return arguments.length>1?this.each((nu... function classArray (line 3) | function classArray(t){return t.trim().split(/^|\s+/)} function classList (line 3) | function classList(t){return t.classList||new ClassList(t)} function ClassList (line 3) | function ClassList(t){this._node=t;this._names=classArray(t.getAttribute... function classedAdd (line 3) | function classedAdd(t,e){var n=classList(t),r=-1,i=e.length;while(++r1?0:t<-1?_:Math.acos(t)} function asin (line 3) | function asin(t){return t>=1?u:t<=-1?-u:Math.asin(t)} function arcInnerRadius (line 3) | function arcInnerRadius(t){return t.innerRadius} function arcOuterRadius (line 3) | function arcOuterRadius(t){return t.outerRadius} function arcStartAngle (line 3) | function arcStartAngle(t){return t.startAngle} function arcEndAngle (line 3) | function arcEndAngle(t){return t.endAngle} function arcPadAngle (line 3) | function arcPadAngle(t){return t&&t.padAngle} function intersect (line 3) | function intersect(t,n,i,e,a,s,o,r){var l=i-t,h=e-n,_=o-a,u=r-s,f=u*l-_*... function cornerTangents (line 3) | function cornerTangents(t,n,i,e,a,s,r){var l=t-i,c=n-e,_=(r?s:-s)/h(l*l+... function arc (line 3) | function arc(){var t=arcInnerRadius,o=arcOuterRadius,p=constant(0),d=nul... function Linear (line 3) | function Linear(t){(this||n)._context=t} function curveLinear (line 3) | function curveLinear(t){return new Linear(t)} function x (line 3) | function x(t){return t[0]} function y (line 3) | function y(t){return t[1]} function line (line 3) | function line(){var t=x,n=y,e=constant(true),a=null,s=curveLinear,o=null... function area (line 3) | function area(){var t=x,n=null,e=constant(0),a=y,s=constant(true),o=null... function descending (line 3) | function descending(t,n){return nt?1:n>=t?0:NaN} function identity (line 3) | function identity(t){return t} function pie (line 3) | function pie(){var t=identity,i=descending,e=null,a=constant(0),s=consta... function Radial (line 3) | function Radial(t){(this||n)._curve=t} function curveRadial (line 3) | function curveRadial(t){function radial(n){return new Radial(t(n))}radia... function lineRadial (line 3) | function lineRadial(t){var n=t.curve;t.angle=t.x,delete t.x;t.radius=t.y... function lineRadial$1 (line 3) | function lineRadial$1(){return lineRadial(line().curve(p))} function areaRadial (line 3) | function areaRadial(){var t=area().curve(p),n=t.curve,i=t.lineX0,e=t.lin... function pointRadial (line 3) | function pointRadial(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.si... function linkSource (line 3) | function linkSource(t){return t.source} function linkTarget (line 3) | function linkTarget(t){return t.target} function link (line 3) | function link(t){var e=linkSource,a=linkTarget,s=x,o=y,r=null;function l... function curveHorizontal (line 3) | function curveHorizontal(t,n,i,e,a){t.moveTo(n,i);t.bezierCurveTo(n=(n+e... function curveVertical (line 3) | function curveVertical(t,n,i,e,a){t.moveTo(n,i);t.bezierCurveTo(n,i=(i+a... function curveRadial$1 (line 3) | function curveRadial$1(t,n,i,e,a){var s=pointRadial(n,i),o=pointRadial(n... function linkHorizontal (line 3) | function linkHorizontal(){return link(curveHorizontal)} function linkVertical (line 3) | function linkVertical(){return link(curveVertical)} function linkRadial (line 3) | function linkRadial(){var t=link(curveRadial$1);t.angle=t.x,delete t.x;t... function symbol (line 3) | function symbol(){var t=constant(v),e=constant(64),a=null;function symbo... function noop (line 3) | function noop(){} function point (line 3) | function point(t,n,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y... function Basis (line 3) | function Basis(t){(this||n)._context=t} function basis (line 3) | function basis(t){return new Basis(t)} function BasisClosed (line 3) | function BasisClosed(t){(this||n)._context=t} function basisClosed (line 3) | function basisClosed(t){return new BasisClosed(t)} function BasisOpen (line 3) | function BasisOpen(t){(this||n)._context=t} function basisOpen (line 3) | function basisOpen(t){return new BasisOpen(t)} function Bundle (line 3) | function Bundle(t,i){(this||n)._basis=new Basis(t);(this||n)._beta=i} function bundle (line 3) | function bundle(n){return 1===t?new Basis(n):new Bundle(n,t)} function point$1 (line 3) | function point$1(t,n,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0... function Cardinal (line 3) | function Cardinal(t,i){(this||n)._context=t;(this||n)._k=(1-i)/6} function cardinal (line 3) | function cardinal(n){return new Cardinal(n,t)} function CardinalClosed (line 3) | function CardinalClosed(t,i){(this||n)._context=t;(this||n)._k=(1-i)/6} function cardinal (line 3) | function cardinal(n){return new CardinalClosed(n,t)} function CardinalOpen (line 3) | function CardinalOpen(t,i){(this||n)._context=t;(this||n)._k=(1-i)/6} function cardinal (line 3) | function cardinal(n){return new CardinalOpen(n,t)} function point$2 (line 3) | function point$2(t,n,i){var e=t._x1,a=t._y1,s=t._x2,o=t._y2;if(t._l01_a>... function CatmullRom (line 3) | function CatmullRom(t,i){(this||n)._context=t;(this||n)._alpha=i} function catmullRom (line 3) | function catmullRom(n){return t?new CatmullRom(n,t):new Cardinal(n,0)} function CatmullRomClosed (line 3) | function CatmullRomClosed(t,i){(this||n)._context=t;(this||n)._alpha=i} function catmullRom (line 3) | function catmullRom(n){return t?new CatmullRomClosed(n,t):new CardinalCl... function CatmullRomOpen (line 3) | function CatmullRomOpen(t,i){(this||n)._context=t;(this||n)._alpha=i} function catmullRom (line 3) | function catmullRom(n){return t?new CatmullRomOpen(n,t):new CardinalOpen... function LinearClosed (line 3) | function LinearClosed(t){(this||n)._context=t} function linearClosed (line 3) | function linearClosed(t){return new LinearClosed(t)} function sign (line 3) | function sign(t){return t<0?-1:1} function slope3 (line 3) | function slope3(t,n,i){var e=t._x1-t._x0,a=n-t._x1,s=(t._y1-t._y0)/(e||a... function slope2 (line 3) | function slope2(t,n){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-n)/2:n} function point$3 (line 3) | function point$3(t,n,i){var e=t._x0,a=t._y0,s=t._x1,o=t._y1,r=(s-e)/3;t.... function MonotoneX (line 3) | function MonotoneX(t){(this||n)._context=t} function MonotoneY (line 3) | function MonotoneY(t){(this||n)._context=new ReflectContext(t)} function ReflectContext (line 3) | function ReflectContext(t){(this||n)._context=t} function monotoneX (line 3) | function monotoneX(t){return new MonotoneX(t)} function monotoneY (line 3) | function monotoneY(t){return new MonotoneY(t)} function Natural (line 3) | function Natural(t){(this||n)._context=t} function controlPoints (line 3) | function controlPoints(t){var n,i=t.length-1,e,a=new Array(i),s=new Arra... function natural (line 3) | function natural(t){return new Natural(t)} function Step (line 3) | function Step(t,i){(this||n)._context=t;(this||n)._t=i} function step (line 3) | function step(t){return new Step(t,.5)} function stepBefore (line 3) | function stepBefore(t){return new Step(t,0)} function stepAfter (line 3) | function stepAfter(t){return new Step(t,1)} function none (line 3) | function none(t,n){if((o=t.length)>1)for(var i=1,e,a,s=t[n[0]],o,r=s.len... function none$1 (line 3) | function none$1(t){var n=t.length,i=new Array(n);while(--n>=0)i[n]=n;ret... function stackValue (line 3) | function stackValue(t,n){return t[n]} function stack (line 3) | function stack(){var t=constant([]),i=none$1,e=none,a=stackValue;functio... function expand (line 3) | function expand(t,n){if((e=t.length)>0){for(var i,e,a=0,s=t[0].length,o;... function diverging (line 3) | function diverging(t,n){if((l=t.length)>0)for(var i,e=0,a,s,o,r,l,h=t[n[... function silhouette (line 3) | function silhouette(t,n){if((a=t.length)>0){for(var i=0,e=t[n[0]],a,s=e.... function wiggle (line 3) | function wiggle(t,n){if((o=t.length)>0&&(s=(a=t[n[0]]).length)>0){for(va... function appearance (line 3) | function appearance(t){var n=t.map(peak);return none$1(t).sort((function... function peak (line 3) | function peak(t){var n=-1,i=0,e=t.length,a,s=-Infinity;while(++n[e.toLowerCase(),r... function parseWeekdayNumberSunday (line 3) | function parseWeekdayNumberSunday(e,r,t){var n=s.exec(r.slice(t,t+1));re... function parseWeekdayNumberMonday (line 3) | function parseWeekdayNumberMonday(e,r,t){var n=s.exec(r.slice(t,t+1));re... function parseWeekNumberSunday (line 3) | function parseWeekNumberSunday(e,r,t){var n=s.exec(r.slice(t,t+2));retur... function parseWeekNumberISO (line 3) | function parseWeekNumberISO(e,r,t){var n=s.exec(r.slice(t,t+2));return n... function parseWeekNumberMonday (line 3) | function parseWeekNumberMonday(e,r,t){var n=s.exec(r.slice(t,t+2));retur... function parseFullYear (line 3) | function parseFullYear(e,r,t){var n=s.exec(r.slice(t,t+4));return n?(e.y... function parseYear (line 3) | function parseYear(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(e.y=+n[... function parseZone (line 3) | function parseZone(e,r,t){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(r.sl... function parseQuarter (line 3) | function parseQuarter(e,r,t){var n=s.exec(r.slice(t,t+1));return n?(e.q=... function parseMonthNumber (line 3) | function parseMonthNumber(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(... function parseDayOfMonth (line 3) | function parseDayOfMonth(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(e... function parseDayOfYear (line 3) | function parseDayOfYear(e,r,t){var n=s.exec(r.slice(t,t+3));return n?(e.... function parseHour24 (line 3) | function parseHour24(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(e.H=+... function parseMinutes (line 3) | function parseMinutes(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(e.M=... function parseSeconds (line 3) | function parseSeconds(e,r,t){var n=s.exec(r.slice(t,t+2));return n?(e.S=... function parseMilliseconds (line 3) | function parseMilliseconds(e,r,t){var n=s.exec(r.slice(t,t+3));return n?... function parseMicroseconds (line 3) | function parseMicroseconds(e,r,t){var n=s.exec(r.slice(t,t+6));return n?... function parseLiteralPercent (line 3) | function parseLiteralPercent(e,r,t){var n=l.exec(r.slice(t,t+1));return ... function parseUnixTimestamp (line 3) | function parseUnixTimestamp(e,r,t){var n=s.exec(r.slice(t));return n?(e.... function parseUnixTimestampSeconds (line 3) | function parseUnixTimestampSeconds(e,r,t){var n=s.exec(r.slice(t));retur... function formatDayOfMonth (line 3) | function formatDayOfMonth(e,r){return pad(e.getDate(),r,2)} function formatHour24 (line 3) | function formatHour24(e,r){return pad(e.getHours(),r,2)} function formatHour12 (line 3) | function formatHour12(e,r){return pad(e.getHours()%12||12,r,2)} function formatDayOfYear (line 3) | function formatDayOfYear(e,r){return pad(1+n.count(a(e),e),r,3)} function formatMilliseconds (line 3) | function formatMilliseconds(e,r){return pad(e.getMilliseconds(),r,3)} function formatMicroseconds (line 3) | function formatMicroseconds(e,r){return formatMilliseconds(e,r)+"000"} function formatMonthNumber (line 3) | function formatMonthNumber(e,r){return pad(e.getMonth()+1,r,2)} function formatMinutes (line 3) | function formatMinutes(e,r){return pad(e.getMinutes(),r,2)} function formatSeconds (line 3) | function formatSeconds(e,r){return pad(e.getSeconds(),r,2)} function formatWeekdayNumberMonday (line 3) | function formatWeekdayNumberMonday(e){var r=e.getDay();return 0===r?7:r} function formatWeekNumberSunday (line 3) | function formatWeekNumberSunday(e,r){return pad(o.count(a(e)-1,e),r,2)} function dISO (line 3) | function dISO(e){var r=e.getDay();return r>=4||0===r?u(e):u.ceil(e)} function formatWeekNumberISO (line 3) | function formatWeekNumberISO(e,r){e=dISO(e);return pad(u.count(a(e),e)+(... function formatWeekdayNumberSunday (line 3) | function formatWeekdayNumberSunday(e){return e.getDay()} function formatWeekNumberMonday (line 3) | function formatWeekNumberMonday(e,r){return pad(t.count(a(e)-1,e),r,2)} function formatYear (line 3) | function formatYear(e,r){return pad(e.getFullYear()%100,r,2)} function formatYearISO (line 3) | function formatYearISO(e,r){e=dISO(e);return pad(e.getFullYear()%100,r,2)} function formatFullYear (line 3) | function formatFullYear(e,r){return pad(e.getFullYear()%1e4,r,4)} function formatFullYearISO (line 3) | function formatFullYearISO(e,r){var t=e.getDay();e=t>=4||0===t?u(e):u.ce... function formatZone (line 3) | function formatZone(e){var r=e.getTimezoneOffset();return(r>0?"-":(r*=-1... function formatUTCDayOfMonth (line 3) | function formatUTCDayOfMonth(e,r){return pad(e.getUTCDate(),r,2)} function formatUTCHour24 (line 3) | function formatUTCHour24(e,r){return pad(e.getUTCHours(),r,2)} function formatUTCHour12 (line 3) | function formatUTCHour12(e,r){return pad(e.getUTCHours()%12||12,r,2)} function formatUTCDayOfYear (line 3) | function formatUTCDayOfYear(e,t){return pad(1+r.count(f(e),e),t,3)} function formatUTCMilliseconds (line 3) | function formatUTCMilliseconds(e,r){return pad(e.getUTCMilliseconds(),r,3)} function formatUTCMicroseconds (line 3) | function formatUTCMicroseconds(e,r){return formatUTCMilliseconds(e,r)+"0... function formatUTCMonthNumber (line 3) | function formatUTCMonthNumber(e,r){return pad(e.getUTCMonth()+1,r,2)} function formatUTCMinutes (line 3) | function formatUTCMinutes(e,r){return pad(e.getUTCMinutes(),r,2)} function formatUTCSeconds (line 3) | function formatUTCSeconds(e,r){return pad(e.getUTCSeconds(),r,2)} function formatUTCWeekdayNumberMonday (line 3) | function formatUTCWeekdayNumberMonday(e){var r=e.getUTCDay();return 0===... function formatUTCWeekNumberSunday (line 3) | function formatUTCWeekNumberSunday(e,r){return pad(i.count(f(e)-1,e),r,2)} function UTCdISO (line 3) | function UTCdISO(e){var r=e.getUTCDay();return r>=4||0===r?c(e):c.ceil(e)} function formatUTCWeekNumberISO (line 3) | function formatUTCWeekNumberISO(e,r){e=UTCdISO(e);return pad(c.count(f(e... function formatUTCWeekdayNumberSunday (line 3) | function formatUTCWeekdayNumberSunday(e){return e.getUTCDay()} function formatUTCWeekNumberMonday (line 3) | function formatUTCWeekNumberMonday(r,t){return pad(e.count(f(r)-1,r),t,2)} function formatUTCYear (line 3) | function formatUTCYear(e,r){return pad(e.getUTCFullYear()%100,r,2)} function formatUTCYearISO (line 3) | function formatUTCYearISO(e,r){e=UTCdISO(e);return pad(e.getUTCFullYear(... function formatUTCFullYear (line 3) | function formatUTCFullYear(e,r){return pad(e.getUTCFullYear()%1e4,r,4)} function formatUTCFullYearISO (line 3) | function formatUTCFullYearISO(e,r){var t=e.getUTCDay();e=t>=4||0===t?c(e... function formatUTCZone (line 3) | function formatUTCZone(){return"+0000"} function formatLiteralPercent (line 3) | function formatLiteralPercent(){return"%"} function formatUnixTimestamp (line 3) | function formatUnixTimestamp(e){return+e} function formatUnixTimestampSeconds (line 3) | function formatUnixTimestampSeconds(e){return Math.floor(+e/1e3)} function defaultLocale (line 3) | function defaultLocale(e){p=formatLocale(e);y=p.format;T=p.parse;h=p.utc... function formatIsoNative (line 3) | function formatIsoNative(e){return e.toISOString()} function parseIsoNative (line 3) | function parseIsoNative(e){var r=new Date(e);return isNaN(r)?null:r} FILE: vendor/javascript/d3-time.js function timeInterval (line 3) | function timeInterval(e,t,r,a){function interval(t){return e(t=0===argum... function timeWeekday (line 3) | function timeWeekday(e){return timeInterval((t=>{t.setDate(t.getDate()-(... function utcWeekday (line 3) | function utcWeekday(e){return timeInterval((t=>{t.setUTCDate(t.getUTCDat... function ticker (line 3) | function ticker(n,s,a,v,f,C){const U=[[m,1,o],[m,5,5*o],[m,15,15*o],[m,3... FILE: vendor/javascript/d3-timer.js function now (line 3) | function now(){return a||(c(clearNow),a=s.now()+u)} function clearNow (line 3) | function clearNow(){a=0} function Timer (line 3) | function Timer(){this._call=this._time=this._next=null} function timer (line 3) | function timer(t,e,n){var i=new Timer;i.restart(t,e,n);return i} function timerFlush (line 3) | function timerFlush(){now();++n;var e,i=t;while(i){(e=a-i._time)>=0&&i._... function wake (line 3) | function wake(){a=(l=s.now())+u;n=i=0;try{timerFlush()}finally{n=0;nap()... function poke (line 3) | function poke(){var t=s.now(),e=t-l;e>o&&(u-=e,l=t)} function nap (line 3) | function nap(){var n,i,r=t,o=Infinity;while(r)if(r._call){o>r._time&&(o=... function sleep (line 3) | function sleep(t){if(!n){i&&(i=clearTimeout(i));var e=t-a;if(e>24){t{i.... function interval (line 3) | function interval(t,e,n){var i=new Timer,r=e;if(null==e)return i.restart... FILE: vendor/javascript/d3-transition.js function schedule (line 3) | function schedule(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)retu... function init (line 3) | function init(t,n){var e=get(t,n);if(e.state>m)throw new Error("too late... function set (line 3) | function set(t,n){var e=get(t,n);if(e.state>x)throw new Error("too late;... function get (line 3) | function get(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error(... function create (line 3) | function create(t,n,e){var r,i=t.__transition;i[n]=e;e.timer=s(schedule,... function interrupt (line 3) | function interrupt(t,n){var e,r,i,o=t.__transition,a=true;if(o){n=null==... function selection_interrupt (line 3) | function selection_interrupt(t){return this.each((function(){interrupt(t... function tweenRemove (line 3) | function tweenRemove(t,n){var e,r;return function(){var i=set(this,t),o=... function tweenFunction (line 3) | function tweenFunction(t,n,e){var r,i;if("function"!==typeof e)throw new... function transition_tween (line 3) | function transition_tween(t,n){var e=this._id;t+="";if(arguments.length<... function tweenValue (line 3) | function tweenValue(t,n,e){var r=t._id;t.each((function(){var t=set(this... function interpolate (line 3) | function interpolate(t,n){var e;return("number"===typeof n?c:n instanceo... function attrRemove (line 3) | function attrRemove(t){return function(){this.removeAttribute(t)}} function attrRemoveNS (line 3) | function attrRemoveNS(t){return function(){this.removeAttributeNS(t.spac... function attrConstant (line 3) | function attrConstant(t,n,e){var r,i,o=e+"";return function(){var a=this... function attrConstantNS (line 3) | function attrConstantNS(t,n,e){var r,i,o=e+"";return function(){var a=th... function attrFunction (line 3) | function attrFunction(t,n,e){var r,i,o;return function(){var a,s,u=e(thi... function attrFunctionNS (line 3) | function attrFunctionNS(t,n,e){var r,i,o;return function(){var a,s,u=e(t... function transition_attr (line 3) | function transition_attr(n,e){var r=t(n),i="transform"===r?_:interpolate... function attrInterpolate (line 3) | function attrInterpolate(t,n){return function(e){this.setAttribute(t,n.c... function attrInterpolateNS (line 3) | function attrInterpolateNS(t,n){return function(e){this.setAttributeNS(t... function attrTweenNS (line 3) | function attrTweenNS(t,n){var e,r;function tween(){var i=n.apply(this,ar... function attrTween (line 3) | function attrTween(t,n){var e,r;function tween(){var i=n.apply(this,argu... function transition_attrTween (line 3) | function transition_attrTween(n,e){var r="attr."+n;if(arguments.length<2... function delayFunction (line 3) | function delayFunction(t,n){return function(){init(this,t).delay=+n.appl... function delayConstant (line 3) | function delayConstant(t,n){return n=+n,function(){init(this,t).delay=n}} function transition_delay (line 3) | function transition_delay(t){var n=this._id;return arguments.length?this... function durationFunction (line 3) | function durationFunction(t,n){return function(){set(this,t).duration=+n... function durationConstant (line 3) | function durationConstant(t,n){return n=+n,function(){set(this,t).durati... function transition_duration (line 3) | function transition_duration(t){var n=this._id;return arguments.length?t... function easeConstant (line 3) | function easeConstant(t,n){if("function"!==typeof n)throw new Error;retu... function transition_ease (line 3) | function transition_ease(t){var n=this._id;return arguments.length?this.... function easeVarying (line 3) | function easeVarying(t,n){return function(){var e=n.apply(this,arguments... function transition_easeVarying (line 3) | function transition_easeVarying(t){if("function"!==typeof t)throw new Er... function transition_filter (line 3) | function transition_filter(t){"function"!==typeof t&&(t=n(t));for(var e=... function transition_merge (line 3) | function transition_merge(t){if(t._id!==this._id)throw new Error;for(var... function start (line 3) | function start(t){return(t+"").trim().split(/^|\s+/).every((function(t){... function onFunction (line 3) | function onFunction(t,n,e){var r,i,o=start(n)?init:set;return function()... function transition_on (line 3) | function transition_on(t,n){var e=this._id;return arguments.length<2?get... function removeFunction (line 3) | function removeFunction(t){return function(){var n=this.parentNode;for(v... function transition_remove (line 3) | function transition_remove(){return this.on("end.remove",removeFunction(... function transition_select (line 3) | function transition_select(t){var n=this._name,r=this._id;"function"!==t... function transition_selectAll (line 3) | function transition_selectAll(t){var n=this._name,e=this._id;"function"!... function transition_selection (line 3) | function transition_selection(){return new F(this._groups,this._parents)} function styleNull (line 3) | function styleNull(t,n){var e,r,i;return function(){var a=o(this,t),s=(t... function styleRemove (line 3) | function styleRemove(t){return function(){this.style.removeProperty(t)}} function styleConstant (line 3) | function styleConstant(t,n,e){var r,i,a=e+"";return function(){var s=o(t... function styleFunction (line 3) | function styleFunction(t,n,e){var r,i,a;return function(){var s=o(this,t... function styleMaybeRemove (line 3) | function styleMaybeRemove(t,n){var e,r,i,o,a="style."+n,s="end."+a;retur... function transition_style (line 3) | function transition_style(t,n,e){var r="transform"===(t+="")?v:interpola... function styleInterpolate (line 3) | function styleInterpolate(t,n,e){return function(r){this.style.setProper... function styleTween (line 3) | function styleTween(t,n,e){var r,i;function tween(){var o=n.apply(this,a... function transition_styleTween (line 3) | function transition_styleTween(t,n,e){var r="style."+(t+="");if(argument... function textConstant (line 3) | function textConstant(t){return function(){this.textContent=t}} function textFunction (line 3) | function textFunction(t){return function(){var n=t(this);this.textConten... function transition_text (line 3) | function transition_text(t){return this.tween("text","function"===typeof... function textInterpolate (line 3) | function textInterpolate(t){return function(n){this.textContent=t.call(t... function textTween (line 3) | function textTween(t){var n,e;function tween(){var r=t.apply(this,argume... function transition_textTween (line 3) | function transition_textTween(t){var n="text";if(arguments.length<1)retu... function transition_transition (line 3) | function transition_transition(){var t=this._name,n=this._id,e=newId();f... function transition_end (line 3) | function transition_end(){var t,n,e=this,r=e._id,i=e.size();return new P... function Transition (line 3) | function Transition(t,n,e,r){this._groups=t;this._parents=n;this._name=e... function transition (line 3) | function transition(t){return i().transition(t)} function newId (line 3) | function newId(){return++b} function inherit (line 3) | function inherit(t,n){var e;while(!(e=t.__transition)||!(e=e[n]))if(!(t=... function selection_transition (line 3) | function selection_transition(t){var n,e;t instanceof Transition?(n=t._i... function active (line 3) | function active(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";... FILE: vendor/javascript/d3-zoom.js function ZoomEvent (line 3) | function ZoomEvent(t,{sourceEvent:o,target:e,transform:n,dispatch:i}){Ob... function Transform (line 3) | function Transform(t,o,e){this.k=t;this.x=o;this.y=e} function transform (line 3) | function transform(t){while(!t.__zoom)if(!(t=t.parentNode))return s;retu... function nopropagation (line 3) | function nopropagation(t){t.stopImmediatePropagation()} function noevent (line 3) | function noevent(t){t.preventDefault();t.stopImmediatePropagation()} function defaultFilter (line 3) | function defaultFilter(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button} function defaultExtent (line 3) | function defaultExtent(){var t=this;if(t instanceof SVGElement){t=t.owne... function defaultTransform (line 3) | function defaultTransform(){return this.__zoom||s} function defaultWheelDelta (line 3) | function defaultWheelDelta(t){return-t.deltaY*(1===t.deltaMode?.05:t.del... function defaultTouchable (line 3) | function defaultTouchable(){return navigator.maxTouchPoints||"ontouchsta... function defaultConstrain (line 3) | function defaultConstrain(t,o,e){var n=t.invertX(o[0][0])-e[0][0],i=t.in... function zoom (line 3) | function zoom(){var a,h,c,l=defaultFilter,m=defaultExtent,f=defaultConst... FILE: vendor/javascript/delaunator.js class Delaunator (line 3) | class Delaunator{static from(t,s=defaultGetX,i=defaultGetY){const n=t.le... method from (line 3) | static from(t,s=defaultGetX,i=defaultGetY){const n=t.length;const e=ne... method constructor (line 3) | constructor(t){const s=t.length>>1;if(s>0&&typeof t[0]!=="number")thro... method update (line 3) | update(){const{coords:i,_hullPrev:n,_hullNext:e,_hullTri:h,_hullHash:l... method _hashKey (line 3) | _hashKey(t,s){return Math.floor(pseudoAngle(t-this._cx,s-this._cy)*thi... method _legalize (line 3) | _legalize(t){const{_triangles:s,_halfedges:n,coords:e}=this;let h=0;le... method _link (line 3) | _link(t,s){this._halfedges[t]=s;s!==-1&&(this._halfedges[s]=t)} method _addTriangle (line 3) | _addTriangle(t,s,i,n,e,h){const l=this.trianglesLen;this._triangles[l]... function pseudoAngle (line 3) | function pseudoAngle(t,s){const i=t/(Math.abs(t)+Math.abs(s));return(s>0... function dist (line 3) | function dist(t,s,i,n){const e=t-i;const h=s-n;return e*e+h*h} function inCircle (line 3) | function inCircle(t,s,i,n,e,h,l,r){const o=t-l;const c=s-r;const a=i-l;c... function circumradius (line 3) | function circumradius(t,s,i,n,e,h){const l=i-t;const r=n-s;const o=e-t;c... function circumcenter (line 3) | function circumcenter(t,s,i,n,e,h){const l=i-t;const r=n-s;const o=e-t;c... function quicksort (line 3) | function quicksort(t,s,i,n){if(n-i<=20)for(let e=i+1;e<=n;e++){const n=t... function swap (line 3) | function swap(t,s,i){const n=t[s];t[s]=t[i];t[i]=n} function defaultGetX (line 3) | function defaultGetX(t){return t[0]} function defaultGetY (line 3) | function defaultGetY(t){return t[1]} FILE: vendor/javascript/internmap.js class InternMap (line 3) | class InternMap extends Map{constructor(e,t=keyof){super();Object.define... method constructor (line 3) | constructor(e,t=keyof){super();Object.defineProperties(this,{_intern:{... method get (line 3) | get(e){return super.get(intern_get(this,e))} method has (line 3) | has(e){return super.has(intern_get(this,e))} method set (line 3) | set(e,t){return super.set(intern_set(this,e),t)} method delete (line 3) | delete(e){return super.delete(intern_delete(this,e))} class InternSet (line 3) | class InternSet extends Set{constructor(e,t=keyof){super();Object.define... method constructor (line 3) | constructor(e,t=keyof){super();Object.defineProperties(this,{_intern:{... method has (line 3) | has(e){return super.has(intern_get(this,e))} method add (line 3) | add(e){return super.add(intern_set(this,e))} method delete (line 3) | delete(e){return super.delete(intern_delete(this,e))} function intern_get (line 3) | function intern_get({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e... function intern_set (line 3) | function intern_set({_intern:e,_key:t},n){const r=t(n);if(e.has(r))retur... function intern_delete (line 3) | function intern_delete({_intern:e,_key:t},n){const r=t(n);if(e.has(r)){n... function keyof (line 3) | function keyof(e){return null!==e&&"object"===typeof e?e.valueOf():e} FILE: vendor/javascript/robust-predicates.js function sum (line 3) | function sum(c,s,t,n,e){let o,a,l,i;let r=s[0];let f=n[0];let u=0;let d=... function sum_three (line 3) | function sum_three(c,s,t,n,e,o,a,l){return sum(sum(c,s,t,n,a),a,e,o,l)} function scale (line 3) | function scale(c,t,n,e){let o,a,l,i,r;let f,u,d,v,h,m;u=s*n;h=u-(u-n);m=... function negate (line 3) | function negate(c,s){for(let t=0;t