0.0.67 • Published 9 months ago

ngp-modal v0.0.67

Weekly downloads
-
License
-
Repository
-
Last release
9 months ago

ngp-modal

required

  • install
  npm i ngp-modal ngp-core bootstrap
  • bootstrap

insert in angular.json

            "styles": [
              "src/styles.css",
              "./node_modules/bootstrap/dist/css/bootstrap.min.css"
            ]

insert in your app.module.ts

    imports: [
  BrowserModule,
  AppRoutingModule,
  NgpModalModule,
  NgpCoreModule
]

Modal template builder

  • ngp-event: button close modal when clicked (shape cross if in ngp-header)
  • ngp-header: part of header
  • ngp-footer: part of footer
  • ngp-title: part of modal-title
  • ng-template in header/footer

Modal opener/closer

controller

ViewChild

export class ModalValidatorComponent implements OnInit {
  @ViewChild('modal')
  private modal?: ModalController;
  
  open(){ this.modal?.open() }
  close(){ this.modal?.close() }
}
<ngp-modal #modal></ngp-modal>

listener

import {BehaviorSubject} from 'rxjs';
import {ModalEventType} from './modal-event-type';

export class ModalValidatorComponent implements OnInit {
  listen = new BehaviorSubject<ModalEventType.OPEN | ModalEventType.CLOSE>(ModalEventType.CLOSE);

  open() {
    this.listen.next(ModalEventType.OPEN);
  }

  close() {
    this.listen.next(ModalEventType.CLOSE);
  }
}
<ngp-modal [listen]="listen"></ngp-modal>

validator

function load

  load(Observable)
  loading(boolean)

Modal

create modal dialog bootstrap

<ngp-modal footer-enable="false" close-enable="false" [listen]="observableOpenClose">
  <ng-container ngp-header>
    <div class="modal-title">
      title modal
    </div>
    <button (ngp-event)="closing($event)"></button> <!-- cross close -->
  </ng-container>
  any element insert in body
</ngp-modal>
<ngp-modal footer-enable="false" [listen]="observableOpenClose">
  <div ngp-title>title modal</div>
  any element insert in body
</ngp-modal>

modal-example.png

Modal validator

expose your request with 3 possibility accept/refuse/ignored

<ngp-modal-validator accept="Accept" refuse="Refused" (accepted)="receiveAccept($event)" (canceled)="receiveCancel($event)"
                     [listen]="observableOpenClose" ignored-enable="false">
  validator body
</ngp-modal-validator>

modal-validator-example.png

Modal Reducer

modal reducer, when reduce remove backdrop

<ngp-modal-reducer [listen]="observableOpenClose" [header-reduce]="headerReduce">
</ngp-modal-reducer>

<ng-template #headerReduce>
  modal header reduce
</ng-template>

modal-reduce-explode.png modal-reduce-reducing.png

Modal loader

open loader bootstrap round or circle

<ngp-loader></ngp-loader>

Event

type

  • OPEN => modal open
  • CLOSE => modal close
  • IGNORED => cross close for validator
  • ACCEPTED => valid validator
  • CANCELED => cancel validator
  • MAXIMIZED => click on maximize button for Reducer
  • MINIMIZED => click on minimize button for Reducer
  • LOADING => start load
  • FINISH => stop load

content

export interface ModalEvent<T extends ModalEventType> {
  type: T;
  name?: string; // id modal
}

listener event

  this.modalService.receiveEvent(): Observable<ModalEvent<ModalEventType>>
this.modalService.receiveValidator(): Observable<ModalEvent<ModalEventType.REFUSED | ModalEventType.ACCEPTED | ModalEventType.IGNORED>>
this.modalService.receiveLoad(): Observable<ModalEvent<ModalEventType.LOADING | ModalEventType.FINISH>>
this.modalService.receiveControl(): Observable<ModalEvent<ModalEventType.OPEN |ModalEventType.CLOSE>>
this.modalService.receiveReducer(): Observable<ModalEvent<ModalEventType.MAXIMIZED | ModalEventType.MINIMIZED>>

parameter

all parameters exist with format string: example > boolean = boolean | 'true' | 'false'

  • modal

name: ngp-modal

nametypedescriptiondefault
titlestringtitle in header
stylestringput custom style on modal''
idstringid to modal
listenObservable<OPEN/CLOSE>could open and close modal
headerTemplateReftemplate for header
eventsignalall interaction with modal
footerTemplateRefreplace button close in footer
classstringclass add modal => .modal.add''
body-enablebooleanshow bodytrue
backdrop-enablebooleanshow backdroptrue
event-service-enablebooleansend event in modalServicetrue
timeoutTimeouttime with unit to keep open modal
timenumbertime to keep open modal default ms
unitTimeoutUnitunit to convert timems
activebooleandefault openfalse
close-footer-enablebooleanshow button close in footertrue
header-enablebooleanshow headertrue
close-enablebooleanshow cross in headertrue
decorator-enablebooleanshow only backdrop with transparent modalfalse
footer-enablebooleanshow footertrue
centerbooleancenter modaltrue
scrollablebooleancontent is scrollablefalse
  • validator

name: ngp-modal-validator

nametypedescriptiondefault
acceptedsignalclick on button accept
canceledsignalclick on button cancel
ignoredsignalclick on button ignored
acceptstringlabel button acceptedok
cancelstringlabel button canceledcancel
ignored-enablebooleanenable cross button to ignoredtrue
titlestringtitle in header
idstringid to modal
listenObservable<OPEN/CLOSE>could open and close modal
headerTemplateReftemplate for header
classstringclass add modal => .modal.add''
body-enablebooleanshow bodytrue
eventsend ModalEvent objectall interaction with modal
header-enablebooleanshow headertrue
activebooleandefault openfalse
centerbooleancenter modaltrue
scrollablebooleancontent is scrollablefalse
  • reducer

name: ngp-modal-reducer

nametypedescriptiondefault
title-reducestringtitle show when reduce
header-reduceTemplateReftemplate show when reduce
reducingEventthrow when reduce modal
expandingEventthrow when expand modal
titlestringtitle in header
idstringid to modal
listenObservable<OPEN/CLOSE>could open and close modal
headerTemplateReftemplate for header
classstringclass add modal => .modal.add''
eventsignalall interaction with modal
footerTemplateRefreplace button close in footer
activebooleandefault openfalse
footer-enablebooleanshow footertrue
centerbooleancenter modaltrue
scrollablebooleancontent is scrollablefalse
close-footer-enablebooleanshow button close in footertrue
close-enablebooleanshow cross in headertrue
0.0.62

12 months ago

0.0.63

12 months ago

0.0.64

12 months ago

0.0.65

12 months ago

0.0.66

12 months ago

0.0.67

9 months ago

0.0.61

12 months ago

0.0.60

1 year ago

0.0.59

1 year ago

0.0.58

2 years ago

0.0.51

2 years ago

0.0.52

2 years ago

0.0.53

2 years ago

0.0.54

2 years ago

0.0.55

2 years ago

0.0.56

2 years ago

0.0.57

2 years ago

0.0.40

2 years ago

0.0.41

2 years ago

0.0.42

2 years ago

0.0.43

2 years ago

0.0.44

2 years ago

0.0.45

2 years ago

0.0.46

2 years ago

0.0.47

2 years ago

0.0.37

2 years ago

0.0.38

2 years ago

0.0.39

2 years ago

0.0.30

2 years ago

0.0.31

2 years ago

0.0.32

2 years ago

0.0.33

2 years ago

0.0.34

2 years ago

0.0.35

2 years ago

0.0.36

2 years ago

0.0.28

2 years ago

0.0.29

2 years ago

0.0.48

2 years ago

0.0.49

2 years ago

0.0.24

2 years ago

0.0.25

2 years ago

0.0.26

2 years ago

0.0.27

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago