services:
    SmartCoreBundle\Form\Extension\DateTypeExtension:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@request_stack'
        tags:
            - { name: form.type_extension, alias: date }

    smart_core.form.tinymce.extension_manager:
        class: SmartCoreBundle\Form\TinyMce\ExtensionManager
        arguments:
            - '@assets.packages'

    SmartCoreBundle\Form\Type\TinymceType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@router'
            - '@smart_core.form.tinymce.extension_manager'
            - '@request_stack'
            - '%smart_core.form.tinymce.content_css%'
            - '%smart_core.form.tinymce.configuration%'
        tags:
            - { name: form.type, alias: smart_tinymce }

    SmartCoreBundle\Form\Type\GMapType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '%smart_core.google_map_api_key%'
        tags:
            - { name: form.type, alias: smart_gmap }

    SmartCoreBundle\Form\Type\ColorType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
        tags:
            - { name: form.type, alias: smart_color }

    SmartCoreBundle\Form\Type\CountryType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@translator'
            - '@request_stack'
        tags:
            - { name: form.type, alias: smart_country }

    SmartCoreBundle\Form\Type\FontAwesomeType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
        tags:
            - { name: form.type, alias: smart_fontawesome }

    SmartCoreBundle\Form\Type\SwitchType:
        tags:
            - { name: form.type, alias: smart_switch }

    SmartCoreBundle\Form\Type\Select2Type:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@translator'
            - '@request_stack'
        tags:
            - { name: form.type, alias: smart_select2 }

    SmartCoreBundle\Form\Type\Select2TagType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@translator'
            - '@request_stack'
        tags:
            - { name: form.type, alias: smart_select2 }

    SmartCoreBundle\Form\Type\Select2EntityType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@translator'
            - '@request_stack'
            - '@doctrine.orm.default_entity_manager'
        tags:
            - { name: form.type, alias: smart_select2 }

    SmartCoreBundle\Form\Type\Select2AjaxType:
        arguments:
            - '@smart_core.templating.assets.stack'
            - '@assets.packages'
            - '@translator'
            - '@request_stack'
            - '@doctrine.orm.default_entity_manager'
            - '@router'
        tags:
            - { name: form.type, alias: smart_select2_ajax }

    smart_core.form.tinymce.plugin.smart_templates:
        class: SmartCoreBundle\Form\TinyMce\TemplateExtension
        arguments:
            - '@twig'
            - '%smart_core.form.tinymce.plugin.smart_templates.templates%'
        tags:
            - { name: smart_core.tinymce_extension }

    smart_core.form_transformer.object_reference:
        class: SmartCoreBundle\Form\DataTransformer\ObjectReferenceTransformer
        arguments:
            - '@doctrine.orm.default_entity_manager'
            - '%smart_core.model.object_reference.class%'
