diff --git a/packages/_vue3-migration-test/CHANGELOG.md b/packages/_vue3-migration-test/CHANGELOG.md
index 8b93d30a7e..68e242cf04 100644
--- a/packages/_vue3-migration-test/CHANGELOG.md
+++ b/packages/_vue3-migration-test/CHANGELOG.md
@@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.0.0-alpha.35](https://github.com/empathyco/x/compare/vue3-migration-test@1.0.0-alpha.34...vue3-migration-test@1.0.0-alpha.35) (2024-06-24)
+
+
+### Features
+
+* replace DisableAnimationMixin by useDisableAnimation composable (#1469) ([f498d3f](https://github.com/empathyco/x/commit/f498d3fba5d294391dcfca47f9724558e98f50f0))
+
+
+
+## [1.0.0-alpha.34](https://github.com/empathyco/x/compare/vue3-migration-test@1.0.0-alpha.33...vue3-migration-test@1.0.0-alpha.34) (2024-06-24)
+
+
+### Features
+
+* **extra-params:** migrate extra params and snippet config extra params (#1531) ([d869f18](https://github.com/empathyco/x/commit/d869f1886c11f74af8a6350033d7567385ad629d))
+
+
+
## [1.0.0-alpha.33](https://github.com/empathyco/x/compare/vue3-migration-test@1.0.0-alpha.32...vue3-migration-test@1.0.0-alpha.33) (2024-06-19)
diff --git a/packages/_vue3-migration-test/package.json b/packages/_vue3-migration-test/package.json
index 5d08eda105..042051a216 100644
--- a/packages/_vue3-migration-test/package.json
+++ b/packages/_vue3-migration-test/package.json
@@ -1,7 +1,7 @@
{
"name": "vue3-migration-test",
"private": "true",
- "version": "1.0.0-alpha.33",
+ "version": "1.0.0-alpha.35",
"scripts": {
"dev": "vite",
"preview": "vite preview",
diff --git a/packages/_vue3-migration-test/src/components/animations/index.ts b/packages/_vue3-migration-test/src/components/animations/index.ts
index 4d2c00cf2b..f1ee0800dd 100644
--- a/packages/_vue3-migration-test/src/components/animations/index.ts
+++ b/packages/_vue3-migration-test/src/components/animations/index.ts
@@ -3,3 +3,4 @@ export { default as TestCollapseHeight } from './test-collapse-height.vue';
export { default as TestCollapseWidth } from './test-collapse-width.vue';
export { default as TestCrossFade } from './test-cross-fade.vue';
export { default as TestFade } from './test-fade.vue';
+export { default as TestFadeAndSlide } from './test-fade-and-slide.vue';
diff --git a/packages/_vue3-migration-test/src/components/animations/test-fade-and-slide.vue b/packages/_vue3-migration-test/src/components/animations/test-fade-and-slide.vue
new file mode 100644
index 0000000000..8553f4e244
--- /dev/null
+++ b/packages/_vue3-migration-test/src/components/animations/test-fade-and-slide.vue
@@ -0,0 +1,11 @@
+
+
+ Element to animate
+ Element to animate
+ Element to animate
+
+
+
+
diff --git a/packages/_vue3-migration-test/src/components/extra-params/test-extra-params.vue b/packages/_vue3-migration-test/src/components/extra-params/test-extra-params.vue
new file mode 100644
index 0000000000..a7638946e6
--- /dev/null
+++ b/packages/_vue3-migration-test/src/components/extra-params/test-extra-params.vue
@@ -0,0 +1,13 @@
+
+
+ {{ params }}
+
+
diff --git a/packages/_vue3-migration-test/src/components/index.ts b/packages/_vue3-migration-test/src/components/index.ts
index 45c4690d74..66a0cf6ff6 100644
--- a/packages/_vue3-migration-test/src/components/index.ts
+++ b/packages/_vue3-migration-test/src/components/index.ts
@@ -14,3 +14,4 @@ export { default as TestBasePanel } from './panels/test-base-panel.vue';
export { default as TestBaseKeyboardNavigation } from './test-base-keyboard-navigation.vue';
export { default as TestBaseEventsModal } from './modals/test-base-events-modal.vue';
export { default as TestBaseIdModal } from './modals/test-base-id-modal.vue';
+export { default as TestExtraParams } from './extra-params/test-extra-params.vue';
diff --git a/packages/_vue3-migration-test/src/main.ts b/packages/_vue3-migration-test/src/main.ts
index 93980039b4..42b9b949cb 100644
--- a/packages/_vue3-migration-test/src/main.ts
+++ b/packages/_vue3-migration-test/src/main.ts
@@ -1,15 +1,16 @@
import { QuerySuggestionsRequest, XComponentsAdapter } from '@empathyco/x-types';
import { Component, configureCompat, createApp } from 'vue';
import { createStore } from 'vuex';
-import { xPlugin } from '../../x-components/src/plugins/x-plugin';
import { getRelatedTagsStub } from '../../x-components/src/__stubs__/related-tags-stubs.factory';
import { getQuerySuggestionsStub } from '../../x-components/src/__stubs__/query-suggestions-stubs.factory';
import {
+ createResultStub,
getBannersStub,
getNextQueriesStub,
getPromotedsStub,
getResultsStub
} from '../../x-components/src/__stubs__/index';
+import { XInstaller } from '../../x-components/src/x-installer/x-installer/x-installer';
import App from './App.vue';
import router from './router';
import {
@@ -40,8 +41,7 @@ if (VUE_COMPAT_MODE === 2) {
INSTANCE_LISTENERS: 'suppress-warning',
INSTANCE_ATTRS_CLASS_STYLE: 'suppress-warning',
RENDER_FUNCTION: false,
- COMPONENT_V_MODEL: false,
- WATCH_ARRAY: false
+ COMPONENT_V_MODEL: false
});
}
@@ -78,7 +78,11 @@ const adapter = {
promoteds: getPromotedsStub(),
banners: getBannersStub()
});
- })
+ }),
+ identifierResults: () =>
+ new Promise(resolve =>
+ resolve({ results: ['123A', '123B', '123C', '123D'].map(id => createResultStub(id)) })
+ )
} as unknown as XComponentsAdapter;
const store = createStore({});
@@ -86,20 +90,25 @@ const store = createStore({});
createApp(App as Component)
.use(router)
.use(store)
- .use(xPlugin, {
- adapter,
- store,
- __PRIVATE__xModules: {
- facets: facetsXModule,
- nextQueries: nextQueriesXModule,
- scroll: scrollXModule,
- search: searchXModule,
- queriesPreview: queriesPreviewXModule,
- semanticQueries: semanticQueriesXModule,
- recommendations: recommendationsXModule,
- identifierResults: identifierResultsXModule,
- popularSearches: popularSearchesXModule,
- experienceControls: experienceControlsXModule
- }
- })
.mount('#app');
+
+window.initX = {
+ instance: 'empathy',
+ lang: 'en'
+};
+new XInstaller({
+ adapter,
+ store,
+ __PRIVATE__xModules: {
+ facets: facetsXModule,
+ nextQueries: nextQueriesXModule,
+ scroll: scrollXModule,
+ search: searchXModule,
+ queriesPreview: queriesPreviewXModule,
+ semanticQueries: semanticQueriesXModule,
+ recommendations: recommendationsXModule,
+ identifierResults: identifierResultsXModule,
+ popularSearches: popularSearchesXModule,
+ experienceControls: experienceControlsXModule
+ }
+}).init();
diff --git a/packages/_vue3-migration-test/src/router.ts b/packages/_vue3-migration-test/src/router.ts
index 7b98a047b7..e54da2e82f 100644
--- a/packages/_vue3-migration-test/src/router.ts
+++ b/packages/_vue3-migration-test/src/router.ts
@@ -11,6 +11,7 @@ import {
TestElementsList,
TestFacets,
TestFade,
+ TestFadeAndSlide,
TestScroll,
TestSortDropdown,
TestSortList,
@@ -40,6 +41,7 @@ import {
TestPopularSearches,
TestNextQueries,
TestIdentifierResults,
+ TestExtraParams,
TestExperienceControls
} from './';
@@ -74,6 +76,11 @@ const routes = [
name: 'BaseModal',
component: TestBaseModal
},
+ {
+ path: '/fade-and-slide',
+ name: 'FadeAndSlide',
+ component: TestFadeAndSlide
+ },
{
path: '/base-dropdown',
name: 'BaseDropdown',
@@ -248,6 +255,11 @@ const routes = [
path: '/experience-controls',
name: 'ExperienceControls',
component: TestExperienceControls
+ },
+ {
+ path: '/snippet-config-extraparams',
+ name: 'SnippetConfigExtraparams',
+ component: TestExtraParams
}
];
diff --git a/packages/_vue3-migration-test/src/x-modules/identifier-results/x-module.ts b/packages/_vue3-migration-test/src/x-modules/identifier-results/x-module.ts
index 70ba15093a..d801729f7f 100644
--- a/packages/_vue3-migration-test/src/x-modules/identifier-results/x-module.ts
+++ b/packages/_vue3-migration-test/src/x-modules/identifier-results/x-module.ts
@@ -1,6 +1,5 @@
import { PrivateXModuleOptions } from '../../../../x-components/src/plugins/x-plugin.types';
import { IdentifierResultsXModule } from '../../../../x-components/src/x-modules/identifier-results/x-module';
-import { createResultStub } from '../../../../x-components/src/__stubs__/results-stubs.factory';
export const identifierResultsXModule: PrivateXModuleOptions = {
storeModule: {
@@ -11,7 +10,7 @@ export const identifierResultsXModule: PrivateXModuleOptions createResultStub(id)),
+ identifierResults: [],
origin: null,
query: 'test',
params: {},
diff --git a/packages/x-components/CHANGELOG.md b/packages/x-components/CHANGELOG.md
index 4f1152e099..659ed5a190 100644
--- a/packages/x-components/CHANGELOG.md
+++ b/packages/x-components/CHANGELOG.md
@@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [5.0.0-alpha.54](https://github.com/empathyco/x/compare/@empathyco/x-components@5.0.0-alpha.53...@empathyco/x-components@5.0.0-alpha.54) (2024-06-24)
+
+
+### Features
+
+* replace DisableAnimationMixin by useDisableAnimation composable (#1469) ([f498d3f](https://github.com/empathyco/x/commit/f498d3fba5d294391dcfca47f9724558e98f50f0))
+
+
+
+## [5.0.0-alpha.53](https://github.com/empathyco/x/compare/@empathyco/x-components@5.0.0-alpha.52...@empathyco/x-components@5.0.0-alpha.53) (2024-06-24)
+
+
+### Features
+
+* **extra-params:** migrate extra params and snippet config extra params (#1531) ([d869f18](https://github.com/empathyco/x/commit/d869f1886c11f74af8a6350033d7567385ad629d))
+
+
+
## [5.0.0-alpha.52](https://github.com/empathyco/x/compare/@empathyco/x-components@5.0.0-alpha.51...@empathyco/x-components@5.0.0-alpha.52) (2024-06-20)
diff --git a/packages/x-components/package.json b/packages/x-components/package.json
index ded2851221..96f4814caf 100644
--- a/packages/x-components/package.json
+++ b/packages/x-components/package.json
@@ -1,6 +1,6 @@
{
"name": "@empathyco/x-components",
- "version": "5.0.0-alpha.52",
+ "version": "5.0.0-alpha.54",
"description": "Empathy X Components",
"author": "Empathy Systems Corporation S.L.",
"license": "Apache-2.0",
diff --git a/packages/x-components/src/components/animations/__tests__/disable-animation-mixin.spec.ts b/packages/x-components/src/components/animations/__tests__/use-disable-animation.spec.ts
similarity index 60%
rename from packages/x-components/src/components/animations/__tests__/disable-animation-mixin.spec.ts
rename to packages/x-components/src/components/animations/__tests__/use-disable-animation.spec.ts
index c3bc5bf904..91a642a215 100644
--- a/packages/x-components/src/components/animations/__tests__/disable-animation-mixin.spec.ts
+++ b/packages/x-components/src/components/animations/__tests__/use-disable-animation.spec.ts
@@ -1,36 +1,33 @@
-import { mount, Wrapper } from '@vue/test-utils';
-import { Component, Prop, Provide } from 'vue-property-decorator';
-import Vue, { ComponentOptions, CreateElement, VNode } from 'vue';
-import DisableAnimationMixin from '../disable-animation.mixin';
+import { mount } from '@vue/test-utils';
+import { defineComponent, provide, ref } from 'vue';
import { DISABLE_ANIMATIONS_KEY } from '../../decorators/injection.consts';
+import { useDisableAnimation } from '../use-disable-animation';
-@Component
-class Provider extends Vue {
- @Prop()
- @Provide(DISABLE_ANIMATIONS_KEY as string)
- public disableAnimation!: boolean;
-
- render(h: CreateElement): VNode {
+const Provider = defineComponent({
+ props: {
+ disableAnimation: Boolean
+ },
+ setup(props) {
+ provide(DISABLE_ANIMATIONS_KEY as string, ref(props.disableAnimation));
+ },
+ render(h) {
return this.$slots.default?.[0] ?? h();
}
-}
+});
/**
* Animation component.
*/
-const Animation: ComponentOptions = {
- mixins: [DisableAnimationMixin],
+const Animation = defineComponent({
+ setup() {
+ return useDisableAnimation('x-animation');
+ },
template: `
Animation
- `,
- data() {
- return {
- animationName: 'x-animation'
- };
- }
-};
+ `
+});
/**
* Function that returns an Animation wrapper.
@@ -38,9 +35,7 @@ const Animation: ComponentOptions = {
* @param disableAnimation - Flag to disable the animation.
* @returns Animation wrapper.
*/
-function renderDisableAnimation({
- disableAnimation = true
-}: DisableAnimationOptions = {}): DisableAnimationAPI {
+function renderDisableAnimation({ disableAnimation = true }: DisableAnimationOptions = {}) {
const wrapper = mount({
template: `
@@ -78,8 +73,3 @@ interface DisableAnimationOptions {
/** Flag to disable the animation. */
disableAnimation?: boolean;
}
-
-interface DisableAnimationAPI {
- /** The wrapper of the mounted component. */
- wrapper: Wrapper;
-}
diff --git a/packages/x-components/src/components/animations/collapse-height.vue b/packages/x-components/src/components/animations/collapse-height.vue
index 9ded2cfd63..7c512b4871 100644
--- a/packages/x-components/src/components/animations/collapse-height.vue
+++ b/packages/x-components/src/components/animations/collapse-height.vue
@@ -1,11 +1,12 @@
+
diff --git a/packages/x-components/src/components/animations/collapse-width.vue b/packages/x-components/src/components/animations/collapse-width.vue
index 0d9a408d26..ca59254b75 100644
--- a/packages/x-components/src/components/animations/collapse-width.vue
+++ b/packages/x-components/src/components/animations/collapse-width.vue
@@ -1,11 +1,12 @@
+
diff --git a/packages/x-components/src/components/animations/cross-fade.vue b/packages/x-components/src/components/animations/cross-fade.vue
index 1bece28416..f61f14c711 100644
--- a/packages/x-components/src/components/animations/cross-fade.vue
+++ b/packages/x-components/src/components/animations/cross-fade.vue
@@ -1,5 +1,6 @@
-
+
+
diff --git a/packages/x-components/src/components/animations/disable-animation.mixin.ts b/packages/x-components/src/components/animations/disable-animation.mixin.ts
deleted file mode 100644
index 9581fa47cf..0000000000
--- a/packages/x-components/src/components/animations/disable-animation.mixin.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import Vue from 'vue';
-import { Component, Inject } from 'vue-property-decorator';
-import { DISABLE_ANIMATIONS_KEY } from '../decorators/injection.consts';
-
-/**
- * Mixin to ease disabling animations.
- *
- * @public
- */
-@Component
-export default class DisableAnimationMixin extends Vue {
- /**
- * The name of the animation.
- *
- * @public
- */
- protected animationName!: string;
-
- /**
- * Flag to disable the animation.
- *
- * @public
- */
- @Inject({ from: DISABLE_ANIMATIONS_KEY as string, default: false })
- public disableAnimation!: boolean;
-
- /**
- * The animation's name based on the {@link DisableAnimationMixin.disableAnimation} flag.
- *
- * @returns The animation name.
- * @internal
- */
- protected get name(): string {
- return this.disableAnimation ? '__no-animation__' : this.animationName;
- }
-}
diff --git a/packages/x-components/src/components/animations/fade-and-slide.vue b/packages/x-components/src/components/animations/fade-and-slide.vue
index 727d14dd87..9dbdb13c21 100644
--- a/packages/x-components/src/components/animations/fade-and-slide.vue
+++ b/packages/x-components/src/components/animations/fade-and-slide.vue
@@ -1,10 +1,11 @@
+
@@ -13,9 +14,8 @@