Installation

Basic Installation

Steps to be followed for getting started with the template:

There are followings basics packages you should install before going further.

  1. Setup firebase configuration for login: Required
  2. Open terminal or CMD and go the root directory of the template
  3. Run in terminal or CMD: npm install
  4. To Run project on Local environment run: ng serve
  5. Then visit: http://localhost:4200

Development to production

Here is the steps of production:

  1. If you can deploy in subdirectory and set the production path in environment.ts
  2. To Deploy project on server create production build by running: ng build --prod
  3. This will generate /dist folder in project root directory you'll have to upload these file using a FTP on your server
  4. Now that you have followed these steps your basic installation is complete and ready to flaunt your site to the world.

Folder Structure

Here is the general structure of the template:


vito-angular
sofbox-Angular
| - e2e
   | - src
     - protractor.conf.js
     - tsconfig.json

| - node_modules

| - src
  | - app
    | - components
    | - fake-api
    | - layouts
    | - models
    | - services
    | - store
    | - views
    | - app-routing.module.ts
    | - app.component.html
    | - app.component.ts
    | - app.module.ts
    | - assets
    | - environments
    | - angular.json

    | - components
        |-sofbox
            | - breadcrumbs
            | - card-with-image
            | - cards
            | - charts
            | - full-calendar
            | - loaders
            | - menus
            | - nav-bars
            | - scroll-top
            | - side-bars
            | - tabs

    | - fack-api
        | - json
            | - Email.json
            | - SideBar.json
            | - Users.json

    | - layouts
        | - auth-layout
        | - blank-layout
        | - layout1

    | - models
        | - menu-item.ts
        | - ticket-seat.ts
        | - user.ts

    | - services
        | - api.service.ts

    | - store
        | - actions
        | - reducers
        | - selectes
        | - states

    | - views
        | - application
        | - auth-pages
        | - calendar
        | - charts
        | - core
        | - dashboards
        | - forms
        | - icons
        | - maps
        | - pages
        | - table

    | - assets
        | - css
        | - fonts
        | - images
        | - js

    | - environments
        | - environment.prod.ts
        | - environment.ts

  - favicon.ico
  - index.html
  - .editorconfig
  - .gitignore
  - angular.json
  - package-lock.json
  - package.json
  - README.md
                                

Vito custom components structure

Here is the general structure of the vito custom components:


<!-- Vito components -->

| - components
    | - sofbox
        | - breadcrumbs
            - breadcrumb1
        | - card-with-image
        | - cards
            | - iq-card
        | - charts
            | - apex-chart
            | - high-chart
        | - full-calendar
        | - loaders
            | - loader1
        | - menus
            | - list-style1
        | - nav-bars
            | - nav-bar1
        | - scroll-top
        | - side-bars
            | - side-bar1
        | - tabs
            | - tab-content
            | - tab-nav
                                

For Favicon icon

Set favicon for replace favicon.ico and restart server

For Logo

Use the header style which is in components -> vito -> Partials -> Header. Replace "logo.png" with your own logo image URL.



|-components
    | - sofbox
        | - side-bars
            | - side-bars1
 
<div class="iq-sidebar">
<div class="iq-sidebar-logo d-flex justify-content-between">
  <a routerLink="/">
    <img src="assets/images/logo.png" class="img-fluid" alt="">
    <span>Sofbox</span>
  </a>
  <div class="iq-menu-bt align-self-center">
    <div class="wrapper-menu">
      <div class="line-menu half start"></div>
      <div class="line-menu"></div>
      <div class="line-menu half end"></div>
    </div>
  </div>
</div>
<ng-scrollbar>
  <nav class="iq-sidebar-menu">
    <app-list-style1 [listItems]="menuItems"></app-list-style1>
  </nav>
  <div class="p-3"></div>
</ng-scrollbar>
</div>

Configuration

Firebase

For Setup Firebase Goto following file and update keys

src/config/constant.js


firebaseConfig: {
    apiKey: YOUR_API_KEY,
    authDomain: YOUR_AUTH_DOMAIN,
    databaseURL: YOUR_DATABASE_URL,
    projectId: YOUR_PROJECT_ID,
    storageBucket: YOUR_STORAGE_BUCKET,
    messagingSenderId: YOUR_MESSAGING_SENDER_ID,
    appId: YOUR_APP_ID
  },

                                

AuthO

For Setup Autho Goto following file and update keys

src/config/constant.js


auth0Config: {
    domain: YOUR_DOMAIN,
    clientID: YOUR_CLIENT_ID,
    // make sure this line is contains the port: 4200
    redirectUri: 'http://localhost:4200/callback',
    // we will use the api/v2/ to access the user information as payload
    audience: 'https://dev-6u-3fb22.auth0.com/api/v2/',
    responseType: 'token id_token',
    scope: 'openid profile'
  }

                        

Algolia

For Setup Autho Goto following file and update keys and or use .env variable

src/config/algolia.js


export const APP_ID = YOUR_APPLICATION_ID
export const APP_KEY = YOUR_APP_KEY

                        

Layout Configure

Here is the layout and routing configure


 | - layouts
    | - auth-layout
    | - blank-layout
    | - layout1
    | - layout2
 
| - app-routing.module.ts<
                                

Router url configure


// Set Layout in this route
const routes: Routes = [
  { path: '', loadChildren: './layouts/layout1/layout1.module#Layout1Module' },
  { path: 'page', loadChildren: './layouts/blank-layout/blank-layout.module#BlankLayoutModule' },
  { path: 'auth', loadChildren: './layouts/auth-layout/auth-layout.module#AuthLayoutModule' },
  { path: '**', component: ErrorPageComponent }
]; 
                                

Sidebar & Header

Here is the sidebar object example just you can copy and past and rename then title and icon.


[
  {
    "title": "Dashboard",
    "is_heading": false,
    "is_active": true,
    "link": "",
    "class_name": "",
    "is_icon_class": true,
    "icon": "ri-home-4-line",
    "children": [
      {
        "title": "Dashboard1",
        "is_active": false,
        "link": {
          "name": "dashboard1.home"
        },
        "class_name": "",
        "is_icon_class": false,
        "icon": ""
      }
    ]
  }
]
                                

Sidebar based on json and check the file in spacific path ./src/FackApi/json/SideBar.json and import or add your array to sidebar key.


<SideBarStyle1 :items="sidebar" :logo="logo" />

<NavBarStyle1 title="Dashboard" :homeURL="{ name: 'dashboard1.home' }" :logo="logo">
    <template v-slot:right>
        add your items
    </template>
</NavBarStyle1>

 <FooterStyle1>
  <template v-slot:left>
    <li class="list-inline-item"><a href="#">Privacy Policy</a></li>
    <li class="list-inline-item"><a href="#">Terms of Use</a></li>
  </template>
  <template v-slot:right>
    Copyright 2020 <a href="#">Vito</a> All Rights Reserved.
  </template>
</FooterStyle1>
                                        

import SideBarItems from '../FackApi/json/SideBar'

data () {
    return {
      sidebar: SideBarItems
    }
}
                                        

Custom Components

Custom Card

We have build different types of custom card components. And these are the some prop and slots


<iq-card body-class="border text-center" class="bg-primary text-white">
 <template v-slot:headerTitle>
      <h4>Card Title</h4>
  </template>
  <template v-slot:body>
    <p >lorium ipsum</b-button>
  </template>
  <template v-slot:footer>
    <b-button variant="danger">Button</b-button>
  </template>
</iq-card>
                                    

Input

Input is set the attribute for the component.

Name Detail
cardClass For extra class to add in card
cardHeaderClass Class added in card header
cardBodyClass Class added in card body
cardFooterClass Class added in card footer

Template

Template is set of the content between opening and closing tag.

Name Detail
[card-header] For card top left icon or title
[card-top] For placing the image or content at top side of card body
[card-footer] For card footer to add with padding
[card-bottom] For card without padding added content at bottom

Charts

Template is set of the content between opening and closing tag.

Types of Am Chart
  1. line
  2. column
  3. mixes-column
  4. stacked
  5. bar-line
  6. data-based
  7. line-zoom-h
  8. line-zoom-v
  9. radar
  10. polar-scatter
  11. polar
  12. pie

Am Chart


<div id="chart"></div>
                                                    
                                                

Apex Chart

Slot is set of the content between opening and closing tag.

 
    <app-apex-chart ids="chart_ID" [options]="optionName"></app-apex-chart>
                                                
Prop

Prop is set the attriblute for the component.

Name Type Detail
element String element is identify the unique div element like id
chartOption Object Set Chart option

High chart

 
    <app-high-chart ids="chart_ID" [options]="optionName"></app-high-chart>
                                                
Input

Input is set the attriblute for the component.

Name Type Detail
ref String element is identify the unique div element like id
option Object Set Chart option

Tab

We have build custom tab components. And these are the some prop and slots

 
<tabset type="pills">
  <tab heading="Home" id="tab14">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</tab>
  <tab heading="Profile" id="tab15">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</tab>
  <tab heading="Contact" id="tab16">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</tab>
</tabset>
                                            

Tab Nav

Input

Input is set the attriblute for the component.

Name Type Detail
id String -
pills Boolean pills is style of nav tab and pass the boolean value
tabs Boolean tabs is style of nav tab and pass the boolean value
vertical Boolean vertical is list style of nav tab and pass the boolean value
align String align nav tabs right, left and center
Events

Events is any functionality want any change of tab

Name Detail
change on tab change call this event

Tab Item

Input

Input is set the attriblute for the component.

Name Type Detail
id String identify the tab content for navigate
active Boolean CSS class (or classes) to apply to the currently active tab
ariaControls String The aria-controls attribute creates a cause and effect relationship
ariaSelected Boolean This attribute is used with single-selection and multiple-selection widgets
dataToggle String The toggle tells Bootstrap what to do and the target tells
href String Set navigation link
title String Pass Title as a string or set html content via slot
liClass String -
Template

Slot is set of the content between opening and closing tag.

Name Detail
title For tab nav item content any html content or image by using slot

Tab Content

Input

Input is set the attriblute for the component.

Name Type Detail
id String id for identify the tab content to nav tab

Tab Content Item

Input

Input is set the attriblute for the component.

Name Type Detail
id String identify the tab content for navigate
active Boolean CSS class (or classes) to apply to the currently active tab
ariaLabelledBy String Identifies the element (or elements) that labels the current element.

Silder

We have build timeline components. And these are the some prop and slots


<Slick>
  <div>
    <a href="javascript:void(0)" class="iq-booking-date">
      <div class="iq-booking-dot"></div>
        <h3>Slider Item</h3>
    </a>
  </div>
</Slick>
                                            
Input

Input is set the attriblute for the component.

Name Type Detail
sliderOption Object this Input has pass the slider setting object
Template

Slot is set of the content between opening and closing tag.

Name Detail
default Pass slider item in default slot

Lottie

We have build lottie components. And these are the some prop


<lottie :option="require('../../assets/images/small/data')"></lottie>
                                            
Prop

Prop is set the attriblute for the component.

Name Type Detail
option Object Option pass the lottie animation json file to execute the svg image.

Full Calender

We have build fullcalender components. And these are the some Inputs


<full-calendar [plugins]="calendarPlugins" [events]="calendarEvents" [weekends]="calendarWeekends">
                                            
Input

Input is set the attriblute for the component.

Name Type Detail
header Object header Input has pass the left top center action button
events Array Events Input has just pass the array of events toh show the list of events and also set the color & dateTime/td>

Bootstrap Components

Bootstrap has wonderfull documentation on the following components::

Angular Bootstrap for extra component

Browser Support

Supports all major Browsers like Google Chrome, Mozilla Firefox, Safari, Opera, Internet Explorer 9 and above.

Change Log

Version 1.0

- Initial Release

Source & Credits

All images and videos are for preview purposes only and are not included in the download files. Images are of copyrights under Creative Commons CC0.


Images



Plugins



CSS & Fonts