![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@domoinc/domo-ui-webcomponents
Advanced tools
This component library is built using Stencil. The purpose is to provide a standard set of Domo components for use by anyone internal or external to Domo.
Stencil is a compiler for building fast web apps using Web Components.
Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool. Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.
Stencil components are just Web Components, so they work in any major framework or with no framework at all.
There are a number of ways you can use this library:
<script src="https://unpkg.com/@domoinc/domo-ui@{LATEST_VERSION}/dist/domo-ui.js"></script>
, replacing {LATEST_VERSION}
with the latest released version of the library, in the head of your index.html<link href="https://unpkg.com/@domoinc/domo-ui@{LATEST_VERSION}/dist/domo-ui.css" rel="stylesheet">
, replacing {LATEST_VERSION}
with the latest released version of the library, in the head of your index.htmlnpm install @domoinc/domo-ui --save
or yarn add @domoinc/domo-ui
AppModule
, import the CUSTOM_ELEMENTS_SCHEMA
from @angular/core
and add that to your schemas
array, like so:import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [],
bootstrap: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule {}
defineCustomElements
function from the library and include it in your main.ts
file, like so:import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { defineCustomElements } from '@domoinc/domo-ui';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.log(err));
// Call the imported function from the library, passing in window
defineCustomElements(window);
@import '~@domoinc/domo-ui/dist/domo-ui.css';
npm install @domoinc/domo-ui --save
or yarn add @domoinc/domo-ui
index.js
file, import the defineCustomElements
function from the library and call that function passing in window
, as is shown below:import React from 'react';
import ReactDOM from 'react-dom';
import { defineCustomElements } from '@domoinc/domo-ui';
import App from './App';
import './index.css';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
defineCustomElements(window);
@import '~@domoinc/domo-ui/dist/domo-ui.css';
In order to use the custom element library within the Vue app, the application must be modified to define the custom elements and to inform the Vue compiler which elements to ignore during compilation. This can all be done within the main.js
file. For example:
import Vue from 'vue';
import App from './App.vue';
import { defineCustomElements } from '@domoinc/domo-ui';
Vue.config.productionTip = false;
Vue.config.ignoredElements = [/domo-\w*/];
defineCustomElements(window);
new Vue({
render: h => h(App)
}).$mount('#app');
@import '~@domoinc/domo-ui/dist/domo-ui.css';
Other options are available, simply not documented.
FAQs
Web components of domo-ui, compiled by StencilJS
The npm package @domoinc/domo-ui-webcomponents receives a total of 1 weekly downloads. As such, @domoinc/domo-ui-webcomponents popularity was classified as not popular.
We found that @domoinc/domo-ui-webcomponents demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 16 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.