ngx-progress-indicator
Version:
A progress indicator library for [Angular](https://angular.io/) apps.
1 lines • 8.35 kB
Source Map (JSON)
{"version":3,"file":"ngx-progress-indicator.mjs","sources":["../../../projects/ngx-progress-indicator/src/lib/ngx-progress-indicator-config.model.ts","../../../projects/ngx-progress-indicator/src/lib/ngx-progress-indicator.module.ts","../../../projects/ngx-progress-indicator/src/lib/ngx-progress-indicator.service.ts","../../../projects/ngx-progress-indicator/src/public-api.ts","../../../projects/ngx-progress-indicator/src/ngx-progress-indicator.ts"],"sourcesContent":["export class NgxProgressIndicatorConfig {\n /**\n * The size (height) of the progress indicator.\n * Numeric values get converted to px. */\n size!: number | string;\n /**\n * Color of the progress indicator. Also used for the glow\n * around the indicator. */\n color!: string;\n /**\n * Class name used for the progress indicator element. */\n className!: string;\n /**\n * How many milliseconds to wait before the progress indicator\n * animation starts after calling .start(). */\n delay!: number;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NgxProgressIndicatorConfig } from './ngx-progress-indicator-config.model';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class NgxProgressIndicatorModule {\n static forRoot(\n config?: Partial<NgxProgressIndicatorConfig>\n ): ModuleWithProviders<NgxProgressIndicatorModule> {\n return {\n ngModule: NgxProgressIndicatorModule,\n providers: [{ provide: NgxProgressIndicatorConfig, useValue: config }],\n };\n }\n}\n","import { Injectable, Optional, Renderer2, RendererFactory2 } from '@angular/core';\nimport { interval, take } from 'rxjs';\n\nimport { NgxProgressIndicatorConfig } from './ngx-progress-indicator-config.model';\n\nconst assign = Object.assign;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxProgressIndicatorService {\n /** Show the progress bar and begin animating it. */\n public start!: () => void;\n\n /** End the progress bar animation. */\n public finish!: () => void;\n\n private renderer!: Renderer2;\n\n constructor(\n private rendererFactory: RendererFactory2,\n @Optional() config: NgxProgressIndicatorConfig\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n\n this.initialize(config);\n }\n\n private initialize(config: NgxProgressIndicatorConfig): void {\n const options: NgxProgressIndicatorConfig = assign(\n {\n size: 2,\n color: '#0083ff',\n className: 'ngx-progress-indicator',\n delay: 80,\n },\n config\n );\n\n const initialStyle = {\n position: 'fixed',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: 'none',\n borderRadius: 0,\n backgroundColor: config.color,\n zIndex: 10000,\n height:\n typeof config.size === 'number' ? config.size + 'px' : config.size,\n color: config.color,\n opacity: 0,\n width: '0%',\n };\n\n const startedStyle = {\n opacity: 1,\n width: '99%',\n transition: 'width 10s cubic-bezier(0.1, 0.05, 0, 1)',\n };\n\n const finishedStyle = {\n opacity: 0,\n width: '100%',\n transition: 'width 0.1s ease-out, opacity 0.5s ease 0.2s',\n };\n\n const glowStyle = {\n opacity: 0.4,\n boxShadow: '3px 0 8px',\n height: '100%',\n };\n\n let parent!: HTMLElement;\n\n this.start = () => {\n if (parent && parent.parentNode) {\n this.renderer.removeChild(parent.parentNode, parent);\n }\n\n parent = this.renderer.createElement('div');\n parent.className = options.className + ' stopped';\n\n this.renderer.appendChild(document.body, parent);\n\n assign(parent.style, initialStyle);\n\n let child = this.renderer.createElement('div');\n child.className = 'glow';\n this.renderer.appendChild(parent, child);\n assign(child.style, glowStyle);\n\n interval(options.delay)\n .pipe(take(1))\n .subscribe({\n next: () => {\n parent.className = options.className + ' started';\n assign(parent.style, startedStyle);\n },\n });\n\n parent.scrollTop = 0;\n };\n\n this.finish = () => {\n if (parent) {\n parent.className = options.className + ' finished';\n assign(parent.style, finishedStyle);\n }\n };\n }\n}\n","/*\n * Public API Surface of ngx-progress-indicator\n */\n\n// export * from './lib/ngx-progress-indicator.component';\nexport * from './lib/ngx-progress-indicator-config.model';\nexport * from './lib/ngx-progress-indicator.module';\nexport * from './lib/ngx-progress-indicator.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxProgressIndicatorConfig"],"mappings":";;;;MAAa,0BAA0B,CAAA;AAgBtC;;MCPY,0BAA0B,CAAA;IACrC,OAAO,OAAO,CACZ,MAA4C,EAAA;QAE5C,OAAO;AACL,YAAA,QAAQ,EAAE,0BAA0B;YACpC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;SACvE,CAAC;KACH;+GARU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;gHAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;ACHD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;MAKhB,2BAA2B,CAAA;IAStC,WACU,CAAA,eAAiC,EAC7B,MAAkC,EAAA;QADtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAkB;AAGzC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEhE,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACzB;AAEO,IAAA,UAAU,CAAC,MAAkC,EAAA;QACnD,MAAM,OAAO,GAA+B,MAAM,CAChD;AACE,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,wBAAwB;AACnC,YAAA,KAAK,EAAE,EAAE;SACV,EACD,MAAM,CACP,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,MAAM,CAAC,KAAK;AAC7B,YAAA,MAAM,EAAE,KAAK;YACb,MAAM,EACJ,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI;YACpE,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,UAAU,EAAE,yCAAyC;SACtD,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,UAAU,EAAE,6CAA6C;SAC1D,CAAC;AAEF,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,MAAM,EAAE,MAAM;SACf,CAAC;AAEF,QAAA,IAAI,MAAoB,CAAC;AAEzB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAK;AAChB,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;gBAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACtD,aAAA;YAED,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;YAElD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAEjD,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAEnC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC/C,YAAA,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,YAAA,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAE/B,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,MAAK;oBACT,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;AAClD,oBAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;iBACpC;AACF,aAAA,CAAC,CAAC;AAEL,YAAA,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,GAAG,MAAK;AACjB,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;AACnD,gBAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACrC,aAAA;AACH,SAAC,CAAC;KACH;+GArGU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAYI,QAAQ;;;ACrBb;;AAEG;AAEH;;ACJA;;AAEG;;;;"}