0.2.0 • Published 4 years ago

df-webcomponents v0.2.0

Weekly downloads
31
License
MIT
Repository
github
Last release
4 years ago

Digital First Web Components

Dieses Repository beinhaltet die Web Komponenten des Projektes Digital First.

Einbinden mit Script Tag (Ohne JS Framework)

  • Um alle Komponenten einzubinden kann das unpckg CDN benutzt werden:
<script type="module"
        src="https://unpkg.com/df-webcomponents@0.0.9/dist/df-webcomponents/df-webcomponents.esm.js"></script>
    <script nomodule=""
        src="https://unpkg.com/df-webcomponents@0.0.9/dist/df-webcomponents/df-webcomponents.js"></script>
  • Ab sofort können die Elemente überall im Template, JSX, HTML etc benutzt werden.

Einbinden mit NPM (Vue, Angular, React)

  • Installieren der Abhängigkeiten mit npm install df-webcomponents --save

Vue

  • Import der Komponenten
  • Vue mitteilen, benutzerdefinierte Element Tags zu ignorieren
  • Komponente an das Window Objekt binden
import Vue from 'vue';
import App from './App.vue';

import { applyPolyfills, defineCustomElements } from 'df-webcomponents/loader';

Vue.config.productionTip = false;

// Tell Vue to ignore all components defined in the df-webcomponents
// package. The regex assumes all components names are prefixed
// 'df'
Vue.config.ignoredElements = [/df-\w*/];

// Bind the custom elements to the window object
applyPolyfills().then(() => {
  defineCustomElements(window);
});

new Vue({
  render: h => h(App)
}).$mount('#app');

React

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

import { applyPolyfills, defineCustomElements } from 'df-webcomponents/loader';

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

applyPolyfills().then(() => {
  defineCustomElements(window);
});

Angular (Noch nicht getestet!)

Using a Stencil built web component collection within an Angular CLI project is a two-step process. We need to:

  1. Include the CUSTOM_ELEMENTS_SCHEMA in the modules that use the components.
  2. Call defineCustomElements(window) from main.ts (or some other appropriate place).

Including the Custom Elements Schema

Including the CUSTOM_ELEMENTS_SCHEMA in the module allows the use of the web components in the HTML markup without the compiler producing errors this code should be added into the AppModule and in every other modules that use your custom elements.
Here is an example of adding it to AppModule:

import { BrowserModule } from '@angular/platform-browser';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, FormsModule],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}

The CUSTOM_ELEMENTS_SCHEMA needs to be included in any module that uses custom elements.

Calling defineCustomElements

A component collection built with Stencil includes a main function that is used to load the components in the collection. That function is called defineCustomElements() and it needs to be called once during the bootstrapping of your application. One convenient place to do this is in main.ts as such:

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

// Note: loader import location set using "esmLoaderPath" within the output target confg
import { defineCustomElements } from 'df-webcomponents/loader';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.log(err));
defineCustomElements(window);

Edge and IE11 polyfills

If you want your custom elements to be able to work on older browser, you should add the applyPolyfills() that surrond the defineCustomElements() function.

import { applyPolyfills, defineCustomElements } from 'df-webcomponents/loader';
...
applyPolyfills().then(() => {
  defineCustomElements(window)
})

Accessing components using ViewChild and ViewChildren

Once included, components could be referenced in your code using ViewChild and ViewChildren as in the following example:

import {Component, ElementRef, ViewChild} from '@angular/core';

import 'test-components';

@Component({
    selector: 'app-home',
    template: `<test-components #test></test-components>`,
    styleUrls: ['./home.component.scss'],
})
export class HomeComponent {

    @ViewChild('test') myTestComponent: ElementRef<HTMLTestComponentElement>;

    async onAction() {
        await this.myTestComponent.nativeElement.testComponentMethod();
    }
}

Akkordeons

Ein Akkordeon-Menü ist eine vertikal angeordnete Liste mit Überschriften, die "on click" Inhalte anzeigen oder verbergen.

Properties

PropertyAttributeDescriptionTypeDefault
headingheadingSetzt die Überschrift.stringundefined
ididSetzt die id.stringundefined
xlxlSetzt die Größe.booleanfalse

Built with StencilJS

Alerts

Meldungen werden in der Desktop-Ansicht mit der vollen Hauptbreite des aktuellen Bereichs angezeigt. Wenn es eine Marginal Spalte oder Navigationsspalte gibt, dann geht diese nur über den verbleibenden Haupt-Inhaltsbereich (z.B. 7 Spalten).

Properties

PropertyAttributeDescriptionTypeDefault
dismissabledismissableWegklickbar?booleanfalse
titeltitelSetzt den Titelstringundefined
typetypeSetzt den Typ. Mögliche Optionen: success, warning, dangerstring"warning"

Built with StencilJS

Badges

Badges sind Abzeichen, welche mittels Attributen verändert werden können.

Properties

PropertyAttributeDescriptionTypeDefault
hrefhrefSetzt den Linkstringundefined
typetypeSetz den Typ. Mögliche Optionen: success, warning, danger, info, lightstringundefined

Built with StencilJS

df-breadcrumb


Built with StencilJS

df-breadcrumb-item

Properties

PropertyAttributeDescriptionTypeDefault
linklinkLinkstringundefined

Built with StencilJS

df-button

Properties

PropertyAttributeDescriptionTypeDefault
linklinkLinkstringundefined
sizesizeTypstringundefined
typetypeTypstringundefined

Built with StencilJS

Cards

Cards repräsentieren Informationen in der Form einer Kachel, bei der es einen getrennten Header und einen Kontenbereich gibt.

Properties

PropertyAttributeDescriptionTypeDefault
titeltitelSetzt den Titel.string"Fenster"

Built with StencilJS

Datepicker

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der DatePicker in einer HTML Form abgesendet wird.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

df-email

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"email"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

Icons

Für Icons wird ausschließlich die Bibliothek Glyphicons Pro in der Version 2 benutzt. Es werden keine WebFonts, wie in den Glyphicon-Vorgängerversionen benutzt, sondern SVG-Dateien. Für jedes benötigtes Icon, wird eine SVG-Datei als statischer Content bereitgestellt. Dieses Verfahren hat den Vorteil, dass im Gegensatz zu den WebFonts, viel weniger Daten an den Browser übertragen werden müssen. SVG-Datein sind viel kleiner im Vergleich zu WebFonts und es werden nur die benötigten Grafiken übertragen. Größe und Farben werden über CSS zugewiesen (font-size, color).

Properties

PropertyAttributeDescriptionTypeDefault
iconiconSetzt das Icon. Mögliche Icons können in der Dokumentation gefunden werden.stringundefined

Built with StencilJS

df-input

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der Text in einer HTML Form abgesendet wird.stringundefined
placeholderplaceholderSetzt den Placeholder.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

df-li


Built with StencilJS

Hyperlinks

Hyperlinks führen zu einer anderen Seite oder zu weiteren Informationen.

Properties

PropertyAttributeDescriptionTypeDefault
hrefhrefSetzt den Wert für href.stringundefined
targettargetSetzt den Wert für target. Möglich sind folgende Standardwerte: _self, _top, _blank, _parent, and _search.stringundefined

Built with StencilJS

df-list

Properties

PropertyAttributeDescriptionTypeDefault
orderedorderedLegt fest ob orderedbooleanfalse

Built with StencilJS

df-number

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"number"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

df-password

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"passwort"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

df-picturebox

Properties

PropertyAttributeDescriptionTypeDefault
altaltSetzt die HTML Bildbeschreibung.stringundefined
captioncaptionSetzt die Bildunterschrift.stringundefined
srcsrcSetzt die Bildquelle.stringundefined

Built with StencilJS

Text

Das Text Component erlaubt es dem Benutzer, Text oder Zahleneingaben in einer Zeile zu machen.

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der Text in einer HTML Form abgesendet wird.stringundefined
placeholderplaceholderSetzt den Placeholder.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

Textareas

Die Textarea bietet Platz für einen längeren, mehrspaltigen Text.

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanfalse
hinthintSetzt eine Hinweisnachricht.stringundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit dem die TextArea in einer HTML Form abgesendet wird.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined
requiredrequiredLegt fest ob requiredbooleanfalse
rowsrowsSetzt die Anzahl der Reihen. Hinweis: Muss 3 oder größer sein.number3

Built with StencilJS

my-component

Properties

PropertyAttributeDescriptionTypeDefault
firstfirstThe first namestringundefined
lastlastThe last namestringundefined
middlemiddleThe middle namestringundefined

Built with StencilJS

Akkordeons

Ein Akkordeon-Menü ist eine vertikal angeordnete Liste mit Überschriften, die "on click" Inhalte anzeigen oder verbergen.

Properties

PropertyAttributeDescriptionTypeDefault
headingheadingSetzt die Überschrift.stringundefined
ididSetzt die id.stringundefined
xlxlSetzt die Größe.booleanfalse

Built with StencilJS

Alerts

Meldungen werden in der Desktop-Ansicht mit der vollen Hauptbreite des aktuellen Bereichs angezeigt. Wenn es eine Marginal Spalte oder Navigationsspalte gibt, dann geht diese nur über den verbleibenden Haupt-Inhaltsbereich (z.B. 7 Spalten).

Properties

PropertyAttributeDescriptionTypeDefault
dismissabledismissableWegklickbar?booleanfalse
titeltitelSetzt den Titelstringundefined
typetypeSetzt den Typ. Mögliche Optionen: success, warning, dangerstring"warning"

Built with StencilJS

Badges

Badges sind Abzeichen, welche mittels Attributen verändert werden können.

Properties

PropertyAttributeDescriptionTypeDefault
hrefhrefSetzt den Linkstringundefined
typetypeSetz den Typ. Mögliche Optionen: success, warning, danger, info, lightstringundefined

Built with StencilJS

df-breadcrumb


Built with StencilJS

df-breadcrumb-item

Properties

PropertyAttributeDescriptionTypeDefault
linklinkLinkstringundefined

Built with StencilJS

df-button

Properties

PropertyAttributeDescriptionTypeDefault
linklinkLinkstringundefined
sizesizeTypstringundefined
typetypeTypstringundefined

Built with StencilJS

Cards

Cards repräsentieren Informationen in der Form einer Kachel, bei der es einen getrennten Header und einen Kontenbereich gibt.

Properties

PropertyAttributeDescriptionTypeDefault
titeltitelSetzt den Titel.string"Fenster"

Built with StencilJS

Datepicker

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der DatePicker in einer HTML Form abgesendet wird.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

df-email

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"email"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

Icons

Für Icons wird ausschließlich die Bibliothek Glyphicons Pro in der Version 2 benutzt. Es werden keine WebFonts, wie in den Glyphicon-Vorgängerversionen benutzt, sondern SVG-Dateien. Für jedes benötigtes Icon, wird eine SVG-Datei als statischer Content bereitgestellt. Dieses Verfahren hat den Vorteil, dass im Gegensatz zu den WebFonts, viel weniger Daten an den Browser übertragen werden müssen. SVG-Datein sind viel kleiner im Vergleich zu WebFonts und es werden nur die benötigten Grafiken übertragen. Größe und Farben werden über CSS zugewiesen (font-size, color).

Properties

PropertyAttributeDescriptionTypeDefault
iconiconSetzt das Icon. Mögliche Icons können in der Dokumentation gefunden werden.stringundefined

Built with StencilJS

df-input

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der Text in einer HTML Form abgesendet wird.stringundefined
placeholderplaceholderSetzt den Placeholder.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

df-li


Built with StencilJS

Hyperlinks

Hyperlinks führen zu einer anderen Seite oder zu weiteren Informationen.

Properties

PropertyAttributeDescriptionTypeDefault
hrefhrefSetzt den Wert für href.stringundefined
targettargetSetzt den Wert für target. Möglich sind folgende Standardwerte: _self, _top, _blank, _parent, and _search.stringundefined

Built with StencilJS

df-list

Properties

PropertyAttributeDescriptionTypeDefault
orderedorderedLegt fest ob orderedbooleanfalse

Built with StencilJS

df-number

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"number"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

df-password

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledbooleanundefined
labellabelstringundefined
namenamestring"passwort"
placeholderplaceholderstringundefined
readonlyreadonlybooleanundefined

Built with StencilJS

df-picturebox

Properties

PropertyAttributeDescriptionTypeDefault
altaltSetzt die HTML Bildbeschreibung.stringundefined
captioncaptionSetzt die Bildunterschrift.stringundefined
srcsrcSetzt die Bildquelle.stringundefined

Built with StencilJS

Text

Das Text Component erlaubt es dem Benutzer, Text oder Zahleneingaben in einer Zeile zu machen.

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit der Text in einer HTML Form abgesendet wird.stringundefined
placeholderplaceholderSetzt den Placeholder.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined

Built with StencilJS

Textareas

Die Textarea bietet Platz für einen längeren, mehrspaltigen Text.

Properties

PropertyAttributeDescriptionTypeDefault
disableddisabledLegt fest ob disabledbooleanfalse
hinthintSetzt eine Hinweisnachricht.stringundefined
labellabelSetzt das Label.stringundefined
namenameSetzt den Namen mit dem die TextArea in einer HTML Form abgesendet wird.stringundefined
readonlyreadonlyLegt fest ob readonlybooleanundefined
requiredrequiredLegt fest ob requiredbooleanfalse
rowsrowsSetzt die Anzahl der Reihen. Hinweis: Muss 3 oder größer sein.number3

Built with StencilJS

my-component

Properties

PropertyAttributeDescriptionTypeDefault
firstfirstThe first namestringundefined
lastlastThe last namestringundefined
middlemiddleThe middle namestringundefined

Built with StencilJS

0.2.0

4 years ago

0.1.0

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago