diff --git a/composer.json b/composer.json
index 4d334066f..7a99e6a79 100644
--- a/composer.json
+++ b/composer.json
@@ -9,11 +9,21 @@
"description": "CMS plugin for Sylius applications.",
"license": "MIT",
"require": {
- "php": "^8.1",
- "sylius/sylius": "^1.12.0 || ^1.13.0",
+ "php": "^8.2",
+ "sylius/grid-bundle": "^1.13@alpha",
+ "sylius/sylius": "~v2.0.0-alpha.2",
+ "sylius/twig-hooks": "^0.3.0",
+ "symfony/ux-autocomplete": "^2.20",
+ "symfony/ux-live-component": "^2.20",
+ "symfony/ux-twig-component": "^2.20",
+ "symfony/webpack-encore-bundle": "^2.1",
+ "symfony/stimulus-bundle": "^2.20",
"league/csv": "^9.1",
"friendsofsymfony/ckeditor-bundle": "^2.0",
- "symfony/webpack-encore-bundle": "^1.12"
+ "sylius/calendar": "^0.5.0",
+ "willdurand/hateoas-bundle": "^2.5",
+ "api-platform/core": "^3.4",
+ "sylius-labs/polyfill-symfony-security": "^1.1"
},
"require-dev": {
"behat/behat": "^3.7",
diff --git a/src/Menu/ContentManagementMenuBuilder.php b/src/Menu/ContentManagementMenuBuilder.php
index 7f49fa18c..5982867b3 100755
--- a/src/Menu/ContentManagementMenuBuilder.php
+++ b/src/Menu/ContentManagementMenuBuilder.php
@@ -19,6 +19,7 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
$cmsRootMenuItem = $menu
->addChild('sylius_cms')
->setLabel('sylius_cms.ui.cms')
+ ->setLabelAttribute('icon', 'wand')
;
$cmsRootMenuItem
@@ -26,7 +27,6 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
'route' => 'sylius_cms_admin_collection_index',
])
->setLabel('sylius_cms.ui.collections')
- ->setLabelAttribute('icon', 'grid layout')
;
$cmsRootMenuItem
@@ -34,7 +34,6 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
'route' => 'sylius_cms_admin_template_index',
])
->setLabel('sylius_cms.ui.content_templates')
- ->setLabelAttribute('icon', 'clone')
;
$cmsRootMenuItem
@@ -42,7 +41,6 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
'route' => 'sylius_cms_admin_page_index',
])
->setLabel('sylius_cms.ui.pages')
- ->setLabelAttribute('icon', 'sticky note')
;
$cmsRootMenuItem
@@ -50,7 +48,6 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
'route' => 'sylius_cms_admin_block_index',
])
->setLabel('sylius_cms.ui.blocks')
- ->setLabelAttribute('icon', 'block layout')
;
$cmsRootMenuItem
@@ -58,7 +55,6 @@ public function buildMenu(MenuBuilderEvent $menuBuilderEvent): void
'route' => 'sylius_cms_admin_media_index',
])
->setLabel('sylius_cms.ui.media')
- ->setLabelAttribute('icon', 'file')
;
$this->menuReorder->reorder($menu, 'sylius_cms', 'marketing');
diff --git a/src/Resources/config/config.yml b/src/Resources/config/config.yml
index b8875f1af..2bb4fc8bb 100755
--- a/src/Resources/config/config.yml
+++ b/src/Resources/config/config.yml
@@ -1,4 +1,5 @@
imports:
+ - { resource: "@SyliusCmsPlugin/Resources/config/twig_hooks/**/*.yaml" }
- { resource: "@SyliusCmsPlugin/Resources/config/fos_ck_editor/fos_ck_editor.yml" }
- { resource: "@SyliusCmsPlugin/Resources/config/grids.yml" }
- { resource: "@SyliusCmsPlugin/Resources/config/services.xml" }
@@ -47,5 +48,5 @@ sylius_ui:
sylius.admin.layout.javascripts:
blocks:
version_script:
- template: "@SyliusCmsPlugin/Asset/_cmsVersionScript.html.twig"
+ template: "@SyliusCmsPlugin/Assets/_cmsVersionScript.html.twig"
priority: 30
diff --git a/src/Resources/config/routing/admin/block.yml b/src/Resources/config/routing/admin/block.yml
index d5b27c175..1adaafeaa 100755
--- a/src/Resources/config/routing/admin/block.yml
+++ b/src/Resources/config/routing/admin/block.yml
@@ -2,22 +2,13 @@ sylius_cms_admin_block:
resource: |
alias: sylius_cms.block
section: admin
- templates: '@SyliusCmsPlugin/CrudUi'
+ templates: '@SyliusAdmin\\shared\\crud'
except: ['show']
redirect: update
grid: sylius_cms_admin_block
permission: true
- vars:
- all:
- header: sylius_cms.ui.blocks_header
- subheader: sylius_cms.ui.blocks_subheader
- templates:
- form: "@SyliusCmsPlugin/Block/Crud/_form.html.twig"
- index:
- icon: block layout
- route:
- parameters:
- code: $type
+ form:
+ type: Sylius\CmsPlugin\Form\Type\BlockType
type: sylius.resource
sylius_cms_admin_block_preview:
diff --git a/src/Resources/config/routing/admin/collection.yml b/src/Resources/config/routing/admin/collection.yml
index cca2c9984..7d68d1d12 100755
--- a/src/Resources/config/routing/admin/collection.yml
+++ b/src/Resources/config/routing/admin/collection.yml
@@ -2,19 +2,13 @@ sylius_cms_admin_collection:
resource: |
alias: sylius_cms.collection
section: admin
- templates: '@SyliusCmsPlugin/CrudUi'
+ templates: '@SyliusAdmin\\shared\\crud'
redirect: update
grid: sylius_cms_admin_collection
except: ['show']
permission: true
- vars:
- all:
- header: sylius_cms.ui.collections_header
- subheader: sylius_cms.ui.collections_subheader
- templates:
- form: "@SyliusCmsPlugin/Collection/Crud/_form.html.twig"
- index:
- icon: grid layout
+ form:
+ type: Sylius\CmsPlugin\Form\Type\CollectionType
type: sylius.resource
sylius_cms_admin_ajax_collection_by_name_phrase:
diff --git a/src/Resources/config/routing/admin/media.yml b/src/Resources/config/routing/admin/media.yml
index 2a799aec3..ab71d859c 100644
--- a/src/Resources/config/routing/admin/media.yml
+++ b/src/Resources/config/routing/admin/media.yml
@@ -2,19 +2,13 @@ sylius_cms_admin_media:
resource: |
alias: sylius_cms.media
section: admin
- templates: '@SyliusCmsPlugin/CrudUi'
+ templates: '@SyliusAdmin\\shared\\crud'
redirect: update
grid: sylius_cms_admin_media
except: ['show']
permission: true
- vars:
- all:
- header: sylius_cms.ui.media_header
- subheader: sylius_cms.ui.media_subheader
- templates:
- form: "@SyliusCmsPlugin/Media/Crud/_form.html.twig"
- index:
- icon: file
+ form:
+ type: Sylius\CmsPlugin\Form\Type\MediaType
type: sylius.resource
sylius_cms_admin_ajax_media_by_name_phrase:
diff --git a/src/Resources/config/routing/admin/page.yml b/src/Resources/config/routing/admin/page.yml
index 8f9200f98..f1238137e 100755
--- a/src/Resources/config/routing/admin/page.yml
+++ b/src/Resources/config/routing/admin/page.yml
@@ -2,19 +2,13 @@ sylius_cms_admin_page:
resource: |
alias: sylius_cms.page
section: admin
- templates: '@SyliusCmsPlugin/CrudUi'
+ templates: '@SyliusAdmin\\shared\\crud'
redirect: update
grid: sylius_cms_admin_page
except: ['show']
permission: true
- vars:
- all:
- header: sylius_cms.ui.pages_header
- subheader: sylius_cms.ui.pages_subheader
- templates:
- form: "@SyliusCmsPlugin/Page/Crud/_form.html.twig"
- index:
- icon: sticky note
+ form:
+ type: Sylius\CmsPlugin\Form\Type\PageType
type: sylius.resource
sylius_cms_admin_page_preview:
diff --git a/src/Resources/config/routing/admin/template.yml b/src/Resources/config/routing/admin/template.yml
index 9ce48ee6b..c1e8e0063 100755
--- a/src/Resources/config/routing/admin/template.yml
+++ b/src/Resources/config/routing/admin/template.yml
@@ -2,17 +2,13 @@ sylius_cms_admin_template:
resource: |
alias: sylius_cms.template
section: admin
- templates: '@SyliusCmsPlugin/CrudUi'
+ templates: '@SyliusAdmin\\shared\\crud'
except: ['show']
redirect: update
grid: sylius_cms_admin_template
permission: true
- vars:
- all:
- templates:
- form: "@SyliusCmsPlugin/ContentTemplate/Crud/_form.html.twig"
- index:
- icon: block layout
+ form:
+ type: Sylius\CmsPlugin\Form\Type\TemplateType
type: sylius.resource
sylius_cms_admin_ajax_template_page_by_name_phrase:
diff --git a/src/Resources/config/twig_hooks/base.yaml b/src/Resources/config/twig_hooks/base.yaml
new file mode 100644
index 000000000..bee2f1b13
--- /dev/null
+++ b/src/Resources/config/twig_hooks/base.yaml
@@ -0,0 +1,8 @@
+twig_hooks:
+ hooks:
+ 'sylius_admin.base#stylesheets':
+ styles:
+ template: '@SyliusCmsPlugin/Assets/css.html.twig'
+ 'sylius_admin.base#javascripts':
+ scripts:
+ template: '@SyliusCmsPlugin/Assets/js.html.twig'
diff --git a/src/Resources/views/Asset/_cmsVersionScript.html.twig b/src/Resources/views/Assets/_cmsVersionScript.html.twig
similarity index 100%
rename from src/Resources/views/Asset/_cmsVersionScript.html.twig
rename to src/Resources/views/Assets/_cmsVersionScript.html.twig
diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_scripts.html.twig b/src/Resources/views/Assets/js.html.twig
similarity index 74%
rename from tests/Application/templates/bundles/SyliusAdminBundle/Layout/_scripts.html.twig
rename to src/Resources/views/Assets/js.html.twig
index baa043035..f017bf384 100644
--- a/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_scripts.html.twig
+++ b/src/Resources/views/Assets/js.html.twig
@@ -1,5 +1,4 @@
-{{ encore_entry_script_tags('admin-entry', null, 'admin') }}
{{ encore_entry_script_tags('sylius-cms-admin', null, 'cms_admin') }}
diff --git a/src/Resources/views/Page/Crud/_form.html.twig b/src/Resources/views/Page/Crud/_form.html.twig
deleted file mode 100755
index dab46ea2f..000000000
--- a/src/Resources/views/Page/Crud/_form.html.twig
+++ /dev/null
@@ -1,58 +0,0 @@
-{% from '@SyliusCmsPlugin/Macro/translationForm.html.twig' import translationFormWithSlug, translationForm %}
-{% form_theme form '@SyliusCmsPlugin/Form/theme.html.twig' %}
-
-{% include '@SyliusCmsPlugin/Modal/_resourcePreview.html.twig' %}
-{% include '@SyliusCmsPlugin/Modal/_loadTemplateConfirmation.html.twig' %}
-
-{{ form_errors(form) }}
-
-
-
-
- {{ form_row(form.name) }}
- {{ form_row(form.code) }}
- {{ form_row(form.enabled) }}
- {{ form_row(form.channels) }}
- {{ form_row(form.collections) }}
- {{ form_row(form.publishAt) }}
-
-
- {{ 'sylius_cms.ui.preview'|trans }}
-
-
-
-
- {{ translationForm(
- translation_form_reduce(form.translations, ['teaserTitle', 'teaserContent', 'teaserImage']),
- page
- ) }}
-
-
-
- {{ translationFormWithSlug(
- translation_form_reduce(form.translations, ['title', 'slug', 'metaKeywords', 'metaDescription']),
- '@SyliusCmsPlugin/Page/Crud/_slugField.html.twig',
- page
- ) }}
-
-
-
-
-
-
- {% include '@SyliusCmsPlugin/Locale/form.html.twig' %}
- {% include '@SyliusCmsPlugin/Template/form.html.twig' %}
-
- {% include '@SyliusCmsPlugin/ContentTemplate/form.html.twig' with {ajax_url: path('sylius_cms_admin_ajax_template_content_by_id', {'id': 'REPLACE_ID'}) } %}
-
-
- {{ form_row(form.contentElements) }}
-
-
-
-
-
-
diff --git a/src/Resources/views/layout.html.twig b/src/Resources/views/layout.html.twig
deleted file mode 100644
index a1356ff3d..000000000
--- a/src/Resources/views/layout.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{% extends '@SyliusAdmin/layout.html.twig' %}
diff --git a/tests/Application/Kernel.php b/tests/Application/Kernel.php
index bb9ad9829..ac154b4d9 100755
--- a/tests/Application/Kernel.php
+++ b/tests/Application/Kernel.php
@@ -5,7 +5,7 @@
namespace Tests\Sylius\CmsPlugin\Application;
use PSS\SymfonyMockerContainer\DependencyInjection\MockerContainer;
-use Sylius\Bundle\CoreBundle\Application\Kernel as SyliusKernel;
+use Sylius\Bundle\CoreBundle\SyliusCoreBundle;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\DelegatingLoader;
use Symfony\Component\Config\Loader\LoaderInterface;
@@ -58,7 +58,7 @@ protected function configureContainer(ContainerBuilder $container, LoaderInterfa
$container->addResource(new FileResource($this->getProjectDir() . '/config/bundles.php'));
$container->setParameter('container.dumper.inline_class_loader', true);
$confDir = $this->getProjectDir() . '/config';
- $syliusDir = $this->getProjectDir() . '/config/sylius/' . SyliusKernel::MAJOR_VERSION . '.' . SyliusKernel::MINOR_VERSION;
+ $syliusDir = $this->getProjectDir() . '/config/sylius/' . SyliusCoreBundle::MAJOR_VERSION . '.' . SyliusCoreBundle::MINOR_VERSION;
$loader->load($confDir . '/{packages}/*' . self::CONFIG_EXTS, 'glob');
$loader->load($confDir . '/{packages}/' . $this->environment . '/**/*' . self::CONFIG_EXTS, 'glob');
@@ -135,7 +135,7 @@ private function registerBundlesFromFile(string $bundlesFile): iterable
private function getConfigurationDirectories(): iterable
{
yield $this->getProjectDir() . '/config';
- $syliusConfigDir = $this->getProjectDir() . '/config/sylius/' . SyliusKernel::MAJOR_VERSION . '.' . SyliusKernel::MINOR_VERSION;
+ $syliusConfigDir = $this->getProjectDir() . '/config/sylius/' . SyliusCoreBundle::MAJOR_VERSION . '.' . SyliusCoreBundle::MINOR_VERSION;
if (is_dir($syliusConfigDir)) {
yield $syliusConfigDir;
}
diff --git a/tests/Application/assets/admin/entry.js b/tests/Application/assets/admin/entry.js
index 635f5acc2..063df3e0b 100644
--- a/tests/Application/assets/admin/entry.js
+++ b/tests/Application/assets/admin/entry.js
@@ -1 +1 @@
-import 'sylius/bundle/AdminBundle/Resources/private/entry';
+import 'sylius/bundle/AdminBundle/Resources/assets/entrypoint';
diff --git a/tests/Application/assets/admin/product-entry.js b/tests/Application/assets/admin/product-entry.js
new file mode 100644
index 000000000..eda48352a
--- /dev/null
+++ b/tests/Application/assets/admin/product-entry.js
@@ -0,0 +1 @@
+import 'sylius/bundle/AdminBundle/Resources/assets/scripts/product/attribute-tabs-refresher';
diff --git a/tests/Application/assets/controllers.json b/tests/Application/assets/controllers.json
new file mode 100644
index 000000000..8428b1fa8
--- /dev/null
+++ b/tests/Application/assets/controllers.json
@@ -0,0 +1,17 @@
+{
+ "controllers": {
+ "@symfony/ux-autocomplete": {
+ "autocomplete": {
+ "main": "dist/controller.js",
+ "webpackMode": "eager",
+ "fetch": "eager",
+ "enabled": true,
+ "autoimport": {
+ "tom-select/dist/css/tom-select.default.css": false,
+ "tom-select/dist/css/tom-select.bootstrap5.css": false
+ }
+ }
+ }
+ },
+ "entrypoints": []
+}
diff --git a/tests/Application/assets/shop/entry.js b/tests/Application/assets/shop/entry.js
index c9b2dfe26..0c51f32ca 100644
--- a/tests/Application/assets/shop/entry.js
+++ b/tests/Application/assets/shop/entry.js
@@ -1,2 +1,2 @@
-import 'sylius/bundle/ShopBundle/Resources/private/entry';
+import 'sylius/bundle/ShopBundle/Resources/assets/entrypoint';
import './styles.scss';
diff --git a/tests/Application/config/bundles.php b/tests/Application/config/bundles.php
index 2de3afe75..4cbb1eaaa 100644
--- a/tests/Application/config/bundles.php
+++ b/tests/Application/config/bundles.php
@@ -53,7 +53,7 @@
Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle::class => ['test' => true, 'test_cached' => true],
- ApiPlatform\Core\Bridge\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
+ ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true],
Sylius\Bundle\ApiBundle\SyliusApiBundle::class => ['all' => true],
SyliusLabs\DoctrineMigrationsExtraBundle\SyliusLabsDoctrineMigrationsExtraBundle::class => ['all' => true],
@@ -62,4 +62,9 @@
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
FOS\CKEditorBundle\FOSCKEditorBundle::class => ['all' => true],
Sylius\CmsPlugin\SyliusCmsPlugin::class => ['all' => true],
+ Sylius\TwigHooks\TwigHooksBundle::class => ['all' => true],
+ Symfony\UX\TwigComponent\TwigComponentBundle::class => ['all' => true],
+ Symfony\UX\LiveComponent\LiveComponentBundle::class => ['all' => true],
+ Symfony\UX\Autocomplete\AutocompleteBundle::class => ['all' => true],
+ Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
];
diff --git a/tests/Application/config/packages/security.yaml b/tests/Application/config/packages/security.yaml
index 4ed342f82..b8c377bf9 100644
--- a/tests/Application/config/packages/security.yaml
+++ b/tests/Application/config/packages/security.yaml
@@ -1,5 +1,4 @@
security:
- enable_authenticator_manager: true
providers:
sylius_admin_user_provider:
id: sylius.admin_user_provider.email_or_name_based
diff --git a/tests/Application/config/routes/ux.yaml b/tests/Application/config/routes/ux.yaml
new file mode 100644
index 000000000..6acafc2c2
--- /dev/null
+++ b/tests/Application/config/routes/ux.yaml
@@ -0,0 +1,3 @@
+live_component:
+ resource: "@LiveComponentBundle/config/routes.php"
+ prefix: /{_locale}/_components
diff --git a/tests/Application/config/sylius/2.0/bundles.php b/tests/Application/config/sylius/2.0/bundles.php
new file mode 100644
index 000000000..e615f85ba
--- /dev/null
+++ b/tests/Application/config/sylius/2.0/bundles.php
@@ -0,0 +1,14 @@
+ ['all' => true],
+];
diff --git a/tests/Application/config/sylius/2.0/packages/_sylius.yaml b/tests/Application/config/sylius/2.0/packages/_sylius.yaml
new file mode 100644
index 000000000..baa3d7ed0
--- /dev/null
+++ b/tests/Application/config/sylius/2.0/packages/_sylius.yaml
@@ -0,0 +1,10 @@
+parameters:
+ test_default_state_machine_adapter: 'symfony_workflow'
+ test_sylius_state_machine_adapter: '%env(string:default:test_default_state_machine_adapter:TEST_SYLIUS_STATE_MACHINE_ADAPTER)%'
+
+sylius_state_machine_abstraction:
+ graphs_to_adapters_mapping:
+ sylius_refund_refund_payment: '%test_sylius_state_machine_adapter%'
+
+sylius_api:
+ enabled: true
diff --git a/tests/Application/package.json b/tests/Application/package.json
index dfe325839..7e0159139 100755
--- a/tests/Application/package.json
+++ b/tests/Application/package.json
@@ -7,7 +7,23 @@
"lint": "yarn lint:js",
"watch": "encore dev --watch"
},
+ "dependencies": {
+ "@popperjs/core": "^2.11.8",
+ "@tabler/core": "^1.0.0-beta21",
+ "apexcharts": "^3.53.0",
+ "bootstrap": "^5.3.3",
+ "flag-icons": "^7.2.3",
+ "infinite-tree": "^1.18.0"
+ },
"devDependencies": {
- "@sylius-ui/frontend": "^1.0"
+ "@sylius-ui/frontend": "^1.0",
+ "@hotwired/stimulus": "^3.2.2",
+ "@symfony/stimulus-bridge": "^3.2.2",
+ "@symfony/ux-autocomplete": "file:../../vendor/symfony/ux-autocomplete/assets",
+ "@symfony/ux-live-component": "file:../../vendor/symfony/ux-live-component/assets",
+ "sass-loader": "^14.0.0",
+ "slugify": "^1.6.6",
+ "stimulus-use": "^0.52.2",
+ "tom-select": "^2.3.1"
}
}
diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig b/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig
deleted file mode 100644
index 1d9fa7d03..000000000
--- a/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/shared/layout/base/scripts.html.twig
similarity index 100%
rename from tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig
rename to tests/Application/templates/bundles/SyliusShopBundle/shared/layout/base/scripts.html.twig
diff --git a/tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/shared/layout/base/styles.html.twig
similarity index 100%
rename from tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig
rename to tests/Application/templates/bundles/SyliusShopBundle/shared/layout/base/styles.html.twig
diff --git a/tests/Application/webpack.config.js b/tests/Application/webpack.config.js
index af51dc3af..5993ee06a 100644
--- a/tests/Application/webpack.config.js
+++ b/tests/Application/webpack.config.js
@@ -11,6 +11,7 @@ Encore
.setOutputPath('public/build/shop/')
.setPublicPath('/build/shop')
.addEntry('shop-entry', './assets/shop/entry.js')
+ .enableStimulusBridge('./assets/controllers.json')
.disableSingleRuntimeChunk()
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
@@ -31,6 +32,8 @@ Encore
.setOutputPath('public/build/admin/')
.setPublicPath('/build/admin')
.addEntry('admin-entry', './assets/admin/entry.js')
+ .addEntry('admin-product-entry', './assets/admin/product-entry.js')
+ .enableStimulusBridge('./assets/controllers.json')
.disableSingleRuntimeChunk()
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())