parameters:
    oro_ui.placeholder.provider.class:                     Oro\Bundle\UIBundle\Placeholder\PlaceholderProvider
    oro_ui.placeholder.resolver.class:                     Oro\Component\Config\Resolver\SystemAwareResolver
    oro_ui.placeholder.filter.class:                       Oro\Bundle\UIBundle\Placeholder\PlaceholderFilter

    oro_ui.router.class:                                   Oro\Bundle\UIBundle\Route\Router
    oro_ui.view.listener.class:                            Oro\Bundle\UIBundle\EventListener\TemplateListener
    oro_ui.format_converter.date_time.jquery_ui.class:     Oro\Bundle\UIBundle\Converter\JqueryUiDateTimeFormatConverter

    oro_ui.label_provider.action_button.class:             Oro\Bundle\UIBundle\Provider\ActionButtonLabelProvider
    oro_ui.label_provider.action_button_group.class:       Oro\Bundle\UIBundle\Provider\ActionButtonGroupLabelProvider
    oro_ui.widget_provider.action_button.class:            Oro\Bundle\UIBundle\Provider\ActionButtonWidgetProvider
    oro_ui.widget_provider.view_actions.class:             Oro\Bundle\UIBundle\Provider\GroupingChainWidgetProvider
    oro_ui.widget_provider.update_actions.class:           Oro\Bundle\UIBundle\Provider\GroupingChainWidgetProvider
    oro_ui.content_provider.manager.class:                 Oro\Bundle\UIBundle\ContentProvider\ContentProviderManager

    oro_ui.provider.widget_context.class:                  Oro\Bundle\UIBundle\Provider\WidgetContextProvider

    oro_ui.view.content_provider.listener.class:           Oro\Bundle\UIBundle\EventListener\ContentProviderListener

    oro_ui.html_tag_helper.class:                          Oro\Bundle\UIBundle\Tools\HtmlTagHelper
    oro_ui.user_agent_provider.class:                      Oro\Bundle\UIBundle\Provider\UserAgentProvider

    ## Formatters
    oro_ui.formatter.class:                                Oro\Bundle\UIBundle\Formatter\FormatterManager
    oro_ui.twig.extension.formatter.class:                 Oro\Bundle\UIBundle\Twig\FormatExtension

services:
    # Placeholder services
    oro_ui.placeholder.provider:
        class: %oro_ui.placeholder.provider.class%
        arguments:
            - %oro_ui.placeholders%
            - '@oro_ui.placeholder.resolver'
            - '@oro_security.security_facade'

    oro_ui.placeholder.resolver:
        class: %oro_ui.placeholder.resolver.class%
        arguments:
            - '@service_container'

    oro_ui.placeholder.filter:
        class: %oro_ui.placeholder.filter.class%

    # Other services
    oro_ui.router:
        class: %oro_ui.router.class%
        scope: request
        arguments:  ['@request', '@router', '@oro_security.security_facade']

    oro_ui.dynamic_asset_version_manager:
        class: Oro\Bundle\UIBundle\Asset\DynamicAssetVersionManager
        arguments:
            - '@oro_ui.dynamic_asset_version.cache'

    oro_ui.dynamic_asset_version.cache:
        public: false
        parent: oro.cache.abstract
        calls:
            - [ setNamespace, [ 'oro_dynamic_asset_version' ] ]

    oro_ui.view.listener:
        class: %oro_ui.view.listener.class%
        arguments:
            - '@service_container'
        tags:
            - { name: kernel.event_listener, event: kernel.view, method: onKernelView }

    oro_ui.view.content_provider.listener:
        class: %oro_ui.view.content_provider.listener.class%
        arguments:
            - '@service_container'
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

    oro_ui.format_converter.date_time.jquery_ui:
        class: %oro_ui.format_converter.date_time.jquery_ui.class%
        arguments:
            - '@oro_locale.formatter.date_time'
            - '@translator'
        tags:
            - { name: oro_locale.format_converter.date_time, alias: jquery_ui }

    oro_ui.label_provider.action_button.abstract:
        abstract: true
        class: %oro_ui.label_provider.action_button.class%
        arguments:
            - '@translator'

    oro_ui.label_provider.action_button_group:
        class: %oro_ui.label_provider.action_button_group.class%
        arguments:
            - '@translator'

    oro_ui.widget_provider.action_button.abstract:
        abstract: true
        class: %oro_ui.widget_provider.action_button.class%
        arguments:
            - '@oro_ui.placeholder.provider'

    oro_ui.widget_provider.view_actions:
        class: %oro_ui.widget_provider.view_actions.class%
        arguments:
            - '@oro_ui.label_provider.action_button_group'
            - '@event_dispatcher'
            - %oro_ui.widget_provider.view_actions.page_type%

    oro_ui.widget_provider.update_actions:
        class: %oro_ui.widget_provider.update_actions.class%
        arguments:
            - '@oro_ui.label_provider.action_button_group'
            - '@event_dispatcher'
            - %oro_ui.widget_provider.update_actions.page_type%

    oro_ui.content_provider.manager:
        class: %oro_ui.content_provider.manager.class%

    oro_ui.provider.widget_context:
        class: %oro_ui.provider.widget_context.class%
        calls:
            - [setRequest, ["@?request="]]

    oro_ui.html_tag_helper:
        class: %oro_ui.html_tag_helper.class%
        arguments:
            - '@oro_form.provider.html_tag_provider'
            - %kernel.cache_dir%

    oro_ui.user_agent_provider:
        class: %oro_ui.user_agent_provider.class%
        arguments:
            - '@request_stack'

    ## Formatters
    oro_ui.formatter:
        class: %oro_ui.formatter.class%

    oro_ui.twig.extension.formatter:
        class: %oro_ui.twig.extension.formatter.class%
        arguments:
            - '@oro_ui.formatter'
        tags:
            - { name: twig.extension }
