2.0.198 • Published 14 days ago

monkey-style-guide v2.0.198

Weekly downloads
3,931
License
MIT
Repository
-
Last release
14 days ago

Contributors MIT License LinkedIn

About The Project

This project was defined to be the main guide to styles, colors and html components of the entire ecosystem of Monkey Exchange systems.

This style guide contains a concept to work with a range of different colors, making possible to create beautiful and useful html components.

Components

All components was developed to work with angular reactive forms, so we need to define a formGroup and set the formControlName, and the components will do the rest of the job to fill all fields properly. First developed on Angular 10, this color guide contains the following components:


Badge

Badge Demo Screen Shot

Parameters:

  • count (string) is used to define the content of badge.
  • pulseOn (boolean)(default: false) is used to define if badge has to pulse like a bell.

Example:

example.module.ts

import { MonkeyBadgeModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyBadgeModule]
})
...

example.component.html

<monkey-badge count="3" [pulseOn]="true"></monkey-badge>

Button

Button Demo Screen Shot

Parameters:

  • color (string) can be theme, error, warning or success
  • disabled (boolean)(default: false) to disable any action
  • icon (optional)(string) define the icon for button
  • iconPoition (string)(default: 'left') define the icon position. Can be left or right
  • label (string) define the label that will be displayed inside the button
  • type (string) can be primary, secondary, tertiary

Example:

example.module.ts

import { MonkeyButtonModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyButtonModule]
})
...

example.component.html

<monkey-button color="theme" label="Primary" type="primary"></monkey-button>
<monkey-button color="error" label="Secondary" type="secondary"></monkey-button>
<monkey-button color="warning" label="Tertiary" type="tertiary"></monkey-button>

There are other variations with buttons:

Button Avatar

Button Avatar Demo Screen Shot

Parameters:

  • label (string) define the label that will be displayed inside the button
  • size (string) define the size of the button
  • type (string) can be theme, theme-100 or none

Example:

example.component.html

<monkey-button-avatar label="Amilson" size="sm" type="theme"></monkey-button-avatar>

Button Dropdown

Button Dropdown Demo Screen Shot

Button Dropdown Demo Screen Shot

Parameters:

  • label (ng-template) the label that will be displayed inside the button. For this particular component, label has be a ng-template.
  • listenClicks (boolean)(default: true) can be used to define if the dropdown will be closed with clicks inside
  • type (string)(default: 'filled') can be unfilled or filled

Example:

example.component.html

<monkey-button-dropdown [label]="profileButton">
  <div class="mt-2">
    <monkey-button
      color="theme"
      label="Profile"
      type="tertiary"
      [routerLink]="'/app/user/profile/edit'"
    >
    </monkey-button>
  </div>
  <div class="mt-2">
    <monkey-button color="theme" label="Logout" type="tertiary"></monkey-button>
  </div>
</monkey-button-dropdown>

<ng-template #profileButton>
  <monkey-button-avatar label="Monkey" size="sm" type="theme"></monkey-button-avatar>
</ng-template>

Checkbox

Checkbox Demo Screen Shot

Parameters:

  • description (optional)(string) description to be displayed by side of the checkbox
  • errorMessage (string) message to alert user
  • helperMessage (optional)(string) can be used with type single, for formfield purpose
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • type (string)(default: 'single') can be single or multiple. Will be used to render checkbox with formfield body or not.

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyCheckboxModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyCheckboxModule]
})
...

example.component.html

<monkey-checkbox
  description="I Agree to Terms"
  errorMessage="Validation Message"
  formControlName="terms"
  helperMessage="Mandatory"
  infoMessage="Info message"
  label="Terms and Conditions"
  type="single">
</monkey-checkbox>

Date Range Picker

Date Range Picker Demo Screen Shot

Parameters:

  • errorMessage (string) message to alert user
  • helperMessage (optional)(string) can be used with type single, for formfield purpose
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • i18n (Object) an i18n object (see example)

Events:

  • onChange event emited when user select a range of dates or when clicked on some action

Example:

example.module.ts

import { MonkeyDateRangePicker } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyDateRangePicker]
})
...

example.component.html

<monkey-date-range-picker
  errorMessage="Error Message"
  helperMessage="Helper Message"
  infoMessage="Info Message"
  label="Label"
  [i18n]="i18n">
</monkey-date-range-picker>

example.component.ts

...
i18n = {
    months: {
      '1': 'January',
      '2': 'Febuary',
      '3': 'March',
      '4': 'April',
      '5': 'May',
      '6': 'June',
      '7': 'July',
      '8': 'August',
      '9': 'September',
      '10': 'October',
      '11': 'November',
      '12': 'December'
    },
    days: {
      '1': 'Sun.',
      '2': 'Mon.',
      '3': 'Tue.',
      '4': 'Wed.',
      '5': 'Thu.',
      '6': 'Fri.',
      '7': 'Sat.'
    },
    actions: {
      '30': '30 days',
      '60': '60 days',
      '90': '90 days'
    },
    today: 'Today'
  };
...

Expansion

Expansion Demo Screen Shot

Expansion Demo Screen Shot

Parameters:

  • color (string) can be theme, error, warning or success
  • disabled (boolean)(default: false) to disable any action
  • helperMessage (optional)(string) can be used with type single, for formfield purpose
  • label (string) define the label that will be displayed inside
  • open (boolean)(default: false) make expansion open or not

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyExpansionModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyExpansionModule]
})
...

example.component.html

<monkey-expansion
  color="theme"
  label="Expansion"
  [helperMessage]="'helperMessage'"
>
  <div>Content 1</div>
  <div>Content 2</div>
</monkey-expansion>

File Upload

File Upload Demo Screen Shot

Parameters:

  • allowedExtensions (array of string) for example '.jpg', '.jpeg', '.png'
  • allowedExtensionErrorMessage (string) message to be displayed if the file extension is wrong
  • errorMessage (string) message to alert user
  • fileUpload (function) function to be used to upload file
  • helperMessage (optional)(string) message to help user to know what to do
  • infoMessage (optional)(string) required message
  • label (string) define the label that will be displayed inside
  • listenFiles (boolean)(default: false) if true, emit event to onHandleFilesReady with the selected file
  • maxSize (number) max file size in kbytes (1 * 1024 * 1024)
  • maxSizeErrorMessage (string) message to be displayed if the file size is wrong
  • name (string) name to identify the input
  • placeholder (optional)(string) message to help user that will be displayed inside the input
  • uploadOngoingMessage (string) message to be used when upload starts

Events:

  • onChange event emited when user make changes
  • onHandleFilesReady event emited when listenFiled is true

Example:

example.module.ts

import { MonkeyFileUploadModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyFileUploadModule]
})
...

example.component.ts

...

uploadFunction: Function = (file: any, callback?: Function) => {
  this.uploadService.uploadFile(file, callback);
};

service.uploadFile(file: File, callback?: Function) {
  const { httpClient, headers } = this;
  const formData = new FormData();
  formData.append('file', file);

  httpClient.post<any>('endpoint/upload', formData, {
    headers,
    reportProgress: true,
    observe: 'events'
  }).subscribe((event: any) => {
    const { loaded, total, body } = event;
    switch (event.type) {
      case HttpEventType.UploadProgress:
        const progress = Math.round((loaded / total * 100));
        if (callback) callback(progress);
        break;
      case HttpEventType.Response:
        const { filename, _links: { file: { href } } } = body;
        if (callback) {
          callback(null, {
            fileName: filename,
            url: href
          }, null);
        }
        break;
      default:
        break;
    }
  }, (err: HttpErrorResponse) => {
    const { error } = err;
    callback(null, error?.notifications?.join(''));
  });
}

example.component.html

<monkey-file-upload
  allowedExtensionErrorMessage="Extension not allowed"
  icon="upload-20"
  label="upload"
  maxSize="5242880"
  maxSizeErrorMessage="Max file size is 5mb"
  placeholder="Add File"
  [fileUpload]="uploadFunction"
></monkey-file-upload>

Icon

Icons Demo Screen Shot

Parameters:

  • color (string) define color. Can be theme or #ffffff (hex value)
  • icon (string) icon name and size separeted by hyfhen

Icons Options:

  • add-plus
  • address-book
  • arrow-down
  • arrow-left
  • arrow-line-right
  • arrow-right
  • arrow-up
  • arrows
  • auction
  • average-tax
  • bank-account
  • bank-agency
  • bank
  • banknote-search
  • bell
  • block
  • book-open-text
  • book
  • box
  • build-approved
  • build-person
  • build-refused
  • build-waiting
  • calendar
  • calendar-box
  • camera
  • card-machine
  • card
  • cash-banknote-coins
  • cash-banknote-invoice
  • certificate-medal
  • chart-down
  • chart-down-arrow
  • chart-up
  • chart-up-arrow
  • chat
  • check-circle-out
  • check-circle
  • check-grey
  • check-white
  • check
  • clipboard
  • clock-closed
  • clock
  • close-circle
  • close
  • cnpj
  • codepen
  • company-name
  • contract-pen
  • contract
  • delete
  • digital-certificate
  • document
  • dollar-sign-circle
  • dollar-sign
  • domain
  • dots-menu
  • double-arrow-left
  • double-arrow-right
  • download
  • drag-drop
  • edit-square
  • edit
  • email-send-fast
  • email
  • empty-doc
  • error
  • eye-closed
  • eye-open
  • filter-add
  • filter
  • grid
  • hand-money-banknote
  • hands-clap
  • help
  • hexagon
  • high-rising-build
  • home
  • image
  • image-wave-square
  • info
  • invoice
  • invoices-anticipated
  • invoices-approval
  • invoices-refused
  • lighting-circle
  • list
  • location-pin
  • login
  • logout
  • mail-box-upload
  • mail-letter-fast-circle
  • mail-open-document
  • medal
  • menu
  • money-banknote-calculator
  • money-cedule
  • money-discount
  • money-hand
  • money-net
  • money-new
  • money-percent
  • money-refused
  • money-sign
  • money
  • money-waiting
  • more-circle
  • more
  • new-company
  • offered
  • open-external
  • password
  • password-edit-protection
  • people
  • percent
  • percent-box
  • person-document
  • person-sad
  • phone-call
  • phone
  • pin-navigation
  • pork
  • radio
  • refresh
  • registration
  • repeat
  • search
  • second-warning
  • settings
  • shield-chekmark
  • star-shining
  • star
  • store
  • suppliers
  • target-dart-arrow
  • today
  • trash
  • trophy
  • unfold-more
  • upload
  • user-group
  • user
  • wallet
  • warning

Example:

example.module.ts

import { MonkeyIconModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyIconModule]
})
...

example.component.html

<monkey-icon color="#000000" icon="password-16"></monkey-icon>

Input

Input Demo Screen Shot

Parameters:

  • capitalize (optional)(boolean) makes the value capitalcase
  • currency (optional)(boolean) transforms the input in currency input
  • errorMessage (string) message to alert user
  • helperMessage (optional)(string) message to help user to know what to do
  • icon (optional)(string) icon name and size separeted by hyfhen
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • lowerCase (optional)(boolean) makes the value lowercase
  • mask (optional)(string) mask pattern to mask the input
  • maxLength (optional)(number) max 255
  • name (optional)(string) name to identify the input
  • onlyNumber (optional)(boolean) makes the input accept only number
  • onlyAlphaNumeric (optional)(boolean) makes the input accept only alphanumeric characters
  • placeholder (optional)(string) message to help user that will be displayed inside the input
  • prefix (optional)(string) prefix value for input
  • type (string) can be text or password
  • upperCase (optional)(boolean) makes the value uppercase

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyInputModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyInputModule]
})
...

example.component.html

<monkey-input
  errorMessage="Validation Message"
  formControlName="name"
  helperMessage="Mandatory"
  icon="user-20"
  infoMessage="Info message"
  label="Name"
  placeholder="Input your full name">
</monkey-input>

Input Filter

Input Filter Demo Screen Shot

Parameters:

  • helperMessage (optional)(string) message to help user to know what to do
  • icon (optional)(string) icon name and size separeted by hyfhen
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • maxLength (optional)(number) max 255
  • name (optional)(string) name to identify the input
  • placeholder (optional)(string) message to help user that will be displayed inside the input

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyInputModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyInputModule]
})
...

example.component.html

<monkey-input-filter
  formControlName="name"
  helperMessage="Mandatory"
  icon="user-20"
  infoMessage="Info message"
  label="Name"
  placeholder="Input your full name">
</monkey-input-filter>

Modal

Modal Demo Screen Shot

Parameters:

  • config (MonkeyModalConfig) the configuration of modal
  • modalRef (MonkeyModalRefs) the modal reference
  • onHandleConfirm (EventEmitter) will emit and event when you click confirm

Example:

example.module.ts

import {
  MonkeyModalModule,
  MonkeyStyleGuideModalService
} from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyModalModule],
  providers: [MonkeyStyleGuideModalService]
})
...

parent.component.ts

...
import { MonkeyStyleGuideModalService } from 'monkey-style-guide';
import { ModalComponent } from './modal/modal.component';

...

constructor(private modalService: MonkeyStyleGuideModalService) {}

openModal() {
  this.modalService.open(ModalComponent, {
    color: 'theme',
    size: 'md',
    action: {
      cancel: {
        actionColor: 'theme',
        actionType: 'tertiary',
        label: 'Cancel',
      },
      confirm: {
        actionColor: 'theme',
        actionType: 'primary',
        label: 'Confirm',
      },
    },
  });
}

modal.component.ts

import { Component, EventEmitter, Input } from '@angular/core';
import {
  MonkeyModalConfig,
  MonkeyModalRefs,
  MonkeyStyleGuideModalService
} from 'monkey-style-guide';

@Component({
  selector: 'mk-modal',
  template: `
    <monkey-modal
      [config]="config"
      [modalRef]="modalRef"
      [onHandleConfirm]="onHandleConfirm"
    >
      <div style="align-items: center; display: flex; justify-content: center;">
        <img
          src="https://dev-monkey-emails.s3-us-west-2.amazonaws.com/monkey-style-guide/demos/images/logo.png"
        />
      </div>
    </monkey-modal>
  `,
})
export class ModalComponent {
  @Input() config: MonkeyModalConfig;
  @Input() modalRef: MonkeyModalRefs<this>;
  @Input() onHandleConfirm = new EventEmitter<any>();

  constructor(private modalService: MonkeyStyleGuideModalService) {
    this.onHandleConfirm.subscribe(() => {
      console.log('Confirm clicked!');

      this.modalService.closeAll();
    });
  }
}

In case you need the logic in your parent component you can simply pass the action key to MonkeyModalConfig and remove onHandleConfirm of your modal component like this:

...

openModal() {
  this.modalService.open(ModalComponent, {
    color: 'theme',
    size: 'md',
    action: {
      cancel: {
        actionColor: 'theme',
        actionType: 'tertiary',
        label: 'Cancel',
      },
      confirm: {
        action: () => {
          console.log('Modal closed!');
        },
        actionColor: 'theme',
        actionType: 'primary',
        label: 'Confirm',
      },
    },
  });
}
...

export class ModalComponent {
  @Input() config: MonkeyModalConfig;
  @Input() modalRef: MonkeyModalRefs<this>;

  constructor() {}
}

Radiobutton

Radiobutton Demo Screen Shot

Parameters:

  • errorMessage (string) message to alert user
  • helperMessage (optional)(string) message to help user to know what to do
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • placeholder (optional)(string) message to help user that will be displayed inside the input

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyRadioButtonModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyRadioButtonModule]
})
...

example.component.html

<monkey-radiobutton
  formControlName="gender"
  label="Gender"
  helperMessage="Mandatory"
  icon="help-20"
  infoMessage="Info message"
  errorMessage="Validation message"
>
  <monkey-option label="Female" value="female"></monkey-option>
  <monkey-option label="Male" value="male"></monkey-option>
  <monkey-option label="I prefer not to choose" value="not_choose"></monkey-option>
</monkey-radiobutton>

Select

Select Demo Screen Shot

Parameters:

  • errorMessage (string) message to alert user
  • helperMessage (optional)(string) message to help user to know what to do
  • icon (optional)(string) icon name and size separeted by hyfhen
  • infoMessage (optional)(string) message to help user knows about this component purpose
  • label (string) define the label that will be displayed inside
  • placeholder (optional)(string) message to help user that will be displayed inside the input

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import {
  MonkeyOptionModule,
  MonkeySelectModule
} from 'monkey-style-guide';

...

@NgModule({
  imports: [
    MonkeyOptionModule,
    MonkeySelectModule
  ]
})
...

example.component.html

<monkey-select
  errorMessage="Validation Message"
  formControlName="documentType"
  helperMessage="Mandatory"
  icon="upload-20"
  infoMessage="Info message"
  label="Select the document type to upload"
>
  <monkey-option label="Personal Document" value="personal_document">
  </monkey-option>
  <monkey-option label="Social Contract" value="social_contract">
  </monkey-option>
  <monkey-option label="Procuraction Contract" value="procuration_contract">
  </monkey-option>
</monkey-select>

Table

Table Demo Screen Shot

Parameters:

  • dataSource (array) the data to be displayed
  • headers (array) column headers
  • loading (optional)(boolean) show loading progress
  • rowTemplate (TemplateRef) the template to show rows
  • selectable (optional)(boolean) enable row selection

Events:

  • selection returns an array with selected rows

Example:

example.module.ts

import { MonkeyTableModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyTableModule]
})
...

example.component.ts

_dataSourceHeaders = ['column1', 'column2', 'column3', 'column4'];
_dataSource = [
  [1, 2, 3, 4, 5, 6],
  [5, 6, 7, 8, 9, 10],
  [5, 6, 7, 8, 9, 10],
  [5, 6, 7, 8, 9, 10],
];

example.component.html

<monkey-table
  [dataSource]="_dataSource"
  [headers]="_dataSourceHeaders"
  [loading]="true"
  [rowTemplate]="rowTemplate"
  [selectable]="true"
  (selection)="onHandleSelection($event)"
>
  <ng-template #rowTemplate let-row="row">
    <monkey-table-column>{{ row[0] }}</monkey-table-column>
    <monkey-table-column>{{ row[1] }}</monkey-table-column>
    <monkey-table-column>{{ row[2] }}</monkey-table-column>
    <monkey-table-column>{{ row[3] }}</monkey-table-column>
  </ng-template>
</monkey-table>

Toggle

Toggle Demo Screen Shot

Parameters:

  • value (boolean)(default: false)
  • disabled (boolean)(default: false) to disable any action

Events:

  • onChange event emited when user make changes

Example:

example.module.ts

import { MonkeyToggleModule } from 'monkey-style-guide';

...

@NgModule({
  imports: [MonkeyToggleModule]
})
...

example.component.html

<monkey-toggle [value]="_form?.get('smsNotification').value"
  (onChange)="onHandleToggleSMS($event)">
</monkey-toggle>

Prerequisites

The main feature of this project is to allow changing the application theme, such as primary colors and error colors. For this, it is necessary to have a file called monkey-style-guide-settings.json at the root of your project's assets folder.

For example:

Settings Json Screen Shot

Content of monkey-style-guide-settings.json:

{
  "theme": {
    "title": "Monkey Exchange",
    "favicon": "assets/favicon.svg"
  },
  "colors": {
    "theme": {
      "main": "#034EA2",
      "100": "#F5FAFF",
      "200": "#D7EAFE",
      "300": "#A5CFFE",
      "400": "#72B4FD",
      "500": "#4099FC",
      "600": "#0F7EFB",
      "700": "#0465D2",
      "800": "#023064",
      "900": "#023064",
      "contrast": {
        "main": "white",
        "100": "rgba(black, 0.87)",
        "200": "white",
        "300": "white",
        "400": "white",
        "500": "white",
        "600": "white",
        "700": "white",
        "800": "white",
        "900": "white"
      }
    },
    "error": {
      "main": "#e70c0c",
      "100": "#fbb5b5",
      "200": "#f87f7f",
      "300": "#f53b3b",
      "400": "#f31e1e",
      "500": "#e70c0c",
      "600": "#ca0a0a",
      "700": "#ad0909",
      "800": "#900707",
      "900": "#730606",
      "contrast": {
        "main": "white",
        "100": "rgba(black, 0.87)",
        "200": "rgba(black, 0.87)",
        "300": "white",
        "400": "white",
        "500": "white",
        "600": "white",
        "700": "white",
        "800": "white",
        "900": "white"
      }
    },
    "warning": {
      "main": "#efa30e",
      "100": "#fbe7be",
      "200": "#f8d389",
      "300": "#f4b946",
      "400": "#f2ae29",
      "500": "#efa30e",
      "600": "#d28f0c",
      "700": "#b57c0b",
      "800": "#986809",
      "900": "#7b5407",
      "contrast": {
        "main": "rgba(black, 0.87)",
        "100": "rgba(black, 0.87)",
        "200": "rgba(black, 0.87)",
        "300": "rgba(black, 0.87)",
        "400": "rgba(black, 0.87)",
        "500": "rgba(black, 0.87)",
        "600": "rgba(black, 0.87)",
        "700": "rgba(black, 0.87)",
        "800": "white",
        "900": "white"
      }
    },
    "success": {
      "main": "#00875a",
      "100": "#45ffc1",
      "200": "#0dffae",
      "300": "#00c483",
      "400": "#00a66e",
      "500": "#00875a",
      "600": "#006846",
      "700": "#004a31",
      "800": "#002b1d",
      "900": "#000d08",
      "contrast": {
        "main": "white",
        "100": "rgba(black, 0.87)",
        "200": "rgba(black, 0.87)",
        "300": "rgba(black, 0.87)",
        "400": "white",
        "500": "white",
        "600": "white",
        "700": "white",
        "800": "white",
        "900": "white"
      }
    },
    "question": {
      "main": "#8D38FA",
      "100": "#F4EBFF",
      "200": "#E8D7FE",
      "300": "#D2AFFD",
      "400": "#A460FB",
      "500": "#8D38FA",
      "600": "#7710F9",
      "700": "#5104B3",
      "800": "#2D0264",
      "900": "#1B013C",
      "contrast": {
        "main": "white",
        "100": "rgba(black, 0.87)",
        "200": "rgba(black, 0.87)",
        "300": "rgba(black, 0.87)",
        "400": "white",
        "500": "white",
        "600": "white",
        "700": "white",
        "800": "white",
        "900": "white"
      }
    }
  }
}

Installation

  1. Install NPM packages:
npm install monkey-style-guide

Usage

Import monkey-style-guide in your style.scss

@import '~monkey-style-guide/assets/scss/theme';

Import MonkeyStyleGuideModule in your app.module.ts

import { MonkeyStyleGuideModule } from 'monkey-style-guide';

@NgModule({
  declarations: [AppComponent],
  imports: [MonkeyStyleGuideModule],
  bootstrap: [AppComponent],
})
export class AppModule {}

Than call the bootstrap method in your app.component.ts

import { Component } from '@angular/core';
import { MonkeyStyleGuideSettingsService } from 'monkey-style-guide';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent {
  constructor(private settingsService: MonkeyStyleGuideSettingsService) {
    this.settingsService.bootstrap('');
  }
}
2.0.198

14 days ago

2.0.197

2 months ago

2.0.196

2 months ago

2.0.195

2 months ago

2.0.194

2 months ago

2.0.193

2 months ago

2.0.192

3 months ago

2.0.191

3 months ago

2.0.190

4 months ago

2.0.189

5 months ago

2.0.188

7 months ago

2.0.187

7 months ago

2.0.186

8 months ago

2.0.185

8 months ago

2.0.184

9 months ago

2.0.183

9 months ago

2.0.179

10 months ago

2.0.178

10 months ago

2.0.177

12 months ago

2.0.180

10 months ago

2.0.182

9 months ago

2.0.181

9 months ago

2.0.176

1 year ago

2.0.175

1 year ago

2.0.173

1 year ago

2.0.172

1 year ago

2.0.171

2 years ago

2.0.170

2 years ago

2.0.169

2 years ago

2.0.168

2 years ago

2.0.167

2 years ago

2.0.166

2 years ago

2.0.165

2 years ago

2.0.164

2 years ago

2.0.159

2 years ago

2.0.158

2 years ago

2.0.157

2 years ago

2.0.155

2 years ago

2.0.154

2 years ago

2.0.153

2 years ago

2.0.152

2 years ago

2.0.163

2 years ago

2.0.162

2 years ago

2.0.161

2 years ago

2.0.160

2 years ago

2.0.151

2 years ago

2.0.150

2 years ago

2.0.139

2 years ago

2.0.149

2 years ago

2.0.148

2 years ago

2.0.147

2 years ago

2.0.146

2 years ago

2.0.145

2 years ago

2.0.144

2 years ago

2.0.143

2 years ago

2.0.142

2 years ago

2.0.141

2 years ago

2.0.140

2 years ago

2.0.138

2 years ago

2.0.137

2 years ago

2.0.136

2 years ago

2.0.135

2 years ago

2.0.134

2 years ago

2.0.133

2 years ago

2.0.132

2 years ago

2.0.131

2 years ago

2.0.130

2 years ago

2.0.129

2 years ago

2.0.128

2 years ago

2.0.127

2 years ago

2.0.126

2 years ago

2.0.125

2 years ago

2.0.124

2 years ago

2.0.123

2 years ago

2.0.88

2 years ago

2.0.89

2 years ago

2.0.86

2 years ago

2.0.84

2 years ago

2.0.85

2 years ago

2.0.82

2 years ago

2.0.83

2 years ago

2.0.80

2 years ago

2.0.81

2 years ago

2.0.99

2 years ago

2.0.97

2 years ago

2.0.98

2 years ago

2.0.95

2 years ago

2.0.96

2 years ago

2.0.94

2 years ago

2.0.91

2 years ago

2.0.92

2 years ago

2.0.90

2 years ago

2.0.109

2 years ago

2.0.119

2 years ago

2.0.118

2 years ago

2.0.117

2 years ago

2.0.116

2 years ago

2.0.115

2 years ago

2.0.114

2 years ago

2.0.113

2 years ago

2.0.112

2 years ago

2.0.111

2 years ago

2.0.110

2 years ago

2.0.122

2 years ago

2.0.121

2 years ago

2.0.120

2 years ago

2.0.108

2 years ago

2.0.107

2 years ago

2.0.106

2 years ago

2.0.105

2 years ago

2.0.104

2 years ago

2.0.103

2 years ago

2.0.102

2 years ago

2.0.101

2 years ago

2.0.100

2 years ago

2.0.48

3 years ago

2.0.49

3 years ago

2.0.47

3 years ago

2.0.59

3 years ago

2.0.57

3 years ago

2.0.58

3 years ago

2.0.55

3 years ago

2.0.56

3 years ago

2.0.53

3 years ago

2.0.54

3 years ago

2.0.51

3 years ago

2.0.52

3 years ago

2.0.50

3 years ago

2.0.69

3 years ago

2.0.79

2 years ago

2.0.77

2 years ago

2.0.78

2 years ago

2.0.75

3 years ago

2.0.76

3 years ago

2.0.73

3 years ago

2.0.74

3 years ago

2.0.71

3 years ago

2.0.72

3 years ago

2.0.70

3 years ago

2.0.46

3 years ago

2.0.44

3 years ago

2.0.45

3 years ago

2.0.43

3 years ago

2.0.42

3 years ago

2.0.40

3 years ago

2.0.41

3 years ago

2.0.39

3 years ago

2.0.37

3 years ago

2.0.38

3 years ago

2.0.35

3 years ago

2.0.34

3 years ago

2.0.26

3 years ago

2.0.27

3 years ago

2.0.25

3 years ago

2.0.22

3 years ago

2.0.23

3 years ago

2.0.21

3 years ago

2.0.28

3 years ago

2.0.29

3 years ago

2.0.33

3 years ago

2.0.31

3 years ago

2.0.32

3 years ago

2.0.30

3 years ago

2.0.18

3 years ago

2.0.20

3 years ago

2.0.15

3 years ago

2.0.16

3 years ago

2.0.13

3 years ago

2.0.14

3 years ago

2.0.17

3 years ago

2.0.11

3 years ago

2.0.12

3 years ago

2.0.10

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

0.0.291

3 years ago

1.0.0

3 years ago

0.0.290

3 years ago

0.0.279

3 years ago

0.0.274

3 years ago

0.0.273

3 years ago

0.0.272

3 years ago

0.0.278

3 years ago

0.0.277

3 years ago

0.0.276

3 years ago

0.0.275

3 years ago

0.0.285

3 years ago

0.0.284

3 years ago

0.0.283

3 years ago

0.0.282

3 years ago

0.0.289

3 years ago

0.0.288

3 years ago

0.0.287

3 years ago

0.0.286

3 years ago

0.0.281

3 years ago

0.0.280

3 years ago

0.0.271

3 years ago

0.0.270

3 years ago

0.0.269

3 years ago

0.0.268

3 years ago

0.0.267

3 years ago

0.0.266

3 years ago

0.0.263

3 years ago

0.0.262

3 years ago

0.0.261

3 years ago

0.0.260

3 years ago

0.0.265

3 years ago

0.0.264

3 years ago

0.0.259

3 years ago

0.0.258

3 years ago

0.0.257

3 years ago

0.0.252

3 years ago

0.0.251

3 years ago

0.0.256

3 years ago

0.0.255

3 years ago

0.0.254

3 years ago

0.0.253

3 years ago

0.0.249

3 years ago

0.0.248

3 years ago

0.0.247

3 years ago

0.0.246

3 years ago

0.0.250

3 years ago

0.0.245

3 years ago

0.0.244

3 years ago

0.0.243

3 years ago

0.0.242

3 years ago

0.0.241

3 years ago

0.0.240

3 years ago

0.0.239

3 years ago

0.0.238

3 years ago

0.0.237

3 years ago

0.0.236

3 years ago

0.0.235

3 years ago

0.0.234

3 years ago

0.0.233

3 years ago

0.0.232

3 years ago

0.0.230

3 years ago

0.0.231

3 years ago

0.0.229

3 years ago

0.0.228

3 years ago

0.0.227

3 years ago

0.0.226

3 years ago

0.0.225

3 years ago

0.0.224

3 years ago

0.0.223

3 years ago

0.0.222

3 years ago

0.0.221

3 years ago

0.0.220

3 years ago

0.0.219

3 years ago

0.0.218

3 years ago

0.0.217

3 years ago

0.0.216

3 years ago

0.0.215

3 years ago

0.0.209

3 years ago

0.0.208

3 years ago

0.0.213

3 years ago

0.0.212

3 years ago

0.0.211

3 years ago

0.0.207

3 years ago

0.0.206

3 years ago

0.0.205

3 years ago

0.0.204

3 years ago

0.0.203

3 years ago

0.0.202

3 years ago

0.0.201

3 years ago

0.0.200

3 years ago

0.0.199

3 years ago

0.0.198

3 years ago

0.0.197

3 years ago

0.0.196

3 years ago

0.0.195

3 years ago

0.0.194

3 years ago

0.0.192

3 years ago

0.0.191

3 years ago

0.0.190

3 years ago

0.0.189

3 years ago

0.0.188

3 years ago

0.0.187

3 years ago

0.0.186

3 years ago

0.0.185

3 years ago

0.0.184

3 years ago

0.0.183

3 years ago

0.0.182

3 years ago

0.0.181

3 years ago

0.0.180

3 years ago

0.0.179

3 years ago

0.0.178

3 years ago

0.0.177

3 years ago

0.0.176

3 years ago

0.0.175

3 years ago

0.0.174

3 years ago

0.0.173

3 years ago

0.0.172

3 years ago

0.0.170

3 years ago

0.0.169

3 years ago

0.0.168

3 years ago

0.0.167

3 years ago

0.0.164

3 years ago

0.0.163

3 years ago

0.0.166

3 years ago

0.0.165

3 years ago

0.0.159

3 years ago

0.0.158

3 years ago

0.0.153

3 years ago

0.0.157

3 years ago

0.0.155

3 years ago

0.0.154

3 years ago

0.0.162

3 years ago

0.0.161

3 years ago

0.0.160

3 years ago

0.0.152

3 years ago

0.0.151

3 years ago

0.0.150

3 years ago

0.0.149

3 years ago

0.0.148

3 years ago

0.0.147

3 years ago

0.0.146

3 years ago

0.0.145

3 years ago

0.0.144

3 years ago

0.0.143

3 years ago

0.0.142

3 years ago

0.0.141

3 years ago

0.0.140

3 years ago

0.0.139

3 years ago

0.0.138

3 years ago

0.0.137

3 years ago

0.0.136

3 years ago

0.0.135

3 years ago

0.0.134

3 years ago

0.0.133

3 years ago

0.0.132

3 years ago

0.0.129

3 years ago

0.0.131

3 years ago

0.0.130

3 years ago

0.0.128

3 years ago

0.0.127

3 years ago

0.0.126

3 years ago

0.0.125

3 years ago

0.0.124

3 years ago

0.0.123

3 years ago

0.0.122

3 years ago

0.0.121

3 years ago

0.0.120

3 years ago

0.0.119

3 years ago

0.0.118

3 years ago

0.0.117

3 years ago

0.0.116

3 years ago

0.0.115

3 years ago

0.0.114

3 years ago

0.0.113

3 years ago

0.0.112

3 years ago

0.0.111

3 years ago

0.0.110

3 years ago

0.0.106

3 years ago

0.0.104

3 years ago

0.0.109

3 years ago

0.0.108

3 years ago

0.0.103

3 years ago

0.0.101

3 years ago

0.0.100

3 years ago

0.0.99

3 years ago

0.0.98

3 years ago

0.0.97

4 years ago

0.0.96

4 years ago

0.0.95

4 years ago

0.0.93

4 years ago

0.0.94

4 years ago

0.0.92

4 years ago

0.0.90

4 years ago

0.0.91

4 years ago

0.0.85

4 years ago

0.0.86

4 years ago

0.0.87

4 years ago

0.0.88

4 years ago

0.0.89

4 years ago

0.0.84

4 years ago

0.0.81

4 years ago

0.0.82

4 years ago

0.0.80

4 years ago

0.0.79

4 years ago

0.0.78

4 years ago

0.0.77

4 years ago

0.0.76

4 years ago

0.0.75

4 years ago

0.0.73

4 years ago

0.0.74

4 years ago

0.0.72

4 years ago

0.0.71

4 years ago

0.0.70

4 years ago

0.0.69

4 years ago

0.0.68

4 years ago

0.0.65

4 years ago

0.0.67

4 years ago

0.0.64

4 years ago

0.0.63

4 years ago

0.0.62

4 years ago

0.0.60

4 years ago

0.0.61

4 years ago

0.0.59

4 years ago

0.0.58

4 years ago

0.0.56

4 years ago

0.0.55

4 years ago

0.0.53

4 years ago

0.0.54

4 years ago

0.0.52

4 years ago

0.0.51

4 years ago

0.0.50

4 years ago

0.0.49

4 years ago

0.0.48

4 years ago

0.0.47

4 years ago

0.0.46

4 years ago

0.0.45

4 years ago

0.0.44

4 years ago

0.0.43

4 years ago

0.0.42

4 years ago

0.0.41

4 years ago

0.0.40

4 years ago

0.0.39

4 years ago

0.0.38

4 years ago

0.0.37

4 years ago

0.0.36

4 years ago

0.0.35

4 years ago

0.0.33

4 years ago

0.0.34

4 years ago

0.0.32

4 years ago

0.0.30

4 years ago

0.0.31

4 years ago

0.0.29

4 years ago

0.0.20

4 years ago

0.0.21

4 years ago

0.0.22

4 years ago

0.0.23

4 years ago

0.0.24

4 years ago

0.0.25

4 years ago

0.0.19

4 years ago

0.0.26

4 years ago

0.0.27

4 years ago

0.0.28

4 years ago

0.0.18

4 years ago

0.0.16

4 years ago

0.0.17

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.3

4 years ago

0.0.4

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago