services:
  # Universal Modules
  builderius_module.html_element_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusContainerModule
    arguments:
      - name: 'HtmlElement'
        label: 'Html Element'
        sort_order: 10
        public: false
        tags:
          - 'html'
          - 'element'
          - 'container'
          - 'generic'
          - 'block'
          - 'row'
          - 'column'
          - 'div'
          - 'section'
          - 'main'
          - 'nav'
          - 'figure'
          - 'aside'
          - 'article'
          - 'header'
          - 'footer'
          - 'details'
          - 'picture'
          - 'li'
          - 'span'
          - 'ul'
          - 'ol'
          - 'dl'
          - 'label'
          - 'address'
        category: 'universal'
        renderTemplate: 'BuilderiusModuleBundle:modules/HtmlElement.twig'
    tags:
      - { name: builderius_module }

  builderius_module.html_code_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusModule
    arguments:
      - name: 'HtmlCode'
        label: 'Html Code'
        sort_order: 90
        exclude_all_css_settings: true
        exclude_settings: [ 'htmlAttribute', 'tagClass', 'tagId' ]
        tags:
          - 'html'
          - 'rawhtml'
          - 'code'
        category: 'content'
        renderTemplate: 'BuilderiusModuleBundle:modules/HtmlCode.twig'
    tags:
      - { name: builderius_module }

  builderius_module.svg_code_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusModule
    arguments:
      - name: 'SvgCode'
        label: 'SVG Code'
        sort_order: 91
        exclude_all_css_settings: true
        exclude_settings: [ 'htmlAttribute', 'tagClass', 'tagId' ]
        tags:
          - 'svg'
          - 'code'
        category: 'content'
        renderTemplate: 'BuilderiusModuleBundle:modules/SvgCode.twig'
    tags:
      - { name: builderius_module }

  builderius_module.template_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusContainerModule
    arguments:
      - name: 'Template'
        label: 'Template'
        sort_order: 20
        exclude_all_css_settings: true
        tags:
          - 'template'
        category: 'dynamic'
        renderTemplate: 'BuilderiusModuleBundle:modules/Template.twig'
    tags:
      - { name: builderius_module }

  builderius_module.recursive_template_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusModule
    arguments:
      - name: 'RecursiveTemplate'
        label: 'Recursive Template'
        sort_order: 20
        exclude_all_css_settings: true
        tags:
          - 'template'
          - 'recursive'
        category: 'dynamic'
        renderTemplate: 'BuilderiusModuleBundle:modules/RecursiveTemplate.twig'
    tags:
      - { name: builderius_module }

#  builderius_module.time_module:
#    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusModule
#    arguments:
#      - name: 'Time'
#        label: 'Time'
#        sort_order: 30
#        tags:
#          - 'content'
#          - 'text'
#          - 'time'
#        category: 'content'
#        renderTemplate: 'BuilderiusModuleBundle:modules/Time.twig'
#    tags:
#      - { name: builderius_module }

  builderius_module.collection_module:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
    arguments:
      - name: 'Collection'
        label: 'Collection'
        containerFor: ['Template']
        public: false
        tags:
          - 'repeater'
          - 'grid'
          - 'collection'
        category: 'dynamic'
        renderTemplate: 'BuilderiusModuleBundle:modules/Collection.twig'
    calls:
      - ['addAsset', ['@builderius_module.collection.asset.js.builderius_collection']]
    tags:
      - { name: builderius_module }

  builderius_module.collection.asset.js.builderius_collection:
    class: Builderius\Bundle\ModuleBundle\Model\ModuleScriptWithCondition
    arguments:
      - category: 'frontend'
        handle: 'builderius-collection'
        source: 'builderius:webcomponents/builderius-collection.js'
        dependencies: ['builderius-custom-elements']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
        condition_expression: 'interactiveMode == true'
        load_if_empty_context: false
    calls:
    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.sub_collection_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusContainerModule
    arguments:
      - name: 'SubCollection'
        label: 'Sub Collection'
        containerFor: ['Template']
        public: false
        tags:
          - 'repeater'
          - 'grid'
          - 'collection'
        category: 'dynamic'
        renderTemplate: 'BuilderiusModuleBundle:modules/SubCollection.twig'
    tags:
      - { name: builderius_module }

#  builderius_module.accordion_module:
#    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
#    arguments:
#      - name: 'Accordion'
#        label: 'Accordion'
#        containerFor: ['Template']
#        public: true
#        tags:
#          - 'accordion'
#        category: 'interactive'
#        renderTemplate: 'BuilderiusModuleBundle:modules/Accordion.twig'
#    calls:
#      - ['addAsset', ['@builderius_module.accordion.asset.js.builderius-accordion']]
#      - ['addAsset', ['@builderius_module.accordion.asset.css.builderius-accordion']]
#    tags:
#      - { name: builderius_module }
#
#  builderius_module.accordion.asset.js.builderius-accordion:
#    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
#    arguments:
#      - category: 'frontend'
#        handle: 'builderius-accordion'
#        source: 'builderius:webcomponents/builderius-accordion.js'
#        dependencies: ['builderius-custom-elements']
#        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
#        inFooter: true
#    calls:
#    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]
#
#  builderius_module.accordion.asset.css.builderius-accordion:
#    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
#    arguments:
#      - category: 'frontend'
#        handle: 'builderius-accordion'
#        source: 'builderius:webcomponents/builderius-accordion.css'
#        dependencies: []
#        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
#        inFooter: false

  builderius_module.cookie_notice_module:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
    arguments:
      - name: 'CookieNotice'
        label: 'Cookie Notice'
        public: false
        tags:
          - 'cookie consent'
          - 'cookie notice'
          - 'gdpr'
        category: 'interactive'
        renderTemplate: 'BuilderiusModuleBundle:modules/CookieNotice.twig'
    calls:
      - ['addAsset', ['@builderius_module.cookie_notice.asset.js.builderius-cookie_notice']]
    tags:
      - { name: builderius_module }

  builderius_module.cookie_notice.asset.js.builderius-cookie_notice:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-cookie-notice'
        source: 'builderius:webcomponents/builderius-cookie-notice.js'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.component_module:
    class: Builderius\Bundle\ModuleBundle\Model\BuilderiusModule
    arguments:
      - name: 'Component'
        label: 'Component'
        public: false
        exclude_all_css_settings: true
        exclude_settings: [ 'htmlAttribute', 'tagClass', 'tagId' ]
        tags:
          - 'component'
        category: 'components'
        renderTemplate: 'BuilderiusModuleBundle:modules/Component.twig'
    tags:
      - { name: builderius_module }

  builderius_module.menu_builder:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
    arguments:
      - name: 'MenuBuilder'
        label: 'Menu Builder'
        public: false
        sort_order: 20
        tags:
          - 'menu builder'
        category: 'dynamic'
        renderTemplate: 'BuilderiusModuleBundle:modules/MenuBuilder.twig'
    calls:
      - ['addAsset', ['@builderius_module.builderius_menu_builder.asset.js.builderius_menu_builder']]
      - ['addAsset', ['@builderius_module.builderius_menu_builder.asset.css.builderius_menu_builder']]
      - ['addInlineAsset', ['@builderius_module.builderius_menu_builder.inline_asset.css.builderius_menu_builder']]
    tags:
      - { name: builderius_module }

  builderius_module.builderius_menu_builder.asset.js.builderius_menu_builder:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-menu-builder'
        source: 'builderius:webcomponents/builderius-menu-builder.js'
        dependencies: ['builderius-custom-elements']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.builderius_menu_builder.asset.css.builderius_menu_builder:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-menu-builder'
        source: 'builderius:webcomponents/builderius-menu-builder.css'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: false

  builderius_module.builderius_menu_builder.inline_asset.css.builderius_menu_builder:
    class: Builderius\Bundle\ModuleBundle\Model\ModuleInlineAssetWithCondition
    arguments:
      - category: 'frontend'
        type: 'style'
        contentTemplate: 'BuilderiusModuleBundle:modulesInlineAssets/MenuBuilderInlineCss.twig'
        condition_expression: "!is_empty(filter(htmlAttribute, (o) -> { o.name == 'data-mobile-mq' && o.value != '' && o.value != null }))"
    calls:
      - ['addAssetDataItem', ['@builderius_module.builderius_menu_builder.inline_asset.css.builderius_menu_builder.class_attribute']]

  builderius_module.builderius_menu_builder.inline_asset.css.builderius_menu_builder.class_attribute:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\AssetDataItem
    arguments:
      - group: 'htmlAttributes'
        key: 'class'
        value: 'builderius-css builderius-menu-builder-css'

  builderius_module.menu_toggle:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
    arguments:
      - name: 'MenuToggle'
        label: 'Menu Toggle'
        containerFor: ['Template']
        public: true
        tags:
          - 'toggle'
          - 'menu'
        category: 'dynamic'
        sort_order: 20
        renderTemplate: 'BuilderiusModuleBundle:modules/MenuToggle.twig'
    calls:
      - ['addAsset', ['@builderius_module.builderius_menu_toggle.asset.js.builderius_menu_toggle']]
      - ['addAsset', ['@builderius_module.builderius_menu_toggle.asset.css.builderius_menu_toggle']]
    tags:
      - { name: builderius_module }

  builderius_module.builderius_menu_toggle.asset.js.builderius_menu_toggle:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-menu-toggle'
        source: 'builderius:webcomponents/builderius-menu-toggle.js'
        dependencies: ['builderius-custom-elements']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.builderius_menu_toggle.asset.css.builderius_menu_toggle:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-menu-toggle'
        source: 'builderius:webcomponents/builderius-menu-toggle.css'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: false

  builderius_module.smartform_module:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusContainerModule
    arguments:
      - name: 'SmartForm'
        label: 'Smart Form'
        containerFor: []
        public: true
        tags:
          - 'smart form'
        category: 'form'
        renderTemplate: 'BuilderiusModuleBundle:modules/SmartForm.twig'
    calls:
      - ['addAsset', ['@builderius_module.smartform.asset.js.builderius-smart-form']]
    tags:
      - { name: builderius_module }

  builderius_module.smartform.asset.js.builderius-smart-form:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-smart-form'
        source: 'builderius:webcomponents/builderius-smart-form.js'
        dependencies: ['builderius-custom-elements']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.notification_module:
    class: Builderius\Bundle\ModuleBundle\Model\AssetAwareBuilderiusModule
    arguments:
      - name: 'Notification'
        label: 'Notification'
        tags:
          - 'notify'
          - 'alert box'
          - 'info box'
        category: 'form'
        sort_order: 110
        renderTemplate: 'BuilderiusModuleBundle:modules/Notification.twig'
    calls:
      - ['addAsset', ['@builderius_module.notification.asset.js.builderius-notification']]
      - ['addAsset', ['@builderius_module.notification.asset.css.builderius-notification']]
    tags:
      - { name: builderius_module }

  builderius_module.notification.asset.js.builderius-notification:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-notification'
        source: 'builderius:webcomponents/builderius-notification.js'
        dependencies: ['builderius-custom-elements']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
    #- ['addAssetDataItem', ['@builderius_builder.asset.data_item.defer']]

  builderius_module.notification.asset.css.builderius-notification:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-notification'
        source: 'builderius:webcomponents/builderius-notification.css'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: false
