0.0.3-prerelease ā€¢ Published 3 years ago

@one-platform/opc-timeline v0.0.3-prerelease

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

opc-timeline Component šŸ‘‹

Version Build Status Maintenance

A web component based on Lit Element to show a timeline for a specific range

Usage

Install opc-timeline

npm install --save @one-platform/opc-timeline 

For VanillaJS

  • Import component
import '@one-platform/opc-timeline';
  • Add component in html
<opc-timeline id="timeline" current-step-index="2" variant="compact">
    <div slot="timeline-details">
        <h2>Timeline Details</h2>
        The timeline component details go right here, it uses a slot named <strong>timeline-details</strong>. Happy coding :)
    </div>
</opc-timeline>
  • Using the steps attribute we can add an Array of strings which would be the steps for the timeline component
document.querySelector('#timeline').steps = [ 'Scheduled', 'Loaned', 'Extended', 'Completed'];

For Angular

  • In your app.module include the CUSTOM_ELEMENTS_SCHEMA and import the component
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import '@one-platform/opc-timeline';

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
  • Add component in any component html template
    • Note: To add using the html attribute, follow the below example
<opc-timeline id="timeline" current-step-index="2" variant="compact">
    <div slot="timeline-details">
        <h2>Timeline Details</h2>
        The timeline component details go right here, it uses a slot named <strong>timeline-details</strong>. Happy coding :)
    </div>
</opc-timeline>
  • To use component using angular attributes use the internal property names
    <opc-timeline 
      id="timeline" 
      [steps]="['Scheduled', 'Loaned', 'Completed']" 
      [currentStepIndex]="number"
      [variant]="variant">
    </opc-timeline>

For React

  • Import the component in App.js
import '@one-platform/opc-timeline';
  • Add component in any component html render
<opc-timeline id="timeline" current-step-index="2" variant="compact">
    <div slot="timeline-details">
        <h2>Timeline Details</h2>
        The timeline component details go right here, it uses a slot named <strong>timeline-details</strong>. Happy coding :)
    </div>
</opc-timeline>

Slots

  • There are three optional slots in the opc-timeline as shown below namely
    • timeline-details: To set the details for the timeline
      • Example
      <opc-timeline>
        <div slot="timeline-details" style="color: white;">
          <h2>Timeline Details</h2>
          The timeline component details go right here, it uses a slot named <strong>timeline-details</strong>. Happy coding :)
        </div>
      </opc-timeline>
    • The timeline label slots
      • start-label: The start label on the left side of the timeline
      • end-label: The end label on the right side of the timeline
        • Example code
        <opc-timeline>
          <span slot="start-label" style="font-weight: 600; color: white;">Loaned on: Apr 28, 2018</span>
          <span slot="end-label" style="font-weight: 600; color: white;">Expires on: Oct 27, 2018</span>
        </opc-timeline>

Attributes

steps

  • Input: Array of strings
    • Example
    document.querySelector('#timeline').steps = [ 'Scheduled', 'Loaned', 'Extended', 'Completed'];
  • The array would be used as steps.
  • Adding a falsy value would produce an empty step without string
    • Example of falsy values
    document.querySelector('#timeline3').steps = [null, undefined, 0];
    • PS: Adding empty string (e.g. - '') would also create a empty step

current-step-index

  • Input: Number
  • Sets the active state to the given number

variant

  • default
    • By default the variant attribute would be set to the string "default" which would have all the steps without the side arrows
  • compact
    • The compact view has side arrows which scroll after clicking on them in their respective direction

Themes

  • Only default themes

Color pallet

colorhex (default-fallback)
--opc-timeline--BackgroundColor #DEDEDE
--opc-timeline--Color--step #689B7A
--opc-timeline--TextColor #6C6C6C
--opc-timeline--Color--active #0aa521
--opc-timeline--Color--after-active #b6e4bc
  • Style variables to add spacing
SpacingDefault
--opc-timeline--Left--spacing0rem
--opc-timeline--Right--spacing0rem
--opc-timeline--MarginTop--timeline-label1rem

Development server

Run development server

npm run dev opc-timeline

Build

npm run build opc-timeline

Run tests

npm run test

šŸ¤ Contributors

šŸ‘¤ hybridx