parameters:
  builderius_builder.experimental.allowed_values: []

services:
  builderius_builder.registry.builder_form_tabs:
    class: Builderius\Bundle\BuilderBundle\Registry\BuilderiusBuilderFormTabsRegistry
    lazy: true

  builderius_builder.registration.builderius_form_tabs_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderFormTabsScriptLocalization
    arguments:
      - '@builderius_builder.registry.builder_form_tabs'
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_ajax_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderAjaxScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder }
      - { name: wp_script_localization, handle: builderius-admin-releases-index }
      - { name: wp_script_localization, handle: builderiuspro-admin-settings-index }

  builderius_builder.registration.builderius_admin_links_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusAdminLinksScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder, priority: 0 }

  builderius_builder.registration.builderius_components_list_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusComponentsListScriptLocalization
    arguments:
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    tags:
      - { name: wp_script_localization, handle: builderius-builder, priority: 0 }

  builderius_builder.registration.builderius_static_pages_url_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusStaticPagesUrlScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-admin-home-index, priority: 0 }

  builderius_builder.registration.builderius_templates_list_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusTemplatesListScriptLocalization
    arguments:
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    tags:
      - { name: wp_script_localization, handle: builderius-builder, priority: 0 }

  builderius_builder.registration.builderius_components_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusInnerFrameComponentsScriptLocalization
    arguments:
      - '@builderius.cache.runtime'
      - '@builderius_template.generator.data_var_value.composite'
      - '@swoop_query.wp_query'
      - '@builderius_setting.factory.builderius_global_settings_set_from_post'
      - '@builderius_vcs.factory.builderius_commit_from_post'
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    calls:
      - [addCondition, ['@is_builderius_builder_inner_preview_mode']]
    tags:
      - { name: wp_script_localization, handle: builderius-builder-inner, priority: 0 }

  builderius_builder.registration.builderius_shortcodes_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusInnerFrameShortcodesScriptLocalization
    arguments:
      - '@builderius.cache.runtime'
      - '@builderius_template.generator.data_var_value.composite'
      - '@swoop_query.wp_query'
      - '@builderius_setting.factory.builderius_global_settings_set_from_post'
      - '@builderius_el.expression_language'
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
      - '@builderius_vcs.factory.builderius_commit_from_post'
      - '@builderius.cache.persistent'
    calls:
      - [addCondition, ['@is_builderius_builder_inner_preview_mode']]
    tags:
      - { name: wp_script_localization, handle: builderius-builder-inner, priority: 0 }

  builderius_builder.registration.builderius_entity_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusInnerFrameEntityScriptLocalization
    arguments:
      - '@builderius.cache.runtime'
      - '@builderius_template.generator.data_var_value.composite'
      - '@swoop_query.wp_query'
      - '@builderius_setting.factory.builderius_global_settings_set_from_post'
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    calls:
      - [addCondition, ['@is_builderius_builder_inner_preview_mode']]
    tags:
      - { name: wp_script_localization, handle: builderius-builder-inner, priority: 0 }

  builderius_builder.condition.is_builderius_builder_inner_preview_mode_with_wrapper:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_builder_inner_preview_mode_with_wrapper
        arguments:
          requestType: 'GET'
          parameter: 'wrapper_id'
    tags:
      - { name: wp_condition }

  builderius_builder.registration.builderius_wrapper_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusInnerFrameWrapperScriptLocalization
    arguments:
      - '@builderius.cache.runtime'
      - '@builderius_template.generator.data_var_value.composite'
      - '@swoop_query.wp_query'
      - '@builderius_setting.factory.builderius_global_settings_set_from_post'
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    calls:
      - [addCondition, ['@is_builderius_builder_inner_preview_mode']]
      - [addCondition, ['@is_builderius_builder_inner_preview_mode_with_wrapper']]
    tags:
      - { name: wp_script_localization, handle: builderius-builder-inner, priority: 0 }

  builderius_builder.registration.builderius_outer_frame_entity_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusOuterFrameEntityScriptLocalization
    arguments:
      - '@builderius_template.provider.template'
      - '@builderius_graphql.executor.builderius_entities_graphql_queries'
    calls:
      - [addCondition, ['@has_applied_builderius_template']]
    tags:
      - { name: wp_script_localization, handle: builderius-builder, priority: 0 }

  builderius_builder.registration.builderius_user_os_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderUserOsScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_user_browser_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderUserBrowserScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_user_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderUserScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_experimental_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderExperimentalScriptLocalization
    arguments:
      - '%builderius_builder.experimental.allowed_values%'
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_admin_bar_preview_mode_change_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusAdminBarPreviewModeChangeScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-admin-bar-admin }
      - { name: wp_script_localization, handle: builderius-admin-bar-frontend }

  builderius_builder.registration.builderius_allowed_mime_types_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderAllowedMimeTypesScriptLocalization
    arguments:
      - '@swoop_media.registry.mime_types'
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_max_upload_size_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderMaxUploadSizeScriptLocalization
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_versions_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusBuilderVersionsScriptLocalization
    arguments:
      - '@swoop_kernel.provider.plugins_versions'
    tags:
      - { name: wp_script_localization, handle: builderius-builder }

  builderius_builder.registration.builderius_edit_url_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusEditUrlScriptLocalization
    arguments:
      - '@swoop_builder.builder_mode.url_generator'
    tags:
      - { name: wp_script_localization, handle: builderius-gutenberg }

  builderius_builder.registration.builderius_frontend_script_url_asset_localization:
    class: Builderius\Bundle\BuilderBundle\Registration\BuilderiusFrontendScriptUrlScriptLocalization
    arguments:
      - '@swoop_asset.path_provider.plugin'
      - "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    tags:
      - { name: wp_script_localization, handle: builderius-custom-elements }

  builderius_builder.condition.user_has_development_capability:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\SimpleCondition
    arguments:
      - name: user_has_development_capability
        description: 'Condition to check whether the current user has Builderius development capability'
        function: current_user_can
        arguments: ['builderius-development']
    tags:
      - {name: wp_condition}

  builderius_builder.condition.is_admin_bar_showing:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\SimpleCondition
    arguments:
      - name: is_admin_bar_showing
        description: 'Condition to check whether the admin bar should be showing'
        function: is_admin_bar_showing
    tags:
      - {name: wp_condition}

  builderius_builder.asset.data_item.defer:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\AssetDataItem
    arguments:
      - group: 'htmlAttributes'
        key: 'defer'

  builderius_builder.asset.data_item.async:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\AssetDataItem
    arguments:
      - group: 'htmlAttributes'
        key: 'async'

  builderius_builder.asset.js.react_libs:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-react-libs'
        source: 'builderius:react-libs.js'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
        registerOnly: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.react_libs_admin:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'admin'
        handle: 'builderius-react-libs'
        source: 'builderius:react-libs.js'
        dependencies: []
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
        registerOnly: true
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.builder:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-builder'
        source: 'builderius:builder.js'
        dependencies: [ 'builderius-react-libs', 'wp-api-request', 'wp-auth-check' ]
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.builder_inner:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-builder-inner'
        source: 'builderius:builder-inner.js'
        dependencies: [ 'wp-i18n' ]
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_inner_preview_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.hook.builder_script_translations_file_path_change:
    class: Builderius\Bundle\BuilderBundle\Hook\BuilderScriptTranslationsFilePathChangeHook
    arguments:
      - tag: 'load_script_translation_file'
        accepted_args: 3
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builder_sctipt_translations_load:
    class: Builderius\Bundle\BuilderBundle\Hook\BuilderScriptTranslationsLoadHook
    arguments:
      - tag: 'wp_enqueue_scripts'
        priority: 20
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.determine_user_locale:
    class: Builderius\Bundle\BuilderBundle\Hook\DetermineUserLocaleHook
    arguments:
      - tag: 'determine_locale'
        priority: !php/const PHP_INT_MAX
        init_hook: null
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode_light' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.asset.js.custom_elements.builder_inner_preview:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - registerOnly: true
        category: 'frontend'
        handle: 'builderius-custom-elements'
        source: 'builderius:webcomponents/custom-elements.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_inner_preview_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.custom_elements.preview.interactive:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-custom-elements'
        source: 'builderius:webcomponents/custom-elements.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode']]
      - [ 'addCondition', [ '@is_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_builderius_entities' ] ]
      - [ 'addCondition', [ '@has_interactivity' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.custom_elements.preview.register_only:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - registerOnly: true
        category: 'frontend'
        handle: 'builderius-custom-elements'
        source: 'builderius:webcomponents/custom-elements.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode']]
      - [ 'addCondition', [ '@is_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_builderius_entities' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.custom_elements.frontend.interactive:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-custom-elements'
        source: 'builderius:webcomponents/custom-elements.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_not_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_builderius_deliverable' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_deliverable_builderius_entities' ] ]
      - [ 'addCondition', [ '@has_interactivity' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.custom_elements.frontend.register_only:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - registerOnly: true
        category: 'frontend'
        handle: 'builderius-custom-elements'
        source: 'builderius:webcomponents/custom-elements.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_not_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_builderius_deliverable' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_deliverable_builderius_entities' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.admin_bar_frontend:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-admin-bar-frontend'
        source: 'builderius:admin-bar.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_admin_bar_showing'] ]
      - [ 'addCondition', [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.js.admin_bar_admin:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-bar-admin'
        source: 'builderius:admin-bar.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_admin_bar_showing'] ]
      - [ 'addCondition', [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.datepicker.asset.js.builderius-flatpickr:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'frontend'
        handle: 'builderius-flatpickr'
        source: 'builderius:webcomponents/builderius-flatpickr.js'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      #- [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.builder:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-builder'
        source: 'builderius:builder.css'
        dependencies: [ 'wp-auth-check' ]
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.builder_inner:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-builder-inner'
        source: 'builderius:builder-inner.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_inner_preview_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.frontend.builder_inner_preview:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-frontend'
        source: 'builderius:frontend.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addAssetDataItem', [ '@builderius_builder.asset.data_item.defer' ] ]
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_builderius_builder_inner_preview_mode' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.frontend:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-frontend'
        source: 'builderius:frontend.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_not_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_builderius_deliverable' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_deliverable_builderius_entities' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.preview:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-frontend'
        source: 'builderius:frontend.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_frontend']]
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_builderius_preview_in_dev_mode' ] ]
      - [ 'addCondition', [ '@has_applied_any_of_builderius_entities' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.admin_bar_frontend:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'frontend'
        handle: 'builderius-admin-bar'
        source: 'builderius:admin-bar.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_admin_bar_showing'] ]
      - [ 'addCondition', [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.admin_bar_admin:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-bar'
        source: 'builderius:admin-bar.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [ 'addCondition', [ '@is_not_builderius_builder_mode' ] ]
      - [ 'addCondition', [ '@is_not_builderius_builder_inner_preview_mode'] ]
      - [ 'addCondition', [ '@is_admin_bar_showing'] ]
      - [ 'addCondition', [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_asset }

  builderius_builder.condition.is_builder_mode:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_builder_mode
        description: 'Condition to check whether the current request is for Builderius builder mode'
        arguments:
          requestType: 'GET'
          parameter: 'builderius'
    calls:
      - [ addDependOnCondition, [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_builder_inner_preview_mode:
    class: Builderius\Bundle\BuilderBundle\Condition\IsBuilderInnerPreviewModeCondition
    arguments:
      - name: is_builderius_builder_inner_preview_mode
        description: 'Condition to check whether the current request is for Builderius builder inner preview mode'
    calls:
      - [ setTemplateFromPostIdFactory, [ '@builderius_template.factory.builderius_template_from_post_id']]
      - [ setComponentFromPostIdFactory, [ '@builderius_component.factory.builderius_component_from_post_id']]
      - [ setCache, ['@builderius.cache.runtime']]
      - [ addDependOnCondition, [ '@user_is_builderius_developer' ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_not_builder_mode:
    class: Builderius\Bundle\BuilderBundle\Condition\IsNotBuilderModeCondition
    calls:
      - [ setName, [ is_not_builderius_builder_mode ] ]
      - [ setDescription, [ 'Condition to check whether the current request is not for Builderius builder mode' ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_not_builder_inner_preview_mode:
    class: Builderius\Bundle\BuilderBundle\Condition\IsNotBuilderInnerPreviewModeCondition
    calls:
      - [ setName, [ is_not_builderius_builder_inner_preview_mode ] ]
      - [ setDescription, [ 'Condition to check whether the current request is not for Builderius builder inner preview mode' ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_builder_mode_lite:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_builder_mode_light
        description: 'Condition to check whether the current request is for Builderius builder mode'
        arguments:
          requestType: 'GET'
          parameter: 'builderius'
    tags:
      - { name: wp_condition }

  builderius_builder.condition.user_is_builderius_developer:
    class: Builderius\Bundle\BuilderBundle\Condition\UserIsBuilderiusDeveloper
    calls:
      - [ setCache, ['@builderius.cache.runtime'] ]
      - [ setName, [ user_is_builderius_developer ] ]
      - [ setDescription, [ 'Condition to check whether the current user is builderius developer' ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_preview_in_dev_mode:
    class: Builderius\Bundle\BuilderBundle\Condition\BuilderiusPreviewInDevMode
    arguments:
      - name: is_builderius_preview_in_dev_mode
        description: 'Condition to check whether the current request is for Builderius preview in dev mode'
    calls:
      - [ setCache, ['@builderius.cache.runtime'] ]
    tags:
      - { name: wp_condition }

  builderius_builder.condition.is_not_preview_in_dev_mode:
    parent: builderius_builder.condition.is_preview_in_dev_mode
    calls:
      - [ setCache, ['@builderius.cache.runtime'] ]
      - [ setName, [ is_not_builderius_preview_in_dev_mode ] ]
      - [ setDescription, [ 'Condition to check whether the current request is not for Builderius preview in devmode' ] ]
      - [ setValidResult, [ false ] ]
    tags:
      - { name: wp_condition }

  builderius_builder.hook.admin_home_index_sctipt_translations_load:
    class: Builderius\Bundle\BuilderBundle\Hook\AdminHomeIndexScriptTranslationsLoadHook
    arguments:
      - tag: 'admin_enqueue_scripts'
        priority: 20
    calls:
      - [addCondition, ['@is_builderius_home_admin_page']]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.admin_home_index_sctipt_translations_file_path_change:
    class: Builderius\Bundle\BuilderBundle\Hook\AdminHomeIndexScriptTranslationsFilePathChangeHook
    arguments:
      - tag: 'load_script_translation_file'
        accepted_args: 3
    calls:
      - [addCondition, ['@is_builderius_home_admin_page']]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.add_allowed_mime_types_for_builderius_developer_hook:
    class: Builderius\Bundle\BuilderBundle\Hook\AddAllowedMimeTypesForBuilderiusDeveloperHook
    arguments:
      - tag: 'upload_mimes'
    tags:
      - { name: wp_hook }

  builderius_builder.hook.allow_unfiltered_uploads_for_builderius_developer_hook:
    class: Builderius\Bundle\BuilderBundle\Hook\AllowUnfilteredUploadsForBuilderiusDeveloperHook
    arguments:
      - tag: 'map_meta_cap'
        accepted_args: 3
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builderius_development_capability_adding:
    class: Builderius\Bundle\BuilderBundle\Hook\BuilderiusDevelopmentCapabilityAddingHook
    arguments:
      - tag: 'init'
        init_hook: 'plugins_loaded'
    tags:
      - { name: wp_hook }

  builderius_builder.hook.change_home_page_submenu:
    class: Builderius\Bundle\BuilderBundle\Hook\ChangeHomePageSubmenuHook
    arguments:
      - tag: 'admin_menu'
    tags:
      - { name: wp_hook }

  builderius_builder.hook.enable_wp_menu_support:
    class: Builderius\Bundle\BuilderBundle\Hook\EnableWpMenuSupportHook
    arguments:
      - tag: 'after_setup_theme'
        init_hook: 'plugins_loaded'
    tags:
      - { name: wp_hook }

  builderius_builder.hook.create_main_navigation_menu:
    class: Builderius\Bundle\BuilderBundle\Hook\CreateMainNavigationMenuHook
    arguments:
      - tag: 'activate_builderius/builderius.php'
        init_hook: null
    tags:
      - { name: wp_hook }

  builderius_builder.hook.hide_admin_bar_in_builder_mode:
    class: Builderius\Bundle\BuilderBundle\Hook\HideAdminBarHook
    arguments:
      - tag: 'show_admin_bar'
    calls:
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.hide_admin_bar_in_builder_inner_preview_mode:
    class: Builderius\Bundle\BuilderBundle\Hook\HideAdminBarHook
    arguments:
      - tag: 'show_admin_bar'
    calls:
      - [ 'addCondition', [ '@is_builderius_builder_inner_preview_mode' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.load_plugin_text_domain:
    class: Builderius\Bundle\BuilderBundle\Hook\LoadPluginTextDomainHook
    arguments:
      - tag: 'plugins_loaded'
        init_hook: null
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builderius_preview_mode_changing_init:
    class: Builderius\Bundle\BuilderBundle\Hook\PreviewModeChangingInitHook
    arguments:
      - tag: 'init'
        init_hook: null
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builderius_home_redirect_transient_on_plugin_activation:
    class: Builderius\Bundle\BuilderBundle\Hook\SetRedirectTransientOnPluginActivationHook
    arguments:
      - tag: 'activate_builderius/builderius.php'
        init_hook: null
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builderius_home_redirect_on_plugin_activation:
    class: Builderius\Bundle\BuilderBundle\Hook\RedirectToBuilderiusHomeOnPluginActivationHook
    arguments:
      - tag: 'admin_init'
        init_hook: null
    tags:
      - { name: wp_hook }

  builderius_builder.hook.builderius_redirect_handler:
    class: Builderius\Bundle\BuilderBundle\Hook\BuilderiusRedirectHandlerHook
    arguments:
      - tag: 'wp_redirect'
        init_hook: null
    calls:
      - [ setCache, ['@builderius.cache.runtime'] ]
    #tags:
    #  - { name: wp_hook }

  builderius_builder.hook.show_changelog_admin_notice:
    class: Builderius\Bundle\BuilderBundle\Hook\ShowChangelogAdminNoticeHook
    arguments:
      - tag: 'admin_notices'
    calls:
      - [ addCondition, [ '@user_has_development_capability' ] ]
      - [ setPluginsVersionsProvider, ['@swoop_kernel.provider.plugins_versions'] ]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.dismiss_changelog_admin_notice:
    class: Builderius\Bundle\BuilderBundle\Hook\DismissChangelogAdminNoticeHook
    arguments:
      - tag: 'admin_init'
    calls:
      - [ setPluginsVersionsProvider, ['@swoop_kernel.provider.plugins_versions']]
    tags:
      - { name: wp_hook }

  builderius_builder.hook.wp_auth_check_html:
    class: Builderius\Bundle\BuilderBundle\Hook\WpAuthCheckHtmlHook
    arguments:
      - tag: 'wp_print_footer_scripts'
    calls:
      - [ 'addCondition', [ '@is_builderius_builder_mode' ] ]
    tags:
      - { name: wp_hook }

  builderius_builder.form.module:
    class: Builderius\Bundle\BuilderBundle\Model\BuilderiusBuilderForm
    arguments:
      - name: 'module'
        label: 'Module'
    tags:
      - { name: builderius_builder_form }

  builderius_builder.form.template:
    class: Builderius\Bundle\BuilderBundle\Model\BuilderiusBuilderForm
    arguments:
      - name: 'template'
        label: 'Template'
    tags:
      - { name: builderius_builder_form }

  builderius_builder.form.global:
    class: Builderius\Bundle\BuilderBundle\Model\BuilderiusBuilderForm
    arguments:
      - name: 'global'
        label: 'Global'
    tags:
      - { name: builderius_builder_form }

  builderius_builder.form_tab.primary:
    class: Builderius\Bundle\BuilderBundle\Model\BuilderiusBuilderFormTab
    arguments:
      - name: 'content'
        label: 'Content'
        sortOrder: 10
    tags:
      - { name: builderius_builder_form_tab }

  builderius_builder.form_tab.advanced:
    class: Builderius\Bundle\BuilderBundle\Model\BuilderiusBuilderFormTab
    arguments:
      - name: 'styles'
        label: 'Styles'
        sortOrder: 20
    tags:
      - { name: builderius_builder_form_tab }

  builderius_builder.condition.is_builderius_home_admin_page:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_home_admin_page
        description: 'Condition to check whether the current admin page is Builderius Home page'
        arguments:
          requestType: 'GET'
          parameter: 'page'
          value: 'builderius'
    calls:
      - ['addDependOnCondition', ['@is_backend']]
    tags:
      - { name: wp_condition }

  builderius_builder.asset.js.admin_home_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-home-index'
        source: 'builderius:admin-home-index.js'
        dependencies: ['builderius-react-libs', 'wp-api-request']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [addCondition, ['@is_builderius_home_admin_page']]
    tags:
      - { name: wp_asset }

  builderius_builder.asset.css.admin_home_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-home-index'
        source: 'builderius:admin-home-index.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [addCondition, ['@is_builderius_home_admin_page']]
    tags:
      - { name: wp_asset }
#
#  builderius_builder.hook.script_translations.admin_home_index:
#    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
#    arguments:
#      - category: 'admin'
#        handle: 'builderius-admin-home-index'
#        source: 'builderius:admin-home-index.js'
#        dependencies: []
#        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
#        inFooter: true
#    calls:
#      - [addCondition, ['@is_builderius_home_admin_page']]
#    tags:
#      - { name: wp_asset }

  builderius_builder.asset.css.admin:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'admin'
        handle: 'builderius-admin'
        source: 'builderius:admin.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [addCondition, ['@is_backend']]
      - [addCondition, ['@is_not_customize_preview']]
    tags:
      - { name: wp_asset }

  builderius_builder.rest_api.endpoint.preview_mode_change:
    class: Builderius\Bundle\BuilderBundle\RestApi\Endpoint\PreviewModeChangeEndpoint
    public: true
    tags:
      - { name: wp_rest_endpoint }

  builderius_builder.condition.has_applied_any_of_builderius_entities:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\OrCondition
    arguments:
      - name: has_applied_any_of_builderius_entities
        description: 'Condition to check whether any of Builderius entities applied'
        lazy: true
    calls:
      - [addCondition, ['@has_applied_builderius_template']]
      - [addCondition, ['@has_applied_builderius_hook_templates']]
    tags:
      - {name: wp_condition}

  builderius_builder.condition.has_applied_any_of_deliverable_builderius_entities:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\OrCondition
    arguments:
      - name: has_applied_any_of_deliverable_builderius_entities
        description: 'Condition to check whether any of deliverable Builderius entities applied'
        lazy: true
    calls:
      - [addCondition, ['@has_applied_builderius_deliverable_template']]
      - [addCondition, ['@has_applied_builderius_deliverable_hook_templates']]
    tags:
      - {name: wp_condition}

  builderius_update.asset.js.admin_settings_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Script
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-settings-index'
        source: 'builderius:admin-settings-index.js'
        dependencies: ['builderius-react-libs', 'wp-api-request']
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
        inFooter: true
    calls:
      - [addCondition, ['@is_builderius_settings_admin_page']]
    tags:
      - { name: wp_asset }

  builderius_update.asset.css.admin_settings_index:
    class: Builderius\Swoop\Bundle\AssetBundle\Model\Style
    arguments:
      - category: 'admin'
        handle: 'builderius-admin-settings-index'
        source: 'builderius:admin-settings-index.css'
        version: "@=service('swoop_kernel.provider.plugins_versions').getPluginVersion('builderius')"
    calls:
      - [addCondition, ['@is_builderius_settings_admin_page']]
    tags:
      - { name: wp_asset }

  builderius_update.condition.is_builderius_settings_admin_page:
    class: Builderius\Swoop\Bundle\ConditionBundle\Model\IsRequestHasParameterCondition
    arguments:
      - name: is_builderius_settings_admin_page
        description: 'Condition to check whether the current admin page is Builderius Settings page'
        arguments:
          requestType: 'GET'
          parameter: 'page'
          value: 'builderius-settings'
    calls:
      - ['addDependOnCondition', ['@is_backend']]
    tags:
      - { name: wp_condition }

