avo 2.46.0 → 3.0.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of avo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +23 -22
- data/Gemfile.lock +181 -160
- data/README.md +1 -1
- data/{public/avo-assets → app/assets/builds}/avo.base.css +479 -698
- data/app/assets/builds/avo.base.js +93804 -0
- data/app/assets/builds/avo.base.js.map +7 -0
- data/app/assets/stylesheets/avo.base.css +2 -2
- data/app/assets/svgs/failed_to_load.svg +1 -0
- data/app/assets/svgs/font.svg +1 -0
- data/app/assets/svgs/grid-empty-state.svg +1 -0
- data/app/assets/svgs/table-empty-state.svg +1 -0
- data/app/assets/svgs/triangle-up.svg +1 -0
- data/app/components/avo/actions_component.html.erb +18 -4
- data/app/components/avo/actions_component.rb +12 -18
- data/app/components/avo/alert_component.html.erb +1 -1
- data/app/components/avo/asset_manager/javascript_component.html.erb +3 -0
- data/app/components/avo/asset_manager/javascript_component.rb +13 -0
- data/app/components/avo/asset_manager/stylesheet_component.html.erb +3 -0
- data/app/components/avo/asset_manager/stylesheet_component.rb +13 -0
- data/app/components/avo/base_component.rb +14 -11
- data/app/components/avo/button_component.rb +20 -3
- data/app/components/avo/empty_state_component.rb +1 -1
- data/app/components/avo/field_wrapper_component.html.erb +4 -4
- data/app/components/avo/field_wrapper_component.rb +12 -23
- data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +96 -118
- data/app/components/avo/fields/belongs_to_field/edit_component.rb +5 -20
- data/app/components/avo/fields/belongs_to_field/index_component.html.erb +1 -1
- data/app/components/avo/fields/belongs_to_field/show_component.rb +2 -2
- data/app/components/avo/fields/boolean_field/edit_component.html.erb +1 -2
- data/app/components/avo/fields/boolean_group_field/edit_component.html.erb +3 -3
- data/app/components/avo/fields/code_field/edit_component.html.erb +0 -1
- data/app/components/avo/fields/common/badge_viewer_component.html.erb +24 -1
- data/app/components/avo/fields/common/badge_viewer_component.rb +0 -24
- data/app/components/avo/fields/common/boolean_group_component.html.erb +2 -2
- data/app/components/avo/fields/common/files_list_viewer_component.html.erb +5 -0
- data/app/components/avo/fields/common/files_list_viewer_component.rb +8 -0
- data/app/components/avo/fields/common/heading_component.html.erb +1 -1
- data/app/components/avo/fields/common/single_file_viewer_component.html.erb +56 -0
- data/app/components/avo/fields/common/single_file_viewer_component.rb +55 -0
- data/app/components/avo/fields/country_field/edit_component.html.erb +1 -3
- data/app/components/avo/fields/edit_component.rb +1 -1
- data/app/components/avo/fields/file_field/edit_component.html.erb +2 -4
- data/app/components/avo/fields/file_field/edit_component.rb +0 -1
- data/app/components/avo/fields/file_field/index_component.rb +2 -2
- data/app/components/avo/fields/file_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/files_field/edit_component.html.erb +2 -4
- data/app/components/avo/fields/files_field/edit_component.rb +0 -1
- data/app/components/avo/fields/files_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/has_many_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/has_one_field/index_component.html.erb +1 -1
- data/app/components/avo/fields/has_one_field/show_component.html.erb +2 -2
- data/app/components/avo/fields/has_one_field/show_component.rb +3 -7
- data/app/components/avo/fields/index_component.rb +5 -6
- data/app/components/avo/fields/markdown_field/edit_component.html.erb +3 -4
- data/app/components/avo/fields/markdown_field/show_component.html.erb +3 -3
- data/app/components/avo/fields/number_field/edit_component.html.erb +1 -3
- data/app/components/avo/fields/password_field/edit_component.html.erb +1 -3
- data/app/components/avo/fields/preview_field/index_component.html.erb +10 -0
- data/app/components/avo/fields/preview_field/index_component.rb +4 -0
- data/app/components/avo/fields/progress_bar_field/edit_component.html.erb +0 -1
- data/app/components/avo/fields/select_field/edit_component.html.erb +2 -3
- data/app/components/avo/fields/show_component.rb +4 -1
- data/app/components/avo/fields/status_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/text_field/edit_component.html.erb +2 -3
- data/app/components/avo/fields/textarea_field/edit_component.html.erb +0 -1
- data/app/components/avo/fields/trix_field/edit_component.html.erb +1 -2
- data/app/components/avo/fields/trix_field/edit_component.rb +1 -1
- data/app/components/avo/fields/trix_field/show_component.html.erb +1 -1
- data/app/components/avo/filters_component.html.erb +9 -3
- data/app/components/avo/filters_component.rb +4 -4
- data/app/components/avo/index/field_wrapper_component.html.erb +1 -1
- data/app/components/avo/index/grid_item_component.html.erb +5 -2
- data/app/components/avo/index/grid_item_component.rb +7 -6
- data/app/components/avo/index/resource_controls_component.html.erb +3 -81
- data/app/components/avo/index/resource_controls_component.rb +128 -18
- data/app/components/avo/index/resource_grid_component.html.erb +5 -3
- data/app/components/avo/index/resource_grid_component.rb +5 -2
- data/app/components/avo/index/resource_table_component.html.erb +5 -4
- data/app/components/avo/index/resource_table_component.rb +14 -20
- data/app/components/avo/index/table_row_component.html.erb +8 -4
- data/app/components/avo/index/table_row_component.rb +3 -2
- data/app/components/avo/item_switcher_component.html.erb +5 -10
- data/app/components/avo/item_switcher_component.rb +2 -3
- data/app/components/avo/modal_component.html.erb +7 -12
- data/app/components/avo/modal_component.rb +0 -21
- data/app/components/avo/paginator_component.html.erb +40 -29
- data/app/components/avo/paginator_component.rb +5 -23
- data/app/components/avo/panel_component.html.erb +8 -11
- data/app/components/avo/panel_component.rb +0 -1
- data/app/components/avo/profile_item_component.html.erb +2 -17
- data/app/components/avo/profile_item_component.rb +1 -13
- data/app/components/avo/referrer_params_component.html.erb +1 -4
- data/app/components/avo/resource_component.rb +142 -30
- data/app/components/avo/resource_sidebar_component.html.erb +6 -2
- data/app/components/avo/sidebar/link_component.html.erb +0 -2
- data/app/components/avo/sidebar/link_component.rb +3 -5
- data/app/components/avo/sidebar_component.html.erb +9 -2
- data/app/components/avo/sidebar_component.rb +5 -3
- data/app/components/avo/sidebar_profile_component.html.erb +27 -20
- data/app/components/avo/tab_group_component.html.erb +13 -7
- data/app/components/avo/tab_group_component.rb +1 -6
- data/app/components/avo/tab_switcher_component.html.erb +17 -40
- data/app/components/avo/tab_switcher_component.rb +4 -39
- data/app/components/avo/views/resource_edit_component.html.erb +16 -52
- data/app/components/avo/views/resource_edit_component.rb +7 -18
- data/app/components/avo/views/resource_index_component.html.erb +38 -53
- data/app/components/avo/views/resource_index_component.rb +60 -16
- data/app/components/avo/views/resource_show_component.html.erb +8 -151
- data/app/components/avo/views/resource_show_component.rb +6 -11
- data/app/controllers/avo/actions_controller.rb +19 -16
- data/app/controllers/avo/application_controller.rb +40 -109
- data/app/controllers/avo/associations_controller.rb +34 -41
- data/app/controllers/avo/attachments_controller.rb +10 -25
- data/app/controllers/avo/base_controller.rb +91 -103
- data/app/controllers/avo/debug_controller.rb +17 -5
- data/app/controllers/avo/search_controller.rb +29 -54
- data/app/controllers/avo/team_users_controller.rb +4 -0
- data/app/controllers/concerns/avo/initializes_avo.rb +26 -0
- data/app/helpers/avo/application_helper.rb +20 -21
- data/app/helpers/avo/resources_helper.rb +1 -1
- data/app/helpers/avo/url_helpers.rb +27 -11
- data/app/javascript/avo.base.js +1 -0
- data/app/javascript/js/application.js +0 -5
- data/app/javascript/js/controllers/action_controller.js +5 -3
- data/app/javascript/js/controllers/actions_overflow_controller.js +62 -0
- data/app/javascript/js/controllers/fields/{easy_mde_controller.js → simple_mde_controller.js} +3 -4
- data/app/javascript/js/controllers/filter_controller.js +1 -1
- data/app/javascript/js/controllers/input_autofocus_controller.js +12 -0
- data/app/javascript/js/controllers/preview_controller.js +24 -0
- data/app/javascript/js/controllers/search_controller.js +1 -3
- data/app/javascript/js/controllers/self_destroy_controller.js +7 -0
- data/app/javascript/js/controllers/toggle_controller.js +48 -0
- data/app/javascript/js/controllers.js +12 -8
- data/app/javascript/js/custom-stream-actions.js +15 -0
- data/app/views/avo/{attachments/destroy.turbo_stream.erb → actions/keep_modal_open.turbo_stream.erb} +0 -2
- data/app/views/avo/actions/show.html.erb +12 -11
- data/app/views/avo/associations/new.html.erb +4 -4
- data/app/views/avo/base/index.html.erb +3 -2
- data/app/views/avo/base/new.html.erb +2 -1
- data/app/views/avo/base/preview.html.erb +19 -0
- data/app/views/avo/base/show.html.erb +1 -1
- data/app/views/avo/debug/_valid_indicator.html.erb +9 -0
- data/app/views/avo/debug/report.html.erb +32 -17
- data/app/views/avo/debug/{index.html.erb → status.html.erb} +31 -15
- data/app/views/avo/home/index.html.erb +1 -1
- data/app/views/avo/partials/_custom_tools_alert.html.erb +2 -2
- data/app/views/avo/partials/_javascript.html.erb +5 -0
- data/app/views/avo/partials/_logo.html.erb +1 -1
- data/app/views/avo/partials/_navbar.html.erb +3 -5
- data/app/views/avo/partials/_table_header.html.erb +5 -3
- data/app/views/avo/partials/_view_toggle_button.html.erb +0 -9
- data/app/views/avo/private/design.html.erb +2 -2
- data/app/views/layouts/avo/application.html.erb +3 -0
- data/avo.gemspec +6 -7
- data/bin/dev +1 -1
- data/bin/prod +0 -0
- data/config/i18n-tasks.yml +1 -1
- data/config/initializers/pagy.rb +10 -14
- data/config/master.key +1 -0
- data/config/routes.rb +8 -12
- data/db/factories.rb +7 -18
- data/lib/avo/action_model.rb +20 -0
- data/lib/avo/app.rb +90 -162
- data/lib/avo/asset_manager.rb +30 -0
- data/lib/avo/base_action.rb +38 -36
- data/lib/avo/base_resource.rb +108 -96
- data/lib/avo/base_resource_tool.rb +9 -16
- data/lib/avo/concerns/{can_replace_fields.rb → can_replace_items.rb} +3 -3
- data/lib/avo/concerns/filters_session_handler.rb +1 -0
- data/lib/avo/concerns/has_controls.rb +37 -0
- data/lib/avo/concerns/has_item_type.rb +38 -0
- data/lib/avo/concerns/{has_fields.rb → has_items.rb} +110 -97
- data/lib/avo/concerns/{has_resource_stimulus_controllers.rb → has_stimulus_controllers.rb} +1 -1
- data/lib/avo/concerns/is_resource_item.rb +24 -36
- data/lib/avo/concerns/is_visible.rb +15 -0
- data/lib/avo/concerns/visible_in_different_views.rb +126 -0
- data/lib/avo/configuration/branding.rb +0 -12
- data/lib/avo/configuration.rb +8 -45
- data/lib/avo/current.rb +5 -0
- data/lib/avo/dsl/field_parser.rb +1 -1
- data/lib/avo/dynamic_router.rb +6 -2
- data/lib/avo/engine.rb +37 -30
- data/lib/avo/error_manager.rb +25 -0
- data/lib/avo/execution_context.rb +9 -15
- data/lib/avo/fields/badge_field.rb +1 -1
- data/lib/avo/fields/base_field.rb +72 -124
- data/lib/avo/fields/belongs_to_field.rb +14 -25
- data/lib/avo/fields/concerns/handles_field_args.rb +49 -0
- data/lib/avo/fields/concerns/has_default.rb +1 -5
- data/lib/avo/fields/concerns/has_field_name.rb +22 -0
- data/lib/avo/fields/concerns/has_html_attributes.rb +110 -0
- data/lib/avo/fields/concerns/is_disabled.rb +1 -5
- data/lib/avo/fields/concerns/is_readonly.rb +1 -5
- data/lib/avo/fields/concerns/is_required.rb +5 -7
- data/lib/avo/fields/concerns/is_searchable.rb +13 -0
- data/lib/avo/fields/concerns/use_resource.rb +5 -1
- data/lib/avo/fields/country_field.rb +4 -0
- data/lib/avo/fields/date_field.rb +3 -16
- data/lib/avo/fields/date_time_field.rb +1 -5
- data/lib/avo/fields/field_manager.rb +45 -0
- data/lib/avo/fields/file_field.rb +0 -2
- data/lib/avo/fields/files_field.rb +0 -6
- data/lib/avo/fields/has_and_belongs_to_many_field.rb +1 -2
- data/lib/avo/fields/has_base_field.rb +11 -14
- data/lib/avo/fields/has_many_field.rb +5 -2
- data/lib/avo/fields/has_one_field.rb +5 -10
- data/lib/avo/fields/heading_field.rb +4 -1
- data/lib/avo/fields/hidden_field.rb +1 -1
- data/lib/avo/fields/id_field.rb +2 -3
- data/lib/avo/fields/password_field.rb +1 -1
- data/lib/avo/fields/preview_field.rb +14 -0
- data/lib/avo/fields/select_field.rb +12 -8
- data/lib/avo/fields/status_field.rb +4 -0
- data/lib/avo/filters/base_filter.rb +3 -8
- data/lib/avo/grid_collector.rb +7 -9
- data/lib/avo/html/builder.rb +5 -8
- data/lib/avo/item_grapher.rb +78 -0
- data/lib/avo/licensing/h_q.rb +4 -68
- data/lib/avo/licensing/license.rb +2 -2
- data/lib/avo/licensing/license_manager.rb +1 -1
- data/lib/avo/licensing/{nil_license.rb → null_license.rb} +1 -1
- data/lib/avo/licensing/pro_license.rb +1 -7
- data/lib/avo/plugin.rb +6 -0
- data/lib/avo/plugin_manager.rb +58 -0
- data/lib/avo/prefixed_test_helpers.rb +20 -0
- data/lib/avo/reloader.rb +3 -0
- data/lib/avo/resources/controls/actions_list.rb +6 -12
- data/lib/avo/resources/controls/attach_button.rb +15 -0
- data/lib/avo/resources/controls/back_button.rb +1 -1
- data/lib/avo/resources/controls/base_control.rb +15 -49
- data/lib/avo/resources/controls/create_button.rb +15 -0
- data/lib/avo/resources/controls/delete_button.rb +5 -1
- data/lib/avo/resources/controls/detach_button.rb +4 -1
- data/lib/avo/resources/controls/edit_button.rb +4 -1
- data/lib/avo/resources/controls/order_controls.rb +8 -0
- data/lib/avo/resources/controls/save_button.rb +13 -0
- data/lib/avo/resources/controls/show_button.rb +15 -0
- data/lib/avo/resources/items/holder.rb +76 -0
- data/lib/avo/resources/items/item_group.rb +48 -0
- data/lib/avo/resources/items/main_panel.rb +2 -0
- data/lib/avo/resources/items/panel.rb +2 -0
- data/lib/avo/resources/items/sidebar.rb +47 -0
- data/lib/avo/resources/items/tab.rb +60 -0
- data/lib/avo/resources/items/tab_group.rb +68 -0
- data/lib/avo/resources/resource_manager.rb +181 -0
- data/lib/avo/services/authorization_service.rb +11 -110
- data/lib/avo/services/debug_service.rb +92 -0
- data/lib/avo/services/telemetry_service.rb +84 -0
- data/lib/avo/test_helpers.rb +362 -0
- data/lib/avo/tools/tool_manager.rb +30 -0
- data/lib/avo/version.rb +1 -1
- data/lib/avo.rb +7 -0
- data/lib/generators/avo/eject_generator.rb +0 -1
- data/lib/generators/avo/install_generator.rb +1 -11
- data/lib/generators/avo/resource_generator.rb +5 -23
- data/lib/generators/avo/scope_generator.rb +15 -0
- data/lib/generators/avo/tailwindcss/install_generator.rb +1 -18
- data/lib/generators/avo/templates/action.tt +1 -1
- data/lib/generators/avo/templates/cards/chartkick_card.tt +1 -1
- data/lib/generators/avo/templates/cards/chartkick_card_sample.tt +1 -1
- data/lib/generators/avo/templates/cards/metric_card.tt +1 -1
- data/lib/generators/avo/templates/cards/metric_card_sample.tt +1 -1
- data/lib/generators/avo/templates/cards/partial_card.tt +1 -1
- data/lib/generators/avo/templates/cards/partial_card_sample.tt +1 -1
- data/lib/generators/avo/templates/dashboards/dashboard.tt +1 -1
- data/lib/generators/avo/templates/field/%singular_name%_field.rb.tt +1 -1
- data/lib/generators/avo/templates/filters/boolean_filter.tt +1 -1
- data/lib/generators/avo/templates/filters/multiple_select_filter.tt +1 -1
- data/lib/generators/avo/templates/filters/select_filter.tt +1 -1
- data/lib/generators/avo/templates/filters/text_filter.tt +1 -1
- data/lib/generators/avo/templates/initializer/avo.tt +1 -11
- data/lib/generators/avo/templates/locales/avo.ar.yml +6 -6
- data/lib/generators/avo/templates/locales/avo.en.yml +4 -5
- data/lib/generators/avo/templates/locales/avo.fr.yml +1 -2
- data/lib/generators/avo/templates/locales/avo.nb.yml +1 -2
- data/lib/generators/avo/templates/locales/avo.nn.yml +1 -2
- data/lib/generators/avo/templates/locales/avo.pt-BR.yml +1 -2
- data/lib/generators/avo/templates/locales/avo.pt.yml +1 -2
- data/lib/generators/avo/templates/locales/avo.ro.yml +6 -7
- data/lib/generators/avo/templates/locales/avo.tr.yml +1 -2
- data/lib/generators/avo/templates/resource/resource.tt +1 -1
- data/lib/generators/avo/templates/resource_tools/partial.tt +4 -4
- data/lib/generators/avo/templates/resource_tools/resource_tool.tt +1 -1
- data/lib/generators/avo/templates/scope.tt +6 -0
- data/lib/generators/avo/templates/standalone_action.tt +1 -1
- data/lib/generators/avo/templates/tailwindcss/Procfile.dev +1 -1
- data/lib/generators/avo/templates/tool/view.tt +2 -2
- data/lib/tasks/avo_tasks.rake +22 -0
- metadata +82 -161
- data/app/assets/stylesheets/css/tags.css +0 -32
- data/app/assets/svgs/map-empty-state.svg +0 -35
- data/app/assets/svgs/map-view-type.svg +0 -3
- data/app/components/avo/card_component.html.erb +0 -46
- data/app/components/avo/card_component.rb +0 -25
- data/app/components/avo/dashboards/divider_component.html.erb +0 -9
- data/app/components/avo/dashboards/divider_component.rb +0 -19
- data/app/components/avo/fields/area_field/edit_component.html.erb +0 -7
- data/app/components/avo/fields/area_field/edit_component.rb +0 -4
- data/app/components/avo/fields/area_field/show_component.html.erb +0 -8
- data/app/components/avo/fields/area_field/show_component.rb +0 -4
- data/app/components/avo/fields/belongs_to_field/autocomplete_component.html.erb +0 -47
- data/app/components/avo/fields/belongs_to_field/autocomplete_component.rb +0 -95
- data/app/components/avo/fields/common/files/controls_component.html.erb +0 -29
- data/app/components/avo/fields/common/files/controls_component.rb +0 -19
- data/app/components/avo/fields/common/files/list_viewer_component.html.erb +0 -20
- data/app/components/avo/fields/common/files/list_viewer_component.rb +0 -41
- data/app/components/avo/fields/common/files/view_type/grid_item_component.html.erb +0 -27
- data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +0 -52
- data/app/components/avo/fields/common/files/view_type/list_item_component.html.erb +0 -22
- data/app/components/avo/fields/common/files/view_type/list_item_component.rb +0 -15
- data/app/components/avo/fields/location_field/edit_component.html.erb +0 -22
- data/app/components/avo/fields/location_field/edit_component.rb +0 -4
- data/app/components/avo/fields/location_field/show_component.html.erb +0 -7
- data/app/components/avo/fields/location_field/show_component.rb +0 -4
- data/app/components/avo/fields/tags_field/edit_component.html.erb +0 -35
- data/app/components/avo/fields/tags_field/edit_component.rb +0 -4
- data/app/components/avo/fields/tags_field/index_component.html.erb +0 -10
- data/app/components/avo/fields/tags_field/index_component.rb +0 -9
- data/app/components/avo/fields/tags_field/show_component.html.erb +0 -7
- data/app/components/avo/fields/tags_field/show_component.rb +0 -5
- data/app/components/avo/fields/tags_field/tag_component.html.erb +0 -9
- data/app/components/avo/fields/tags_field/tag_component.rb +0 -11
- data/app/components/avo/index/ordering/base_component.rb +0 -9
- data/app/components/avo/index/ordering/button_component.html.erb +0 -11
- data/app/components/avo/index/ordering/button_component.rb +0 -23
- data/app/components/avo/index/ordering/buttons_component.html.erb +0 -32
- data/app/components/avo/index/ordering/buttons_component.rb +0 -47
- data/app/components/avo/index/resource_map_component.html.erb +0 -16
- data/app/components/avo/index/resource_map_component.rb +0 -109
- data/app/components/avo/row_component.html.erb +0 -3
- data/app/components/avo/row_component.rb +0 -12
- data/app/components/avo/sidebar/item_switcher_component.html.erb +0 -16
- data/app/components/avo/sidebar/item_switcher_component.rb +0 -15
- data/app/controllers/avo/dashboards/cards_controller.rb +0 -37
- data/app/controllers/avo/dashboards_controller.rb +0 -22
- data/app/controllers/avo/reorder_controller.rb +0 -25
- data/app/javascript/js/controllers/base_controller.js +0 -22
- data/app/javascript/js/controllers/fields/reload_belongs_to_field_controller.js +0 -51
- data/app/javascript/js/controllers/fields/tags_field_controller.js +0 -127
- data/app/javascript/js/controllers/toggle_panel_controller.js +0 -18
- data/app/views/avo/base/_new_via_belongs_to.html.erb +0 -12
- data/app/views/avo/base/close_modal_and_reload_field.turbo_stream.erb +0 -8
- data/app/views/avo/base/create_fail_action.turbo_stream.erb +0 -13
- data/app/views/avo/dashboards/cards/_chartkick_card.html.erb +0 -3
- data/app/views/avo/dashboards/cards/_metric_card.html.erb +0 -5
- data/app/views/avo/dashboards/cards/chartkick_missing.html.erb +0 -14
- data/app/views/avo/dashboards/cards/show.html.erb +0 -3
- data/app/views/avo/dashboards/show.html.erb +0 -38
- data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +0 -3
- data/app/views/avo/partials/_global_search.html.erb +0 -19
- data/app/views/avo/partials/_profile_menu_extra.html.erb +0 -2
- data/app/views/avo/sidebar/_license_warnings.html.erb +0 -6
- data/lib/avo/base_card.rb +0 -161
- data/lib/avo/concerns/fetches_things.rb +0 -150
- data/lib/avo/concerns/handles_field_args.rb +0 -47
- data/lib/avo/concerns/has_action_stimulus_controllers.rb +0 -15
- data/lib/avo/concerns/has_editable_controls.rb +0 -34
- data/lib/avo/concerns/has_html_attributes.rb +0 -123
- data/lib/avo/concerns/pagination.rb +0 -53
- data/lib/avo/concerns/policy_helpers.rb +0 -31
- data/lib/avo/concerns/visible_in_dashboard.rb +0 -31
- data/lib/avo/concerns/visible_items.rb +0 -51
- data/lib/avo/dashboards/base_dashboard.rb +0 -89
- data/lib/avo/dashboards/base_divider.rb +0 -35
- data/lib/avo/dashboards/chartkick_card.rb +0 -77
- data/lib/avo/dashboards/dashboard_card.rb +0 -6
- data/lib/avo/dashboards/metric_card.rb +0 -9
- data/lib/avo/dashboards/partial_card.rb +0 -7
- data/lib/avo/fields/area_field.rb +0 -39
- data/lib/avo/fields/concerns/file_authorization.rb +0 -31
- data/lib/avo/fields/field_extensions/has_field_name.rb +0 -19
- data/lib/avo/fields/field_extensions/visible_in_different_views.rb +0 -111
- data/lib/avo/fields/location_field.rb +0 -86
- data/lib/avo/fields/tags_field.rb +0 -102
- data/lib/avo/hosts/association_scope_host.rb +0 -8
- data/lib/avo/hosts/base_host.rb +0 -25
- data/lib/avo/hosts/card_visibility.rb +0 -20
- data/lib/avo/hosts/dashboard_card.rb +0 -22
- data/lib/avo/hosts/dashboard_visibility.rb +0 -19
- data/lib/avo/hosts/ordering.rb +0 -22
- data/lib/avo/hosts/record_host.rb +0 -7
- data/lib/avo/hosts/resource_record_host.rb +0 -7
- data/lib/avo/hosts/resource_view_record_host.rb +0 -7
- data/lib/avo/hosts/search_scope_host.rb +0 -7
- data/lib/avo/hosts/view_record_host.rb +0 -7
- data/lib/avo/hosts/visibility_host.rb +0 -12
- data/lib/avo/items_holder.rb +0 -96
- data/lib/avo/main_panel.rb +0 -3
- data/lib/avo/menu/base_item.rb +0 -25
- data/lib/avo/menu/builder.rb +0 -82
- data/lib/avo/menu/dashboard.rb +0 -22
- data/lib/avo/menu/group.rb +0 -2
- data/lib/avo/menu/link.rb +0 -6
- data/lib/avo/menu/menu.rb +0 -2
- data/lib/avo/menu/resource.rb +0 -22
- data/lib/avo/menu/section.rb +0 -2
- data/lib/avo/panel.rb +0 -24
- data/lib/avo/panel_builder.rb +0 -25
- data/lib/avo/resources/controls/action.rb +0 -38
- data/lib/avo/resources/controls/execution_context.rb +0 -58
- data/lib/avo/resources/controls/items_holder.rb +0 -19
- data/lib/avo/resources/controls/link_to.rb +0 -27
- data/lib/avo/row.rb +0 -26
- data/lib/avo/row_builder.rb +0 -24
- data/lib/avo/services/authorization_clients/nil_client.rb +0 -37
- data/lib/avo/services/authorization_clients/pundit_client.rb +0 -51
- data/lib/avo/sidebar.rb +0 -30
- data/lib/avo/sidebar_builder.rb +0 -24
- data/lib/avo/tab.rb +0 -72
- data/lib/avo/tab_builder.rb +0 -25
- data/lib/avo/tab_group.rb +0 -42
- data/lib/avo/tab_group_builder.rb +0 -43
- data/lib/avo/tools_manager.rb +0 -11
- data/lib/generators/avo/templates/locales/avo.es.yml +0 -126
- data/public/avo-assets/avo.base.js +0 -1037
- data/public/avo-assets/avo.base.js.map +0 -7
@@ -1,4 +1,4 @@
|
|
1
|
-
@import './../../../node_modules/
|
1
|
+
@import './../../../node_modules/simplemde/dist/simplemde.min.css';
|
2
2
|
@import './../../../node_modules/tippy.js/dist/tippy.css';
|
3
3
|
@import './../../../node_modules/tippy.js/themes/light.css';
|
4
4
|
@import './../../../node_modules/flatpickr/dist/flatpickr.css';
|
@@ -19,7 +19,6 @@
|
|
19
19
|
@import './css/scrollbar.css';
|
20
20
|
@import './css/sidebar.css';
|
21
21
|
@import './css/spinner.css';
|
22
|
-
@import './css/tags.css';
|
23
22
|
|
24
23
|
@import './css/fields/status.css';
|
25
24
|
@import './css/fields/code.css';
|
@@ -71,6 +70,7 @@ body {
|
|
71
70
|
@apply opacity-0 translate-y-1;
|
72
71
|
}
|
73
72
|
|
73
|
+
|
74
74
|
.turbo-progress-bar {
|
75
75
|
@apply bg-primary-400;
|
76
76
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M432 432h-33.32l-135-389.24A16 16 0 0 0 248.55 32h-49.1a16 16 0 0 0-15.12 10.76L49.32 432H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-35.44l33.31-96h164.26l33.31 96H304a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM158.53 288L224 99.31 289.47 288z"/></svg>
|
@@ -22,6 +22,7 @@
|
|
22
22
|
<feColorMatrix type="matrix" values="0 0 0 0 0.788235 0 0 0 0 0.803922 0 0 0 0 0.85098 0 0 0 0.349 0"/>
|
23
23
|
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_577_1090"/>
|
24
24
|
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_577_1090" result="shape"/>
|
25
|
+
</filter>
|
25
26
|
<filter id="filter1_d_577_1090" x="38.6401" y="0" width="170.72" height="78.1333" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
26
27
|
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
27
28
|
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="9" role="presentation"><g fill="none" fill-rule="evenodd"><path fill="#8898AA" fill-opacity="0.1" d="M1 9.092h19l-6.402-6.74c-1.717-1.806-4.485-1.8-6.196 0L1 9.093zM20.342 8l-6.02-6.336c-2.108-2.22-5.538-2.218-7.645 0L.658 8h19.684z"></path><path fill="currentcolor" d="M7.402 2.353c1.711-1.801 4.48-1.807 6.196 0L20 9.093H1l6.402-6.74z"></path></g></svg>
|
@@ -1,26 +1,40 @@
|
|
1
1
|
<div class="relative flex flex-col w-full sm:w-auto js-actions-dropdown"
|
2
|
-
data-
|
2
|
+
data-component-name="<%= self.class.to_s.underscore %>"
|
3
|
+
data-controller="toggle actions-picker"
|
3
4
|
data-actions-picker-enabled-class="text-black hover:bg-primary-500 hover:text-white"
|
4
5
|
data-actions-picker-disabled-class="cursor-wait text-gray-500"
|
6
|
+
data-resource-name="<%= @resource.class.to_s %>"
|
7
|
+
<% if @resource.record.present? %> data-record-id="<%= @resource.record.id %>" <% end %>
|
5
8
|
>
|
6
9
|
<%= a_button style: @style,
|
7
10
|
type: :button,
|
8
11
|
color: @color,
|
12
|
+
size: size,
|
9
13
|
class: "focus:outline-none",
|
10
14
|
icon: 'arrow-circle-right',
|
11
15
|
icon_class: 'transform rotate-90',
|
12
|
-
'data-action': "click->toggle
|
16
|
+
'data-action': "click->toggle#togglePanel",
|
13
17
|
'data-actions-dropdown-button': @resource.model_key do %>
|
14
18
|
<%= label %>
|
15
19
|
<% end %>
|
16
20
|
<div
|
17
21
|
class="absolute flex inset-auto xl:right-0 top-full bg-white w-full sm:w-auto sm:min-w-[300px] mt-2 z-40 shadow-modal rounded overflow-hidden hidden"
|
18
|
-
data-toggle-
|
22
|
+
data-toggle-target="panel"
|
23
|
+
data-controller="actions-overflow"
|
24
|
+
data-actions-overflow-panel-list-value="<%= !@as_row_control %>"
|
25
|
+
data-actions-overflow-target="content"
|
26
|
+
data-transition-enter="transition ease-out duration-100"
|
27
|
+
data-transition-enter-start="transform opacity-0 -translate-y-1"
|
28
|
+
data-transition-enter-end="transform opacity-100 translate-y-0"
|
29
|
+
data-transition-leave="transition ease-in duration-75"
|
30
|
+
data-transition-leave-start="transform opacity-100 translate-y-0"
|
31
|
+
data-transition-leave-end="transform opacity-0 -translate-y-1"
|
19
32
|
>
|
20
|
-
<div class="w-full space divide-y">
|
33
|
+
<div data-target="actions-list" class="w-full space divide-y">
|
21
34
|
<% actions.each_with_index do |action, index| %>
|
22
35
|
<%= link_to action_path(action.param_id),
|
23
36
|
data: {
|
37
|
+
action_name: action.action_name,
|
24
38
|
'turbo-frame': 'actions_show',
|
25
39
|
'action': 'click->actions-picker#visitAction',
|
26
40
|
'actions-picker-target': action.standalone ? 'standaloneAction' : 'resourceAction',
|
@@ -2,17 +2,18 @@
|
|
2
2
|
|
3
3
|
class Avo::ActionsComponent < ViewComponent::Base
|
4
4
|
include Avo::ApplicationHelper
|
5
|
-
attr_reader :label
|
5
|
+
attr_reader :label, :size, :as_row_control
|
6
6
|
|
7
|
-
def initialize(actions: [], resource: nil, view: nil, exclude: [],
|
7
|
+
def initialize(actions: [], resource: nil, view: nil, exclude: [], style: :outline, color: :primary, label: nil, size: :md, as_row_control: false)
|
8
8
|
@actions = actions || []
|
9
9
|
@resource = resource
|
10
10
|
@view = view
|
11
11
|
@exclude = exclude
|
12
|
-
@include = include
|
13
12
|
@color = color
|
14
13
|
@style = style
|
15
|
-
@label = label ||
|
14
|
+
@label = label || t("avo.actions")
|
15
|
+
@size = size
|
16
|
+
@as_row_control = as_row_control
|
16
17
|
end
|
17
18
|
|
18
19
|
def render?
|
@@ -20,19 +21,14 @@ class Avo::ActionsComponent < ViewComponent::Base
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def actions
|
23
|
-
|
24
|
-
@actions.reject { |action| action.class.in?(@exclude) }
|
25
|
-
elsif @include.present?
|
26
|
-
@actions.select { |action| action.class.in?(@include) }
|
27
|
-
else
|
28
|
-
@actions
|
29
|
-
end
|
24
|
+
@actions.reject { |action| action.class.in?(@exclude) }
|
30
25
|
end
|
31
26
|
|
32
27
|
# When running an action for one record we should do it on a special path.
|
33
|
-
# We do that so we get the `
|
28
|
+
# We do that so we get the `record` param inside the action so we can prefill fields.
|
34
29
|
def action_path(id)
|
35
|
-
return
|
30
|
+
return single_record_path(id) if as_row_control
|
31
|
+
return many_records_path(id) unless @resource.has_record_id?
|
36
32
|
|
37
33
|
if on_record_page?
|
38
34
|
single_record_path id
|
@@ -43,7 +39,7 @@ class Avo::ActionsComponent < ViewComponent::Base
|
|
43
39
|
|
44
40
|
# How should the action be displayed by default
|
45
41
|
def is_disabled?(action)
|
46
|
-
return false if action.standalone
|
42
|
+
return false if action.standalone || as_row_control
|
47
43
|
|
48
44
|
on_index_page?
|
49
45
|
end
|
@@ -60,15 +56,13 @@ class Avo::ActionsComponent < ViewComponent::Base
|
|
60
56
|
|
61
57
|
def single_record_path(id)
|
62
58
|
Avo::Services::URIService.parse(@resource.record_path)
|
63
|
-
.append_paths("actions")
|
64
|
-
.append_query("action_id": id)
|
59
|
+
.append_paths("actions", id)
|
65
60
|
.to_s
|
66
61
|
end
|
67
62
|
|
68
63
|
def many_records_path(id)
|
69
64
|
Avo::Services::URIService.parse(@resource.records_path)
|
70
|
-
.append_paths("actions")
|
71
|
-
.append_query("action_id": id)
|
65
|
+
.append_paths("actions", id)
|
72
66
|
.to_s
|
73
67
|
end
|
74
68
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Avo::AssetManager::JavascriptComponent < ViewComponent::Base
|
4
|
+
attr_reader :asset_manager
|
5
|
+
|
6
|
+
def initialize(asset_manager:)
|
7
|
+
@asset_manager = asset_manager
|
8
|
+
end
|
9
|
+
|
10
|
+
def javascripts
|
11
|
+
asset_manager.javascripts
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Avo::AssetManager::StylesheetComponent < ViewComponent::Base
|
4
|
+
attr_reader :asset_manager
|
5
|
+
|
6
|
+
def initialize(asset_manager:)
|
7
|
+
@asset_manager = asset_manager
|
8
|
+
end
|
9
|
+
|
10
|
+
def stylesheets
|
11
|
+
asset_manager.stylesheets
|
12
|
+
end
|
13
|
+
end
|
@@ -16,39 +16,42 @@ class Avo::BaseComponent < ViewComponent::Base
|
|
16
16
|
nil
|
17
17
|
end
|
18
18
|
|
19
|
-
# Fetch the resource and hydrate it with the
|
19
|
+
# Fetch the resource and hydrate it with the record
|
20
20
|
def association_resource
|
21
|
-
resource = ::Avo::App.get_resource(params[:via_resource_class])
|
22
|
-
model_class_name = params[:via_relation_class] || resource.model_class
|
21
|
+
resource = ::Avo::App.resources.get_resource(params[:via_resource_class])
|
23
22
|
|
24
|
-
|
23
|
+
model_class = if params[:via_relation_class].present?
|
24
|
+
::Avo::BaseResource.get_model_by_name params[:via_relation_class]
|
25
|
+
else
|
26
|
+
resource.model_class
|
27
|
+
end
|
25
28
|
|
26
|
-
resource = ::Avo::App.
|
29
|
+
resource = ::Avo::App.resources.get_resource_by_model_class model_class if resource.blank?
|
27
30
|
|
28
|
-
|
31
|
+
record = resource.find_record params[:via_record_id], query: model_class, params: params
|
29
32
|
|
30
|
-
resource.dup.hydrate
|
33
|
+
resource.dup.hydrate record: record
|
31
34
|
end
|
32
35
|
|
33
36
|
# Get the resource for the resource using the klass attribute so we get the namespace too
|
34
37
|
def reflection_resource
|
35
|
-
::Avo::App.
|
38
|
+
::Avo::App.resources.get_resource_by_model_class(@reflection.klass.to_s)
|
36
39
|
rescue
|
37
40
|
nil
|
38
41
|
end
|
39
42
|
|
40
43
|
# Get the resource for the resource using the klass attribute so we get the namespace too
|
41
44
|
def reflection_parent_resource
|
42
|
-
::Avo::App.
|
45
|
+
::Avo::App.resources.get_resource_by_model_class(@reflection.active_record.to_s)
|
43
46
|
rescue
|
44
47
|
nil
|
45
48
|
end
|
46
49
|
|
47
50
|
def parent_or_child_resource
|
48
51
|
return @resource unless link_to_child_resource_is_enabled?
|
49
|
-
return @resource if @resource.
|
52
|
+
return @resource if @resource.record.class.base_class == @resource.record.class
|
50
53
|
|
51
|
-
::Avo::App.
|
54
|
+
::Avo::App.resources.get_resource_by_model_class(@resource.record.class).dup || @resource
|
52
55
|
end
|
53
56
|
|
54
57
|
def link_to_child_resource_is_enabled?
|
@@ -40,7 +40,10 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def button_classes
|
43
|
-
classes = "button-component inline-flex flex-grow-0 items-center font-semibold leading-6 fill-current whitespace-nowrap transition duration-100 transform transition duration-100 cursor-pointer disabled:cursor-not-allowed disabled:opacity-70
|
43
|
+
classes = "button-component inline-flex flex-grow-0 items-center font-semibold leading-6 fill-current whitespace-nowrap transition duration-100 transform transition duration-100 cursor-pointer disabled:cursor-not-allowed disabled:opacity-70 justify-center #{@class}"
|
44
|
+
|
45
|
+
# For non-icon-styled buttons we should not add borders.
|
46
|
+
classes += " border active:outline active:outline-1" unless is_icon?
|
44
47
|
|
45
48
|
classes += " rounded" if @rounded.present?
|
46
49
|
classes += style_classes
|
@@ -55,18 +58,26 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
55
58
|
@is_link
|
56
59
|
end
|
57
60
|
|
61
|
+
def is_icon?
|
62
|
+
@style == :icon
|
63
|
+
end
|
64
|
+
|
65
|
+
def is_not_icon?
|
66
|
+
!is_icon?
|
67
|
+
end
|
68
|
+
|
58
69
|
def full_content
|
59
70
|
result = ""
|
60
71
|
icon_classes = @icon_class
|
61
72
|
# space out the icon from the text if text is present
|
62
|
-
icon_classes += " mr-1" if content.present?
|
73
|
+
icon_classes += " mr-1" if content.present? && is_not_icon?
|
63
74
|
# add the icon height
|
64
75
|
icon_classes += icon_size_classes
|
65
76
|
|
66
77
|
# Add the icon
|
67
78
|
result += helpers.svg(@icon, class: icon_classes) if @icon.present?
|
68
79
|
|
69
|
-
if content.present?
|
80
|
+
if is_not_icon? && content.present?
|
70
81
|
result += "<span>#{content}</span>"
|
71
82
|
end
|
72
83
|
|
@@ -102,6 +113,8 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
102
113
|
private
|
103
114
|
|
104
115
|
def vertical_padding_classes
|
116
|
+
return " py-0" if is_icon?
|
117
|
+
|
105
118
|
case @size.to_sym
|
106
119
|
when :xs
|
107
120
|
" py-0"
|
@@ -119,6 +132,7 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
119
132
|
end
|
120
133
|
|
121
134
|
def horizontal_padding_classes
|
135
|
+
return " px-0" if is_icon?
|
122
136
|
return " px-1" if @compact
|
123
137
|
|
124
138
|
case @size.to_sym
|
@@ -154,6 +168,8 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
154
168
|
" bg-white text-#{@color}-500 border-#{@color}-500 hover:bg-#{@color}-100 active:bg-#{@color}-100 active:border-#{@color}-500 active:outline-#{@color}-500"
|
155
169
|
when :text
|
156
170
|
" text-#{@color}-500 active:outline-#{@color}-500 hover:bg-gray-100 border-transparent"
|
171
|
+
when :icon
|
172
|
+
" text-#{@color}-600"
|
157
173
|
else
|
158
174
|
""
|
159
175
|
end
|
@@ -161,6 +177,7 @@ class Avo::ButtonComponent < ViewComponent::Base
|
|
161
177
|
|
162
178
|
def icon_size_classes
|
163
179
|
icon_classes = ""
|
180
|
+
return icon_classes if is_icon?
|
164
181
|
|
165
182
|
case @size
|
166
183
|
when :xs
|
@@ -2,7 +2,7 @@
|
|
2
2
|
class: classes,
|
3
3
|
style: style,
|
4
4
|
data: data do %>
|
5
|
-
<div class="h-full <% if stacked? %> md:pt-4 <% else %> md:pt-0 md:h-14 <% end %> pt-4 flex self-start items-center
|
5
|
+
<div class="h-full <% if stacked? %> md:pt-4 <% else %> md:pt-0 <% if short? %> md:h-10 <% else %> md:h-14 <% end %> <% end %> pt-4 flex self-start items-center <%= @field.get_html(:classes, view: view, element: :label) %> w-48 <% if compact? %> md:w-48 xl:w-64 <% else %> md:w-64 <% end %> px-6 uppercase font-semibold text-gray-500 text-sm" data-slot="label">
|
6
6
|
<% if form.present? %>
|
7
7
|
<%= form.label field.id, label %>
|
8
8
|
<% else %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<% if on_edit? && field.is_required? %> <span class="text-red-600 ml-1">*</span> <% end %>
|
12
12
|
</div>
|
13
13
|
<div class="flex-1 flex flex-row md:min-h-inherit py-2 <% if stacked? %> pb-4 <% else %><% end %> px-6 <%= @field.get_html(:classes, view: view, element: :content) %>" data-slot="value">
|
14
|
-
<div class="self-center
|
14
|
+
<div class="self-center <% if full_width? || compact? || stacked? %> w-full <% else %> md:w-8/12 <% end %>">
|
15
15
|
<% if on_show? %>
|
16
16
|
<% if field.value.blank? and dash_if_blank %>
|
17
17
|
—
|
@@ -24,13 +24,13 @@
|
|
24
24
|
<div class="text-red-600 mt-2 text-sm"><%= record.errors.full_messages_for(field.id).to_sentence %></div>
|
25
25
|
<% end %>
|
26
26
|
<% if help.present? %>
|
27
|
-
<div class="text-gray-600 mt-2 text-sm"
|
27
|
+
<div class="text-gray-600 mt-2 text-sm"><%== help %></div>
|
28
28
|
<% end %>
|
29
29
|
<% end %>
|
30
30
|
</div>
|
31
31
|
</div>
|
32
32
|
<% if params[:avo_debug].present? %>
|
33
33
|
<!-- Raw value: -->
|
34
|
-
<!--
|
34
|
+
<!-- <%== field.value.inspect %> -->
|
35
35
|
<% end %>
|
36
36
|
<% end %>
|
@@ -19,6 +19,7 @@ class Avo::FieldWrapperComponent < ViewComponent::Base
|
|
19
19
|
full_width: false,
|
20
20
|
label: nil, # do we really need it?
|
21
21
|
resource: nil,
|
22
|
+
short: false,
|
22
23
|
stacked: nil,
|
23
24
|
style: "",
|
24
25
|
view: :show,
|
@@ -35,14 +36,14 @@ class Avo::FieldWrapperComponent < ViewComponent::Base
|
|
35
36
|
@full_width = full_width
|
36
37
|
@label = label
|
37
38
|
@resource = resource
|
38
|
-
@
|
39
|
+
@short = short
|
39
40
|
@stacked = stacked
|
40
41
|
@style = style
|
41
42
|
@view = view
|
42
43
|
end
|
43
44
|
|
44
45
|
def classes(extra_classes = "")
|
45
|
-
"field-wrapper relative flex flex-col grow pb-2 md:pb-0 leading-tight min-h-14
|
46
|
+
"field-wrapper relative flex flex-col flex-grow pb-2 md:pb-0 leading-tight min-h-14 #{stacked? ? "field-wrapper-layout-stacked" : "field-wrapper-layout-inline md:flex-row md:items-center"} #{compact? ? "field-wrapper-size-compact" : "field-wrapper-size-regular"} #{full_width? ? "field-width-full" : "field-width-regular"} #{@classes || ""} #{extra_classes || ""} #{@field.get_html(:classes, view: view, element: :wrapper)}"
|
46
47
|
end
|
47
48
|
|
48
49
|
def style
|
@@ -62,17 +63,11 @@ class Avo::FieldWrapperComponent < ViewComponent::Base
|
|
62
63
|
end
|
63
64
|
|
64
65
|
def help
|
65
|
-
|
66
|
-
|
67
|
-
if help_value.respond_to?(:call)
|
68
|
-
return Avo::Hosts::ResourceViewRecordHost.new(block: help_value, record: record, resource: resource, view: view).handle
|
69
|
-
end
|
70
|
-
|
71
|
-
help_value
|
66
|
+
Avo::ExecutionContext.new(target: @help || @field.help, record: record, resource: resource, view: view).handle
|
72
67
|
end
|
73
68
|
|
74
69
|
def record
|
75
|
-
resource.present? ? resource.
|
70
|
+
resource.present? ? resource.record : nil
|
76
71
|
end
|
77
72
|
|
78
73
|
def data
|
@@ -84,11 +79,9 @@ class Avo::FieldWrapperComponent < ViewComponent::Base
|
|
84
79
|
|
85
80
|
# Add the built-in stimulus integration data tags.
|
86
81
|
if @resource.present?
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
if @action.present?
|
91
|
-
add_stimulus_attributes_for(@action, attributes)
|
82
|
+
@resource.get_stimulus_controllers.split(" ").each do |controller|
|
83
|
+
attributes["#{controller}-target"] = "#{@field.id.to_s.underscore}_#{@field.type.to_s.underscore}_wrapper".camelize(:lower)
|
84
|
+
end
|
92
85
|
end
|
93
86
|
|
94
87
|
# Fetch the data attributes off the html option
|
@@ -115,15 +108,11 @@ class Avo::FieldWrapperComponent < ViewComponent::Base
|
|
115
108
|
@compact
|
116
109
|
end
|
117
110
|
|
118
|
-
def
|
119
|
-
@
|
111
|
+
def short?
|
112
|
+
@short
|
120
113
|
end
|
121
114
|
|
122
|
-
|
123
|
-
|
124
|
-
def add_stimulus_attributes_for(entity, attributes)
|
125
|
-
entity.get_stimulus_controllers.split(" ").each do |controller|
|
126
|
-
attributes["#{controller}-target"] = "#{@field.id.to_s.underscore}_#{@field.type.to_s.underscore}_wrapper".camelize(:lower)
|
127
|
-
end
|
115
|
+
def full_width?
|
116
|
+
@full_width
|
128
117
|
end
|
129
118
|
end
|