From 17d77d60593c50029f6caa1d441565642e55ce2f Mon Sep 17 00:00:00 2001 From: Nicolas Merget Date: Tue, 14 Jan 2025 14:56:11 +0100 Subject: [PATCH 1/4] fix: angular native events vs. custom events --- .changeset/polite-pugs-pull.md | 31 +++++ .../__snapshots__/alpine.test.ts.snap | 2 +- .../__snapshots__/angular.import.test.ts.snap | 12 +- .../__snapshots__/angular.mapper.test.ts.snap | 12 +- .../__snapshots__/angular.state.test.ts.snap | 12 +- .../__snapshots__/angular.styles.test.ts.snap | 12 +- .../__snapshots__/angular.test.ts.snap | 24 ++-- .../__tests__/__snapshots__/html.test.ts.snap | 6 +- .../__tests__/__snapshots__/lit.test.ts.snap | 4 +- .../__snapshots__/marko.test.ts.snap | 9 +- .../__snapshots__/mitosis.test.ts.snap | 6 +- .../__snapshots__/preact.test.ts.snap | 6 +- .../__tests__/__snapshots__/qwik.test.ts.snap | 6 +- .../__snapshots__/react-native.test.ts.snap | 6 +- .../react-state-builder.test.ts.snap | 6 +- .../react-state-mobx.test.ts.snap | 6 +- .../react-state-solid.test.ts.snap | 6 +- .../react-state-valtio.test.ts.snap | 6 +- .../react-state-variables.test.ts.snap | 6 +- .../__snapshots__/react.test.ts.snap | 6 +- .../__tests__/__snapshots__/rsc.test.ts.snap | 6 +- .../__snapshots__/solid.test.ts.snap | 28 +++-- .../__snapshots__/stencil.test.ts.snap | 4 +- .../__snapshots__/svelte.test.ts.snap | 8 +- .../__tests__/__snapshots__/taro.test.ts.snap | 6 +- .../vue-composition.test.ts.snap | 6 +- .../__tests__/__snapshots__/vue.test.ts.snap | 6 +- .../__snapshots__/webcomponent.test.ts.snap | 13 +- .../angular/output-event-bindings.raw.tsx | 10 +- .../core/src/generators/alpine/generate.ts | 17 +-- packages/core/src/generators/angular/index.ts | 28 +++-- packages/core/src/generators/angular/types.ts | 15 ++- packages/core/src/generators/helpers/rsc.ts | 3 +- .../core/src/generators/html/generator.ts | 70 +++++------ .../core/src/generators/liquid/generator.ts | 3 +- packages/core/src/generators/lit/generate.ts | 3 +- .../core/src/generators/marko/generate.ts | 3 +- .../core/src/generators/mitosis/generator.ts | 32 ++--- .../qwik/helpers/add-prevent-default.ts | 7 +- .../src/generators/qwik/helpers/handlers.ts | 3 +- .../core/src/generators/qwik/src-generator.ts | 3 +- packages/core/src/generators/react/blocks.ts | 3 +- packages/core/src/generators/solid/blocks.ts | 3 +- .../src/generators/stencil/helpers/index.ts | 3 +- packages/core/src/generators/svelte/blocks.ts | 5 +- .../core/src/generators/swift/generator.ts | 3 +- .../core/src/generators/template/generator.ts | 3 +- packages/core/src/generators/vue/blocks.ts | 5 +- packages/core/src/helpers/event-handlers.ts | 111 +++++++++++++++++- packages/core/src/helpers/is-children.ts | 2 +- .../jsx/__snapshots__/signals.test.ts.snap | 12 +- 51 files changed, 413 insertions(+), 195 deletions(-) create mode 100644 .changeset/polite-pugs-pull.md diff --git a/.changeset/polite-pugs-pull.md b/.changeset/polite-pugs-pull.md new file mode 100644 index 0000000000..fa41d48add --- /dev/null +++ b/.changeset/polite-pugs-pull.md @@ -0,0 +1,31 @@ +--- +'@builder.io/mitosis': patch +--- + +[angular]: Fix issue with events forced to become `toLowerCase()`. + +Based on [choosing-event-names](https://angular.dev/guide/components/outputs#choosing-event-names) custom events are camelCase. +[DOM events](https://www.w3schools.com/jsref/dom_obj_event.asp) are always lower-cased for Angular components. + +Checkout [event-handlers.ts](https://github.com/BuilderIO/mitosis/blob/main/packages/core/src/helpers/event-handlers.ts) to see all events which are automatically lower-cased everything else will be camelCase. + +If you need some other event to be lower-cased you can use `useMetadata.angular.nativeEvents`: + +```tsx +import { useMetadata } from '@builder.io/mitosis'; + +useMetadata({ + angular: { + nativeEvents: ['onNativeEvent'], + }, +}); + +export default function MyComponent(props) { + return ( +
+ console.log(event)} /> + Hello! +
+ ); +} +``` diff --git a/packages/core/src/__tests__/__snapshots__/alpine.test.ts.snap b/packages/core/src/__tests__/__snapshots__/alpine.test.ts.snap index 435fd037c3..b9ce030602 100644 --- a/packages/core/src/__tests__/__snapshots__/alpine.test.ts.snap +++ b/packages/core/src/__tests__/__snapshots__/alpine.test.ts.snap @@ -5821,7 +5821,7 @@ exports[`Alpine.js > jsx > Typescript Test > signalsOnUpdate 1`] = `
- +
-
{id}{$foo.bar.baz}
+
{id}{foo.value.bar.baz}
- +
-
{id}{foo.value.bar.baz}
+
{id}{$foo.bar.baz}