14.4.0 • Published 1 year ago

ngx-spa-utilities v14.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

This library was generated with Angular CLI version 14.0.0.

Installation

Install ngx-spa-utilities from npm:

npm install bootstrap notiflix ngx-spa-utilities

Install ngx-spa-utilities from yarn:

yarn add bootstrap notiflix ngx-spa-utilities

Destroy Service

@Component({
  ...
  providers: [DestroyService]
})
export class ProductComponent implements OnInit {
  
  constructor(
    private cartService: CartService,
    private destroy: DestroyService) { }

  ngOnInit(): void {
    this.cartService.getCart()
      .pipe(takeUntil(this.destroy.destroyed$))
      .subscribe({...});
  }
}

Notiflix Service

@Component({
  ...
})
export class AppComponent implements OnInit {
  
  constructor(private notiflixService: NgxNotiflixService) { }

  ngOnInit(): void {
    this.notiflixService.init({
      // Custom OK button
      okButton: 'Okie', 

      // Custom Cancel button
      cancelButton: 'Oh No',

      // Custom loading svg
      loadingSvgUrl: 'assets/img/loading.svg',

      // Custom loading style
      loadingType: 'custom',

      // Custom loading color
      loadingColor: '#ff5549',

      // Custom font-family
      fontFamily: 'Roboto'
    });

    // Fire to show a success notification
    this.notiflixService.success('Hello, World.');
  }

All Functions

// Init
init(): void

// Notify
notifySuccess(): void
notifyError(): void
notifyWarning(): void
notifyInfo(): void

// Confirm
confirmSuccess(): void
confirmError(): void
confirmWarning(): void
confirmInfo(): void

// Ask
askSuccess(): void
askError(): void
askWarning(): void
askInfo(): void

// Promt
promptSuccess(): void
promptError(): void
promptWarning(): void
promptInfo(): void

// Report
reportSuccess(): void
reportError(): void
reportInfo(): void
reportWarning(): void

// Loading
showLoading(): void
hideLoading(): void

// Block
showBlock(): void
hideBlock(): void

Interfaces

export interface NotiflixCustom {
  okButton?: string;
  cancelButton?: string;
  loadingSvgUrl?: string;
  loadingType?: 'standard' | 'hourglass' | 'circle' | 'arrows' | 'dots' | 'pulse' | 'custom';
  loadingColor?: string;
  fontFamily?: string;
}

Function Utilitity

@Component({...})
export class ProductComponent implements OnInit {
  id: string = '';

  constructor(private fu: FunctionUtility) { }

  ngOnInit(): void {
    this.id = this.fu.nextID();
  }
}

All Functions

today(): string
nextID(): string
toSeq(input: Date): string
toStringDate(input: Date): string
toStringTime(input: Date): string
toStringDateTime(input: Date): string
toStringYearMonth(input: Date): string
toStringShortMonth(input: Date): string
getParentUrl(url: string, backLevel: number = 1): string
toStringLeadingZeros(input: number, targetLength: number): string

toDate(input: string): Date
toUTCDate(input: Date): Date
toEndDate(input: Date): Date
toBeginDate(input: Date): Date
toLastDateOfYear(input: Date): Date
toLastDateOfMonth(input: Date): Date
toFirstDateOfYear(input: Date): Date
toFirstDateOfMonth(input: Date): Date

toParams(formValue: any): HttpParams

toFormData(formValue: any): FormData

calculatePagination(pagination: Pagination): void

Key Value Utility

export interface KeyValueUtility {
  key?: any;
  value?: string;
  value_vi?: string;
  value_en?: string;
  value_zh?: string;
  optional?: any;
}

Operation Result

export interface OperationResult {
  error?: string;
  isSuccess?: boolean;
  data?: any;
}

Pagination Utility

export interface Pagination {
  totalCount: number;
  totalPage: number;
  pageNumber: number;
  pageSize: number;
  skip: number;
  isPaging: boolean;
}

export interface PaginationParam {
  pageNumber: number;
  pageSize: number;
  isPaging: boolean;
}

export class PaginationResult<T> {
  result: T[] = [];
  pagination: Pagination = <Pagination>{};
}

Media Uploader

Installation

In angular.json:

{
  ...
  "architect": {
    "build": {
      "options": {
        "assets": [
          "src/favicon.ico",
          "src/assets",
          {
            "glob": "**/*",
            "input": "node_modules/ngx-spa-utilities/assets",
            "output": "assets"
          }
        ],
        "styles": [
          "node_modules/bootstrap/scss/bootstrap.scss",
          "node_modules/notiflix/dist/notiflix-3.2.5.min.css",
          "src/styles.scss"
        ],
        "scripts": [
          "node_modules/bootstrap/dist/js/bootstrap.bundle.min.js",
          "node_modules/notiflix/dist/notiflix-3.2.5.min.js"
        ]
      }
    }
  }
  ...
}

In *.module.ts:

import { MediaUploaderComponent } from 'ngx-spa-utilities';

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

In *.component.html:

<media-uploader
  #mediaUploader
  [src]="modal.src"
  [height]="10"
  [maxSize]="50000"
  [copy]="true"
  [crop]="true"
  [remove]="true"
  [preview]="true"
  [disabled]="false"
  [confirmRemove]="true"
  [accept]="'.jpg, .jpeg, .png, .svg'"
  [(file)]="modal.file"
  (result)="handleResult($event)">
</media-uploader>

In *.component.ts:

@Component({...})
export class AppComponent {
  @ViewChild('mediaUploader') mediaUploader!: MediaUploaderComponent;
  model: Model = <Model>{};

  handleResult(event: OperationResult): void {
    // Do something here...
  }

  reset(): void {
    // Reset uploader
    this.mediaUploader.reset();

    // Do something here...
  }
}

interface Model {
  src: string;
  file: File;
}
14.3.0

1 year ago

14.4.0

1 year ago

14.2.0

2 years ago

14.2.1

2 years ago

14.3.0-beta.5

2 years ago

14.3.0-beta.4

2 years ago

14.3.0-beta.3

2 years ago

14.3.0-beta.2

2 years ago

14.3.0-beta.1

2 years ago

14.1.9

2 years ago

14.1.8

2 years ago

14.1.7

2 years ago

14.1.6

2 years ago

14.1.5

2 years ago

14.1.4

2 years ago

14.1.3

2 years ago

14.1.2

2 years ago

14.1.1

2 years ago

14.1.0

2 years ago

14.1.0-beta9

2 years ago

14.1.0-beta8

2 years ago

14.1.0-beta7

2 years ago

14.1.0-beta6

2 years ago

14.1.0-beta5

2 years ago

14.1.0-beta4

2 years ago

0.0.0-watch

2 years ago

14.1.0-beta3

2 years ago

14.1.0-beta2

2 years ago

14.1.0-beta1

2 years ago

14.0.1

2 years ago