I created a node package for a Custom Element that I want to use in Angular and React. Therefor, in this library, I do not want specific Angular of React code.
My custom element is extending a button:
customElements.define('fancy-button', FancyButton, {extends: 'button'});
And this is how I use it:
<button is="fancy-button">Click me</button>
This all works fine.
Until I try to use my custom element in a Angular component, then it suddenly behaves as a regular button. This answer is using a wrapper div, but I don't want that. Like the answer says: somehow (probably) Angular is first creating the button element, and afterwards is adding the is="fancy-button", which doesn't upgrade the button element to my FancyButton.
I want users of the library able to use the button in their html (<button is="fancy-button">Click me</button>), not force them to use javascript to generate this button.
The answer was in times of Angular 6, maybe there is a solution by now?
angular-elementsextends:"button"(Customized Built-In Elements) will never be supported in Safari. Apple came up with valid arguments this part of Googles implementation has flaws.extends HTMLElement(Autonomous Elements) works in every browser