From bfa4f2ec9100203cc95f3d66b2ea3a64b2cbaacf Mon Sep 17 00:00:00 2001 From: Tiago Kayaya Date: Thu, 5 Nov 2020 16:43:01 +0100 Subject: [PATCH] Refified processService methods; Add approve page and criate its layout; Finish functionality for list approve page --- src/app/home/home-routing.module.ts | 11 +- src/app/models/event.model.ts | 1 - src/app/pages/agenda/agenda-routing.module.ts | 34 +- .../approve-event-modal-routing.module.ts | 17 + .../approve-event-modal.module.ts | 20 + .../approve-event-modal.page.html | 52 + .../approve-event-modal.page.scss | 26 + .../approve-event-modal.page.spec.ts | 24 + .../approve-event-modal.page.ts | 75 + src/app/pages/chat/chat.page.ts | 2 - .../events/event-detail/event-detail.page.ts | 1 + .../event-list/event-list-routing.module.ts | 17 + .../event-list/event-list.module.ts | 20 + .../event-list/event-list.page.html | 63 + .../event-list/event-list.page.scss | 73 + .../event-list/event-list.page.spec.ts | 24 + .../event-list/event-list.page.ts | 109 + .../gabinete-digital-routing.module.ts | 6 +- .../gabinete-digital.page.html | 15 + .../gabinete-digital/gabinete-digital.page.ts | 12 + src/app/services/attachments.service.ts | 6 +- src/app/services/events.service.ts | 2 +- src/app/services/processes.service.ts | 43 +- .../Gabinete Digital_files/2.js.download | 961 + .../images/Gabinete Digital_files/all.min.css | 5 + .../Gabinete Digital_files/common.js.download | 543 + src/assets/images/Gabinete Digital_files/css2 | 756 + ...odule_pages-login-login-module.js.download | 3215 + .../event-list-event-list-module.js.download | 228 + .../focus-visible-15ada7f7-js.js.download | 61 + .../home-home-module.js.download | 527 + .../index-index-module.js.download | 151 + .../keyboard-dd970efc-js.js.download | 153 + .../Gabinete Digital_files/main.js.download | 561 + ...igital-gabinete-digital-module.js.download | 196 + .../pages-login-login-module.js.download | 281 + .../polyfills.js.download | 6156 + .../runtime.js.download | 224 + .../saved_resource.html | 1313 + .../Gabinete Digital_files/styles.js.download | 500 + .../swipe-back-0a6a44c8-js.js.download | 71 + .../tap-click-252af35a-js.js.download | 186 + .../Gabinete Digital_files/vendor.js.download | 144182 +++++++++++++++ src/environments/environment.ts | 2 +- 44 files changed, 160897 insertions(+), 28 deletions(-) create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal-routing.module.ts create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal.module.ts create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal.page.spec.ts create mode 100644 src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts create mode 100644 src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts create mode 100644 src/app/pages/gabinete-digital/event-list/event-list.module.ts create mode 100644 src/app/pages/gabinete-digital/event-list/event-list.page.html create mode 100644 src/app/pages/gabinete-digital/event-list/event-list.page.scss create mode 100644 src/app/pages/gabinete-digital/event-list/event-list.page.spec.ts create mode 100644 src/app/pages/gabinete-digital/event-list/event-list.page.ts create mode 100644 src/assets/images/Gabinete Digital_files/2.js.download create mode 100644 src/assets/images/Gabinete Digital_files/all.min.css create mode 100644 src/assets/images/Gabinete Digital_files/common.js.download create mode 100644 src/assets/images/Gabinete Digital_files/css2 create mode 100644 src/assets/images/Gabinete Digital_files/default_home-home-module_pages-chat-chat-module_pages-login-login-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/event-list-event-list-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/focus-visible-15ada7f7-js.js.download create mode 100644 src/assets/images/Gabinete Digital_files/home-home-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/index-index-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/keyboard-dd970efc-js.js.download create mode 100644 src/assets/images/Gabinete Digital_files/main.js.download create mode 100644 src/assets/images/Gabinete Digital_files/pages-gabinete-digital-gabinete-digital-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/pages-login-login-module.js.download create mode 100644 src/assets/images/Gabinete Digital_files/polyfills.js.download create mode 100644 src/assets/images/Gabinete Digital_files/runtime.js.download create mode 100644 src/assets/images/Gabinete Digital_files/saved_resource.html create mode 100644 src/assets/images/Gabinete Digital_files/styles.js.download create mode 100644 src/assets/images/Gabinete Digital_files/swipe-back-0a6a44c8-js.js.download create mode 100644 src/assets/images/Gabinete Digital_files/tap-click-252af35a-js.js.download create mode 100644 src/assets/images/Gabinete Digital_files/vendor.js.download diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index d2ab39539..114a9bb7f 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -91,7 +91,16 @@ const routes: Routes = [ loadChildren: ()=> import('../pages/events/event-detail/event-detail.module').then(m => m.EventDetailPageModule), } ] - } + }, + { + path:'event-list', + children: [ + { + path:'', + loadChildren: ()=> import('../pages/gabinete-digital/event-list/event-list.module').then(m => m.EventListPageModule) + }, + ] + }, ] }, { diff --git a/src/app/models/event.model.ts b/src/app/models/event.model.ts index cca9bfb8d..b6be60e83 100644 --- a/src/app/models/event.model.ts +++ b/src/app/models/event.model.ts @@ -2,7 +2,6 @@ import { EventBody } from './eventbody.model'; import { EventPerson } from './eventperson.model'; export class Event{ - EventId: string; Subject: string; Body: EventBody; diff --git a/src/app/pages/agenda/agenda-routing.module.ts b/src/app/pages/agenda/agenda-routing.module.ts index f94aca2cb..39936810f 100644 --- a/src/app/pages/agenda/agenda-routing.module.ts +++ b/src/app/pages/agenda/agenda-routing.module.ts @@ -1,17 +1,21 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; - -import { AgendaPage } from './agenda.page'; - -const routes: Routes = [ - { - path: '', - component: AgendaPage +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AgendaPage } from './agenda.page'; + +const routes: Routes = [ + { + path: '', + component: AgendaPage + }, { + path: 'approve-event-modal', + loadChildren: () => import('./approve-event-modal/approve-event-modal.module').then( m => m.ApproveEventModalPageModule) } -]; -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule], -}) -export class AgendaPageRoutingModule {} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AgendaPageRoutingModule {} diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal-routing.module.ts b/src/app/pages/agenda/approve-event-modal/approve-event-modal-routing.module.ts new file mode 100644 index 000000000..79d1874a3 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { ApproveEventModalPage } from './approve-event-modal.page'; + +const routes: Routes = [ + { + path: '', + component: ApproveEventModalPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class ApproveEventModalPageRoutingModule {} diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.module.ts b/src/app/pages/agenda/approve-event-modal/approve-event-modal.module.ts new file mode 100644 index 000000000..339f09346 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { ApproveEventModalPageRoutingModule } from './approve-event-modal-routing.module'; + +import { ApproveEventModalPage } from './approve-event-modal.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + ApproveEventModalPageRoutingModule + ], + declarations: [ApproveEventModalPage] +}) +export class ApproveEventModalPageModule {} diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html new file mode 100644 index 000000000..5b476944c --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html @@ -0,0 +1,52 @@ + + + + + + {{loadedEvent.workflowInstanceDataFields.Subject}} + + + + + +

{{loadedEvent.workflowInstanceDataFields.Location}}

+ {{loadedEvent.workflowInstanceDataFields.Agenda}} +
+ + +

{{loadedEvent.workflowInstanceDataFields.StartDate | date: 'fullDate'}}

+

das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}

+

(Não se repete)

+
+
+ + +

Intervenientes

+

{{loadedEvent.workflowInstanceDataFields.Participants}}

+
+
+ + +

Detalhes

+

MINEC, MINFIN

+
+
+ + +

Documentos

+ + +

Lei do Orçamento Geral do Estado

+

MINEC, MINFIN13/04/2020

+
+
+
+
+
+ + + Emendar + + Aprovar + + diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss new file mode 100644 index 000000000..656aa6661 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss @@ -0,0 +1,26 @@ +.location-detail{ + font-size: 18px; +} +.button-calendar-type{ + width: 91px; + height: 25px; + --border-radius: 12.5px; + --background-color: #ffb703; +} + .button-edit-event { + width: 170px; + height: 44px; + border-radius: 22.5px; + background-color: #e0e9ee; + } + .button-options { + width: 36px; + height: 35px; + object-fit: contain; + } + .button-approve { + width: 170px; + height: 44px; + border-radius: 22.5px; + background-color: #42b9fe; + } \ No newline at end of file diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.spec.ts b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.spec.ts new file mode 100644 index 000000000..a6875656b --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { ApproveEventModalPage } from './approve-event-modal.page'; + +describe('ApproveEventModalPage', () => { + let component: ApproveEventModalPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ApproveEventModalPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(ApproveEventModalPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts new file mode 100644 index 000000000..3c100df59 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts @@ -0,0 +1,75 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { ModalController, NavParams } from '@ionic/angular'; +import { Event } from 'src/app/models/event.model'; +import { ProcessesService } from 'src/app/services/processes.service'; + +@Component({ + selector: 'app-approve-event-modal', + templateUrl: './approve-event-modal.page.html', + styleUrls: ['./approve-event-modal.page.scss'], +}) +export class ApproveEventModalPage implements OnInit { + event: Event; + loadedEvent:any; + serialNumber:string; + + constructor( + private router:Router, + private modalController: ModalController, + private navParams: NavParams, + private processes:ProcessesService, + ) + { + this.serialNumber = this.navParams.get('serialNumber'); + } + + ngOnInit() { + + console.log(this.serialNumber); + this.getTask(); + + this.event = { + EventId: '1', + Subject: 'Reunião do Conselho de Ministros', + Body: null, + Location: 'Palácio Presidencial, Luanda', + CalendarId: 'string', + CalendarName: 'Oficial', + StartDate: new Date, + EndDate: new Date, + EventType: 'Reunião', + Attendees: null, + IsMeeting: true, + IsRecurring: false, + AppointmentState: 2, + TimeZone: '', + Organizer: '', + Categories: null, + HasAttachments: false, + } + + } + close(){ + this.router.navigate(['/home/gabinete-digital']); + this.modalController.dismiss(null); + } + getTask(){ + this.processes.GetTask(this.serialNumber).subscribe(res => { + console.log(res); + this.loadedEvent = res; + }) + + } + editEvent(){ + + } + openOptions(){ + + } + approveEvent(){ + + } + + +} diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts index 2a42f4e6e..655cd54ae 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -38,14 +38,12 @@ export class ChatPage implements OnInit { this.result = this.chatService.getAllPrivateGroups().subscribe((res:any)=>{ this.groupList = res.groups; /* console.log(this.groupList); */ - }); } getConnectedUsers(){ this.result = this.chatService.getAllConnectedUsers().subscribe((res:any)=>{ this.userConnectedList = res.users; console.log(this.userConnectedList); - }); } async starConversation(selectedUser) { diff --git a/src/app/pages/events/event-detail/event-detail.page.ts b/src/app/pages/events/event-detail/event-detail.page.ts index 49cad3e11..6fec41951 100644 --- a/src/app/pages/events/event-detail/event-detail.page.ts +++ b/src/app/pages/events/event-detail/event-detail.page.ts @@ -73,6 +73,7 @@ export class EventDetailPage implements OnInit { { this.pageId = paramMap.get('eventId'); eventid = paramMap.get('eventId'); + } if (paramMap.has("caller")) diff --git a/src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts b/src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts new file mode 100644 index 000000000..ee54ce56a --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { EventListPage } from './event-list.page'; + +const routes: Routes = [ + { + path: '', + component: EventListPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class EventListPageRoutingModule {} diff --git a/src/app/pages/gabinete-digital/event-list/event-list.module.ts b/src/app/pages/gabinete-digital/event-list/event-list.module.ts new file mode 100644 index 000000000..bc23c444f --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { EventListPageRoutingModule } from './event-list-routing.module'; + +import { EventListPage } from './event-list.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + EventListPageRoutingModule + ], + declarations: [EventListPage] +}) +export class EventListPageModule {} diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.html b/src/app/pages/gabinete-digital/event-list/event-list.page.html new file mode 100644 index 000000000..2ab54369e --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.html @@ -0,0 +1,63 @@ + + + + + + Eventos para Aprovação + + + + + Seu calendário + + + Presidente da República + + + + + + +
+ +
+ + + +
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'hh:mm'}}

+

{{event.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}

+
+
+

{{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.Subject}}

+
+
+
+
+
+
+ +
+ + + +
+
+

{{event.workflowInstanceDataFields.StartDate | date: 'hh:mm'}}

+

{{event.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}

+
+
+

{{event.workflowInstanceDataFields.Location}}

+

{{event.workflowInstanceDataFields.Subject}}

+
+
+
+
+
+
+ +
diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.scss b/src/app/pages/gabinete-digital/event-list/event-list.page.scss new file mode 100644 index 000000000..4c7daf5b6 --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.scss @@ -0,0 +1,73 @@ +ion-item-sliding{ + margin-top: 5px; +} +.Rectangle { + width: 360px; + border-radius: 15px; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07); + border: solid 1px #e9e9e9; + background-color: var(--white); + margin: 0 auto; + padding: 10px; + margin-bottom: 10px; + overflow: auto; +} +.content-Oficial{ + width: 340px; + border-radius: 5px; + border-right: 5px solid #99e47b; + overflow: auto; +} +.content-Pessoal{ + width: 340px; + border-radius: 5px; + border-right: 5px solid #958bfc; + overflow: auto; +} + +.approve-event-time{ + float: left; +} +.approve-event-time p{ + width: 33px; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: var(--Antartic-grey); + margin: 0; + padding: 0; +} +.approve-event-detail{ + float: left; + margin-left: 10px; +} +.approve-event-detail p{ + width: 250px; + font-family: Roboto; + font-size: 13px; + font-weight: normal; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: var(--black); + margin: 0; + padding: 0; +} +.approve-event-detail h3{ + width: 250px; + font-family: Roboto; + font-size: 15px; + font-weight: bold; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: normal; + color: #0d89d1; + margin: 0; + padding: 0; +} diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.spec.ts b/src/app/pages/gabinete-digital/event-list/event-list.page.spec.ts new file mode 100644 index 000000000..0509d5e0e --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { EventListPage } from './event-list.page'; + +describe('EventListPage', () => { + let component: EventListPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EventListPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(EventListPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/gabinete-digital/event-list/event-list.page.ts b/src/app/pages/gabinete-digital/event-list/event-list.page.ts new file mode 100644 index 000000000..601e74a8b --- /dev/null +++ b/src/app/pages/gabinete-digital/event-list/event-list.page.ts @@ -0,0 +1,109 @@ +import { Component, OnInit } from '@angular/core'; +import { EventBody } from 'src/app/models/eventbody.model'; +import { EventPerson } from 'src/app/models/eventperson.model'; +import { Event } from 'src/app/models/event.model'; +import { ProcessesService } from 'src/app/services/processes.service'; +import { ModalController } from '@ionic/angular'; +import { ApproveEventModalPage } from '../../agenda/approve-event-modal/approve-event-modal.page'; + +@Component({ + selector: 'app-event-list', + templateUrl: './event-list.page.html', + styleUrls: ['./event-list.page.scss'], +}) +export class EventListPage implements OnInit { + segment:string; + eventsPRList: any; + eventsMDGPRList: any; + eventPerson: EventPerson; + eventBody: EventBody; + categories: string[]; + serialnumber:string; + + + constructor( + private processes:ProcessesService, + private modalController: ModalController, + ) { } + + ngOnInit() { + this.LoadToApproveEvents(); + + this.segment = "MDGPR"; + this.eventBody = { + BodyType: 'string', + Text: 'string', + } + this.eventPerson = { + EmailAddress: 'tiago.kayaya@hotmail.com', + Name: 'Tiago', + IsRequired: false, + } + + this.eventsPRList = [ + { + EventId: '1', + Subject: 'Reunião do Conselho de Ministros', + Body: this.eventBody, + Location: 'Luanda', + CalendarId: 'string', + CalendarName: 'Oficial', + StartDate: new Date, + EndDate: new Date, + EventType: 'Reunião', + Attendees: null, + IsMeeting: true, + IsRecurring: false, + AppointmentState: 2, + TimeZone: '', + Organizer: '', + Categories: null, + HasAttachments: false, + }, + { + EventId: '1', + Subject: 'Viagem', + Body: this.eventBody, + Location: 'Luanda', + CalendarId: 'string', + CalendarName: 'Pessoal', + StartDate: new Date, + EndDate: new Date, + EventType: 'Reunião', + Attendees: null, + IsMeeting: true, + IsRecurring: false, + AppointmentState: 2, + TimeZone: '', + Organizer: '', + Categories: null, + HasAttachments: false, + }, + ] + + } + + LoadToApproveEvents(){ + this.processes.GetToApprovedEvents('PR','false').subscribe(res=>{ + this.eventsPRList = res; + }); + this.processes.GetToApprovedEvents('MDGPR','false').subscribe(res=>{ + this.eventsMDGPRList = res; + }); + } + async openApproveModal(eventSerialNumber){ + const modal = await this.modalController.create({ + component: ApproveEventModalPage, + componentProps:{ + serialNumber: eventSerialNumber, + }, + cssClass: 'cal-modal', + backdropDismiss: false + }); + + await modal.present(); + + modal.onDidDismiss(); + } + +} diff --git a/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts b/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts index 3e3287a2e..105d85141 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts @@ -11,7 +11,11 @@ const routes: Routes = [ { path: 'expediente', loadChildren: () => import('./expediente/expediente.module').then( m => m.ExpedientePageModule) - } + }, + { + path: 'event-list', + loadChildren: () => import('./event-list/event-list.module').then( m => m.EventListPageModule) + }, ]; diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.html b/src/app/pages/gabinete-digital/gabinete-digital.page.html index 2e57e514e..079564fa9 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.html +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.html @@ -11,6 +11,21 @@ + + Eventos para Aprovação + + + Minha agenda + {{count_ev_md}} + + + Agenda do Presidente + {{count_ev_pr}} + + + + + Expediente diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index db29e2438..1e96e6a2f 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -20,6 +20,8 @@ export class GabineteDigitalPage implements OnInit { count_dip_apr : string; count_dip_pv : string; count_de_pr : string; + count_ev_pr : string; + count_ev_md : string; ngOnInit() { this.LoadCounts(); @@ -31,12 +33,22 @@ export class GabineteDigitalPage implements OnInit { this.showLoader = false; this.count_exp_dailywork = result; }); + this.processesbackend.GetToApprovedEvents('PR','true').subscribe(res=>{ + this.count_ev_pr = res; + }); + this.processesbackend.GetToApprovedEvents('MDGPR','true').subscribe(res=>{ + this.count_ev_md = res; + }); this.count_exp_pp = "-"; this.count_exp_pd = "-"; this.count_dip_apr = "-"; this.count_dip_pv = "-"; this.count_de_pr = "-"; + this.count_ev_md='-'; + + + } doRefresh(event) { diff --git a/src/app/services/attachments.service.ts b/src/app/services/attachments.service.ts index 1c2ab2f90..164e35a85 100644 --- a/src/app/services/attachments.service.ts +++ b/src/app/services/attachments.service.ts @@ -35,11 +35,13 @@ export class AttachmentsService { } getAttachments(source: number, sourceid: string): Observable{ - let geturl = environment.apiURL + 'attachments/GetAttachments'; + let geturl = environment.apiURL + 'attachments/GetSourceName'; let params = new HttpParams(); params = params.set("Source", source.toString()); - params = params.set("SourceId", sourceid); + /* params = params.set("SourceId", sourceid); */ + + let options = { headers: this.headers, diff --git a/src/app/services/events.service.ts b/src/app/services/events.service.ts index 0d324a261..9a77b1bb4 100644 --- a/src/app/services/events.service.ts +++ b/src/app/services/events.service.ts @@ -55,7 +55,7 @@ export class EventsService { } getEvent(eventid: string): Observable{ - let geturl = environment.apiURL + 'calendar/GetEvent'; + let geturl = environment.apiURL + 'Calendar/GetEvent'; let params = new HttpParams(); params = params.set("EventId", eventid); diff --git a/src/app/services/processes.service.ts b/src/app/services/processes.service.ts index ea98642ff..df9023666 100644 --- a/src/app/services/processes.service.ts +++ b/src/app/services/processes.service.ts @@ -23,7 +23,7 @@ export class ProcessesService { GetTasksList(processname:string, onlycount:boolean): Observable { - const geturl = environment.apiURL + 'processes/GetTasksList'; + const geturl = environment.apiURL + 'tasks/List'; let params = new HttpParams(); params = params.set("ProcessName", processname); @@ -39,17 +39,52 @@ export class ProcessesService { GetTask(serialnumber:string): Observable { - const geturl = environment.apiURL + 'processes/GetTask'; + const geturl = environment.apiURL + 'Tasks/FindTask'; let params = new HttpParams(); - params = params.set("TaskSerialNumber", serialnumber); + params = params.set("serialNumber", serialnumber); let options = { headers: this.headers, params: params }; - return this.http.get(`${geturl}`, options); } + GetMDOficialTasks(): Observable + { + const geturl = environment.apiURL + 'tasks/GetMDOficialTasks'; + let options = { + headers: this.headers, + }; + return this.http.get(`${geturl}`, options); + } + + GetMDPersonalTasks(): Observable + { + const geturl = environment.apiURL + 'tasks/GetMDPersonalTasks'; + let options = { + headers: this.headers, + }; + return this.http.get(`${geturl}`, options); + } + + GetToApprovedEvents(categoryname:string, count:string): Observable + { + const geturl = environment.apiURL + 'Tasks/ListByCategory'; + let params = new HttpParams(); + + params = params.set("categoryname", categoryname); + params = params.set("onlyCount", count); + + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + + + + } diff --git a/src/assets/images/Gabinete Digital_files/2.js.download b/src/assets/images/Gabinete Digital_files/2.js.download new file mode 100644 index 000000000..268342b1b --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/2.js.download @@ -0,0 +1,961 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{ + +/***/ "./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js": +/*!**************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js ***! + \**************************************************************/ +/*! exports provided: ion_app, ion_buttons, ion_content, ion_footer, ion_header, ion_router_outlet, ion_title, ion_toolbar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_app", function() { return App; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_buttons", function() { return Buttons; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_content", function() { return Content; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_footer", function() { return Footer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_header", function() { return Header; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_router_outlet", function() { return RouterOutlet; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_title", function() { return ToolbarTitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ion_toolbar", function() { return Toolbar; }); +/* harmony import */ var _index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-44bf8136.js */ "./node_modules/@ionic/core/dist/esm/index-44bf8136.js"); +/* harmony import */ var _ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ionic-global-837be8f3.js */ "./node_modules/@ionic/core/dist/esm/ionic-global-837be8f3.js"); +/* harmony import */ var _helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers-5c745fbd.js */ "./node_modules/@ionic/core/dist/esm/helpers-5c745fbd.js"); +/* harmony import */ var _index_37b50f53_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index-37b50f53.js */ "./node_modules/@ionic/core/dist/esm/index-37b50f53.js"); +/* harmony import */ var _cubic_bezier_685f606a_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cubic-bezier-685f606a.js */ "./node_modules/@ionic/core/dist/esm/cubic-bezier-685f606a.js"); +/* harmony import */ var _theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./theme-3f0b0c04.js */ "./node_modules/@ionic/core/dist/esm/theme-3f0b0c04.js"); +/* harmony import */ var _framework_delegate_d1eb6504_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./framework-delegate-d1eb6504.js */ "./node_modules/@ionic/core/dist/esm/framework-delegate-d1eb6504.js"); + + + + + + + + +const appCss = "html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}"; + +const App = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + } + componentDidLoad() { + { + rIC(() => { + const isHybrid = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["i"])(window, 'hybrid'); + if (!_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('_testing')) { + __webpack_require__.e(/*! import() | tap-click-252af35a-js */ "tap-click-252af35a-js").then(__webpack_require__.bind(null, /*! ./tap-click-252af35a.js */ "./node_modules/@ionic/core/dist/esm/tap-click-252af35a.js")).then(module => module.startTapClick(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"])); + } + if (_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('statusTap', isHybrid)) { + __webpack_require__.e(/*! import() | status-tap-a9bf301d-js */ "status-tap-a9bf301d-js").then(__webpack_require__.bind(null, /*! ./status-tap-a9bf301d.js */ "./node_modules/@ionic/core/dist/esm/status-tap-a9bf301d.js")).then(module => module.startStatusTap()); + } + if (_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('inputShims', needInputShims())) { + __webpack_require__.e(/*! import() | input-shims-b956f530-js */ "input-shims-b956f530-js").then(__webpack_require__.bind(null, /*! ./input-shims-b956f530.js */ "./node_modules/@ionic/core/dist/esm/input-shims-b956f530.js")).then(module => module.startInputShims(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"])); + } + if (_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('hardwareBackButton', isHybrid)) { + Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! ./hardware-back-button-7b6ede21.js */ "./node_modules/@ionic/core/dist/esm/hardware-back-button-7b6ede21.js")).then(module => module.startHardwareBackButton()); + } + if (typeof window !== 'undefined') { + __webpack_require__.e(/*! import() | keyboard-dd970efc-js */ "keyboard-dd970efc-js").then(__webpack_require__.bind(null, /*! ./keyboard-dd970efc.js */ "./node_modules/@ionic/core/dist/esm/keyboard-dd970efc.js")).then(module => module.startKeyboardAssist(window)); + } + __webpack_require__.e(/*! import() | focus-visible-15ada7f7-js */ "focus-visible-15ada7f7-js").then(__webpack_require__.bind(null, /*! ./focus-visible-15ada7f7.js */ "./node_modules/@ionic/core/dist/esm/focus-visible-15ada7f7.js")).then(module => module.startFocusVisible()); + }); + } + } + render() { + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { class: { + [mode]: true, + 'ion-page': true, + 'force-statusbar-padding': _ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('_forceStatusbarPadding'), + } })); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } +}; +const needInputShims = () => { + return Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["i"])(window, 'ios') && Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["i"])(window, 'mobile'); +}; +const rIC = (callback) => { + if ('requestIdleCallback' in window) { + window.requestIdleCallback(callback); + } + else { + setTimeout(callback, 32); + } +}; +App.style = appCss; + +const buttonsIosCss = ".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-start:5px;--padding-end:5px;margin-left:2px;margin-right:2px;height:32px;font-size:17px;font-weight:400}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:28px;line-height:0.67}"; + +const buttonsMdCss = ".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;--padding-start:8px;--padding-end:8px;--box-shadow:none;margin-left:2px;margin-right:2px;height:32px;font-size:14px;font-weight:500}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:48px;height:48px}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}"; + +const Buttons = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + /** + * If true, buttons will disappear when its + * parent toolbar has fully collapsed if the toolbar + * is not the first toolbar. If the toolbar is the + * first toolbar, the buttons will be hidden and will + * only be shown once all toolbars have fully collapsed. + * + * Only applies in `ios` mode with `collapse` set to + * `true` on `ion-header`. + * + * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles) + */ + this.collapse = false; + } + render() { + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { class: { + [mode]: true, + ['buttons-collapse']: this.collapse + } })); + } +}; +Buttons.style = { + ios: buttonsIosCss, + md: buttonsMdCss +}; + +const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-y{-ms-touch-action:pan-y;touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{-ms-touch-action:pan-x;touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{-ms-touch-action:auto;touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}"; + +const Content = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + this.ionScrollStart = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionScrollStart", 7); + this.ionScroll = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionScroll", 7); + this.ionScrollEnd = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionScrollEnd", 7); + this.isScrolling = false; + this.lastScroll = 0; + this.queued = false; + this.cTop = -1; + this.cBottom = -1; + // Detail is used in a hot loop in the scroll event, by allocating it here + // V8 will be able to inline any read/write to it since it's a monomorphic class. + // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html + this.detail = { + scrollTop: 0, + scrollLeft: 0, + type: 'scroll', + event: undefined, + startX: 0, + startY: 0, + startTime: 0, + currentX: 0, + currentY: 0, + velocityX: 0, + velocityY: 0, + deltaX: 0, + deltaY: 0, + currentTime: 0, + data: undefined, + isScrolling: true, + }; + /** + * If `true`, the content will scroll behind the headers + * and footers. This effect can easily be seen by setting the toolbar + * to transparent. + */ + this.fullscreen = false; + /** + * If you want to enable the content scrolling in the X axis, set this property to `true`. + */ + this.scrollX = false; + /** + * If you want to disable the content scrolling in the Y axis, set this property to `false`. + */ + this.scrollY = true; + /** + * Because of performance reasons, ionScroll events are disabled by default, in order to enable them + * and start listening from (ionScroll), set this property to `true`. + */ + this.scrollEvents = false; + } + disconnectedCallback() { + this.onScrollEnd(); + } + onAppLoad() { + this.resize(); + } + onClick(ev) { + if (this.isScrolling) { + ev.preventDefault(); + ev.stopPropagation(); + } + } + shouldForceOverscroll() { + const { forceOverscroll } = this; + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + return forceOverscroll === undefined + ? mode === 'ios' && Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["i"])('ios') + : forceOverscroll; + } + resize() { + if (this.fullscreen) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["f"])(() => this.readDimensions()); + } + else if (this.cTop !== 0 || this.cBottom !== 0) { + this.cTop = this.cBottom = 0; + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["j"])(this); + } + } + readDimensions() { + const page = getPageElement(this.el); + const top = Math.max(this.el.offsetTop, 0); + const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0); + const dirty = top !== this.cTop || bottom !== this.cBottom; + if (dirty) { + this.cTop = top; + this.cBottom = bottom; + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["j"])(this); + } + } + onScroll(ev) { + const timeStamp = Date.now(); + const shouldStart = !this.isScrolling; + this.lastScroll = timeStamp; + if (shouldStart) { + this.onScrollStart(); + } + if (!this.queued && this.scrollEvents) { + this.queued = true; + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["f"])(ts => { + this.queued = false; + this.detail.event = ev; + updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart); + this.ionScroll.emit(this.detail); + }); + } + } + /** + * Get the element where the actual scrolling takes place. + * This element can be used to subscribe to `scroll` events or manually modify + * `scrollTop`. However, it's recommended to use the API provided by `ion-content`: + * + * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events + * and `scrollToPoint()` to scroll the content into a certain point. + */ + getScrollElement() { + return Promise.resolve(this.scrollEl); + } + /** + * Scroll to the top of the component. + * + * @param duration The amount of time to take scrolling to the top. Defaults to `0`. + */ + scrollToTop(duration = 0) { + return this.scrollToPoint(undefined, 0, duration); + } + /** + * Scroll to the bottom of the component. + * + * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`. + */ + scrollToBottom(duration = 0) { + const y = this.scrollEl.scrollHeight - this.scrollEl.clientHeight; + return this.scrollToPoint(undefined, y, duration); + } + /** + * Scroll by a specified X/Y distance in the component. + * + * @param x The amount to scroll by on the horizontal axis. + * @param y The amount to scroll by on the vertical axis. + * @param duration The amount of time to take scrolling by that amount. + */ + scrollByPoint(x, y, duration) { + return this.scrollToPoint(x + this.scrollEl.scrollLeft, y + this.scrollEl.scrollTop, duration); + } + /** + * Scroll to a specified X/Y location in the component. + * + * @param x The point to scroll to on the horizontal axis. + * @param y The point to scroll to on the vertical axis. + * @param duration The amount of time to take scrolling to that point. Defaults to `0`. + */ + async scrollToPoint(x, y, duration = 0) { + const el = this.scrollEl; + if (duration < 32) { + if (y != null) { + el.scrollTop = y; + } + if (x != null) { + el.scrollLeft = x; + } + return; + } + let resolve; + let startTime = 0; + const promise = new Promise(r => resolve = r); + const fromY = el.scrollTop; + const fromX = el.scrollLeft; + const deltaY = y != null ? y - fromY : 0; + const deltaX = x != null ? x - fromX : 0; + // scroll loop + const step = (timeStamp) => { + const linearTime = Math.min(1, ((timeStamp - startTime) / duration)) - 1; + const easedT = Math.pow(linearTime, 3) + 1; + if (deltaY !== 0) { + el.scrollTop = Math.floor((easedT * deltaY) + fromY); + } + if (deltaX !== 0) { + el.scrollLeft = Math.floor((easedT * deltaX) + fromX); + } + if (easedT < 1) { + // do not use DomController here + // must use nativeRaf in order to fire in the next frame + // TODO: remove as any + requestAnimationFrame(step); + } + else { + resolve(); + } + }; + // chill out for a frame first + requestAnimationFrame(ts => { + startTime = ts; + step(ts); + }); + return promise; + } + onScrollStart() { + this.isScrolling = true; + this.ionScrollStart.emit({ + isScrolling: true + }); + if (this.watchDog) { + clearInterval(this.watchDog); + } + // watchdog + this.watchDog = setInterval(() => { + if (this.lastScroll < Date.now() - 120) { + this.onScrollEnd(); + } + }, 100); + } + onScrollEnd() { + clearInterval(this.watchDog); + this.watchDog = null; + if (this.isScrolling) { + this.isScrolling = false; + this.ionScrollEnd.emit({ + isScrolling: false + }); + } + } + render() { + const { scrollX, scrollY } = this; + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + const forceOverscroll = this.shouldForceOverscroll(); + const transitionShadow = (mode === 'ios' && _ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('experimentalTransitionShadow', true)); + this.resize(); + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { class: Object.assign(Object.assign({}, Object(_theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__["c"])(this.color)), { [mode]: true, 'content-sizing': Object(_theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__["h"])('ion-popover', this.el), 'overscroll': forceOverscroll }), style: { + '--offset-top': `${this.cTop}px`, + '--offset-bottom': `${this.cBottom}px`, + } }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { id: "background-content", part: "background" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("main", { class: { + 'inner-scroll': true, + 'scroll-x': scrollX, + 'scroll-y': scrollY, + 'overscroll': (scrollX || scrollY) && forceOverscroll + }, ref: el => this.scrollEl = el, onScroll: (this.scrollEvents) ? ev => this.onScroll(ev) : undefined, part: "scroll" }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null)), transitionShadow ? (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "transition-effect" }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "transition-cover" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "transition-shadow" }))) : null, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", { name: "fixed" }))); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } +}; +const getParentElement = (el) => { + if (el.parentElement) { + // normal element with a parent element + return el.parentElement; + } + if (el.parentNode && el.parentNode.host) { + // shadow dom's document fragment + return el.parentNode.host; + } + return null; +}; +const getPageElement = (el) => { + const tabs = el.closest('ion-tabs'); + if (tabs) { + return tabs; + } + const page = el.closest('ion-app,ion-page,.ion-page,page-inner'); + if (page) { + return page; + } + return getParentElement(el); +}; +// ******** DOM READ **************** +const updateScrollDetail = (detail, el, timestamp, shouldStart) => { + const prevX = detail.currentX; + const prevY = detail.currentY; + const prevT = detail.currentTime; + const currentX = el.scrollLeft; + const currentY = el.scrollTop; + const timeDelta = timestamp - prevT; + if (shouldStart) { + // remember the start positions + detail.startTime = timestamp; + detail.startX = currentX; + detail.startY = currentY; + detail.velocityX = detail.velocityY = 0; + } + detail.currentTime = timestamp; + detail.currentX = detail.scrollLeft = currentX; + detail.currentY = detail.scrollTop = currentY; + detail.deltaX = currentX - detail.startX; + detail.deltaY = currentY - detail.startY; + if (timeDelta > 0 && timeDelta < 100) { + const velocityX = (currentX - prevX) / timeDelta; + const velocityY = (currentY - prevY) / timeDelta; + detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3; + detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3; + } +}; +Content.style = contentCss; + +const footerIosCss = "ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}"; + +const footerMdCss = "ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md::before{left:0;top:-2px;bottom:auto;background-position:left 0 top 0;position:absolute;width:100%;height:2px;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==\");background-repeat:repeat-x;content:\"\"}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{left:unset;right:unset;right:0}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{background-position:right 0 top 0}.footer-md.ion-no-border::before{display:none}"; + +const Footer = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + /** + * If `true`, the footer will be translucent. + * Only applies when the mode is `"ios"` and the device supports + * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility). + * + * Note: In order to scroll content behind the footer, the `fullscreen` + * attribute needs to be set on the content. + */ + this.translucent = false; + } + render() { + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + const translucent = this.translucent; + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { role: "contentinfo", class: { + [mode]: true, + // Used internally for styling + [`footer-${mode}`]: true, + [`footer-translucent`]: translucent, + [`footer-translucent-${mode}`]: translucent, + } }, mode === 'ios' && translucent && + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "footer-background" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null))); + } +}; +Footer.style = { + ios: footerIosCss, + md: footerMdCss +}; + +const TRANSITION = 'all 0.2s ease-in-out'; +const cloneElement = (tagName) => { + const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`); + if (getCachedEl !== null) { + return getCachedEl; + } + const clonedEl = document.createElement(tagName); + clonedEl.classList.add('ion-cloned-element'); + clonedEl.style.setProperty('display', 'none'); + document.body.appendChild(clonedEl); + return clonedEl; +}; +const createHeaderIndex = (headerEl) => { + if (!headerEl) { + return; + } + const toolbars = headerEl.querySelectorAll('ion-toolbar'); + return { + el: headerEl, + toolbars: Array.from(toolbars).map((toolbar) => { + const ionTitleEl = toolbar.querySelector('ion-title'); + return { + el: toolbar, + background: toolbar.shadowRoot.querySelector('.toolbar-background'), + ionTitleEl, + innerTitleEl: (ionTitleEl) ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null, + ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')) || [] + }; + }) || [] + }; +}; +const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["f"])(() => { + const scrollTop = scrollEl.scrollTop; + const scale = Object(_helpers_5c745fbd_js__WEBPACK_IMPORTED_MODULE_2__["c"])(1, 1 + (-scrollTop / 500), 1.1); + // Native refresher should not cause titles to scale + const nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native'); + if (nativeRefresher === null) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => { + scaleLargeTitles(scrollHeaderIndex.toolbars, scale); + }); + } + }); +}; +const setToolbarBackgroundOpacity = (toolbar, opacity) => { + if (opacity === undefined) { + toolbar.background.style.removeProperty('--opacity'); + } + else { + toolbar.background.style.setProperty('--opacity', opacity.toString()); + } +}; +const handleToolbarBorderIntersection = (ev, mainHeaderIndex) => { + if (!ev[0].isIntersecting) { + return; + } + /** + * There is a bug in Safari where overflow scrolling on a non-body element + * does not always reset the scrollTop position to 0 when letting go. It will + * set to 1 once the rubber band effect has ended. This causes the background to + * appear slightly on certain app setups. + */ + const scale = (ev[0].intersectionRatio > 0.9) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75; + mainHeaderIndex.toolbars.forEach(toolbar => { + setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale); + }); +}; +/** + * If toolbars are intersecting, hide the scrollable toolbar content + * and show the primary toolbar content. If the toolbars are not intersecting, + * hide the primary toolbar content and show the scrollable toolbar content + */ +const handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex) => { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => { + handleToolbarBorderIntersection(ev, mainHeaderIndex); + const event = ev[0]; + const intersection = event.intersectionRect; + const intersectionArea = intersection.width * intersection.height; + const rootArea = event.rootBounds.width * event.rootBounds.height; + const isPageHidden = intersectionArea === 0 && rootArea === 0; + const leftDiff = Math.abs(intersection.left - event.boundingClientRect.left); + const rightDiff = Math.abs(intersection.right - event.boundingClientRect.right); + const isPageTransitioning = intersectionArea > 0 && (leftDiff >= 5 || rightDiff >= 5); + if (isPageHidden || isPageTransitioning) { + return; + } + if (event.isIntersecting) { + setHeaderActive(mainHeaderIndex, false); + setHeaderActive(scrollHeaderIndex); + } + else { + /** + * There is a bug with IntersectionObserver on Safari + * where `event.isIntersecting === false` when cancelling + * a swipe to go back gesture. Checking the intersection + * x, y, width, and height provides a workaround. This bug + * does not happen when using Safari + Web Animations, + * only Safari + CSS Animations. + */ + const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0); + if (hasValidIntersection) { + setHeaderActive(mainHeaderIndex); + setHeaderActive(scrollHeaderIndex, false); + setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]); + } + } + }); +}; +const setHeaderActive = (headerIndex, active = true) => { + if (active) { + headerIndex.el.classList.remove('header-collapse-condense-inactive'); + } + else { + headerIndex.el.classList.add('header-collapse-condense-inactive'); + } +}; +const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => { + toolbars.forEach(toolbar => { + const ionTitle = toolbar.ionTitleEl; + const titleDiv = toolbar.innerTitleEl; + if (!ionTitle || ionTitle.size !== 'large') { + return; + } + titleDiv.style.transition = (transition) ? TRANSITION : ''; + titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`; + }); +}; + +const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}"; + +const headerMdCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md::after{left:0;bottom:-5px;background-position:left 0 top -2px;position:absolute;width:100%;height:5px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==);background-repeat:repeat-x;content:\"\"}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{left:unset;right:unset;right:0}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{background-position:right 0 top -2px}.header-collapse-condense{display:none}.header-md.ion-no-border::after{display:none}"; + +const Header = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + this.collapsibleHeaderInitialized = false; + /** + * If `true`, the header will be translucent. + * Only applies when the mode is `"ios"` and the device supports + * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility). + * + * Note: In order to scroll content behind the header, the `fullscreen` + * attribute needs to be set on the content. + */ + this.translucent = false; + } + async componentDidLoad() { + await this.checkCollapsibleHeader(); + } + async componentDidUpdate() { + await this.checkCollapsibleHeader(); + } + componentDidUnload() { + this.destroyCollapsibleHeader(); + } + async checkCollapsibleHeader() { + // Determine if the header can collapse + const hasCollapse = this.collapse === 'condense'; + const canCollapse = (hasCollapse && Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this) === 'ios') ? hasCollapse : false; + if (!canCollapse && this.collapsibleHeaderInitialized) { + this.destroyCollapsibleHeader(); + } + else if (canCollapse && !this.collapsibleHeaderInitialized) { + const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner'); + const contentEl = (pageEl) ? pageEl.querySelector('ion-content') : null; + // Cloned elements are always needed in iOS transition + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => { + const title = cloneElement('ion-title'); + title.size = 'large'; + cloneElement('ion-back-button'); + }); + await this.setupCollapsibleHeader(contentEl, pageEl); + } + } + destroyCollapsibleHeader() { + if (this.intersectionObserver) { + this.intersectionObserver.disconnect(); + this.intersectionObserver = undefined; + } + if (this.scrollEl && this.contentScrollCallback) { + this.scrollEl.removeEventListener('scroll', this.contentScrollCallback); + this.contentScrollCallback = undefined; + } + if (this.collapsibleMainHeader) { + this.collapsibleMainHeader.classList.remove('header-collapse-main'); + this.collapsibleMainHeader = undefined; + } + } + async setupCollapsibleHeader(contentEl, pageEl) { + if (!contentEl || !pageEl) { + console.error('ion-header requires a content to collapse, make sure there is an ion-content.'); + return; + } + if (typeof IntersectionObserver === 'undefined') { + return; + } + this.scrollEl = await contentEl.getScrollElement(); + const headers = pageEl.querySelectorAll('ion-header'); + this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense'); + if (!this.collapsibleMainHeader) { + return; + } + const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader); + const scrollHeaderIndex = createHeaderIndex(this.el); + if (!mainHeaderIndex || !scrollHeaderIndex) { + return; + } + setHeaderActive(mainHeaderIndex, false); + mainHeaderIndex.toolbars.forEach(toolbar => { + setToolbarBackgroundOpacity(toolbar, 0); + }); + /** + * Handle interaction between toolbar collapse and + * showing/hiding content in the primary ion-header + * as well as progressively showing/hiding the main header + * border as the top-most toolbar collapses or expands. + */ + const toolbarIntersection = (ev) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex); }; + this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] }); + this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el); + /** + * Handle scaling of large iOS titles and + * showing/hiding border on last toolbar + * in primary header + */ + this.contentScrollCallback = () => { handleContentScroll(this.scrollEl, scrollHeaderIndex, contentEl); }; + this.scrollEl.addEventListener('scroll', this.contentScrollCallback); + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => { + if (this.collapsibleMainHeader !== undefined) { + this.collapsibleMainHeader.classList.add('header-collapse-main'); + } + }); + this.collapsibleHeaderInitialized = true; + } + render() { + const { translucent } = this; + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + const collapse = this.collapse || 'none'; + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { role: "banner", class: { + [mode]: true, + // Used internally for styling + [`header-${mode}`]: true, + [`header-translucent`]: this.translucent, + [`header-collapse-${collapse}`]: true, + [`header-translucent-${mode}`]: this.translucent, + } }, mode === 'ios' && translucent && + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "header-background" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null))); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } +}; +Header.style = { + ios: headerIosCss, + md: headerMdCss +}; + +const routeOutletCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}"; + +const RouterOutlet = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + this.ionNavWillLoad = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionNavWillLoad", 7); + this.ionNavWillChange = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionNavWillChange", 3); + this.ionNavDidChange = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionNavDidChange", 3); + this.animationEnabled = true; + /** + * The mode determines which platform styles to use. + */ + this.mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + /** + * If `true`, the router-outlet should animate the transition of components. + */ + this.animated = true; + } + swipeHandlerChanged() { + if (this.gesture) { + this.gesture.enable(this.swipeHandler !== undefined); + } + } + async connectedCallback() { + this.gesture = (await __webpack_require__.e(/*! import() | swipe-back-0a6a44c8-js */ "swipe-back-0a6a44c8-js").then(__webpack_require__.bind(null, /*! ./swipe-back-0a6a44c8.js */ "./node_modules/@ionic/core/dist/esm/swipe-back-0a6a44c8.js"))).createSwipeBackGesture(this.el, () => !!this.swipeHandler && this.swipeHandler.canStart() && this.animationEnabled, () => this.swipeHandler && this.swipeHandler.onStart(), step => this.ani && this.ani.progressStep(step), (shouldComplete, step, dur) => { + if (this.ani) { + this.animationEnabled = false; + this.ani.onFinish(() => { + this.animationEnabled = true; + if (this.swipeHandler) { + this.swipeHandler.onEnd(shouldComplete); + } + }, { oneTimeCallback: true }); + // Account for rounding errors in JS + let newStepValue = (shouldComplete) ? -0.001 : 0.001; + /** + * Animation will be reversed here, so need to + * reverse the easing curve as well + * + * Additionally, we need to account for the time relative + * to the new easing curve, as `stepValue` is going to be given + * in terms of a linear curve. + */ + if (!shouldComplete) { + this.ani.easing('cubic-bezier(1, 0, 0.68, 0.28)'); + newStepValue += Object(_cubic_bezier_685f606a_js__WEBPACK_IMPORTED_MODULE_4__["g"])([0, 0], [1, 0], [0.68, 0.28], [1, 1], step)[0]; + } + else { + newStepValue += Object(_cubic_bezier_685f606a_js__WEBPACK_IMPORTED_MODULE_4__["g"])([0, 0], [0.32, 0.72], [0, 1], [1, 1], step)[0]; + } + this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur); + } + }); + this.swipeHandlerChanged(); + } + componentWillLoad() { + this.ionNavWillLoad.emit(); + } + disconnectedCallback() { + if (this.gesture) { + this.gesture.destroy(); + this.gesture = undefined; + } + } + /** @internal */ + async commit(enteringEl, leavingEl, opts) { + const unlock = await this.lock(); + let changed = false; + try { + changed = await this.transition(enteringEl, leavingEl, opts); + } + catch (e) { + console.error(e); + } + unlock(); + return changed; + } + /** @internal */ + async setRouteId(id, params, direction, animation) { + const changed = await this.setRoot(id, params, { + duration: direction === 'root' ? 0 : undefined, + direction: direction === 'back' ? 'back' : 'forward', + animationBuilder: animation + }); + return { + changed, + element: this.activeEl + }; + } + /** @internal */ + async getRouteId() { + const active = this.activeEl; + return active ? { + id: active.tagName, + element: active, + } : undefined; + } + async setRoot(component, params, opts) { + if (this.activeComponent === component) { + return false; + } + // attach entering view to DOM + const leavingEl = this.activeEl; + const enteringEl = await Object(_framework_delegate_d1eb6504_js__WEBPACK_IMPORTED_MODULE_6__["a"])(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params); + this.activeComponent = component; + this.activeEl = enteringEl; + // commit animation + await this.commit(enteringEl, leavingEl, opts); + await Object(_framework_delegate_d1eb6504_js__WEBPACK_IMPORTED_MODULE_6__["d"])(this.delegate, leavingEl); + return true; + } + async transition(enteringEl, leavingEl, opts = {}) { + if (leavingEl === enteringEl) { + return false; + } + // emit nav will change event + this.ionNavWillChange.emit(); + const { el, mode } = this; + const animated = this.animated && _ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].getBoolean('animated', true); + const animationBuilder = this.animation || opts.animationBuilder || _ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["c"].get('navAnimation'); + await Object(_index_37b50f53_js__WEBPACK_IMPORTED_MODULE_3__["t"])(Object.assign(Object.assign({ mode, + animated, + enteringEl, + leavingEl, baseEl: el, progressCallback: (opts.progressAnimation + ? ani => this.ani = ani + : undefined) }, opts), { animationBuilder })); + // emit nav changed event + this.ionNavDidChange.emit(); + return true; + } + async lock() { + const p = this.waitPromise; + let resolve; + this.waitPromise = new Promise(r => resolve = r); + if (p !== undefined) { + await p; + } + return resolve; + } + render() { + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null)); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } + static get watchers() { return { + "swipeHandler": ["swipeHandlerChanged"] + }; } +}; +RouterOutlet.style = routeOutletCss; + +const titleIosCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{left:0;top:0;padding-left:90px;padding-right:90px;padding-top:0;padding-bottom:0;position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px}}:host(.title-small){padding-left:9px;padding-right:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-small){padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}:host(.title-large){padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;padding-bottom:6px;font-size:34px;font-weight:700;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-large){padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host-context([dir=rtl]):host(.title-large),:host-context([dir=rtl]).title-large{-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}"; + +const titleMdCss = ":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{padding-left:20px;padding-right:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}"; + +const ToolbarTitle = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + this.ionStyle = Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, "ionStyle", 7); + } + sizeChanged() { + this.emitStyle(); + } + connectedCallback() { + this.emitStyle(); + } + emitStyle() { + const size = this.getSize(); + this.ionStyle.emit({ + [`title-${size}`]: true + }); + } + getSize() { + return (this.size !== undefined) ? this.size : 'default'; + } + render() { + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + const size = this.getSize(); + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { class: Object.assign({ [mode]: true, [`title-${size}`]: true }, Object(_theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__["c"])(this.color)) }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "toolbar-title" }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null)))); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } + static get watchers() { return { + "size": ["sizeChanged"] + }; } +}; +ToolbarTitle.style = { + ios: titleIosCss, + md: titleMdCss +}; + +const toolbarIosCss = ":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}"; + +const toolbarMdCss = ":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(ion-segment){min-height:var(--min-height)}::slotted(.buttons-first-slot){margin-left:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-first-slot){margin-left:unset;-webkit-margin-start:4px;margin-inline-start:4px}}::slotted(.buttons-last-slot){margin-right:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-last-slot){margin-right:unset;-webkit-margin-end:4px;margin-inline-end:4px}}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}"; + +const Toolbar = class { + constructor(hostRef) { + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["r"])(this, hostRef); + this.childrenStyles = new Map(); + } + componentWillLoad() { + const buttons = Array.from(this.el.querySelectorAll('ion-buttons')); + const firstButtons = buttons.find(button => { + return button.slot === 'start'; + }); + if (firstButtons) { + firstButtons.classList.add('buttons-first-slot'); + } + const buttonsReversed = buttons.reverse(); + const lastButtons = buttonsReversed.find(button => button.slot === 'end') || + buttonsReversed.find(button => button.slot === 'primary') || + buttonsReversed.find(button => button.slot === 'secondary'); + if (lastButtons) { + lastButtons.classList.add('buttons-last-slot'); + } + } + childrenStyle(ev) { + ev.stopPropagation(); + const tagName = ev.target.tagName; + const updatedStyles = ev.detail; + const newStyles = {}; + const childStyles = this.childrenStyles.get(tagName) || {}; + let hasStyleChange = false; + Object.keys(updatedStyles).forEach(key => { + const childKey = `toolbar-${key}`; + const newValue = updatedStyles[key]; + if (newValue !== childStyles[childKey]) { + hasStyleChange = true; + } + if (newValue) { + newStyles[childKey] = true; + } + }); + if (hasStyleChange) { + this.childrenStyles.set(tagName, newStyles); + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["j"])(this); + } + } + render() { + const mode = Object(_ionic_global_837be8f3_js__WEBPACK_IMPORTED_MODULE_1__["b"])(this); + const childStyles = {}; + this.childrenStyles.forEach(value => { + Object.assign(childStyles, value); + }); + return (Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["H"], { class: Object.assign(Object.assign({ 'in-toolbar': Object(_theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__["h"])('ion-toolbar', this.el), [mode]: true }, childStyles), Object(_theme_3f0b0c04_js__WEBPACK_IMPORTED_MODULE_5__["c"])(this.color)) }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "toolbar-background" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "toolbar-container" }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", { name: "start" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", { name: "secondary" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("div", { class: "toolbar-content" }, Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", null)), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", { name: "primary" }), Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["h"])("slot", { name: "end" })))); + } + get el() { return Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["i"])(this); } +}; +Toolbar.style = { + ios: toolbarIosCss, + md: toolbarMdCss +}; + + + + +/***/ }) + +}]); +//# sourceMappingURL=2.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/all.min.css b/src/assets/images/Gabinete Digital_files/all.min.css new file mode 100644 index 000000000..f7eacc802 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/all.min.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.14.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/common.js.download b/src/assets/images/Gabinete Digital_files/common.js.download new file mode 100644 index 000000000..7f41e61de --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/common.js.download @@ -0,0 +1,543 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["common"],{ + +/***/ "./node_modules/@ionic/core/dist/esm/button-active-0d5784f9.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/button-active-0d5784f9.js ***! + \*********************************************************************/ +/*! exports provided: c */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createButtonActiveGesture; }); +/* harmony import */ var _index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-44bf8136.js */ "./node_modules/@ionic/core/dist/esm/index-44bf8136.js"); +/* harmony import */ var _index_eea61379_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index-eea61379.js */ "./node_modules/@ionic/core/dist/esm/index-eea61379.js"); +/* harmony import */ var _haptic_7b8ba70a_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./haptic-7b8ba70a.js */ "./node_modules/@ionic/core/dist/esm/haptic-7b8ba70a.js"); + + + + +const createButtonActiveGesture = (el, isButton) => { + let currentTouchedButton; + let initialTouchedButton; + const activateButtonAtPoint = (x, y, hapticFeedbackFn) => { + if (typeof document === 'undefined') { + return; + } + const target = document.elementFromPoint(x, y); + if (!target || !isButton(target)) { + clearActiveButton(); + return; + } + if (target !== currentTouchedButton) { + clearActiveButton(); + setActiveButton(target, hapticFeedbackFn); + } + }; + const setActiveButton = (button, hapticFeedbackFn) => { + currentTouchedButton = button; + if (!initialTouchedButton) { + initialTouchedButton = currentTouchedButton; + } + const buttonToModify = currentTouchedButton; + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => buttonToModify.classList.add('ion-activated')); + hapticFeedbackFn(); + }; + const clearActiveButton = (dispatchClick = false) => { + if (!currentTouchedButton) { + return; + } + const buttonToModify = currentTouchedButton; + Object(_index_44bf8136_js__WEBPACK_IMPORTED_MODULE_0__["c"])(() => buttonToModify.classList.remove('ion-activated')); + /** + * Clicking on one button, but releasing on another button + * does not dispatch a click event in browsers, so we + * need to do it manually here. Some browsers will + * dispatch a click if clicking on one button, dragging over + * another button, and releasing on the original button. In that + * case, we need to make sure we do not cause a double click there. + */ + if (dispatchClick && initialTouchedButton !== currentTouchedButton) { + currentTouchedButton.click(); + } + currentTouchedButton = undefined; + }; + return Object(_index_eea61379_js__WEBPACK_IMPORTED_MODULE_1__["createGesture"])({ + el, + gestureName: 'buttonActiveDrag', + threshold: 0, + onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_7b8ba70a_js__WEBPACK_IMPORTED_MODULE_2__["a"]), + onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_7b8ba70a_js__WEBPACK_IMPORTED_MODULE_2__["b"]), + onEnd: () => { + clearActiveButton(true); + Object(_haptic_7b8ba70a_js__WEBPACK_IMPORTED_MODULE_2__["h"])(); + initialTouchedButton = undefined; + } + }); +}; + + + + +/***/ }), + +/***/ "./node_modules/@ionic/core/dist/esm/framework-delegate-d1eb6504.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/framework-delegate-d1eb6504.js ***! + \**************************************************************************/ +/*! exports provided: a, d */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return attachComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return detachComponent; }); +const attachComponent = async (delegate, container, component, cssClasses, componentProps) => { + if (delegate) { + return delegate.attachViewToDom(container, component, componentProps, cssClasses); + } + if (typeof component !== 'string' && !(component instanceof HTMLElement)) { + throw new Error('framework delegate is missing'); + } + const el = (typeof component === 'string') + ? container.ownerDocument && container.ownerDocument.createElement(component) + : component; + if (cssClasses) { + cssClasses.forEach(c => el.classList.add(c)); + } + if (componentProps) { + Object.assign(el, componentProps); + } + container.appendChild(el); + if (el.componentOnReady) { + await el.componentOnReady(); + } + return el; +}; +const detachComponent = (delegate, element) => { + if (element) { + if (delegate) { + const container = element.parentElement; + return delegate.removeViewFromDom(container, element); + } + element.remove(); + } + return Promise.resolve(); +}; + + + + +/***/ }), + +/***/ "./node_modules/@ionic/core/dist/esm/haptic-7b8ba70a.js": +/*!**************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/haptic-7b8ba70a.js ***! + \**************************************************************/ +/*! exports provided: a, b, c, d, h */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hapticSelectionStart; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return hapticSelectionChanged; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hapticSelection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hapticImpact; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return hapticSelectionEnd; }); +const HapticEngine = { + getEngine() { + const win = window; + return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics); + }, + available() { + return !!this.getEngine(); + }, + isCordova() { + return !!window.TapticEngine; + }, + isCapacitor() { + const win = window; + return !!win.Capacitor; + }, + impact(options) { + const engine = this.getEngine(); + if (!engine) { + return; + } + const style = this.isCapacitor() ? options.style.toUpperCase() : options.style; + engine.impact({ style }); + }, + notification(options) { + const engine = this.getEngine(); + if (!engine) { + return; + } + const style = this.isCapacitor() ? options.style.toUpperCase() : options.style; + engine.notification({ style }); + }, + selection() { + this.impact({ style: 'light' }); + }, + selectionStart() { + const engine = this.getEngine(); + if (!engine) { + return; + } + if (this.isCapacitor()) { + engine.selectionStart(); + } + else { + engine.gestureSelectionStart(); + } + }, + selectionChanged() { + const engine = this.getEngine(); + if (!engine) { + return; + } + if (this.isCapacitor()) { + engine.selectionChanged(); + } + else { + engine.gestureSelectionChanged(); + } + }, + selectionEnd() { + const engine = this.getEngine(); + if (!engine) { + return; + } + if (this.isCapacitor()) { + engine.selectionEnd(); + } + else { + engine.gestureSelectionEnd(); + } + } +}; +/** + * Trigger a selection changed haptic event. Good for one-time events + * (not for gestures) + */ +const hapticSelection = () => { + HapticEngine.selection(); +}; +/** + * Tell the haptic engine that a gesture for a selection change is starting. + */ +const hapticSelectionStart = () => { + HapticEngine.selectionStart(); +}; +/** + * Tell the haptic engine that a selection changed during a gesture. + */ +const hapticSelectionChanged = () => { + HapticEngine.selectionChanged(); +}; +/** + * Tell the haptic engine we are done with a gesture. This needs to be + * called lest resources are not properly recycled. + */ +const hapticSelectionEnd = () => { + HapticEngine.selectionEnd(); +}; +/** + * Use this to indicate success/failure/warning to the user. + * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`) + */ +const hapticImpact = (options) => { + HapticEngine.impact(options); +}; + + + + +/***/ }), + +/***/ "./node_modules/@ionic/core/dist/esm/spinner-configs-c78e170e.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/spinner-configs-c78e170e.js ***! + \***********************************************************************/ +/*! exports provided: S */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return SPINNERS; }); +const spinners = { + 'bubbles': { + dur: 1000, + circles: 9, + fn: (dur, index, total) => { + const animationDelay = `${(dur * index / total) - dur}ms`; + const angle = 2 * Math.PI * index / total; + return { + r: 5, + style: { + 'top': `${9 * Math.sin(angle)}px`, + 'left': `${9 * Math.cos(angle)}px`, + 'animation-delay': animationDelay, + } + }; + } + }, + 'circles': { + dur: 1000, + circles: 8, + fn: (dur, index, total) => { + const step = index / total; + const animationDelay = `${(dur * step) - dur}ms`; + const angle = 2 * Math.PI * step; + return { + r: 5, + style: { + 'top': `${9 * Math.sin(angle)}px`, + 'left': `${9 * Math.cos(angle)}px`, + 'animation-delay': animationDelay, + } + }; + } + }, + 'circular': { + dur: 1400, + elmDuration: true, + circles: 1, + fn: () => { + return { + r: 20, + cx: 48, + cy: 48, + fill: 'none', + viewBox: '24 24 48 48', + transform: 'translate(0,0)', + style: {} + }; + } + }, + 'crescent': { + dur: 750, + circles: 1, + fn: () => { + return { + r: 26, + style: {} + }; + } + }, + 'dots': { + dur: 750, + circles: 3, + fn: (_, index) => { + const animationDelay = -(110 * index) + 'ms'; + return { + r: 6, + style: { + 'left': `${9 - (9 * index)}px`, + 'animation-delay': animationDelay, + } + }; + } + }, + 'lines': { + dur: 1000, + lines: 12, + fn: (dur, index, total) => { + const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`; + const animationDelay = `${(dur * index / total) - dur}ms`; + return { + y1: 17, + y2: 29, + style: { + 'transform': transform, + 'animation-delay': animationDelay, + } + }; + } + }, + 'lines-small': { + dur: 1000, + lines: 12, + fn: (dur, index, total) => { + const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`; + const animationDelay = `${(dur * index / total) - dur}ms`; + return { + y1: 12, + y2: 20, + style: { + 'transform': transform, + 'animation-delay': animationDelay, + } + }; + } + } +}; +const SPINNERS = spinners; + + + + +/***/ }), + +/***/ "./node_modules/@ionic/core/dist/esm/theme-3f0b0c04.js": +/*!*************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/theme-3f0b0c04.js ***! + \*************************************************************/ +/*! exports provided: c, g, h, o */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createColorClasses; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getClassMap; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return hostContext; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return openURL; }); +const hostContext = (selector, el) => { + return el.closest(selector) !== null; +}; +/** + * Create the mode and color classes for the component based on the classes passed in + */ +const createColorClasses = (color) => { + return (typeof color === 'string' && color.length > 0) ? { + 'ion-color': true, + [`ion-color-${color}`]: true + } : undefined; +}; +const getClassList = (classes) => { + if (classes !== undefined) { + const array = Array.isArray(classes) ? classes : classes.split(' '); + return array + .filter(c => c != null) + .map(c => c.trim()) + .filter(c => c !== ''); + } + return []; +}; +const getClassMap = (classes) => { + const map = {}; + getClassList(classes).forEach(c => map[c] = true); + return map; +}; +const SCHEME = /^[a-z][a-z0-9+\-.]*:/; +const openURL = async (url, ev, direction, animation) => { + if (url != null && url[0] !== '#' && !SCHEME.test(url)) { + const router = document.querySelector('ion-router'); + if (router) { + if (ev != null) { + ev.preventDefault(); + } + return router.push(url, direction, animation); + } + } + return false; +}; + + + + +/***/ }), + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html": +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html ***! + \**********************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n \n approve-event-modal\n \n\n\n\n\n\n"); + +/***/ }), + +/***/ "./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss": +/*!********************************************************************************!*\ + !*** ./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss ***! + \********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2FnZW5kYS9hcHByb3ZlLWV2ZW50LW1vZGFsL2FwcHJvdmUtZXZlbnQtbW9kYWwucGFnZS5zY3NzIn0= */"); + +/***/ }), + +/***/ "./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts": +/*!******************************************************************************!*\ + !*** ./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts ***! + \******************************************************************************/ +/*! exports provided: ApproveEventModalPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApproveEventModalPage", function() { return ApproveEventModalPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + + +let ApproveEventModalPage = class ApproveEventModalPage { + constructor() { } + ngOnInit() { + } +}; +ApproveEventModalPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-approve-event-modal', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./approve-event-modal.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./approve-event-modal.page.scss */ "./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.scss")).default] + }) +], ApproveEventModalPage); + + + +/***/ }), + +/***/ "./src/app/services/alert.service.ts": +/*!*******************************************!*\ + !*** ./src/app/services/alert.service.ts ***! + \*******************************************/ +/*! exports provided: AlertService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlertService", function() { return AlertService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + + + +let AlertService = class AlertService { + constructor(alertController) { + this.alertController = alertController; + } + presentAlert(message) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const alert = yield this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Mensagem do sistema', + message: message, + buttons: ['OK'] + }); + yield alert.present(); + }); + } +}; +AlertService.ctorParameters = () => [ + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["AlertController"] } +]; +AlertService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], AlertService); + + + +/***/ }) + +}]); +//# sourceMappingURL=common.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/css2 b/src/assets/images/Gabinete Digital_files/css2 new file mode 100644 index 000000000..d11b86f2d --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/css2 @@ -0,0 +1,756 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEz0dL_nz.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEzQdL_nz.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEzwdL_nz.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEzMdL_nz.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEz8dL_nz.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEz4dL_nz.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrEzAdLw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBCc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxMIzIFKw.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgVxIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/src/assets/images/Gabinete Digital_files/default_home-home-module_pages-chat-chat-module_pages-login-login-module.js.download b/src/assets/images/Gabinete Digital_files/default_home-home-module_pages-chat-chat-module_pages-login-login-module.js.download new file mode 100644 index 000000000..07c4bd7f7 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/default_home-home-module_pages-chat-chat-module_pages-login-login-module.js.download @@ -0,0 +1,3215 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["default~home-home-module~pages-chat-chat-module~pages-login-login-module"],{ + +/***/ "./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js ***! + \**************************************************************************/ +/*! exports provided: CameraSource, CameraDirection, CameraResultType, FilesystemDirectory, FilesystemEncoding, HapticsImpactStyle, HapticsNotificationType, KeyboardStyle, KeyboardResize, ActionSheetOptionStyle, PermissionType, PhotosAlbumType, StatusBarStyle, StatusBarAnimation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CameraSource", function() { return CameraSource; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CameraDirection", function() { return CameraDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CameraResultType", function() { return CameraResultType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilesystemDirectory", function() { return FilesystemDirectory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilesystemEncoding", function() { return FilesystemEncoding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HapticsImpactStyle", function() { return HapticsImpactStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HapticsNotificationType", function() { return HapticsNotificationType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyboardStyle", function() { return KeyboardStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyboardResize", function() { return KeyboardResize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionSheetOptionStyle", function() { return ActionSheetOptionStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PermissionType", function() { return PermissionType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PhotosAlbumType", function() { return PhotosAlbumType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StatusBarStyle", function() { return StatusBarStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StatusBarAnimation", function() { return StatusBarAnimation; }); +var CameraSource; +(function (CameraSource) { + CameraSource["Prompt"] = "PROMPT"; + CameraSource["Camera"] = "CAMERA"; + CameraSource["Photos"] = "PHOTOS"; +})(CameraSource || (CameraSource = {})); +var CameraDirection; +(function (CameraDirection) { + CameraDirection["Rear"] = "REAR"; + CameraDirection["Front"] = "FRONT"; +})(CameraDirection || (CameraDirection = {})); +var CameraResultType; +(function (CameraResultType) { + CameraResultType["Uri"] = "uri"; + CameraResultType["Base64"] = "base64"; + CameraResultType["DataUrl"] = "dataUrl"; +})(CameraResultType || (CameraResultType = {})); +var FilesystemDirectory; +(function (FilesystemDirectory) { + /** + * The Documents directory + * On iOS it's the app's documents directory. + * Use this directory to store user-generated content. + * On Android it's the Public Documents folder, so it's accessible from other apps. + * It's not accesible on Android 10 unless the app enables legacy External Storage + * by adding `android:requestLegacyExternalStorage="true"` in the `application` tag + * in the `AndroidManifest.xml` + */ + FilesystemDirectory["Documents"] = "DOCUMENTS"; + /** + * The Data directory + * On iOS it will use the Documents directory + * On Android it's the directory holding application files. + * Files will be deleted when the application is uninstalled. + */ + FilesystemDirectory["Data"] = "DATA"; + /** + * The Cache directory + * Can be deleted in cases of low memory, so use this directory to write app-specific files + * that your app can re-create easily. + */ + FilesystemDirectory["Cache"] = "CACHE"; + /** + * The external directory + * On iOS it will use the Documents directory + * On Android it's the directory on the primary shared/external + * storage device where the application can place persistent files it owns. + * These files are internal to the applications, and not typically visible + * to the user as media. + * Files will be deleted when the application is uninstalled. + */ + FilesystemDirectory["External"] = "EXTERNAL"; + /** + * The external storage directory + * On iOS it will use the Documents directory + * On Android it's the primary shared/external storage directory. + * It's not accesible on Android 10 unless the app enables legacy External Storage + * by adding `android:requestLegacyExternalStorage="true"` in the `application` tag + * in the `AndroidManifest.xml` + */ + FilesystemDirectory["ExternalStorage"] = "EXTERNAL_STORAGE"; +})(FilesystemDirectory || (FilesystemDirectory = {})); +var FilesystemEncoding; +(function (FilesystemEncoding) { + FilesystemEncoding["UTF8"] = "utf8"; + FilesystemEncoding["ASCII"] = "ascii"; + FilesystemEncoding["UTF16"] = "utf16"; +})(FilesystemEncoding || (FilesystemEncoding = {})); +var HapticsImpactStyle; +(function (HapticsImpactStyle) { + HapticsImpactStyle["Heavy"] = "HEAVY"; + HapticsImpactStyle["Medium"] = "MEDIUM"; + HapticsImpactStyle["Light"] = "LIGHT"; +})(HapticsImpactStyle || (HapticsImpactStyle = {})); +var HapticsNotificationType; +(function (HapticsNotificationType) { + HapticsNotificationType["SUCCESS"] = "SUCCESS"; + HapticsNotificationType["WARNING"] = "WARNING"; + HapticsNotificationType["ERROR"] = "ERROR"; +})(HapticsNotificationType || (HapticsNotificationType = {})); +var KeyboardStyle; +(function (KeyboardStyle) { + KeyboardStyle["Dark"] = "DARK"; + KeyboardStyle["Light"] = "LIGHT"; +})(KeyboardStyle || (KeyboardStyle = {})); +var KeyboardResize; +(function (KeyboardResize) { + KeyboardResize["Body"] = "body"; + KeyboardResize["Ionic"] = "ionic"; + KeyboardResize["Native"] = "native"; + KeyboardResize["None"] = "none"; +})(KeyboardResize || (KeyboardResize = {})); +var ActionSheetOptionStyle; +(function (ActionSheetOptionStyle) { + ActionSheetOptionStyle["Default"] = "DEFAULT"; + ActionSheetOptionStyle["Destructive"] = "DESTRUCTIVE"; + ActionSheetOptionStyle["Cancel"] = "CANCEL"; +})(ActionSheetOptionStyle || (ActionSheetOptionStyle = {})); +// +var PermissionType; +(function (PermissionType) { + PermissionType["Camera"] = "camera"; + PermissionType["Photos"] = "photos"; + PermissionType["Geolocation"] = "geolocation"; + PermissionType["Notifications"] = "notifications"; + PermissionType["ClipboardRead"] = "clipboard-read"; + PermissionType["ClipboardWrite"] = "clipboard-write"; + PermissionType["Microphone"] = "microphone"; +})(PermissionType || (PermissionType = {})); +var PhotosAlbumType; +(function (PhotosAlbumType) { + /** + * Album is a "smart" album (such as Favorites or Recently Added) + */ + PhotosAlbumType["Smart"] = "smart"; + /** + * Album is a cloud-shared album + */ + PhotosAlbumType["Shared"] = "shared"; + /** + * Album is a user-created album + */ + PhotosAlbumType["User"] = "user"; +})(PhotosAlbumType || (PhotosAlbumType = {})); +var StatusBarStyle; +(function (StatusBarStyle) { + /** + * Light text for dark backgrounds. + */ + StatusBarStyle["Dark"] = "DARK"; + /** + * Dark text for light backgrounds. + */ + StatusBarStyle["Light"] = "LIGHT"; +})(StatusBarStyle || (StatusBarStyle = {})); +var StatusBarAnimation; +(function (StatusBarAnimation) { + /** + * No animation during show/hide. + */ + StatusBarAnimation["None"] = "NONE"; + /** + * Slide animation during show/hide. + */ + StatusBarAnimation["Slide"] = "SLIDE"; + /** + * Fade animation during show/hide. + */ + StatusBarAnimation["Fade"] = "FADE"; +})(StatusBarAnimation || (StatusBarAnimation = {})); +//# sourceMappingURL=core-plugin-definitions.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/global.js": +/*!*********************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/global.js ***! + \*********************************************************/ +/*! exports provided: Capacitor, Plugins */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Capacitor", function() { return Capacitor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Plugins", function() { return Plugins; }); +/* harmony import */ var _web_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./web-runtime */ "./node_modules/@capacitor/core/dist/esm/web-runtime.js"); + +// Create our default Capacitor instance, which will be +// overridden on native platforms +var Capacitor = (function (globalThis) { + // Create a new CapacitorWeb instance if one doesn't already exist on globalThis + // Ensure the global is assigned the same Capacitor instance, + // then export Capacitor so it can be imported in other modules + return globalThis.Capacitor = (globalThis.Capacitor || new _web_runtime__WEBPACK_IMPORTED_MODULE_0__["CapacitorWeb"]()); +})( +// figure out the current globalThis, such as "window", "self" or "global" +// ensure errors are not thrown in an node SSR environment or web worker +typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}); +var Plugins = Capacitor.Plugins; + +//# sourceMappingURL=global.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/index.js": +/*!********************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/index.js ***! + \********************************************************/ +/*! exports provided: CameraSource, CameraDirection, CameraResultType, FilesystemDirectory, FilesystemEncoding, HapticsImpactStyle, HapticsNotificationType, KeyboardStyle, KeyboardResize, ActionSheetOptionStyle, PermissionType, PhotosAlbumType, StatusBarStyle, StatusBarAnimation, Capacitor, Plugins, AccessibilityPluginWeb, Accessibility, AppPluginWeb, App, BrowserPluginWeb, Browser, CameraPluginWeb, Camera, ClipboardPluginWeb, Clipboard, FilesystemPluginWeb, Filesystem, GeolocationPluginWeb, Geolocation, DevicePluginWeb, Device, LocalNotificationsPluginWeb, LocalNotifications, SharePluginWeb, Share, ModalsPluginWeb, Modals, MotionPluginWeb, Motion, NetworkPluginWeb, Network, PermissionsPluginWeb, Permissions, SplashScreenPluginWeb, SplashScreen, StoragePluginWeb, Storage, ToastPluginWeb, Toast, registerWebPlugin, WebPluginRegistry, WebPlugins, WebPlugin, mergeWebPlugins, mergeWebPlugin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core-plugin-definitions */ "./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraSource", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["CameraSource"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraDirection", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["CameraDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraResultType", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["CameraResultType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesystemDirectory", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["FilesystemDirectory"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesystemEncoding", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["FilesystemEncoding"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HapticsImpactStyle", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["HapticsImpactStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HapticsNotificationType", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["HapticsNotificationType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardStyle", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["KeyboardStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardResize", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["KeyboardResize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionSheetOptionStyle", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["ActionSheetOptionStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PermissionType", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["PermissionType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PhotosAlbumType", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["PhotosAlbumType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StatusBarStyle", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["StatusBarStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StatusBarAnimation", function() { return _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_0__["StatusBarAnimation"]; }); + +/* harmony import */ var _global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./global */ "./node_modules/@capacitor/core/dist/esm/global.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Capacitor", function() { return _global__WEBPACK_IMPORTED_MODULE_1__["Capacitor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Plugins", function() { return _global__WEBPACK_IMPORTED_MODULE_1__["Plugins"]; }); + +/* harmony import */ var _web_plugins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./web-plugins */ "./node_modules/@capacitor/core/dist/esm/web-plugins.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccessibilityPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["AccessibilityPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Accessibility", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Accessibility"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AppPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["AppPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "App", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["App"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BrowserPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["BrowserPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Browser", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Browser"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["CameraPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Camera", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Camera"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClipboardPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["ClipboardPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Clipboard", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Clipboard"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesystemPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["FilesystemPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Filesystem", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Filesystem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GeolocationPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["GeolocationPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Geolocation", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Geolocation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DevicePluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["DevicePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Device", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Device"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocalNotificationsPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["LocalNotificationsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocalNotifications", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["LocalNotifications"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SharePluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["SharePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Share", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Share"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalsPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["ModalsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modals", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Modals"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MotionPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["MotionPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Motion", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Motion"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NetworkPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["NetworkPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Network", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Network"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PermissionsPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["PermissionsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Permissions", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Permissions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplashScreenPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["SplashScreenPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplashScreen", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["SplashScreen"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StoragePluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["StoragePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Storage", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Storage"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToastPluginWeb", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["ToastPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toast", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["Toast"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerWebPlugin", function() { return _web_plugins__WEBPACK_IMPORTED_MODULE_2__["registerWebPlugin"]; }); + +/* harmony import */ var _web_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./web/index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebPluginRegistry", function() { return _web_index__WEBPACK_IMPORTED_MODULE_3__["WebPluginRegistry"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebPlugins", function() { return _web_index__WEBPACK_IMPORTED_MODULE_3__["WebPlugins"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebPlugin", function() { return _web_index__WEBPACK_IMPORTED_MODULE_3__["WebPlugin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeWebPlugins", function() { return _web_index__WEBPACK_IMPORTED_MODULE_3__["mergeWebPlugins"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeWebPlugin", function() { return _web_index__WEBPACK_IMPORTED_MODULE_3__["mergeWebPlugin"]; }); + + + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/util.js": +/*!*******************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/util.js ***! + \*******************************************************/ +/*! exports provided: extend, uuid4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "uuid4", function() { return uuid4; }); +var extend = function (target) { + var objs = []; + for (var _i = 1; _i < arguments.length; _i++) { + objs[_i - 1] = arguments[_i]; + } + objs.forEach(function (o) { + if (o && typeof (o) === 'object') { + for (var k in o) { + if (o.hasOwnProperty(k)) { + target[k] = o[k]; + } + } + } + }); + return target; +}; +var uuid4 = function () { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +}; +//# sourceMappingURL=util.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web-plugins.js": +/*!**************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web-plugins.js ***! + \**************************************************************/ +/*! exports provided: AccessibilityPluginWeb, Accessibility, AppPluginWeb, App, BrowserPluginWeb, Browser, CameraPluginWeb, Camera, ClipboardPluginWeb, Clipboard, FilesystemPluginWeb, Filesystem, GeolocationPluginWeb, Geolocation, DevicePluginWeb, Device, LocalNotificationsPluginWeb, LocalNotifications, SharePluginWeb, Share, ModalsPluginWeb, Modals, MotionPluginWeb, Motion, NetworkPluginWeb, Network, PermissionsPluginWeb, Permissions, SplashScreenPluginWeb, SplashScreen, StoragePluginWeb, Storage, ToastPluginWeb, Toast, registerWebPlugin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerWebPlugin", function() { return registerWebPlugin; }); +/* harmony import */ var _global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./global */ "./node_modules/@capacitor/core/dist/esm/global.js"); +/* harmony import */ var _web_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./web/index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _web_accessibility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./web/accessibility */ "./node_modules/@capacitor/core/dist/esm/web/accessibility.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccessibilityPluginWeb", function() { return _web_accessibility__WEBPACK_IMPORTED_MODULE_2__["AccessibilityPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Accessibility", function() { return _web_accessibility__WEBPACK_IMPORTED_MODULE_2__["Accessibility"]; }); + +/* harmony import */ var _web_app__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./web/app */ "./node_modules/@capacitor/core/dist/esm/web/app.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AppPluginWeb", function() { return _web_app__WEBPACK_IMPORTED_MODULE_3__["AppPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "App", function() { return _web_app__WEBPACK_IMPORTED_MODULE_3__["App"]; }); + +/* harmony import */ var _web_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./web/browser */ "./node_modules/@capacitor/core/dist/esm/web/browser.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BrowserPluginWeb", function() { return _web_browser__WEBPACK_IMPORTED_MODULE_4__["BrowserPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Browser", function() { return _web_browser__WEBPACK_IMPORTED_MODULE_4__["Browser"]; }); + +/* harmony import */ var _web_camera__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./web/camera */ "./node_modules/@capacitor/core/dist/esm/web/camera.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraPluginWeb", function() { return _web_camera__WEBPACK_IMPORTED_MODULE_5__["CameraPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Camera", function() { return _web_camera__WEBPACK_IMPORTED_MODULE_5__["Camera"]; }); + +/* harmony import */ var _web_clipboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./web/clipboard */ "./node_modules/@capacitor/core/dist/esm/web/clipboard.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClipboardPluginWeb", function() { return _web_clipboard__WEBPACK_IMPORTED_MODULE_6__["ClipboardPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Clipboard", function() { return _web_clipboard__WEBPACK_IMPORTED_MODULE_6__["Clipboard"]; }); + +/* harmony import */ var _web_filesystem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./web/filesystem */ "./node_modules/@capacitor/core/dist/esm/web/filesystem.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesystemPluginWeb", function() { return _web_filesystem__WEBPACK_IMPORTED_MODULE_7__["FilesystemPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Filesystem", function() { return _web_filesystem__WEBPACK_IMPORTED_MODULE_7__["Filesystem"]; }); + +/* harmony import */ var _web_geolocation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./web/geolocation */ "./node_modules/@capacitor/core/dist/esm/web/geolocation.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GeolocationPluginWeb", function() { return _web_geolocation__WEBPACK_IMPORTED_MODULE_8__["GeolocationPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Geolocation", function() { return _web_geolocation__WEBPACK_IMPORTED_MODULE_8__["Geolocation"]; }); + +/* harmony import */ var _web_device__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./web/device */ "./node_modules/@capacitor/core/dist/esm/web/device.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DevicePluginWeb", function() { return _web_device__WEBPACK_IMPORTED_MODULE_9__["DevicePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Device", function() { return _web_device__WEBPACK_IMPORTED_MODULE_9__["Device"]; }); + +/* harmony import */ var _web_local_notifications__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./web/local-notifications */ "./node_modules/@capacitor/core/dist/esm/web/local-notifications.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocalNotificationsPluginWeb", function() { return _web_local_notifications__WEBPACK_IMPORTED_MODULE_10__["LocalNotificationsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocalNotifications", function() { return _web_local_notifications__WEBPACK_IMPORTED_MODULE_10__["LocalNotifications"]; }); + +/* harmony import */ var _web_share__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./web/share */ "./node_modules/@capacitor/core/dist/esm/web/share.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SharePluginWeb", function() { return _web_share__WEBPACK_IMPORTED_MODULE_11__["SharePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Share", function() { return _web_share__WEBPACK_IMPORTED_MODULE_11__["Share"]; }); + +/* harmony import */ var _web_modals__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./web/modals */ "./node_modules/@capacitor/core/dist/esm/web/modals.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModalsPluginWeb", function() { return _web_modals__WEBPACK_IMPORTED_MODULE_12__["ModalsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Modals", function() { return _web_modals__WEBPACK_IMPORTED_MODULE_12__["Modals"]; }); + +/* harmony import */ var _web_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./web/motion */ "./node_modules/@capacitor/core/dist/esm/web/motion.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MotionPluginWeb", function() { return _web_motion__WEBPACK_IMPORTED_MODULE_13__["MotionPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Motion", function() { return _web_motion__WEBPACK_IMPORTED_MODULE_13__["Motion"]; }); + +/* harmony import */ var _web_network__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./web/network */ "./node_modules/@capacitor/core/dist/esm/web/network.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NetworkPluginWeb", function() { return _web_network__WEBPACK_IMPORTED_MODULE_14__["NetworkPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Network", function() { return _web_network__WEBPACK_IMPORTED_MODULE_14__["Network"]; }); + +/* harmony import */ var _web_permissions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./web/permissions */ "./node_modules/@capacitor/core/dist/esm/web/permissions.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PermissionsPluginWeb", function() { return _web_permissions__WEBPACK_IMPORTED_MODULE_15__["PermissionsPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Permissions", function() { return _web_permissions__WEBPACK_IMPORTED_MODULE_15__["Permissions"]; }); + +/* harmony import */ var _web_splash_screen__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./web/splash-screen */ "./node_modules/@capacitor/core/dist/esm/web/splash-screen.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplashScreenPluginWeb", function() { return _web_splash_screen__WEBPACK_IMPORTED_MODULE_16__["SplashScreenPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplashScreen", function() { return _web_splash_screen__WEBPACK_IMPORTED_MODULE_16__["SplashScreen"]; }); + +/* harmony import */ var _web_storage__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./web/storage */ "./node_modules/@capacitor/core/dist/esm/web/storage.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StoragePluginWeb", function() { return _web_storage__WEBPACK_IMPORTED_MODULE_17__["StoragePluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Storage", function() { return _web_storage__WEBPACK_IMPORTED_MODULE_17__["Storage"]; }); + +/* harmony import */ var _web_toast__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./web/toast */ "./node_modules/@capacitor/core/dist/esm/web/toast.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToastPluginWeb", function() { return _web_toast__WEBPACK_IMPORTED_MODULE_18__["ToastPluginWeb"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toast", function() { return _web_toast__WEBPACK_IMPORTED_MODULE_18__["Toast"]; }); + + + + + + + + + + + + + + + + + + + + +Object(_web_index__WEBPACK_IMPORTED_MODULE_1__["mergeWebPlugins"])(_global__WEBPACK_IMPORTED_MODULE_0__["Plugins"]); +var registerWebPlugin = function (plugin) { + Object(_web_index__WEBPACK_IMPORTED_MODULE_1__["mergeWebPlugin"])(_global__WEBPACK_IMPORTED_MODULE_0__["Plugins"], plugin); +}; +//# sourceMappingURL=web-plugins.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web-runtime.js": +/*!**************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web-runtime.js ***! + \**************************************************************/ +/*! exports provided: CapacitorWeb */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CapacitorWeb", function() { return CapacitorWeb; }); +var CapacitorWeb = /** @class */ (function () { + function CapacitorWeb() { + var _this = this; + this.platform = 'web'; + this.isNative = false; + // Need to assign here to avoid having to define every plugin but still + // get the typed benefits of the provided plugins in PluginRegistry + this.Plugins = {}; + // Gracefully degrade in non-Proxy supporting engines, e.g. IE11. This + // effectively means that trying to access an unavailable plugin will + // locally throw, but this is still better than throwing a syntax error. + if (typeof Proxy !== 'undefined') { + // Build a proxy for the Plugins object that returns the "Noop Plugin" + // if a plugin isn't available + this.Plugins = new Proxy(this.Plugins, { + get: function (target, prop) { + if (typeof target[prop] === 'undefined') { + var thisRef_1 = _this; + return new Proxy({}, { + get: function (_target, _prop) { + if (typeof _target[_prop] === 'undefined') { + return thisRef_1.pluginMethodNoop.bind(thisRef_1, _target, _prop, prop); + } + else { + return _target[_prop]; + } + } + }); + } + else { + return target[prop]; + } + } + }); + } + } + CapacitorWeb.prototype.pluginMethodNoop = function (_target, _prop, pluginName) { + return Promise.reject(pluginName + " does not have web implementation."); + }; + CapacitorWeb.prototype.getPlatform = function () { + return this.platform; + }; + CapacitorWeb.prototype.isPluginAvailable = function (name) { + return this.Plugins.hasOwnProperty(name); + }; + CapacitorWeb.prototype.convertFileSrc = function (filePath) { + return filePath; + }; + CapacitorWeb.prototype.handleError = function (e) { + console.error(e); + }; + return CapacitorWeb; +}()); + +//# sourceMappingURL=web-runtime.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/accessibility.js": +/*!********************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/accessibility.js ***! + \********************************************************************/ +/*! exports provided: AccessibilityPluginWeb, Accessibility */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AccessibilityPluginWeb", function() { return AccessibilityPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Accessibility", function() { return Accessibility; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var AccessibilityPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AccessibilityPluginWeb, _super); + function AccessibilityPluginWeb() { + return _super.call(this, { + name: 'Accessibility', + platforms: ['web'] + }) || this; + } + AccessibilityPluginWeb.prototype.isScreenReaderEnabled = function () { + throw new Error('Feature not available in the browser'); + }; + AccessibilityPluginWeb.prototype.speak = function (options) { + if (!('speechSynthesis' in window)) { + return Promise.reject('Browser does not support the Speech Synthesis API'); + } + var utterance = new SpeechSynthesisUtterance(options.value); + if (options.language) { + utterance.lang = options.language; + } + window.speechSynthesis.speak(utterance); + return Promise.resolve(); + }; + return AccessibilityPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Accessibility = new AccessibilityPluginWeb(); + +//# sourceMappingURL=accessibility.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/app.js": +/*!**********************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/app.js ***! + \**********************************************************/ +/*! exports provided: AppPluginWeb, App */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppPluginWeb", function() { return AppPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "App", function() { return App; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var AppPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AppPluginWeb, _super); + function AppPluginWeb() { + var _this = _super.call(this, { + name: 'App', + platforms: ['web'] + }) || this; + if (typeof document !== 'undefined') { + document.addEventListener('visibilitychange', _this.handleVisibilityChange.bind(_this), false); + } + return _this; + } + AppPluginWeb.prototype.exitApp = function () { + throw new Error('Method not implemented.'); + }; + AppPluginWeb.prototype.canOpenUrl = function (_options) { + return Promise.resolve({ value: true }); + }; + AppPluginWeb.prototype.openUrl = function (_options) { + return Promise.resolve({ completed: true }); + }; + AppPluginWeb.prototype.getLaunchUrl = function () { + return Promise.resolve({ url: '' }); + }; + AppPluginWeb.prototype.getState = function () { + return Promise.resolve({ isActive: document.hidden !== true }); + }; + AppPluginWeb.prototype.handleVisibilityChange = function () { + var data = { + isActive: document.hidden !== true + }; + this.notifyListeners('appStateChange', data); + }; + return AppPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var App = new AppPluginWeb(); + +//# sourceMappingURL=app.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/browser.js": +/*!**************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/browser.js ***! + \**************************************************************/ +/*! exports provided: BrowserPluginWeb, Browser */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrowserPluginWeb", function() { return BrowserPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Browser", function() { return Browser; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var BrowserPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(BrowserPluginWeb, _super); + function BrowserPluginWeb() { + return _super.call(this, { + name: 'Browser', + platforms: ['web'] + }) || this; + } + BrowserPluginWeb.prototype.open = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + this._lastWindow = window.open(options.url, options.windowName || '_blank'); + return [2 /*return*/, Promise.resolve()]; + }); + }); + }; + BrowserPluginWeb.prototype.prefetch = function (_options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + // Does nothing + return [2 /*return*/, Promise.resolve()]; + }); + }); + }; + BrowserPluginWeb.prototype.close = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + this._lastWindow && this._lastWindow.close(); + return [2 /*return*/, Promise.resolve()]; + }); + }); + }; + return BrowserPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Browser = new BrowserPluginWeb(); + +//# sourceMappingURL=browser.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/camera.js": +/*!*************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/camera.js ***! + \*************************************************************/ +/*! exports provided: CameraPluginWeb, Camera */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CameraPluginWeb", function() { return CameraPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Camera", function() { return Camera; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core-plugin-definitions */ "./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js"); + + + +var CameraPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CameraPluginWeb, _super); + function CameraPluginWeb() { + return _super.call(this, { + name: 'Camera', + platforms: ['web'] + }) || this; + } + CameraPluginWeb.prototype.getPhoto = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + return [2 /*return*/, new Promise(function (resolve, reject) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { + var cameraModal_1, e_1; + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + if (!options.webUseInput) return [3 /*break*/, 1]; + this.fileInputExperience(options, resolve); + return [3 /*break*/, 7]; + case 1: + if (!customElements.get('pwa-camera-modal')) return [3 /*break*/, 6]; + cameraModal_1 = document.createElement('pwa-camera-modal'); + document.body.appendChild(cameraModal_1); + _a.label = 2; + case 2: + _a.trys.push([2, 4, , 5]); + return [4 /*yield*/, cameraModal_1.componentOnReady()]; + case 3: + _a.sent(); + cameraModal_1.addEventListener('onPhoto', function (e) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { + var photo, _a; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + photo = e.detail; + if (!(photo === null)) return [3 /*break*/, 1]; + reject('User cancelled photos app'); + return [3 /*break*/, 4]; + case 1: + if (!(photo instanceof Error)) return [3 /*break*/, 2]; + reject(photo.message); + return [3 /*break*/, 4]; + case 2: + _a = resolve; + return [4 /*yield*/, this._getCameraPhoto(photo, options)]; + case 3: + _a.apply(void 0, [_b.sent()]); + _b.label = 4; + case 4: + cameraModal_1.dismiss(); + document.body.removeChild(cameraModal_1); + return [2 /*return*/]; + } + }); + }); }); + cameraModal_1.present(); + return [3 /*break*/, 5]; + case 4: + e_1 = _a.sent(); + this.fileInputExperience(options, resolve); + return [3 /*break*/, 5]; + case 5: return [3 /*break*/, 7]; + case 6: + console.error("Unable to load PWA Element 'pwa-camera-modal'. See the docs: https://capacitorjs.com/docs/pwa-elements."); + this.fileInputExperience(options, resolve); + _a.label = 7; + case 7: return [2 /*return*/]; + } + }); + }); })]; + }); + }); + }; + CameraPluginWeb.prototype.fileInputExperience = function (options, resolve) { + var input = document.querySelector('#_capacitor-camera-input'); + var cleanup = function () { + input.parentNode && input.parentNode.removeChild(input); + }; + if (!input) { + input = document.createElement('input'); + input.id = '_capacitor-camera-input'; + input.type = 'file'; + document.body.appendChild(input); + } + input.accept = 'image/*'; + input.capture = true; + if (options.source === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraSource"].Photos || options.source === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraSource"].Prompt) { + input.removeAttribute('capture'); + } + else if (options.direction === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraDirection"].Front) { + input.capture = 'user'; + } + else if (options.direction === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraDirection"].Rear) { + input.capture = 'environment'; + } + input.addEventListener('change', function (_e) { + var file = input.files[0]; + var format = 'jpeg'; + if (file.type === 'image/png') { + format = 'png'; + } + else if (file.type === 'image/gif') { + format = 'gif'; + } + if (options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].DataUrl || options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].Base64) { + var reader_1 = new FileReader(); + reader_1.addEventListener('load', function () { + if (options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].DataUrl) { + resolve({ + dataUrl: reader_1.result, + format: format + }); + } + else if (options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].Base64) { + var b64 = reader_1.result.split(',')[1]; + resolve({ + base64String: b64, + format: format + }); + } + cleanup(); + }); + reader_1.readAsDataURL(file); + } + else { + resolve({ + webPath: URL.createObjectURL(file), + format: format + }); + cleanup(); + } + }); + input.click(); + }; + CameraPluginWeb.prototype._getCameraPhoto = function (photo, options) { + return new Promise(function (resolve, reject) { + var reader = new FileReader(); + var format = photo.type.split('/')[1]; + if (options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].Uri) { + resolve({ + webPath: URL.createObjectURL(photo), + format: format + }); + } + else { + reader.readAsDataURL(photo); + reader.onloadend = function () { + var r = reader.result; + if (options.resultType === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["CameraResultType"].DataUrl) { + resolve({ + dataUrl: r, + format: format + }); + } + else { + resolve({ + base64String: r.split(',')[1], + format: format + }); + } + }; + reader.onerror = function (e) { + reject(e); + }; + } + }); + }; + return CameraPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Camera = new CameraPluginWeb(); + +//# sourceMappingURL=camera.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/clipboard.js": +/*!****************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/clipboard.js ***! + \****************************************************************/ +/*! exports provided: ClipboardPluginWeb, Clipboard */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClipboardPluginWeb", function() { return ClipboardPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Clipboard", function() { return Clipboard; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var ClipboardPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ClipboardPluginWeb, _super); + function ClipboardPluginWeb() { + return _super.call(this, { + name: 'Clipboard', + platforms: ['web'] + }) || this; + } + ClipboardPluginWeb.prototype.write = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var blob, clipboardItemInput, err_1; + var _a; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + if (!navigator.clipboard) { + return [2 /*return*/, Promise.reject('Clipboard API not available in this browser')]; + } + if (!(options.string !== undefined || options.url)) return [3 /*break*/, 2]; + if (!navigator.clipboard.writeText) { + return [2 /*return*/, Promise.reject('Writting to clipboard not supported in this browser')]; + } + return [4 /*yield*/, navigator.clipboard.writeText(options.string !== undefined ? options.string : options.url)]; + case 1: + _b.sent(); + return [3 /*break*/, 10]; + case 2: + if (!options.image) return [3 /*break*/, 9]; + if (!navigator.clipboard.write) { + return [2 /*return*/, Promise.reject('Setting images not supported in this browser')]; + } + _b.label = 3; + case 3: + _b.trys.push([3, 7, , 8]); + return [4 /*yield*/, fetch(options.image)]; + case 4: return [4 /*yield*/, (_b.sent()).blob()]; + case 5: + blob = _b.sent(); + clipboardItemInput = new ClipboardItem((_a = {}, _a[blob.type] = blob, _a)); + return [4 /*yield*/, navigator.clipboard.write([clipboardItemInput])]; + case 6: + _b.sent(); + return [3 /*break*/, 8]; + case 7: + err_1 = _b.sent(); + return [2 /*return*/, Promise.reject('Failed to write image')]; + case 8: return [3 /*break*/, 10]; + case 9: return [2 /*return*/, Promise.reject('Nothing to write')]; + case 10: return [2 /*return*/, Promise.resolve()]; + } + }); + }); + }; + ClipboardPluginWeb.prototype.read = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var clipboardItems, type, clipboardBlob, data, err_2; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + if (!navigator.clipboard) { + return [2 /*return*/, Promise.reject('Clipboard API not available in this browser')]; + } + if (!!navigator.clipboard.read) return [3 /*break*/, 1]; + if (!navigator.clipboard.readText) { + return [2 /*return*/, Promise.reject('Reading from clipboard not supported in this browser')]; + } + return [2 /*return*/, this.readText()]; + case 1: + _a.trys.push([1, 5, , 6]); + return [4 /*yield*/, navigator.clipboard.read()]; + case 2: + clipboardItems = _a.sent(); + type = clipboardItems[0].types[0]; + return [4 /*yield*/, clipboardItems[0].getType(type)]; + case 3: + clipboardBlob = _a.sent(); + return [4 /*yield*/, this._getBlobData(clipboardBlob, type)]; + case 4: + data = _a.sent(); + return [2 /*return*/, Promise.resolve({ value: data, type: type })]; + case 5: + err_2 = _a.sent(); + return [2 /*return*/, this.readText()]; + case 6: return [2 /*return*/]; + } + }); + }); + }; + ClipboardPluginWeb.prototype.readText = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var text; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, navigator.clipboard.readText()]; + case 1: + text = _a.sent(); + return [2 /*return*/, Promise.resolve({ value: text, type: 'text/plain' })]; + } + }); + }); + }; + ClipboardPluginWeb.prototype._getBlobData = function (clipboardBlob, type) { + return new Promise(function (resolve, reject) { + var reader = new FileReader(); + if (type.includes('image')) { + reader.readAsDataURL(clipboardBlob); + } + else { + reader.readAsText(clipboardBlob); + } + reader.onloadend = function () { + var r = reader.result; + resolve(r); + }; + reader.onerror = function (e) { + reject(e); + }; + }); + }; + return ClipboardPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Clipboard = new ClipboardPluginWeb(); + +//# sourceMappingURL=clipboard.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/device.js": +/*!*************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/device.js ***! + \*************************************************************/ +/*! exports provided: DevicePluginWeb, Device */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DevicePluginWeb", function() { return DevicePluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Device", function() { return Device; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ "./node_modules/@capacitor/core/dist/esm/util.js"); + + + +var DevicePluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DevicePluginWeb, _super); + function DevicePluginWeb() { + return _super.call(this, { + name: 'Device', + platforms: ['web'] + }) || this; + } + DevicePluginWeb.prototype.getInfo = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var ua, uaFields; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + ua = navigator.userAgent; + uaFields = this.parseUa(ua); + return [2 /*return*/, Promise.resolve({ + model: uaFields.model, + platform: 'web', + appVersion: '', + appBuild: '', + appId: '', + appName: '', + operatingSystem: uaFields.operatingSystem, + osVersion: uaFields.osVersion, + manufacturer: navigator.vendor, + isVirtual: false, + uuid: this.getUid() + })]; + }); + }); + }; + DevicePluginWeb.prototype.getBatteryInfo = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var battery, e_1; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + battery = {}; + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, navigator.getBattery()]; + case 2: + battery = _a.sent(); + return [3 /*break*/, 4]; + case 3: + e_1 = _a.sent(); + return [3 /*break*/, 4]; + case 4: return [2 /*return*/, Promise.resolve({ + batteryLevel: battery.level, + isCharging: battery.charging + })]; + } + }); + }); + }; + DevicePluginWeb.prototype.getLanguageCode = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + return [2 /*return*/, { + value: navigator.language + }]; + }); + }); + }; + DevicePluginWeb.prototype.parseUa = function (_ua) { + var uaFields = {}; + var start = _ua.indexOf('(') + 1; + var end = _ua.indexOf(') AppleWebKit'); + if (_ua.indexOf(') Gecko') !== -1) { + end = _ua.indexOf(') Gecko'); + } + var fields = _ua.substring(start, end); + if (_ua.indexOf('Android') !== -1) { + uaFields.model = fields.replace('; wv', '').split('; ').pop().split(' Build')[0]; + uaFields.osVersion = fields.split('; ')[1]; + } + else { + uaFields.model = fields.split('; ')[0]; + if (navigator.oscpu) { + uaFields.osVersion = navigator.oscpu; + } + else { + if (_ua.indexOf('Windows') !== -1) { + uaFields.osVersion = fields; + } + else { + var lastParts = fields.split('; ').pop().replace(' like Mac OS X', '').split(' '); + uaFields.osVersion = lastParts[lastParts.length - 1].replace(/_/g, '.'); + } + } + } + if (/android/i.test(_ua)) { + uaFields.operatingSystem = 'android'; + } + else if (/iPad|iPhone|iPod/.test(_ua) && !window.MSStream) { + uaFields.operatingSystem = 'ios'; + } + else if (/Win/.test(_ua)) { + uaFields.operatingSystem = 'windows'; + } + else if (/Mac/i.test(_ua)) { + uaFields.operatingSystem = 'mac'; + } + else { + uaFields.operatingSystem = 'unknown'; + } + return uaFields; + }; + DevicePluginWeb.prototype.getUid = function () { + var uid = window.localStorage.getItem('_capuid'); + if (uid) { + return uid; + } + uid = Object(_util__WEBPACK_IMPORTED_MODULE_2__["uuid4"])(); + window.localStorage.setItem('_capuid', uid); + return uid; + }; + return DevicePluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Device = new DevicePluginWeb(); + +//# sourceMappingURL=device.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/filesystem.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/filesystem.js ***! + \*****************************************************************/ +/*! exports provided: FilesystemPluginWeb, Filesystem */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilesystemPluginWeb", function() { return FilesystemPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Filesystem", function() { return Filesystem; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core-plugin-definitions */ "./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js"); + + + +var FilesystemPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(FilesystemPluginWeb, _super); + function FilesystemPluginWeb() { + var _this = _super.call(this, { + name: 'Filesystem', + platforms: ['web'] + }) || this; + _this.DEFAULT_DIRECTORY = _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["FilesystemDirectory"].Data; + _this.DB_VERSION = 1; + _this.DB_NAME = 'Disc'; + _this._writeCmds = ['add', 'put', 'delete']; + return _this; + } + FilesystemPluginWeb.prototype.initDb = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + if (this._db !== undefined) { + return [2 /*return*/, this._db]; + } + if (!('indexedDB' in window)) { + throw new Error('This browser doesn\'t support IndexedDB'); + } + return [2 /*return*/, new Promise(function (resolve, reject) { + var request = indexedDB.open(_this.DB_NAME, _this.DB_VERSION); + request.onupgradeneeded = FilesystemPluginWeb.doUpgrade; + request.onsuccess = function () { + _this._db = request.result; + resolve(request.result); + }; + request.onerror = function () { return reject(request.error); }; + request.onblocked = function () { + console.warn('db blocked'); + }; + })]; + }); + }); + }; + FilesystemPluginWeb.doUpgrade = function (event) { + var eventTarget = event.target; + var db = eventTarget.result; + switch (event.oldVersion) { + case 0: + case 1: + default: + if (db.objectStoreNames.contains('FileStorage')) { + db.deleteObjectStore('FileStorage'); + } + var store = db.createObjectStore('FileStorage', { keyPath: 'path' }); + store.createIndex('by_folder', 'folder'); + } + }; + FilesystemPluginWeb.prototype.dbRequest = function (cmd, args) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var readFlag; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly'; + return [2 /*return*/, this.initDb() + .then(function (conn) { + return new Promise(function (resolve, reject) { + var tx = conn.transaction(['FileStorage'], readFlag); + var store = tx.objectStore('FileStorage'); + var req = store[cmd].apply(store, args); + req.onsuccess = function () { return resolve(req.result); }; + req.onerror = function () { return reject(req.error); }; + }); + })]; + }); + }); + }; + FilesystemPluginWeb.prototype.dbIndexRequest = function (indexName, cmd, args) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var readFlag; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + readFlag = this._writeCmds.indexOf(cmd) !== -1 ? 'readwrite' : 'readonly'; + return [2 /*return*/, this.initDb() + .then(function (conn) { + return new Promise(function (resolve, reject) { + var tx = conn.transaction(['FileStorage'], readFlag); + var store = tx.objectStore('FileStorage'); + var index = store.index(indexName); + var req = index[cmd].apply(index, args); + req.onsuccess = function () { return resolve(req.result); }; + req.onerror = function () { return reject(req.error); }; + }); + })]; + }); + }); + }; + FilesystemPluginWeb.prototype.getPath = function (directory, uriPath) { + directory = directory || this.DEFAULT_DIRECTORY; + var cleanedUriPath = uriPath !== undefined ? uriPath.replace(/^[/]+|[/]+$/g, '') : ''; + var fsPath = '/' + directory; + if (uriPath !== '') + fsPath += '/' + cleanedUriPath; + return fsPath; + }; + FilesystemPluginWeb.prototype.clear = function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var conn, tx, store; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.initDb()]; + case 1: + conn = _a.sent(); + tx = conn.transaction(['FileStorage'], 'readwrite'); + store = tx.objectStore('FileStorage'); + store.clear(); + return [2 /*return*/, {}]; + } + }); + }); + }; + /** + * Read a file from disk + * @param options options for the file read + * @return a promise that resolves with the read file data result + */ + FilesystemPluginWeb.prototype.readFile = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, entry; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + entry = _a.sent(); + if (entry === undefined) + throw Error('File does not exist.'); + return [2 /*return*/, { data: entry.content }]; + } + }); + }); + }; + /** + * Write a file to disk in the specified location on device + * @param options options for the file write + * @return a promise that resolves with the file write result + */ + FilesystemPluginWeb.prototype.writeFile = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, data, doRecursive, occupiedEntry, encoding, parentPath, parentEntry, subDirIndex, parentArgPath, now, pathObj; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + data = options.data; + doRecursive = options.recursive; + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + occupiedEntry = _a.sent(); + if (occupiedEntry && occupiedEntry.type === 'directory') + throw ('The supplied path is a directory.'); + encoding = options.encoding; + parentPath = path.substr(0, path.lastIndexOf('/')); + return [4 /*yield*/, this.dbRequest('get', [parentPath])]; + case 2: + parentEntry = _a.sent(); + if (!(parentEntry === undefined)) return [3 /*break*/, 4]; + subDirIndex = parentPath.indexOf('/', 1); + if (!(subDirIndex !== -1)) return [3 /*break*/, 4]; + parentArgPath = parentPath.substr(subDirIndex); + return [4 /*yield*/, this.mkdir({ path: parentArgPath, directory: options.directory, recursive: doRecursive })]; + case 3: + _a.sent(); + _a.label = 4; + case 4: + now = Date.now(); + pathObj = { + path: path, + folder: parentPath, + type: 'file', + size: data.length, + ctime: now, + mtime: now, + content: !encoding && data.indexOf(',') >= 0 ? data.split(',')[1] : data, + }; + return [4 /*yield*/, this.dbRequest('put', [pathObj])]; + case 5: + _a.sent(); + return [2 /*return*/, { + uri: pathObj.path + }]; + } + }); + }); + }; + /** + * Append to a file on disk in the specified location on device + * @param options options for the file append + * @return a promise that resolves with the file write result + */ + FilesystemPluginWeb.prototype.appendFile = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, data, parentPath, now, ctime, occupiedEntry, parentEntry, parentArgPathIndex, parentArgPath, pathObj; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + data = options.data; + parentPath = path.substr(0, path.lastIndexOf('/')); + now = Date.now(); + ctime = now; + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + occupiedEntry = _a.sent(); + if (occupiedEntry && occupiedEntry.type === 'directory') + throw ('The supplied path is a directory.'); + return [4 /*yield*/, this.dbRequest('get', [parentPath])]; + case 2: + parentEntry = _a.sent(); + if (!(parentEntry === undefined)) return [3 /*break*/, 4]; + parentArgPathIndex = parentPath.indexOf('/', 1); + parentArgPath = parentArgPathIndex !== -1 ? parentPath.substr(parentArgPathIndex) : '/'; + return [4 /*yield*/, this.mkdir({ path: parentArgPath, directory: options.directory, recursive: true })]; + case 3: + _a.sent(); + _a.label = 4; + case 4: + if (occupiedEntry !== undefined) { + data = occupiedEntry.content + data; + ctime = occupiedEntry.ctime; + } + pathObj = { + path: path, + folder: parentPath, + type: 'file', + size: data.length, + ctime: ctime, + mtime: now, + content: data + }; + return [4 /*yield*/, this.dbRequest('put', [pathObj])]; + case 5: + _a.sent(); + return [2 /*return*/, {}]; + } + }); + }); + }; + /** + * Delete a file from disk + * @param options options for the file delete + * @return a promise that resolves with the deleted file data result + */ + FilesystemPluginWeb.prototype.deleteFile = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, entry, entries; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + entry = _a.sent(); + if (entry === undefined) + throw Error('File does not exist.'); + return [4 /*yield*/, this.dbIndexRequest('by_folder', 'getAllKeys', [IDBKeyRange.only(path)])]; + case 2: + entries = _a.sent(); + if (entries.length !== 0) + throw Error('Folder is not empty.'); + return [4 /*yield*/, this.dbRequest('delete', [path])]; + case 3: + _a.sent(); + return [2 /*return*/, {}]; + } + }); + }); + }; + /** + * Create a directory. + * @param options options for the mkdir + * @return a promise that resolves with the mkdir result + */ + FilesystemPluginWeb.prototype.mkdir = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, doRecursive, parentPath, depth, parentEntry, occupiedEntry, parentArgPath, now, pathObj; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + doRecursive = options.recursive; + parentPath = path.substr(0, path.lastIndexOf('/')); + depth = (path.match(/\//g) || []).length; + return [4 /*yield*/, this.dbRequest('get', [parentPath])]; + case 1: + parentEntry = _a.sent(); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 2: + occupiedEntry = _a.sent(); + if (depth === 1) + throw Error('Cannot create Root directory'); + if (occupiedEntry !== undefined) + throw Error('Current directory does already exist.'); + if (!doRecursive && depth !== 2 && parentEntry === undefined) + throw Error('Parent directory must exist'); + if (!(doRecursive && depth !== 2 && parentEntry === undefined)) return [3 /*break*/, 4]; + parentArgPath = parentPath.substr(parentPath.indexOf('/', 1)); + return [4 /*yield*/, this.mkdir({ + path: parentArgPath, + directory: options.directory, + recursive: doRecursive + })]; + case 3: + _a.sent(); + _a.label = 4; + case 4: + now = Date.now(); + pathObj = { path: path, folder: parentPath, type: 'directory', size: 0, ctime: now, mtime: now }; + return [4 /*yield*/, this.dbRequest('put', [pathObj])]; + case 5: + _a.sent(); + return [2 /*return*/, {}]; + } + }); + }); + }; + /** + * Remove a directory + * @param options the options for the directory remove + */ + FilesystemPluginWeb.prototype.rmdir = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, directory, recursive, fullPath, entry, readDirResult, _i, _a, entry_1, entryPath, entryObj; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + path = options.path, directory = options.directory, recursive = options.recursive; + fullPath = this.getPath(directory, path); + return [4 /*yield*/, this.dbRequest('get', [fullPath])]; + case 1: + entry = _b.sent(); + if (entry === undefined) + throw Error('Folder does not exist.'); + if (entry.type !== 'directory') + throw Error('Requested path is not a directory'); + return [4 /*yield*/, this.readdir({ path: path, directory: directory })]; + case 2: + readDirResult = _b.sent(); + if (readDirResult.files.length !== 0 && !recursive) + throw Error('Folder is not empty'); + _i = 0, _a = readDirResult.files; + _b.label = 3; + case 3: + if (!(_i < _a.length)) return [3 /*break*/, 9]; + entry_1 = _a[_i]; + entryPath = path + "/" + entry_1; + return [4 /*yield*/, this.stat({ path: entryPath, directory: directory })]; + case 4: + entryObj = _b.sent(); + if (!(entryObj.type === 'file')) return [3 /*break*/, 6]; + return [4 /*yield*/, this.deleteFile({ path: entryPath, directory: directory })]; + case 5: + _b.sent(); + return [3 /*break*/, 8]; + case 6: return [4 /*yield*/, this.rmdir({ path: entryPath, directory: directory, recursive: recursive })]; + case 7: + _b.sent(); + _b.label = 8; + case 8: + _i++; + return [3 /*break*/, 3]; + case 9: return [4 /*yield*/, this.dbRequest('delete', [fullPath])]; + case 10: + _b.sent(); + return [2 /*return*/, {}]; + } + }); + }); + }; + /** + * Return a list of files from the directory (not recursive) + * @param options the options for the readdir operation + * @return a promise that resolves with the readdir directory listing result + */ + FilesystemPluginWeb.prototype.readdir = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, entry, entries, names; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + entry = _a.sent(); + if (options.path !== '' && entry === undefined) + throw Error('Folder does not exist.'); + return [4 /*yield*/, this.dbIndexRequest('by_folder', 'getAllKeys', [IDBKeyRange.only(path)])]; + case 2: + entries = _a.sent(); + names = entries.map(function (e) { + return e.substring(path.length + 1); + }); + return [2 /*return*/, { files: names }]; + } + }); + }); + }; + /** + * Return full File URI for a path and directory + * @param options the options for the stat operation + * @return a promise that resolves with the file stat result + */ + FilesystemPluginWeb.prototype.getUri = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, entry; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + entry = _a.sent(); + if (!(entry === undefined)) return [3 /*break*/, 3]; + return [4 /*yield*/, this.dbRequest('get', [path + '/'])]; + case 2: + entry = (_a.sent()); + _a.label = 3; + case 3: + if (entry === undefined) + throw Error('Entry does not exist.'); + return [2 /*return*/, { + uri: entry.path + }]; + } + }); + }); + }; + /** + * Return data about a file + * @param options the options for the stat operation + * @return a promise that resolves with the file stat result + */ + FilesystemPluginWeb.prototype.stat = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var path, entry; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPath(options.directory, options.path); + return [4 /*yield*/, this.dbRequest('get', [path])]; + case 1: + entry = _a.sent(); + if (!(entry === undefined)) return [3 /*break*/, 3]; + return [4 /*yield*/, this.dbRequest('get', [path + '/'])]; + case 2: + entry = (_a.sent()); + _a.label = 3; + case 3: + if (entry === undefined) + throw Error('Entry does not exist.'); + return [2 /*return*/, { + type: entry.type, + size: entry.size, + ctime: entry.ctime, + mtime: entry.mtime, + uri: entry.path + }]; + } + }); + }); + }; + /** + * Rename a file or directory + * @param options the options for the rename operation + * @return a promise that resolves with the rename result + */ + FilesystemPluginWeb.prototype.rename = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + return [2 /*return*/, this._copy(options, true)]; + }); + }); + }; + /** + * Copy a file or directory + * @param options the options for the copy operation + * @return a promise that resolves with the copy result + */ + FilesystemPluginWeb.prototype.copy = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + return [2 /*return*/, this._copy(options, false)]; + }); + }); + }; + /** + * Function that can perform a copy or a rename + * @param options the options for the rename operation + * @param doRename whether to perform a rename or copy operation + * @return a promise that resolves with the result + */ + FilesystemPluginWeb.prototype._copy = function (options, doRename) { + if (doRename === void 0) { doRename = false; } + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var to, from, fromDirectory, toDirectory, fromPath, toPath, toObj, e_1, toPathComponents, toPath_1, toParentDirectory, fromObj, updateTime, _a, file, e_2, contents, _i, contents_1, filename; + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + to = options.to, from = options.from, fromDirectory = options.directory, toDirectory = options.toDirectory; + if (!to || !from) { + throw Error('Both to and from must be provided'); + } + // If no "to" directory is provided, use the "from" directory + if (!toDirectory) { + toDirectory = fromDirectory; + } + fromPath = this.getPath(fromDirectory, from); + toPath = this.getPath(toDirectory, to); + // Test that the "to" and "from" locations are different + if (fromPath === toPath) { + return [2 /*return*/, {}]; + } + if (toPath.startsWith(fromPath)) { + throw Error('To path cannot contain the from path'); + } + _b.label = 1; + case 1: + _b.trys.push([1, 3, , 6]); + return [4 /*yield*/, this.stat({ + path: to, + directory: toDirectory + })]; + case 2: + toObj = _b.sent(); + return [3 /*break*/, 6]; + case 3: + e_1 = _b.sent(); + toPathComponents = to.split('/'); + toPathComponents.pop(); + toPath_1 = toPathComponents.join('/'); + if (!(toPathComponents.length > 0)) return [3 /*break*/, 5]; + return [4 /*yield*/, this.stat({ + path: toPath_1, + directory: toDirectory, + })]; + case 4: + toParentDirectory = _b.sent(); + if (toParentDirectory.type !== 'directory') { + throw new Error('Parent directory of the to path is a file'); + } + _b.label = 5; + case 5: return [3 /*break*/, 6]; + case 6: + // Cannot overwrite a directory + if (toObj && toObj.type === 'directory') { + throw new Error('Cannot overwrite a directory with a file'); + } + return [4 /*yield*/, this.stat({ + path: from, + directory: fromDirectory, + })]; + case 7: + fromObj = _b.sent(); + updateTime = function (path, ctime, mtime) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { + var fullPath, entry; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + fullPath = this.getPath(toDirectory, path); + return [4 /*yield*/, this.dbRequest('get', [fullPath])]; + case 1: + entry = _a.sent(); + entry.ctime = ctime; + entry.mtime = mtime; + return [4 /*yield*/, this.dbRequest('put', [entry])]; + case 2: + _a.sent(); + return [2 /*return*/]; + } + }); + }); }; + _a = fromObj.type; + switch (_a) { + case 'file': return [3 /*break*/, 8]; + case 'directory': return [3 /*break*/, 15]; + } + return [3 /*break*/, 28]; + case 8: return [4 /*yield*/, this.readFile({ + path: from, + directory: fromDirectory + })]; + case 9: + file = _b.sent(); + if (!doRename) return [3 /*break*/, 11]; + return [4 /*yield*/, this.deleteFile({ + path: from, + directory: fromDirectory + })]; + case 10: + _b.sent(); + _b.label = 11; + case 11: + // Write the file to the new location + return [4 /*yield*/, this.writeFile({ + path: to, + directory: toDirectory, + data: file.data + })]; + case 12: + // Write the file to the new location + _b.sent(); + if (!doRename) return [3 /*break*/, 14]; + return [4 /*yield*/, updateTime(to, fromObj.ctime, fromObj.mtime)]; + case 13: + _b.sent(); + _b.label = 14; + case 14: + // Resolve promise + return [2 /*return*/, {}]; + case 15: + if (toObj) { + throw Error('Cannot move a directory over an existing object'); + } + _b.label = 16; + case 16: + _b.trys.push([16, 20, , 21]); + // Create the to directory + return [4 /*yield*/, this.mkdir({ + path: to, + directory: toDirectory, + recursive: false, + })]; + case 17: + // Create the to directory + _b.sent(); + if (!doRename) return [3 /*break*/, 19]; + return [4 /*yield*/, updateTime(to, fromObj.ctime, fromObj.mtime)]; + case 18: + _b.sent(); + _b.label = 19; + case 19: return [3 /*break*/, 21]; + case 20: + e_2 = _b.sent(); + return [3 /*break*/, 21]; + case 21: return [4 /*yield*/, this.readdir({ + path: from, + directory: fromDirectory, + })]; + case 22: + contents = (_b.sent()).files; + _i = 0, contents_1 = contents; + _b.label = 23; + case 23: + if (!(_i < contents_1.length)) return [3 /*break*/, 26]; + filename = contents_1[_i]; + // Move item from the from directory to the to directory + return [4 /*yield*/, this._copy({ + from: from + "/" + filename, + to: to + "/" + filename, + directory: fromDirectory, + toDirectory: toDirectory, + }, doRename)]; + case 24: + // Move item from the from directory to the to directory + _b.sent(); + _b.label = 25; + case 25: + _i++; + return [3 /*break*/, 23]; + case 26: + if (!doRename) return [3 /*break*/, 28]; + return [4 /*yield*/, this.rmdir({ + path: from, + directory: fromDirectory + })]; + case 27: + _b.sent(); + _b.label = 28; + case 28: return [2 /*return*/, {}]; + } + }); + }); + }; + FilesystemPluginWeb._debug = true; + return FilesystemPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Filesystem = new FilesystemPluginWeb(); + +//# sourceMappingURL=filesystem.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/geolocation.js": +/*!******************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/geolocation.js ***! + \******************************************************************/ +/*! exports provided: GeolocationPluginWeb, Geolocation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GeolocationPluginWeb", function() { return GeolocationPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Geolocation", function() { return Geolocation; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ "./node_modules/@capacitor/core/dist/esm/util.js"); + + + +var GeolocationPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GeolocationPluginWeb, _super); + function GeolocationPluginWeb() { + return _super.call(this, { + name: 'Geolocation', + platforms: ['web'] + }) || this; + } + GeolocationPluginWeb.prototype.getCurrentPosition = function (options) { + var _this = this; + return new Promise(function (resolve, reject) { + return _this.requestPermissions().then(function (_result) { + window.navigator.geolocation.getCurrentPosition(function (pos) { + resolve(pos); + }, function (err) { + reject(err); + }, Object(_util__WEBPACK_IMPORTED_MODULE_2__["extend"])({ + enableHighAccuracy: true, + timeout: 10000, + maximumAge: 0 + }, options)); + }); + }); + }; + GeolocationPluginWeb.prototype.watchPosition = function (options, callback) { + var id = window.navigator.geolocation.watchPosition(function (pos) { + callback(pos); + }, function (err) { + callback(null, err); + }, Object(_util__WEBPACK_IMPORTED_MODULE_2__["extend"])({ + enableHighAccuracy: true, + timeout: 10000, + maximumAge: 0 + }, options)); + return "" + id; + }; + GeolocationPluginWeb.prototype.clearWatch = function (options) { + window.navigator.geolocation.clearWatch(parseInt(options.id, 10)); + return Promise.resolve(); + }; + return GeolocationPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Geolocation = new GeolocationPluginWeb(); + +//# sourceMappingURL=geolocation.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/index.js": +/*!************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/index.js ***! + \************************************************************/ +/*! exports provided: WebPluginRegistry, WebPlugins, WebPlugin, mergeWebPlugins, mergeWebPlugin */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebPluginRegistry", function() { return WebPluginRegistry; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebPlugins", function() { return WebPlugins; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebPlugin", function() { return WebPlugin; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeWebPlugins", function() { return mergeWebPlugins; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeWebPlugin", function() { return mergeWebPlugin; }); +var WebPluginRegistry = /** @class */ (function () { + function WebPluginRegistry() { + this.plugins = {}; + this.loadedPlugins = {}; + } + WebPluginRegistry.prototype.addPlugin = function (plugin) { + this.plugins[plugin.config.name] = plugin; + }; + WebPluginRegistry.prototype.getPlugin = function (name) { + return this.plugins[name]; + }; + WebPluginRegistry.prototype.loadPlugin = function (name) { + var plugin = this.getPlugin(name); + if (!plugin) { + console.error("Unable to load web plugin " + name + ", no such plugin found."); + return; + } + plugin.load(); + }; + WebPluginRegistry.prototype.getPlugins = function () { + var p = []; + for (var name_1 in this.plugins) { + p.push(this.plugins[name_1]); + } + return p; + }; + return WebPluginRegistry; +}()); + +var WebPlugins = new WebPluginRegistry(); + +var WebPlugin = /** @class */ (function () { + function WebPlugin(config, pluginRegistry) { + this.config = config; + this.loaded = false; + this.listeners = {}; + this.windowListeners = {}; + if (!pluginRegistry) { + WebPlugins.addPlugin(this); + } + else { + pluginRegistry.addPlugin(this); + } + } + WebPlugin.prototype.addWindowListener = function (handle) { + window.addEventListener(handle.windowEventName, handle.handler); + handle.registered = true; + }; + WebPlugin.prototype.removeWindowListener = function (handle) { + if (!handle) { + return; + } + window.removeEventListener(handle.windowEventName, handle.handler); + handle.registered = false; + }; + WebPlugin.prototype.addListener = function (eventName, listenerFunc) { + var _this = this; + var listeners = this.listeners[eventName]; + if (!listeners) { + this.listeners[eventName] = []; + } + this.listeners[eventName].push(listenerFunc); + // If we haven't added a window listener for this event and it requires one, + // go ahead and add it + var windowListener = this.windowListeners[eventName]; + if (windowListener && !windowListener.registered) { + this.addWindowListener(windowListener); + } + return { + remove: function () { + _this.removeListener(eventName, listenerFunc); + } + }; + }; + WebPlugin.prototype.removeListener = function (eventName, listenerFunc) { + var listeners = this.listeners[eventName]; + if (!listeners) { + return; + } + var index = listeners.indexOf(listenerFunc); + this.listeners[eventName].splice(index, 1); + // If there are no more listeners for this type of event, + // remove the window listener + if (!this.listeners[eventName].length) { + this.removeWindowListener(this.windowListeners[eventName]); + } + }; + WebPlugin.prototype.removeAllListeners = function () { + this.listeners = {}; + for (var listener in this.windowListeners) { + this.removeWindowListener(this.windowListeners[listener]); + } + this.windowListeners = {}; + }; + WebPlugin.prototype.notifyListeners = function (eventName, data) { + var listeners = this.listeners[eventName]; + if (listeners) { + listeners.forEach(function (listener) { return listener(data); }); + } + }; + WebPlugin.prototype.hasListeners = function (eventName) { + return !!this.listeners[eventName].length; + }; + WebPlugin.prototype.registerWindowListener = function (windowEventName, pluginEventName) { + var _this = this; + this.windowListeners[pluginEventName] = { + registered: false, + windowEventName: windowEventName, + pluginEventName: pluginEventName, + handler: function (event) { + _this.notifyListeners(pluginEventName, event); + } + }; + }; + WebPlugin.prototype.requestPermissions = function () { + if (Capacitor.isNative) { + return Capacitor.nativePromise(this.config.name, 'requestPermissions', {}); + } + else { + return Promise.resolve({ results: [] }); + } + }; + WebPlugin.prototype.load = function () { + this.loaded = true; + }; + return WebPlugin; +}()); + +var shouldMergeWebPlugin = function (plugin) { + return plugin.config.platforms && plugin.config.platforms.indexOf(Capacitor.platform) >= 0; +}; +/** + * For all our known web plugins, merge them into the global plugins + * registry if they aren't already existing. If they don't exist, that + * means there's no existing native implementation for it. + * @param knownPlugins the Capacitor.Plugins global registry. + */ +var mergeWebPlugins = function (knownPlugins) { + var plugins = WebPlugins.getPlugins(); + for (var _i = 0, plugins_1 = plugins; _i < plugins_1.length; _i++) { + var plugin = plugins_1[_i]; + mergeWebPlugin(knownPlugins, plugin); + } +}; +var mergeWebPlugin = function (knownPlugins, plugin) { + // If we already have a plugin registered (meaning it was defined in the native layer), + // then we should only overwrite it if the corresponding web plugin activates on + // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS + if (knownPlugins.hasOwnProperty(plugin.config.name) && !shouldMergeWebPlugin(plugin)) { + return; + } + knownPlugins[plugin.config.name] = plugin; +}; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/local-notifications.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/local-notifications.js ***! + \**************************************************************************/ +/*! exports provided: LocalNotificationsPluginWeb, LocalNotifications */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocalNotificationsPluginWeb", function() { return LocalNotificationsPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocalNotifications", function() { return LocalNotifications; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var LocalNotificationsPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LocalNotificationsPluginWeb, _super); + function LocalNotificationsPluginWeb() { + var _this = _super.call(this, { + name: 'LocalNotifications', + platforms: ['web'] + }) || this; + _this.pending = []; + return _this; + } + LocalNotificationsPluginWeb.prototype.createChannel = function (channel) { + throw new Error('Feature not available in the browser. ' + channel.id); + }; + LocalNotificationsPluginWeb.prototype.deleteChannel = function (channel) { + throw new Error('Feature not available in the browser. ' + channel.id); + }; + LocalNotificationsPluginWeb.prototype.listChannels = function () { + throw new Error('Feature not available in the browser'); + }; + LocalNotificationsPluginWeb.prototype.sendPending = function () { + var _this = this; + var toRemove = []; + var now = +new Date; + this.pending.forEach(function (localNotification) { + if (localNotification.schedule && localNotification.schedule.at) { + if (+localNotification.schedule.at <= now) { + _this.buildNotification(localNotification); + toRemove.push(localNotification); + } + } + }); + console.log('Sent pending, removing', toRemove); + this.pending = this.pending.filter(function (localNotification) { return !toRemove.find(function (ln) { return ln === localNotification; }); }); + }; + LocalNotificationsPluginWeb.prototype.sendNotification = function (localNotification) { + var _this = this; + var l = localNotification; + if (localNotification.schedule && localNotification.schedule.at) { + var diff = +localNotification.schedule.at - +new Date; + this.pending.push(l); + setTimeout(function () { + _this.sendPending(); + }, diff); + return; + } + this.buildNotification(localNotification); + }; + LocalNotificationsPluginWeb.prototype.buildNotification = function (localNotification) { + var l = localNotification; + return new Notification(l.title, { + body: l.body + }); + }; + LocalNotificationsPluginWeb.prototype.schedule = function (options) { + var _this = this; + var notifications = []; + options.notifications.forEach(function (notification) { + notifications.push(_this.sendNotification(notification)); + }); + return Promise.resolve({ + notifications: options.notifications.map(function (notification) { return { id: '' + notification.id }; }) + }); + }; + LocalNotificationsPluginWeb.prototype.getPending = function () { + return Promise.resolve({ + notifications: this.pending.map(function (localNotification) { + return { + id: '' + localNotification.id + }; + }) + }); + }; + LocalNotificationsPluginWeb.prototype.registerActionTypes = function (_options) { + throw new Error('Method not implemented.'); + }; + LocalNotificationsPluginWeb.prototype.cancel = function (pending) { + console.log('Cancel these', pending); + this.pending = this.pending.filter(function (localNotification) { return !pending.notifications.find(function (ln) { return ln.id === '' + localNotification.id; }); }); + return Promise.resolve(); + }; + LocalNotificationsPluginWeb.prototype.areEnabled = function () { + return Promise.resolve({ + value: Notification.permission === 'granted' + }); + }; + LocalNotificationsPluginWeb.prototype.requestPermission = function () { + return new Promise(function (resolve) { + Notification.requestPermission(function (result) { + var granted = true; + if (result === 'denied' || result === 'default') { + granted = false; + } + resolve({ granted: granted }); + }); + }); + }; + LocalNotificationsPluginWeb.prototype.requestPermissions = function () { + return new Promise(function (resolve, reject) { + Notification.requestPermission(function (result) { + if (result === 'denied' || result === 'default') { + reject(result); + return; + } + resolve({ + results: [result] + }); + }); + }); + }; + return LocalNotificationsPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var LocalNotifications = new LocalNotificationsPluginWeb(); + +//# sourceMappingURL=local-notifications.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/modals.js": +/*!*************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/modals.js ***! + \*************************************************************/ +/*! exports provided: ModalsPluginWeb, Modals */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalsPluginWeb", function() { return ModalsPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Modals", function() { return Modals; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var ModalsPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ModalsPluginWeb, _super); + function ModalsPluginWeb() { + return _super.call(this, { + name: 'Modals', + platforms: ['web'] + }) || this; + } + ModalsPluginWeb.prototype.alert = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + window.alert(options.message); + return [2 /*return*/, Promise.resolve()]; + }); + }); + }; + ModalsPluginWeb.prototype.prompt = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var val; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + val = window.prompt(options.message, options.inputText || ''); + return [2 /*return*/, Promise.resolve({ + value: val, + cancelled: val === null + })]; + }); + }); + }; + ModalsPluginWeb.prototype.confirm = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var val; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + val = window.confirm(options.message); + return [2 /*return*/, Promise.resolve({ + value: val + })]; + }); + }); + }; + ModalsPluginWeb.prototype.showActions = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + return [2 /*return*/, new Promise(function (resolve, _reject) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { + var actionSheet; + var _this = this; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + actionSheet = document.querySelector('pwa-action-sheet'); + if (!actionSheet) { + actionSheet = document.createElement('pwa-action-sheet'); + document.body.appendChild(actionSheet); + } + actionSheet.header = options.title; + actionSheet.cancelable = false; + actionSheet.options = options.options; + actionSheet.addEventListener('onSelection', function (e) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { + var selection; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + selection = e.detail; + resolve({ + index: selection + }); + return [2 /*return*/]; + }); + }); }); + return [2 /*return*/]; + }); + }); })]; + }); + }); + }; + return ModalsPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Modals = new ModalsPluginWeb(); + +//# sourceMappingURL=modals.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/motion.js": +/*!*************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/motion.js ***! + \*************************************************************/ +/*! exports provided: MotionPluginWeb, Motion */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MotionPluginWeb", function() { return MotionPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Motion", function() { return Motion; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var MotionPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(MotionPluginWeb, _super); + function MotionPluginWeb() { + var _this = _super.call(this, { + name: 'Motion' + }) || this; + _this.registerWindowListener('devicemotion', 'accel'); + _this.registerWindowListener('deviceorientation', 'orientation'); + return _this; + } + return MotionPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Motion = new MotionPluginWeb(); + +//# sourceMappingURL=motion.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/network.js": +/*!**************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/network.js ***! + \**************************************************************/ +/*! exports provided: NetworkPluginWeb, Network */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NetworkPluginWeb", function() { return NetworkPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Network", function() { return Network; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var NetworkPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(NetworkPluginWeb, _super); + function NetworkPluginWeb() { + var _this = _super.call(this, { + name: 'Network', + platforms: ['web'] + }) || this; + _this.listenerFunction = null; + return _this; + } + NetworkPluginWeb.prototype.getStatus = function () { + return new Promise(function (resolve, reject) { + if (!window.navigator) { + reject('Network info not available'); + return; + } + var connected = window.navigator.onLine; + var connection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection; + var connectionType = connection ? (connection.type || connection.effectiveType) : 'wifi'; + resolve({ + connected: connected, + connectionType: connected ? connectionType : 'none' + }); + }); + }; + NetworkPluginWeb.prototype.addListener = function (eventName, listenerFunc) { + var thisRef = this; + var connection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection; + var connectionType = connection ? (connection.type || connection.effectiveType) : 'wifi'; + var onlineBindFunc = listenerFunc.bind(thisRef, { connected: true, connectionType: connectionType }); + var offlineBindFunc = listenerFunc.bind(thisRef, { connected: false, connectionType: 'none' }); + if (eventName.localeCompare('networkStatusChange') === 0) { + window.addEventListener('online', onlineBindFunc); + window.addEventListener('offline', offlineBindFunc); + return { + remove: function () { + window.removeEventListener('online', onlineBindFunc); + window.removeEventListener('offline', offlineBindFunc); + } + }; + } + }; + return NetworkPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Network = new NetworkPluginWeb(); + +//# sourceMappingURL=network.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/permissions.js": +/*!******************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/permissions.js ***! + \******************************************************************/ +/*! exports provided: PermissionsPluginWeb, Permissions */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PermissionsPluginWeb", function() { return PermissionsPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Permissions", function() { return Permissions; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); +/* harmony import */ var _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core-plugin-definitions */ "./node_modules/@capacitor/core/dist/esm/core-plugin-definitions.js"); + + + +var PermissionsPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(PermissionsPluginWeb, _super); + function PermissionsPluginWeb() { + return _super.call(this, { + name: 'Permissions' + }) || this; + } + PermissionsPluginWeb.prototype.query = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var navigator, name, ret; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + navigator = window.navigator; + if (!navigator.permissions) { + return [2 /*return*/, Promise.reject('This browser does not support the Permissions API')]; + } + name = options.name === _core_plugin_definitions__WEBPACK_IMPORTED_MODULE_2__["PermissionType"].Photos ? 'camera' : options.name; + return [4 /*yield*/, navigator.permissions.query({ name: name })]; + case 1: + ret = _a.sent(); + return [2 /*return*/, { + state: ret.state + }]; + } + }); + }); + }; + return PermissionsPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Permissions = new PermissionsPluginWeb(); + +//# sourceMappingURL=permissions.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/share.js": +/*!************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/share.js ***! + \************************************************************/ +/*! exports provided: SharePluginWeb, Share */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SharePluginWeb", function() { return SharePluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Share", function() { return Share; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var SharePluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SharePluginWeb, _super); + function SharePluginWeb() { + return _super.call(this, { + name: 'Share', + platforms: ['web'] + }) || this; + } + SharePluginWeb.prototype.share = function (options) { + if (!navigator.share) { + return Promise.reject('Web Share API not available'); + } + return navigator.share({ + title: options.title, + text: options.text, + url: options.url + }); + }; + return SharePluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Share = new SharePluginWeb(); + +//# sourceMappingURL=share.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/splash-screen.js": +/*!********************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/splash-screen.js ***! + \********************************************************************/ +/*! exports provided: SplashScreenPluginWeb, SplashScreen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SplashScreenPluginWeb", function() { return SplashScreenPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SplashScreen", function() { return SplashScreen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var SplashScreenPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SplashScreenPluginWeb, _super); + function SplashScreenPluginWeb() { + return _super.call(this, { + name: 'SplashScreen', + platforms: ['web'] + }) || this; + } + SplashScreenPluginWeb.prototype.show = function (_options, _callback) { + return Promise.resolve(); + }; + SplashScreenPluginWeb.prototype.hide = function (_options, _callback) { + return Promise.resolve(); + }; + return SplashScreenPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var SplashScreen = new SplashScreenPluginWeb(); + +//# sourceMappingURL=splash-screen.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/storage.js": +/*!**************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/storage.js ***! + \**************************************************************/ +/*! exports provided: StoragePluginWeb, Storage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StoragePluginWeb", function() { return StoragePluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Storage", function() { return Storage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var StoragePluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(StoragePluginWeb, _super); + function StoragePluginWeb() { + var _this = _super.call(this, { + name: 'Storage', + platforms: ['web'] + }) || this; + _this.KEY_PREFIX = '_cap_'; + return _this; + } + StoragePluginWeb.prototype.get = function (options) { + var _this = this; + return new Promise(function (resolve, _reject) { + resolve({ + value: window.localStorage.getItem(_this.makeKey(options.key)) + }); + }); + }; + StoragePluginWeb.prototype.set = function (options) { + var _this = this; + return new Promise(function (resolve, _reject) { + window.localStorage.setItem(_this.makeKey(options.key), options.value); + resolve(); + }); + }; + StoragePluginWeb.prototype.remove = function (options) { + var _this = this; + return new Promise(function (resolve, _reject) { + window.localStorage.removeItem(_this.makeKey(options.key)); + resolve(); + }); + }; + StoragePluginWeb.prototype.keys = function () { + var _this = this; + return new Promise(function (resolve, _reject) { + resolve({ + keys: Object.keys(localStorage).filter(function (k) { return _this.isKey(k); }).map(function (k) { return _this.getKey(k); }) + }); + }); + }; + StoragePluginWeb.prototype.clear = function () { + var _this = this; + return new Promise(function (resolve, _reject) { + Object.keys(localStorage) + .filter(function (k) { return _this.isKey(k); }) + .forEach(function (k) { return window.localStorage.removeItem(k); }); + resolve(); + }); + }; + StoragePluginWeb.prototype.makeKey = function (key) { + return this.KEY_PREFIX + key; + }; + StoragePluginWeb.prototype.isKey = function (key) { + return key.indexOf(this.KEY_PREFIX) === 0; + }; + StoragePluginWeb.prototype.getKey = function (key) { + return key.substr(this.KEY_PREFIX.length); + }; + return StoragePluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Storage = new StoragePluginWeb(); + +//# sourceMappingURL=storage.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/dist/esm/web/toast.js": +/*!************************************************************!*\ + !*** ./node_modules/@capacitor/core/dist/esm/web/toast.js ***! + \************************************************************/ +/*! exports provided: ToastPluginWeb, Toast */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToastPluginWeb", function() { return ToastPluginWeb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Toast", function() { return Toast; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index */ "./node_modules/@capacitor/core/dist/esm/web/index.js"); + + +var ToastPluginWeb = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ToastPluginWeb, _super); + function ToastPluginWeb() { + return _super.call(this, { + name: 'Toast', + platforms: ['web'] + }) || this; + } + ToastPluginWeb.prototype.show = function (options) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var duration, toast; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + duration = 2000; + if (options.duration) { + duration = options.duration === 'long' ? 3500 : 2000; + } + toast = document.createElement('pwa-toast'); + toast.duration = duration; + toast.message = options.text; + document.body.appendChild(toast); + return [2 /*return*/]; + }); + }); + }; + return ToastPluginWeb; +}(_index__WEBPACK_IMPORTED_MODULE_1__["WebPlugin"])); + +var Toast = new ToastPluginWeb(); + +//# sourceMappingURL=toast.js.map + +/***/ }), + +/***/ "./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@capacitor/core/node_modules/tslib/tslib.es6.js ***! + \**********************************************************************/ +/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; }); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +function __createBinding(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +} + +function __exportStar(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; +} + +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +}; + +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result.default = mod; + return result; +} + +function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); +} + +function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; +} + + +/***/ }), + +/***/ "./src/app/config/auth-constants.ts": +/*!******************************************!*\ + !*** ./src/app/config/auth-constants.ts ***! + \******************************************/ +/*! exports provided: AuthConnstants */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthConnstants", function() { return AuthConnstants; }); +/* This file stores all the keys */ +class AuthConnstants { +} +/* My reference key */ +AuthConnstants.AUTH = 'userDataKey'; + + +/***/ }), + +/***/ "./src/app/services/auth.service.ts": +/*!******************************************!*\ + !*** ./src/app/services/auth.service.ts ***! + \******************************************/ +/*! exports provided: AuthService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthService", function() { return AuthService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _storage_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./storage.service */ "./src/app/services/storage.service.ts"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! src/environments/environment */ "./src/environments/environment.ts"); +/* harmony import */ var _http_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./http.service */ "./src/app/services/http.service.ts"); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); +/* harmony import */ var _config_auth_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../config/auth-constants */ "./src/app/config/auth-constants.ts"); + + + + + + + + + +let AuthService = class AuthService { + constructor(http, httpService, storageService, router) { + this.http = http; + this.httpService = httpService; + this.storageService = storageService; + this.router = router; + this.userData$ = new rxjs__WEBPACK_IMPORTED_MODULE_7__["BehaviorSubject"](''); + } + login(user) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + user.BasicAuthKey = 'Basic ' + btoa(user.domainName + '\\' + user.username + ':' + user.password); //conversão em base64 das credenciais inseridas + const options = { headers: { 'Authorization': user.BasicAuthKey } }; + const service = src_environments_environment__WEBPACK_IMPORTED_MODULE_5__["environment"].apiURL + "userauthentication/GetValidateAuth"; + let result; + result = yield this.http.get(service, options).toPromise(); + if (result) { + this.ValidatedUser = user; + } + return result; + }); + } + logout() { + this.ValidatedUser = null; + } + loginChat() { + const body = { "user": "admin", "password": "tabteste@006" }; + const url = "http://192.168.100.111:3000/api/v1/login"; + return this.http.post(url, body); + } + //Login to rocketChat server + loginChat2(postData) { + return this.httpService.post('login', postData); + } + //Get user data from RocketChat + getUserData() { + this.storageService.get(_config_auth_constants__WEBPACK_IMPORTED_MODULE_8__["AuthConnstants"].AUTH).then(res => { + this.userData$.next(res); + }); + } + logoutChat() { + //this.storageService.clear(); + this.storageService.removeStorageItem(_config_auth_constants__WEBPACK_IMPORTED_MODULE_8__["AuthConnstants"].AUTH).then(res => { + this.userData$.next(''); + this.router.navigate(['']); + }); + } +}; +AuthService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_4__["HttpClient"] }, + { type: _http_service__WEBPACK_IMPORTED_MODULE_6__["HttpService"] }, + { type: _storage_service__WEBPACK_IMPORTED_MODULE_2__["StorageService"] }, + { type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] } +]; +AuthService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], AuthService); + + + +/***/ }), + +/***/ "./src/app/services/http.service.ts": +/*!******************************************!*\ + !*** ./src/app/services/http.service.ts ***! + \******************************************/ +/*! exports provided: HttpService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HttpService", function() { return HttpService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/environments/environment */ "./src/environments/environment.ts"); + + + + +let HttpService = class HttpService { + constructor(http) { + this.http = http; + } + post(serviceName, data) { + const headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"](); + const options = { header: headers, withCredentials: false }; + const url = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiChatUrl + serviceName; + const body = { "user": "admin", "password": "tabteste@006" }; + return this.http.post(url, /* JSON.stringify( */ data /* ), options */); + } + get(serviceName, options) { + const url = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiChatUrl + serviceName; + return this.http.get(url, options); + } +}; +HttpService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] } +]; +HttpService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + }) +], HttpService); + + + +/***/ }), + +/***/ "./src/app/services/storage.service.ts": +/*!*********************************************!*\ + !*** ./src/app/services/storage.service.ts ***! + \*********************************************/ +/*! exports provided: StorageService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StorageService", function() { return StorageService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _capacitor_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @capacitor/core */ "./node_modules/@capacitor/core/dist/esm/index.js"); + + + +const { Storage } = _capacitor_core__WEBPACK_IMPORTED_MODULE_2__["Plugins"]; +let StorageService = class StorageService { + constructor() { } + // Store the value + store(storageKey, value) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const encryptedValue = btoa(escape(JSON.stringify(value))); + yield Storage.set({ + key: storageKey, + value: encryptedValue + }); + }); + } + // Get the value + get(storageKey) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const ret = yield Storage.get({ key: storageKey }); + return JSON.parse(unescape(atob(ret.value))); + }); + } + removeStorageItem(storageKey) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + yield Storage.remove({ key: storageKey }); + }); + } + // Clear storage + clear() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + yield Storage.clear(); + }); + } +}; +StorageService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], StorageService); + + + +/***/ }) + +}]); +//# sourceMappingURL=default~home-home-module~pages-chat-chat-module~pages-login-login-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/event-list-event-list-module.js.download b/src/assets/images/Gabinete Digital_files/event-list-event-list-module.js.download new file mode 100644 index 000000000..b5b4f4d7e --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/event-list-event-list-module.js.download @@ -0,0 +1,228 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["event-list-event-list-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/event-list/event-list.page.html": +/*!**************************************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/event-list/event-list.page.html ***! + \**************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n \n \n \n \n Eventos para Aprovação\n \n \n \n \n Seu calendário\n \n \n Presidente da República\n \n \n \n\n\n\n
\n \n
\n \n \n \n
\n
\n

08:30

\n

12:30

\n
\n
\n

Luanda | Palácio Presidencial

\n

Reunião de Conselho de Ministros

\n
\n
\n
\n
\n
\n
\n\n
\n \n \n \n
\n
\n

08:30

\n

12:30

\n
\n
\n

Luanda | Palácio Presidencial

\n

Reunião de Conselho de Ministros

\n
\n
\n
\n
\n
\n
\n\n
\n"); + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts": +/*!********************************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts ***! + \********************************************************************************/ +/*! exports provided: EventListPageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventListPageRoutingModule", function() { return EventListPageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _event_list_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event-list.page */ "./src/app/pages/gabinete-digital/event-list/event-list.page.ts"); + + + + +const routes = [ + { + path: '', + component: _event_list_page__WEBPACK_IMPORTED_MODULE_3__["EventListPage"] + } +]; +let EventListPageRoutingModule = class EventListPageRoutingModule { +}; +EventListPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], EventListPageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/event-list/event-list.module.ts": +/*!************************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/event-list/event-list.module.ts ***! + \************************************************************************/ +/*! exports provided: EventListPageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventListPageModule", function() { return EventListPageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _event_list_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-list-routing.module */ "./src/app/pages/gabinete-digital/event-list/event-list-routing.module.ts"); +/* harmony import */ var _event_list_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./event-list.page */ "./src/app/pages/gabinete-digital/event-list/event-list.page.ts"); + + + + + + + +let EventListPageModule = class EventListPageModule { +}; +EventListPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _event_list_routing_module__WEBPACK_IMPORTED_MODULE_5__["EventListPageRoutingModule"] + ], + declarations: [_event_list_page__WEBPACK_IMPORTED_MODULE_6__["EventListPage"]] + }) +], EventListPageModule); + + + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/event-list/event-list.page.scss": +/*!************************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/event-list/event-list.page.scss ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = (".Rectangle {\n width: 360px;\n border-radius: 15px;\n box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);\n border: solid 1px #e9e9e9;\n background-color: var(--white);\n margin: 0 auto;\n padding: 10px;\n margin-bottom: 10px;\n overflow: auto;\n}\n\n.rectangle-content {\n width: 340px;\n border-radius: 5px;\n border-right: 5px solid yellowgreen;\n overflow: auto;\n}\n\n.approve-event-time {\n float: left;\n}\n\n.approve-event-time p {\n width: 33px;\n font-family: Roboto;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: var(--Antartic-grey);\n margin: 0;\n padding: 0;\n}\n\n.approve-event-detail {\n float: left;\n margin-left: 10px;\n}\n\n.approve-event-detail p {\n width: 250px;\n font-family: Roboto;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: var(--black);\n margin: 0;\n padding: 0;\n}\n\n.approve-event-detail h3 {\n width: 250px;\n font-family: Roboto;\n font-size: 15px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #0d89d1;\n margin: 0;\n padding: 0;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvZ2FiaW5ldGUtZGlnaXRhbC9ldmVudC1saXN0L0M6XFxVc2Vyc1xcdGlhZ28ua2F5YXlhXFxkZXZlbG9wbWVudFxcZ2FiaW5ldGUtZGlnaXRhbC9zcmNcXGFwcFxccGFnZXNcXGdhYmluZXRlLWRpZ2l0YWxcXGV2ZW50LWxpc3RcXGV2ZW50LWxpc3QucGFnZS5zY3NzIiwic3JjL2FwcC9wYWdlcy9nYWJpbmV0ZS1kaWdpdGFsL2V2ZW50LWxpc3QvZXZlbnQtbGlzdC5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSwwQ0FBQTtFQUNBLHlCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtBQ0NGOztBRENBO0VBQ0UsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUNBQUE7RUFDQSxjQUFBO0FDRUY7O0FEQ0E7RUFDRSxXQUFBO0FDRUY7O0FEQUE7RUFDRSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLDJCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7QUNHRjs7QUREQTtFQUNFLFdBQUE7RUFDQSxpQkFBQTtBQ0lGOztBREZBO0VBQ0UsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FDS0Y7O0FESEE7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBQ01GIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvZ2FiaW5ldGUtZGlnaXRhbC9ldmVudC1saXN0L2V2ZW50LWxpc3QucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLlJlY3RhbmdsZSB7XHJcbiAgd2lkdGg6IDM2MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xyXG4gIGJvcmRlcjogc29saWQgMXB4ICNlOWU5ZTk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG4ucmVjdGFuZ2xlLWNvbnRlbnR7XHJcbiAgd2lkdGg6IDM0MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCB5ZWxsb3dncmVlbjtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLmFwcHJvdmUtZXZlbnQtdGltZXtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG4uYXBwcm92ZS1ldmVudC10aW1lIHB7XHJcbiAgd2lkdGg6IDMzcHg7XHJcbiAgZm9udC1mYW1pbHk6IFJvYm90bztcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gIGNvbG9yOiB2YXIoLS1BbnRhcnRpYy1ncmV5KTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4uYXBwcm92ZS1ldmVudC1kZXRhaWx7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbn1cclxuLmFwcHJvdmUtZXZlbnQtZGV0YWlsIHB7XHJcbiAgd2lkdGg6IDI1MHB4O1xyXG4gIGZvbnQtZmFtaWx5OiBSb2JvdG87XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogdmFyKC0tYmxhY2spO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbi5hcHByb3ZlLWV2ZW50LWRldGFpbCBoM3tcclxuICB3aWR0aDogMjUwcHg7XHJcbiAgZm9udC1mYW1pbHk6IFJvYm90bztcclxuICBmb250LXNpemU6IDE1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICBjb2xvcjogIzBkODlkMTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4iLCIuUmVjdGFuZ2xlIHtcbiAgd2lkdGg6IDM2MHB4O1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIGJvcmRlcjogc29saWQgMXB4ICNlOWU5ZTk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ucmVjdGFuZ2xlLWNvbnRlbnQge1xuICB3aWR0aDogMzQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgeWVsbG93Z3JlZW47XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYXBwcm92ZS1ldmVudC10aW1lIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5hcHByb3ZlLWV2ZW50LXRpbWUgcCB7XG4gIHdpZHRoOiAzM3B4O1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiB2YXIoLS1BbnRhcnRpYy1ncmV5KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uYXBwcm92ZS1ldmVudC1kZXRhaWwge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5hcHByb3ZlLWV2ZW50LWRldGFpbCBwIHtcbiAgd2lkdGg6IDI1MHB4O1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiB2YXIoLS1ibGFjayk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmFwcHJvdmUtZXZlbnQtZGV0YWlsIGgzIHtcbiAgd2lkdGg6IDI1MHB4O1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogIzBkODlkMTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufSJdfQ== */"); + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/event-list/event-list.page.ts": +/*!**********************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/event-list/event-list.page.ts ***! + \**********************************************************************/ +/*! exports provided: EventListPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventListPage", function() { return EventListPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var src_app_services_processes_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/services/processes.service */ "./src/app/services/processes.service.ts"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _agenda_approve_event_modal_approve_event_modal_page__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../agenda/approve-event-modal/approve-event-modal.page */ "./src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts"); + + + + + +let EventListPage = class EventListPage { + constructor(processes, modalController) { + this.processes = processes; + this.modalController = modalController; + } + ngOnInit() { + this.LoadToApproveEvents(); + this.segment = "MDGPR"; + this.eventBody = { + BodyType: 'string', + Text: 'string', + }; + this.eventPerson = { + EmailAddress: 'tiago.kayaya@hotmail.com', + Name: 'Tiago', + IsRequired: false, + }; + this.eventsPRList = [ + { + EventId: '1', + Subject: 'Reunião do Conselho de Ministros', + Body: this.eventBody, + Location: 'Luanda', + CalendarId: 'string', + CalendarName: 'Oficial', + StartDate: new Date, + EndDate: new Date, + EventType: 'Reunião', + Attendees: null, + IsMeeting: true, + IsRecurring: false, + AppointmentState: 2, + TimeZone: '', + Organizer: '', + Categories: null, + HasAttachments: false, + }, + { + EventId: '1', + Subject: 'Viagem', + Body: this.eventBody, + Location: 'Luanda', + CalendarId: 'string', + CalendarName: 'Pessoal', + StartDate: new Date, + EndDate: new Date, + EventType: 'Reunião', + Attendees: null, + IsMeeting: true, + IsRecurring: false, + AppointmentState: 2, + TimeZone: '', + Organizer: '', + Categories: null, + HasAttachments: false, + }, + ]; + } + LoadToApproveEvents() { + this.processes.GetToApprovedEvents('PR', 'false').subscribe(res => { + this.eventsPRList = res; + console.log(res); + }); + this.processes.GetToApprovedEvents('MDGPR', 'false').subscribe(res => { + this.eventsMDGPRList = res; + console.log(res); + }); + } + openApproveModal() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const modal = yield this.modalController.create({ + component: _agenda_approve_event_modal_approve_event_modal_page__WEBPACK_IMPORTED_MODULE_4__["ApproveEventModalPage"], + componentProps: { + segment: this.segment, + }, + cssClass: 'cal-modal', + backdropDismiss: false + }); + yield modal.present(); + modal.onDidDismiss(); + }); + } +}; +EventListPage.ctorParameters = () => [ + { type: src_app_services_processes_service__WEBPACK_IMPORTED_MODULE_2__["ProcessesService"] }, + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_3__["ModalController"] } +]; +EventListPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-event-list', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./event-list.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/event-list/event-list.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./event-list.page.scss */ "./src/app/pages/gabinete-digital/event-list/event-list.page.scss")).default] + }) +], EventListPage); + + + +/***/ }) + +}]); +//# sourceMappingURL=event-list-event-list-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/focus-visible-15ada7f7-js.js.download b/src/assets/images/Gabinete Digital_files/focus-visible-15ada7f7-js.js.download new file mode 100644 index 000000000..1ca218c8d --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/focus-visible-15ada7f7-js.js.download @@ -0,0 +1,61 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["focus-visible-15ada7f7-js"],{ + +/***/ "./node_modules/@ionic/core/dist/esm/focus-visible-15ada7f7.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/focus-visible-15ada7f7.js ***! + \*********************************************************************/ +/*! exports provided: startFocusVisible */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startFocusVisible", function() { return startFocusVisible; }); +const ION_FOCUSED = 'ion-focused'; +const ION_FOCUSABLE = 'ion-focusable'; +const FOCUS_KEYS = ['Tab', 'ArrowDown', 'Space', 'Escape', ' ', 'Shift', 'Enter', 'ArrowLeft', 'ArrowRight', 'ArrowUp']; +const startFocusVisible = () => { + let currentFocus = []; + let keyboardMode = true; + const doc = document; + const setFocus = (elements) => { + currentFocus.forEach(el => el.classList.remove(ION_FOCUSED)); + elements.forEach(el => el.classList.add(ION_FOCUSED)); + currentFocus = elements; + }; + const pointerDown = () => { + keyboardMode = false; + setFocus([]); + }; + doc.addEventListener('keydown', ev => { + keyboardMode = FOCUS_KEYS.includes(ev.key); + if (!keyboardMode) { + setFocus([]); + } + }); + doc.addEventListener('focusin', ev => { + if (keyboardMode && ev.composedPath) { + const toFocus = ev.composedPath().filter((el) => { + if (el.classList) { + return el.classList.contains(ION_FOCUSABLE); + } + return false; + }); + setFocus(toFocus); + } + }); + doc.addEventListener('focusout', () => { + if (doc.activeElement === doc.body) { + setFocus([]); + } + }); + doc.addEventListener('touchstart', pointerDown); + doc.addEventListener('mousedown', pointerDown); +}; + + + + +/***/ }) + +}]); +//# sourceMappingURL=focus-visible-15ada7f7-js.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/home-home-module.js.download b/src/assets/images/Gabinete Digital_files/home-home-module.js.download new file mode 100644 index 000000000..21f80efe7 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/home-home-module.js.download @@ -0,0 +1,527 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["home-home-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html": +/*!***************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\r\n \r\n \r\n \r\n {{totalEvent}}\r\n Home\r\n \r\n \r\n \r\n \r\n Agenda\r\n \r\n \r\n \r\n {{totalExpediente}}\r\n Gabinete Digital\r\n \r\n \r\n \r\n \r\n Chat\r\n \r\n \r\n \r\n \r\n"); + +/***/ }), + +/***/ "./src/app/home/home-routing.module.ts": +/*!*********************************************!*\ + !*** ./src/app/home/home-routing.module.ts ***! + \*********************************************/ +/*! exports provided: HomePageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HomePageRoutingModule", function() { return HomePageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _resolvers_userData_resolver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../resolvers/userData.resolver */ "./src/app/resolvers/userData.resolver.ts"); +/* harmony import */ var _home_page__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./home.page */ "./src/app/home/home.page.ts"); + + + + + +const routes = [ + { + path: 'home', + component: _home_page__WEBPACK_IMPORTED_MODULE_4__["HomePage"], + /* canActivate: [HomeGuard], */ + resolve: { + userData: _resolvers_userData_resolver__WEBPACK_IMPORTED_MODULE_3__["UserDataResolver"] + }, + children: [ + { + path: 'events', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-events-events-module */[__webpack_require__.e("common"), __webpack_require__.e("pages-events-events-module")]).then(__webpack_require__.bind(null, /*! ../pages/events/events.module */ "./src/app/pages/events/events.module.ts")).then(m => m.EventsPageModule) + }, + { + path: ':eventId/:caller', + loadChildren: () => Promise.all(/*! import() | pages-events-event-detail-event-detail-module */[__webpack_require__.e("default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5"), __webpack_require__.e("default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b"), __webpack_require__.e("default~event-detail-event-detail-module~pages-events-event-detail-event-detail-module"), __webpack_require__.e("common")]).then(__webpack_require__.bind(null, /*! ../pages/events/event-detail/event-detail.module */ "./src/app/pages/events/event-detail/event-detail.module.ts")).then(m => m.EventDetailPageModule), + }, + ] + }, + { + path: 'attachments', + children: [ + { + path: ':eventId', + loadChildren: () => Promise.all(/*! import() | pages-events-attachments-attachments-module */[__webpack_require__.e("default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b"), __webpack_require__.e("attachments-attachments-module")]).then(__webpack_require__.bind(null, /*! ../pages/events/attachments/attachments.module */ "./src/app/pages/events/attachments/attachments.module.ts")).then(m => m.AttachmentsPageModule) + }, + ] + }, + { + path: 'attendees', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-events-attendees-attendees-module */[__webpack_require__.e("default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5"), __webpack_require__.e("attendees-attendees-module")]).then(__webpack_require__.bind(null, /*! ../pages/events/attendees/attendees.module */ "./src/app/pages/events/attendees/attendees.module.ts")).then(m => m.AttendeesPageModule) + }, + ] + }, + { + path: 'login', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-login-login-module */[__webpack_require__.e("default~home-home-module~pages-chat-chat-module~pages-login-login-module"), __webpack_require__.e("pages-login-login-module")]).then(__webpack_require__.bind(null, /*! ../pages/login/login.module */ "./src/app/pages/login/login.module.ts")).then(m => m.LoginPageModule) + }, + ] + }, + { + path: 'agenda', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-agenda-agenda-module */[__webpack_require__.e("default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5"), __webpack_require__.e("default~expediente-expediente-module~pages-agenda-agenda-module"), __webpack_require__.e("common"), __webpack_require__.e("pages-agenda-agenda-module")]).then(__webpack_require__.bind(null, /*! ../pages/agenda/agenda.module */ "./src/app/pages/agenda/agenda.module.ts")).then(m => m.AgendaPageModule) + }, + { + path: ':eventId/:caller', + loadChildren: () => Promise.all(/*! import() | pages-events-event-detail-event-detail-module */[__webpack_require__.e("default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5"), __webpack_require__.e("default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b"), __webpack_require__.e("default~event-detail-event-detail-module~pages-events-event-detail-event-detail-module"), __webpack_require__.e("common")]).then(__webpack_require__.bind(null, /*! ../pages/events/event-detail/event-detail.module */ "./src/app/pages/events/event-detail/event-detail.module.ts")).then(m => m.EventDetailPageModule), + } + ] + }, + { + path: 'gabinete-digital', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-gabinete-digital-gabinete-digital-module */[__webpack_require__.e("common"), __webpack_require__.e("pages-gabinete-digital-gabinete-digital-module")]).then(__webpack_require__.bind(null, /*! ../pages/gabinete-digital/gabinete-digital.module */ "./src/app/pages/gabinete-digital/gabinete-digital.module.ts")).then(m => m.GabineteDigitalPageModule) + }, + { + path: 'expediente', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-gabinete-digital-expediente-expediente-module */[__webpack_require__.e("default~expediente-expediente-module~pages-agenda-agenda-module"), __webpack_require__.e("expediente-expediente-module")]).then(__webpack_require__.bind(null, /*! ../pages/gabinete-digital/expediente/expediente.module */ "./src/app/pages/gabinete-digital/expediente/expediente.module.ts")).then(m => m.ExpedientePageModule) + }, + { + path: ':SerialNumber', + loadChildren: () => Promise.all(/*! import() | pages-gabinete-digital-expediente-expediente-detail-expediente-detail-module */[__webpack_require__.e("common"), __webpack_require__.e("expediente-detail-expediente-detail-module")]).then(__webpack_require__.bind(null, /*! ../pages/gabinete-digital/expediente/expediente-detail/expediente-detail.module */ "./src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.module.ts")).then(m => m.ExpedienteDetailPageModule) + }, + { + path: 'events/:eventId/:caller', + loadChildren: () => Promise.all(/*! import() | pages-events-event-detail-event-detail-module */[__webpack_require__.e("default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5"), __webpack_require__.e("default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b"), __webpack_require__.e("default~event-detail-event-detail-module~pages-events-event-detail-event-detail-module"), __webpack_require__.e("common")]).then(__webpack_require__.bind(null, /*! ../pages/events/event-detail/event-detail.module */ "./src/app/pages/events/event-detail/event-detail.module.ts")).then(m => m.EventDetailPageModule), + } + ] + }, + { + path: 'event-list', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-gabinete-digital-event-list-event-list-module */[__webpack_require__.e("common"), __webpack_require__.e("event-list-event-list-module")]).then(__webpack_require__.bind(null, /*! ../pages/gabinete-digital/event-list/event-list.module */ "./src/app/pages/gabinete-digital/event-list/event-list.module.ts")).then(m => m.EventListPageModule) + }, + ] + }, + ] + }, + { + path: 'search', + children: [ + { + path: '', + loadChildren: () => __webpack_require__.e(/*! import() | pages-search-search-module */ "pages-search-search-module").then(__webpack_require__.bind(null, /*! ../pages/search/search.module */ "./src/app/pages/search/search.module.ts")).then(m => m.SearchPageModule) + } + ] + }, + /* { + path: 'expediente', + children: [ + { + path:'', + loadChildren: ()=> import('../pages/gabinete-digital/expediente/expediente.module').then(m => m.ExpedientePageModule) + } + ] + }, */ + { + path: 'chat', + children: [ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-chat-chat-module */[__webpack_require__.e("default~home-home-module~pages-chat-chat-module~pages-login-login-module"), __webpack_require__.e("pages-chat-chat-module")]).then(__webpack_require__.bind(null, /*! ../pages/chat/chat.module */ "./src/app/pages/chat/chat.module.ts")).then(m => m.ChatPageModule) + } + ] + }, + ] + }, + { + path: '', + redirectTo: 'home/events', + pathMatch: 'full' + } +]; +let HomePageRoutingModule = class HomePageRoutingModule { +}; +HomePageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], HomePageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/home/home.module.ts": +/*!*************************************!*\ + !*** ./src/app/home/home.module.ts ***! + \*************************************/ +/*! exports provided: HomePageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HomePageModule", function() { return HomePageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _home_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./home-routing.module */ "./src/app/home/home-routing.module.ts"); +/* harmony import */ var _home_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./home.page */ "./src/app/home/home.page.ts"); + + + + + + + +/* import { IonicSelectableModule } from 'ionic-selectable'; */ +let HomePageModule = class HomePageModule { +}; +HomePageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _home_routing_module__WEBPACK_IMPORTED_MODULE_5__["HomePageRoutingModule"], + ], + declarations: [_home_page__WEBPACK_IMPORTED_MODULE_6__["HomePage"]] + }) +], HomePageModule); + + + +/***/ }), + +/***/ "./src/app/home/home.page.scss": +/*!*************************************!*\ + !*** ./src/app/home/home.page.scss ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("ion-tab-bar {\n --background: #e3dfdf;\n --color: #000;\n}\n\nion-badge {\n /* */\n /* display: inline-block;*/\n min-width: 18px;\n font-size: 15px;\n /* font-weight: $badge-font-weight;\n line-height: 1;\n\n white-space: nowrap;\n vertical-align: baseline; */\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaG9tZS9DOlxcVXNlcnNcXHRpYWdvLmtheWF5YVxcZGV2ZWxvcG1lbnRcXGdhYmluZXRlLWRpZ2l0YWwvc3JjXFxhcHBcXGhvbWVcXGhvbWUucGFnZS5zY3NzIiwic3JjL2FwcC9ob21lL2hvbWUucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0kscUJBQUE7RUFDQSxhQUFBO0FDQUo7O0FEYUE7RUFBVyxLQUFBO0VBRVQsMEJBQUE7RUFFQSxlQUFBO0VBQ0EsZUFYZTtFQVlmOzs7OzZCQUFBO0FDUEYiLCJmaWxlIjoic3JjL2FwcC9ob21lL2hvbWUucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmlvbi10YWItYmFye1xyXG4gICAgLS1iYWNrZ3JvdW5kOiAjZTNkZmRmO1xyXG4gICAgLS1jb2xvcjogIzAwMDtcclxufVxyXG5cclxuLy8gQmFkZ2VcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vLyBAcHJvcCAtIEZvbnQgc2l6ZSBvZiB0aGUgYmFkZ2VcclxuJGJhZGdlLWZvbnQtc2l6ZToxNXB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIEBwcm9wIC0gRm9udCB3ZWlnaHQgb2YgdGhlIGJhZGdlXHJcbiRiYWRnZS1mb250LXdlaWdodDpib2xkICFkZWZhdWx0O1xyXG5cclxuXHJcbmlvbi1iYWRnZSB7LyogICovXHJcblxyXG4gIC8qIGRpc3BsYXk6IGlubGluZS1ibG9jazsqL1xyXG5cclxuICBtaW4td2lkdGg6IDE4cHg7IFxyXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcclxuICAvKiBmb250LXdlaWdodDogJGJhZGdlLWZvbnQtd2VpZ2h0O1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG5cclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgKi9cclxufSIsImlvbi10YWItYmFyIHtcbiAgLS1iYWNrZ3JvdW5kOiAjZTNkZmRmO1xuICAtLWNvbG9yOiAjMDAwO1xufVxuXG5pb24tYmFkZ2Uge1xuICAvKiAgKi9cbiAgLyogZGlzcGxheTogaW5saW5lLWJsb2NrOyovXG4gIG1pbi13aWR0aDogMThweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICAvKiBmb250LXdlaWdodDogJGJhZGdlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7ICovXG59Il19 */"); + +/***/ }), + +/***/ "./src/app/home/home.page.ts": +/*!***********************************!*\ + !*** ./src/app/home/home.page.ts ***! + \***********************************/ +/*! exports provided: HomePage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HomePage", function() { return HomePage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _services_events_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/events.service */ "./src/app/services/events.service.ts"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _services_processes_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../services/processes.service */ "./src/app/services/processes.service.ts"); + + + + + +let HomePage = class HomePage { + constructor(eventService, processesbackend) { + this.eventService = eventService; + this.processesbackend = processesbackend; + this.totalEvent = 0; + this.totalExpediente = 0; + } + ngOnInit() { + this.eventService.getAllEvents(Object(_angular_common__WEBPACK_IMPORTED_MODULE_3__["formatDate"])(new Date(), 'yyyy-MM-dd', 'pt') + ' 00:00:00', Object(_angular_common__WEBPACK_IMPORTED_MODULE_3__["formatDate"])(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59') + .subscribe(response => { + this.eventsList = response; + this.totalEvent = this.eventsList.length; + }); + this.processesbackend.GetTasksList("Expediente", true).subscribe(result => { + this.totalExpediente = result; + }); + } +}; +HomePage.ctorParameters = () => [ + { type: _services_events_service__WEBPACK_IMPORTED_MODULE_2__["EventsService"] }, + { type: _services_processes_service__WEBPACK_IMPORTED_MODULE_4__["ProcessesService"] } +]; +HomePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-home', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./home.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/home/home.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./home.page.scss */ "./src/app/home/home.page.scss")).default] + }) +], HomePage); + + + +/***/ }), + +/***/ "./src/app/resolvers/userData.resolver.ts": +/*!************************************************!*\ + !*** ./src/app/resolvers/userData.resolver.ts ***! + \************************************************/ +/*! exports provided: UserDataResolver */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserDataResolver", function() { return UserDataResolver; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/auth.service */ "./src/app/services/auth.service.ts"); + + + +let UserDataResolver = class UserDataResolver { + constructor(authService) { + this.authService = authService; + } + resolve() { + return this.authService.getUserData(); + } +}; +UserDataResolver.ctorParameters = () => [ + { type: _services_auth_service__WEBPACK_IMPORTED_MODULE_2__["AuthService"] } +]; +UserDataResolver = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], UserDataResolver); + + + +/***/ }), + +/***/ "./src/app/services/events.service.ts": +/*!********************************************!*\ + !*** ./src/app/services/events.service.ts ***! + \********************************************/ +/*! exports provided: EventsService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventsService", function() { return EventsService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/environments/environment */ "./src/environments/environment.ts"); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../services/auth.service */ "./src/app/services/auth.service.ts"); + + + + + +let EventsService = class EventsService { + //lastloadedevent: Event; + constructor(http, user) { + this.http = http; + this.authheader = {}; + this.loggeduser = user.ValidatedUser; + this.headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"](); + this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey); + } + getAllEvents(startdate, enddate) { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'calendar/GetAllEvents'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("StartDate", startdate); + params = params.set("EndDate", enddate); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + getEvents(calendarname, startdate, enddate) { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'calendar/GetEvents'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("CalendarName", calendarname); + params = params.set("StartDate", startdate); + params = params.set("EndDate", enddate); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + getEvent(eventid) { + let geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'Calendar/GetEvent'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("EventId", eventid); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + putEvent(event, conflictResolutionMode, sendInvitationsOrCancellationsMode) { + const puturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'calendar/PutEvent'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("conflictResolutionMode", conflictResolutionMode.toString()); + params = params.set("sendInvitationsOrCancellationsMode", sendInvitationsOrCancellationsMode.toString()); + let options = { + headers: this.headers, + params: params + }; + return this.http.put(`${puturl}`, event, options); + } + postEvent(event, calendarName) { + const puturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'calendar/PostEvent'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("CalendarName", calendarName); + let options = { + headers: this.headers, + params: params + }; + return this.http.post(`${puturl}`, event, options); + } + deleteEvent(eventid, deletemode) { + const puturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].apiURL + 'calendar/PostEvent'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("EventId", eventid); + params = params.set("deleteMode", deletemode.toString()); + let options = { + headers: this.headers, + params: params + }; + return this.http.delete(`${puturl}`, options); + } +}; +EventsService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"] }, + { type: _services_auth_service__WEBPACK_IMPORTED_MODULE_4__["AuthService"] } +]; +EventsService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], EventsService); + + + +/***/ }), + +/***/ "./src/app/services/processes.service.ts": +/*!***********************************************!*\ + !*** ./src/app/services/processes.service.ts ***! + \***********************************************/ +/*! exports provided: ProcessesService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProcessesService", function() { return ProcessesService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _services_auth_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/auth.service */ "./src/app/services/auth.service.ts"); +/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! src/environments/environment */ "./src/environments/environment.ts"); + + + + + +let ProcessesService = class ProcessesService { + constructor(http, user) { + this.http = http; + this.authheader = {}; + this.loggeduser = user.ValidatedUser; + this.headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"](); + this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey); + } + GetTasksList(processname, onlycount) { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].apiURL + 'tasks/List'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("ProcessName", processname); + params = params.set("OnlyCount", onlycount.toString()); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + GetTask(serialnumber) { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].apiURL + 'tasks/Get'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("SerialNumber", serialnumber); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } + GetMDOficialTasks() { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].apiURL + 'tasks/GetMDOficialTasks'; + let options = { + headers: this.headers, + }; + return this.http.get(`${geturl}`, options); + } + GetMDPersonalTasks() { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].apiURL + 'tasks/GetMDPersonalTasks'; + let options = { + headers: this.headers, + }; + return this.http.get(`${geturl}`, options); + } + GetToApprovedEvents(categoryname, count) { + const geturl = src_environments_environment__WEBPACK_IMPORTED_MODULE_4__["environment"].apiURL + 'Tasks/ListByCategory'; + let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpParams"](); + params = params.set("categoryname", categoryname); + params = params.set("onlyCount", count); + let options = { + headers: this.headers, + params: params + }; + return this.http.get(`${geturl}`, options); + } +}; +ProcessesService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"] }, + { type: _services_auth_service__WEBPACK_IMPORTED_MODULE_3__["AuthService"] } +]; +ProcessesService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], ProcessesService); + + + +/***/ }) + +}]); +//# sourceMappingURL=home-home-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/index-index-module.js.download b/src/assets/images/Gabinete Digital_files/index-index-module.js.download new file mode 100644 index 000000000..cfed54fa8 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/index-index-module.js.download @@ -0,0 +1,151 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["index-index-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/index/index.page.html": +/*!*****************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/index/index.page.html ***! + \*****************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\r\n \r\n\r\n"); + +/***/ }), + +/***/ "./src/app/index/index-routing.module.ts": +/*!***********************************************!*\ + !*** ./src/app/index/index-routing.module.ts ***! + \***********************************************/ +/*! exports provided: IndexPageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IndexPageRoutingModule", function() { return IndexPageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _index_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.page */ "./src/app/index/index.page.ts"); + + + + +const routes = [ + { + path: '', + component: _index_page__WEBPACK_IMPORTED_MODULE_3__["IndexPage"], + /* canActivate: [IndexGuard], */ + children: [ + /*{ + path: '', + loadChildren: ()=> import('../pages/welcome/welcome.module').then(m => m.WelcomePageModule) + }, */ + { + path: '', + loadChildren: () => Promise.all(/*! import() | pages-login-login-module */[__webpack_require__.e("default~home-home-module~pages-chat-chat-module~pages-login-login-module"), __webpack_require__.e("pages-login-login-module")]).then(__webpack_require__.bind(null, /*! ../pages/login/login.module */ "./src/app/pages/login/login.module.ts")).then(m => m.LoginPageModule) + }, + ] + } +]; +let IndexPageRoutingModule = class IndexPageRoutingModule { +}; +IndexPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], IndexPageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/index/index.module.ts": +/*!***************************************!*\ + !*** ./src/app/index/index.module.ts ***! + \***************************************/ +/*! exports provided: IndexPageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IndexPageModule", function() { return IndexPageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _index_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index-routing.module */ "./src/app/index/index-routing.module.ts"); +/* harmony import */ var _index_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./index.page */ "./src/app/index/index.page.ts"); + + + + + + + +let IndexPageModule = class IndexPageModule { +}; +IndexPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _index_routing_module__WEBPACK_IMPORTED_MODULE_5__["IndexPageRoutingModule"] + ], + declarations: [_index_page__WEBPACK_IMPORTED_MODULE_6__["IndexPage"]] + }) +], IndexPageModule); + + + +/***/ }), + +/***/ "./src/app/index/index.page.scss": +/*!***************************************!*\ + !*** ./src/app/index/index.page.scss ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2luZGV4L2luZGV4LnBhZ2Uuc2NzcyJ9 */"); + +/***/ }), + +/***/ "./src/app/index/index.page.ts": +/*!*************************************!*\ + !*** ./src/app/index/index.page.ts ***! + \*************************************/ +/*! exports provided: IndexPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IndexPage", function() { return IndexPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + + +let IndexPage = class IndexPage { + constructor() { } + ngOnInit() { + } +}; +IndexPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-index', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./index.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/index/index.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./index.page.scss */ "./src/app/index/index.page.scss")).default] + }) +], IndexPage); + + + +/***/ }) + +}]); +//# sourceMappingURL=index-index-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/keyboard-dd970efc-js.js.download b/src/assets/images/Gabinete Digital_files/keyboard-dd970efc-js.js.download new file mode 100644 index 000000000..6ff7b9aca --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/keyboard-dd970efc-js.js.download @@ -0,0 +1,153 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["keyboard-dd970efc-js"],{ + +/***/ "./node_modules/@ionic/core/dist/esm/keyboard-dd970efc.js": +/*!****************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm/keyboard-dd970efc.js ***! + \****************************************************************/ +/*! exports provided: KEYBOARD_DID_CLOSE, KEYBOARD_DID_OPEN, copyVisualViewport, keyboardDidClose, keyboardDidOpen, keyboardDidResize, resetKeyboardAssist, setKeyboardClose, setKeyboardOpen, startKeyboardAssist, trackViewportChanges */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KEYBOARD_DID_CLOSE", function() { return KEYBOARD_DID_CLOSE; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KEYBOARD_DID_OPEN", function() { return KEYBOARD_DID_OPEN; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyVisualViewport", function() { return copyVisualViewport; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyboardDidClose", function() { return keyboardDidClose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyboardDidOpen", function() { return keyboardDidOpen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyboardDidResize", function() { return keyboardDidResize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetKeyboardAssist", function() { return resetKeyboardAssist; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setKeyboardClose", function() { return setKeyboardClose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setKeyboardOpen", function() { return setKeyboardOpen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startKeyboardAssist", function() { return startKeyboardAssist; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trackViewportChanges", function() { return trackViewportChanges; }); +const KEYBOARD_DID_OPEN = 'ionKeyboardDidShow'; +const KEYBOARD_DID_CLOSE = 'ionKeyboardDidHide'; +const KEYBOARD_THRESHOLD = 150; +let previousVisualViewport = {}; +let currentVisualViewport = {}; +let keyboardOpen = false; +/** + * This is only used for tests + */ +const resetKeyboardAssist = () => { + previousVisualViewport = {}; + currentVisualViewport = {}; + keyboardOpen = false; +}; +const startKeyboardAssist = (win) => { + startNativeListeners(win); + if (!win.visualViewport) { + return; + } + currentVisualViewport = copyVisualViewport(win.visualViewport); + win.visualViewport.onresize = () => { + trackViewportChanges(win); + if (keyboardDidOpen() || keyboardDidResize(win)) { + setKeyboardOpen(win); + } + else if (keyboardDidClose(win)) { + setKeyboardClose(win); + } + }; +}; +/** + * Listen for events fired by native keyboard plugin + * in Capacitor/Cordova so devs only need to listen + * in one place. + */ +const startNativeListeners = (win) => { + win.addEventListener('keyboardDidShow', ev => setKeyboardOpen(win, ev)); + win.addEventListener('keyboardDidHide', () => setKeyboardClose(win)); +}; +const setKeyboardOpen = (win, ev) => { + fireKeyboardOpenEvent(win, ev); + keyboardOpen = true; +}; +const setKeyboardClose = (win) => { + fireKeyboardCloseEvent(win); + keyboardOpen = false; +}; +/** + * Returns `true` if the `keyboardOpen` flag is not + * set, the previous visual viewport width equal the current + * visual viewport width, and if the scaled difference + * of the previous visual viewport height minus the current + * visual viewport height is greater than KEYBOARD_THRESHOLD + * + * We need to be able to accommodate users who have zooming + * enabled in their browser (or have zoomed in manually) which + * is why we take into account the current visual viewport's + * scale value. + */ +const keyboardDidOpen = () => { + const scaledHeightDifference = (previousVisualViewport.height - currentVisualViewport.height) * currentVisualViewport.scale; + return (!keyboardOpen && + previousVisualViewport.width === currentVisualViewport.width && + scaledHeightDifference > KEYBOARD_THRESHOLD); +}; +/** + * Returns `true` if the keyboard is open, + * but the keyboard did not close + */ +const keyboardDidResize = (win) => { + return keyboardOpen && !keyboardDidClose(win); +}; +/** + * Determine if the keyboard was closed + * Returns `true` if the `keyboardOpen` flag is set and + * the current visual viewport height equals the + * layout viewport height. + */ +const keyboardDidClose = (win) => { + return keyboardOpen && currentVisualViewport.height === win.innerHeight; +}; +/** + * Dispatch a keyboard open event + */ +const fireKeyboardOpenEvent = (win, nativeEv) => { + const keyboardHeight = nativeEv ? nativeEv.keyboardHeight : win.innerHeight - currentVisualViewport.height; + const ev = new CustomEvent(KEYBOARD_DID_OPEN, { + detail: { keyboardHeight } + }); + win.dispatchEvent(ev); +}; +/** + * Dispatch a keyboard close event + */ +const fireKeyboardCloseEvent = (win) => { + const ev = new CustomEvent(KEYBOARD_DID_CLOSE); + win.dispatchEvent(ev); +}; +/** + * Given a window object, create a copy of + * the current visual and layout viewport states + * while also preserving the previous visual and + * layout viewport states + */ +const trackViewportChanges = (win) => { + previousVisualViewport = Object.assign({}, currentVisualViewport); + currentVisualViewport = copyVisualViewport(win.visualViewport); +}; +/** + * Creates a deep copy of the visual viewport + * at a given state + */ +const copyVisualViewport = (visualViewport) => { + return { + width: Math.round(visualViewport.width), + height: Math.round(visualViewport.height), + offsetTop: visualViewport.offsetTop, + offsetLeft: visualViewport.offsetLeft, + pageTop: visualViewport.pageTop, + pageLeft: visualViewport.pageLeft, + scale: visualViewport.scale + }; +}; + + + + +/***/ }) + +}]); +//# sourceMappingURL=keyboard-dd970efc-js.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/main.js.download b/src/assets/images/Gabinete Digital_files/main.js.download new file mode 100644 index 000000000..e065824ee --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/main.js.download @@ -0,0 +1,561 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{ + +/***/ "./$$_lazy_route_resource lazy recursive": +/*!******************************************************!*\ + !*** ./$$_lazy_route_resource lazy namespace object ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function webpackEmptyAsyncContext(req) { + // Here Promise.resolve().then() is used instead of new Promise() to prevent + // uncaught exception popping up in devtools + return Promise.resolve().then(function() { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + }); +} +webpackEmptyAsyncContext.keys = function() { return []; }; +webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; +module.exports = webpackEmptyAsyncContext; +webpackEmptyAsyncContext.id = "./$$_lazy_route_resource lazy recursive"; + +/***/ }), + +/***/ "./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/@ionic/core/dist/esm lazy ^\.\/.*\.entry\.js$ include: \.entry\.js$ exclude: \.system\.entry\.js$ namespace object ***! + \*****************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var map = { + "./ion-action-sheet.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js", + "common", + 0 + ], + "./ion-alert.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-alert.entry.js", + "common", + 1 + ], + "./ion-app_8.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js", + "common", + 2 + ], + "./ion-avatar_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js", + "common", + 3 + ], + "./ion-back-button.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js", + "common", + 4 + ], + "./ion-backdrop.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js", + 5 + ], + "./ion-button_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js", + "common", + 6 + ], + "./ion-card_5.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js", + "common", + 7 + ], + "./ion-checkbox.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js", + "common", + 8 + ], + "./ion-chip.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-chip.entry.js", + "common", + 9 + ], + "./ion-col_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js", + 10 + ], + "./ion-datetime_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js", + "common", + 11 + ], + "./ion-fab_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js", + "common", + 12 + ], + "./ion-img.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-img.entry.js", + 13 + ], + "./ion-infinite-scroll_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js", + 14 + ], + "./ion-input.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-input.entry.js", + "common", + 15 + ], + "./ion-item-option_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js", + "common", + 16 + ], + "./ion-item_8.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js", + "common", + 17 + ], + "./ion-loading.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-loading.entry.js", + "common", + 18 + ], + "./ion-menu_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js", + "common", + 19 + ], + "./ion-modal.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-modal.entry.js", + "common", + 20 + ], + "./ion-nav_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js", + "common", + 21 + ], + "./ion-popover.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-popover.entry.js", + "common", + 22 + ], + "./ion-progress-bar.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js", + "common", + 23 + ], + "./ion-radio_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js", + "common", + 24 + ], + "./ion-range.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-range.entry.js", + "common", + 25 + ], + "./ion-refresher_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js", + "common", + 26 + ], + "./ion-reorder_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js", + "common", + 27 + ], + "./ion-ripple-effect.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js", + 28 + ], + "./ion-route_4.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js", + "common", + 29 + ], + "./ion-searchbar.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js", + "common", + 30 + ], + "./ion-segment_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js", + "common", + 31 + ], + "./ion-select_3.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js", + "common", + 32 + ], + "./ion-slide_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js", + 33 + ], + "./ion-spinner.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js", + "common", + 34 + ], + "./ion-split-pane.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js", + 35 + ], + "./ion-tab-bar_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js", + "common", + 36 + ], + "./ion-tab_2.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js", + "common", + 37 + ], + "./ion-text.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-text.entry.js", + "common", + 38 + ], + "./ion-textarea.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js", + "common", + 39 + ], + "./ion-toast.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-toast.entry.js", + "common", + 40 + ], + "./ion-toggle.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js", + "common", + 41 + ], + "./ion-virtual-scroll.entry.js": [ + "./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js", + 42 + ] +}; +function webpackAsyncContext(req) { + if(!__webpack_require__.o(map, req)) { + return Promise.resolve().then(function() { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + }); + } + + var ids = map[req], id = ids[0]; + return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() { + return __webpack_require__(id); + }); +} +webpackAsyncContext.keys = function webpackAsyncContextKeys() { + return Object.keys(map); +}; +webpackAsyncContext.id = "./node_modules/@ionic/core/dist/esm lazy recursive ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$"; +module.exports = webpackAsyncContext; + +/***/ }), + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html": +/*!**************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\r\n \r\n\r\n"); + +/***/ }), + +/***/ "./node_modules/webpack/hot sync ^\\.\\/log$": +/*!*************************************************!*\ + !*** (webpack)/hot sync nonrecursive ^\.\/log$ ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var map = { + "./log": "./node_modules/webpack/hot/log.js" +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __webpack_require__(id); +} +function webpackContextResolve(req) { + if(!__webpack_require__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = "./node_modules/webpack/hot sync ^\\.\\/log$"; + +/***/ }), + +/***/ "./src/app/app-routing.module.ts": +/*!***************************************!*\ + !*** ./src/app/app-routing.module.ts ***! + \***************************************/ +/*! exports provided: AppRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + + + +const routes = [ + { + path: '', + loadChildren: () => __webpack_require__.e(/*! import() | index-index-module */ "index-index-module").then(__webpack_require__.bind(null, /*! ./index/index.module */ "./src/app/index/index.module.ts")).then(m => m.IndexPageModule) + }, + { + path: '', + loadChildren: () => Promise.all(/*! import() | home-home-module */[__webpack_require__.e("default~home-home-module~pages-chat-chat-module~pages-login-login-module"), __webpack_require__.e("home-home-module")]).then(__webpack_require__.bind(null, /*! ./home/home.module */ "./src/app/home/home.module.ts")).then(m => m.HomePageModule) + }, + { + path: 'chat', + loadChildren: () => Promise.all(/*! import() | pages-chat-chat-module */[__webpack_require__.e("default~home-home-module~pages-chat-chat-module~pages-login-login-module"), __webpack_require__.e("pages-chat-chat-module")]).then(__webpack_require__.bind(null, /*! ./pages/chat/chat.module */ "./src/app/pages/chat/chat.module.ts")).then(m => m.ChatPageModule) + }, +]; +let AppRoutingModule = class AppRoutingModule { +}; +AppRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forRoot(routes, { preloadingStrategy: _angular_router__WEBPACK_IMPORTED_MODULE_2__["PreloadAllModules"] }) + ], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]] + }) +], AppRoutingModule); + + + +/***/ }), + +/***/ "./src/app/app.component.scss": +/*!************************************!*\ + !*** ./src/app/app.component.scss ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */"); + +/***/ }), + +/***/ "./src/app/app.component.ts": +/*!**********************************!*\ + !*** ./src/app/app.component.ts ***! + \**********************************/ +/*! exports provided: AppComponent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ "./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js"); +/* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ "./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js"); + + + + + +let AppComponent = class AppComponent { + constructor(platform, splashScreen, statusBar) { + this.platform = platform; + this.splashScreen = splashScreen; + this.statusBar = statusBar; + this.initializeApp(); + } + initializeApp() { + this.platform.ready().then(() => { + this.statusBar.styleDefault(); + this.splashScreen.hide(); + }); + } +}; +AppComponent.ctorParameters = () => [ + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["Platform"] }, + { type: _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_3__["SplashScreen"] }, + { type: _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_4__["StatusBar"] } +]; +AppComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-root', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./app.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")).default] + }) +], AppComponent); + + + +/***/ }), + +/***/ "./src/app/app.module.ts": +/*!*******************************!*\ + !*** ./src/app/app.module.ts ***! + \*******************************/ +/*! exports provided: AppModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic-native/splash-screen/ngx */ "./node_modules/@ionic-native/splash-screen/__ivy_ngcc__/ngx/index.js"); +/* harmony import */ var _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic-native/status-bar/ngx */ "./node_modules/@ionic-native/status-bar/__ivy_ngcc__/ngx/index.js"); +/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts"); +/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ionic-native/in-app-browser/ngx */ "./node_modules/@ionic-native/in-app-browser/__ivy_ngcc__/ngx/index.js"); +/* harmony import */ var ngx_socket_io__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ngx-socket-io */ "./node_modules/ngx-socket-io/__ivy_ngcc__/fesm2015/ngx-socket-io.js"); + + + + + + + + + + + + +const config = { url: 'http://localhost:3001', options: {} }; +let AppModule = class AppModule { +}; +AppModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + declarations: [_app_component__WEBPACK_IMPORTED_MODULE_8__["AppComponent"]], + entryComponents: [], + imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_2__["BrowserModule"], _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"].forRoot(), _app_routing_module__WEBPACK_IMPORTED_MODULE_7__["AppRoutingModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_9__["HttpClientModule"], ngx_socket_io__WEBPACK_IMPORTED_MODULE_11__["SocketIoModule"].forRoot(config)], + providers: [ + _ionic_native_status_bar_ngx__WEBPACK_IMPORTED_MODULE_6__["StatusBar"], + _ionic_native_splash_screen_ngx__WEBPACK_IMPORTED_MODULE_5__["SplashScreen"], + _angular_common_http__WEBPACK_IMPORTED_MODULE_9__["HttpClientModule"], + { provide: _angular_router__WEBPACK_IMPORTED_MODULE_3__["RouteReuseStrategy"], useClass: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicRouteStrategy"] }, + _ionic_native_in_app_browser_ngx__WEBPACK_IMPORTED_MODULE_10__["InAppBrowser"], + ], + bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_8__["AppComponent"]], + schemas: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["CUSTOM_ELEMENTS_SCHEMA"]] + }) +], AppModule); + + + +/***/ }), + +/***/ "./src/environments/environment.ts": +/*!*****************************************!*\ + !*** ./src/environments/environment.ts ***! + \*****************************************/ +/*! exports provided: environment */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; }); +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. +const environment = { + production: false, + apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V3/api/', + apiChatUrl: 'http://192.168.100.111:3000/api/v1/', + domain: 'gabinetedigital.local', + defaultuser: 'paulo.pinto', + defaultuserpwd: 'tabteste@006' +}; +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. + + +/***/ }), + +/***/ "./src/main.ts": +/*!*********************!*\ + !*** ./src/main.ts ***! + \*********************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/__ivy_ngcc__/fesm2015/platform-browser-dynamic.js"); +/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts"); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts"); + + + + +if (_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].production) { + Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])(); +} +Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"]) + .catch(err => console.log(err)); + + +/***/ }), + +/***/ 0: +/*!**********************************************************************************************************!*\ + !*** multi (webpack)-dev-server/client?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node ./src/main.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! C:\Users\tiago.kayaya\development\gabinete-digital\node_modules\webpack-dev-server\client\index.js?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node */"./node_modules/webpack-dev-server/client/index.js?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node"); +module.exports = __webpack_require__(/*! C:\Users\tiago.kayaya\development\gabinete-digital\src\main.ts */"./src/main.ts"); + + +/***/ }), + +/***/ 1: +/*!********************!*\ + !*** ws (ignored) ***! + \********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/* (ignored) */ + +/***/ }) + +},[[0,"runtime","vendor"]]]); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/pages-gabinete-digital-gabinete-digital-module.js.download b/src/assets/images/Gabinete Digital_files/pages-gabinete-digital-gabinete-digital-module.js.download new file mode 100644 index 000000000..4891cc4ca --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/pages-gabinete-digital-gabinete-digital-module.js.download @@ -0,0 +1,196 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["pages-gabinete-digital-gabinete-digital-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/gabinete-digital.page.html": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/gabinete-digital.page.html ***! + \*********************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\r\n \r\n Gabinete Digital\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Eventos para Aprovação\r\n \r\n \r\n Minha agenda\r\n {{count_ev_md}}\r\n \r\n \r\n Agenda do Presidente\r\n {{count_ev_pr}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Expediente\r\n \r\n \r\n Correspondência\r\n {{ count_exp_dailywork }}\r\n \r\n \r\n Pedidos de parecer\r\n {{count_exp_pp}}\r\n \r\n \r\n Pedidos de deferimento\r\n {{count_exp_pd}}\r\n \r\n \r\n \r\n\r\n\r\n \r\n Expediente para o PR\r\n \r\n \r\n Correspondência\r\n {{count_de_pr}}\r\n \r\n \r\n \r\n\r\n\r\n \r\n Despachos Efectuados\r\n \r\n \r\n Presidente da República\r\n {{count_de_pr}}\r\n \r\n \r\n \r\n\r\n\r\n \r\n Diplomas\r\n \r\n \r\n Por validar (MDGPR)\r\n {{count_dip_pv}}\r\n \r\n \r\n Assinados pelo PR\r\n {{count_dip_apr}}\r\n \r\n \r\n \r\n\r\n\r\n\r\n"); + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts": +/*!***************************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts ***! + \***************************************************************************/ +/*! exports provided: GabineteDigitalPageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GabineteDigitalPageRoutingModule", function() { return GabineteDigitalPageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _gabinete_digital_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./gabinete-digital.page */ "./src/app/pages/gabinete-digital/gabinete-digital.page.ts"); + + + + +const routes = [ + { + path: '', + component: _gabinete_digital_page__WEBPACK_IMPORTED_MODULE_3__["GabineteDigitalPage"] + }, + { + path: 'expediente', + loadChildren: () => Promise.all(/*! import() | expediente-expediente-module */[__webpack_require__.e("default~expediente-expediente-module~pages-agenda-agenda-module"), __webpack_require__.e("expediente-expediente-module")]).then(__webpack_require__.bind(null, /*! ./expediente/expediente.module */ "./src/app/pages/gabinete-digital/expediente/expediente.module.ts")).then(m => m.ExpedientePageModule) + }, + { + path: 'event-list', + loadChildren: () => Promise.all(/*! import() | event-list-event-list-module */[__webpack_require__.e("common"), __webpack_require__.e("event-list-event-list-module")]).then(__webpack_require__.bind(null, /*! ./event-list/event-list.module */ "./src/app/pages/gabinete-digital/event-list/event-list.module.ts")).then(m => m.EventListPageModule) + }, + { + path: 'event-list-pr', + loadChildren: () => __webpack_require__.e(/*! import() | event-list-pr-event-list-pr-module */ "event-list-pr-event-list-pr-module").then(__webpack_require__.bind(null, /*! ./event-list-pr/event-list-pr.module */ "./src/app/pages/gabinete-digital/event-list-pr/event-list-pr.module.ts")).then(m => m.EventListPrPageModule) + } +]; +let GabineteDigitalPageRoutingModule = class GabineteDigitalPageRoutingModule { +}; +GabineteDigitalPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], GabineteDigitalPageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/gabinete-digital.module.ts": +/*!*******************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/gabinete-digital.module.ts ***! + \*******************************************************************/ +/*! exports provided: GabineteDigitalPageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GabineteDigitalPageModule", function() { return GabineteDigitalPageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _gabinete_digital_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./gabinete-digital-routing.module */ "./src/app/pages/gabinete-digital/gabinete-digital-routing.module.ts"); +/* harmony import */ var _gabinete_digital_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./gabinete-digital.page */ "./src/app/pages/gabinete-digital/gabinete-digital.page.ts"); + + + + + + + +/* import { ComponentsModule } from 'src/app/components/components.module'; */ +let GabineteDigitalPageModule = class GabineteDigitalPageModule { +}; +GabineteDigitalPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + /* ComponentsModule, */ + _gabinete_digital_routing_module__WEBPACK_IMPORTED_MODULE_5__["GabineteDigitalPageRoutingModule"] + ], + declarations: [_gabinete_digital_page__WEBPACK_IMPORTED_MODULE_6__["GabineteDigitalPage"]], + schemas: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["CUSTOM_ELEMENTS_SCHEMA"]] + }) +], GabineteDigitalPageModule); + + + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/gabinete-digital.page.scss": +/*!*******************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/gabinete-digital.page.scss ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = (":host ion-card-title {\n text-align: center;\n}\n:host ion-card {\n background-color: #d4d5ca;\n border-radius: 20px;\n}\n:host ion-item {\n --ion-background-color:#dae3f3;\n margin-bottom: 10px;\n border-radius: 5px;\n}\n:host ion-button {\n color: #000;\n --background:none;\n --border-color: none;\n --box-shadow:none;\n}\n:host ion-label {\n padding: 10px;\n}\n.ion-item-change-color {\n --ion-background-color:#fff2cc !important;\n margin-bottom: 10px;\n border-radius: 5px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvZ2FiaW5ldGUtZGlnaXRhbC9DOlxcVXNlcnNcXHRpYWdvLmtheWF5YVxcZGV2ZWxvcG1lbnRcXGdhYmluZXRlLWRpZ2l0YWwvc3JjXFxhcHBcXHBhZ2VzXFxnYWJpbmV0ZS1kaWdpdGFsXFxnYWJpbmV0ZS1kaWdpdGFsLnBhZ2Uuc2NzcyIsInNyYy9hcHAvcGFnZXMvZ2FiaW5ldGUtZGlnaXRhbC9nYWJpbmV0ZS1kaWdpdGFsLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDRTtFQUNJLGtCQUFBO0FDQU47QURHQTtFQUNFLHlCQUFBO0VBQ0EsbUJBQUE7QUNERjtBREdBO0VBQ0UsOEJBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FDREY7QURHQTtFQUNHLFdBQUE7RUFDRCxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QUNERjtBREdBO0VBQ0csYUFBQTtBQ0RIO0FESUE7RUFDRSx5Q0FBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUNERiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2dhYmluZXRlLWRpZ2l0YWwvZ2FiaW5ldGUtZGlnaXRhbC5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdHtcclxuICBpb24tY2FyZC10aXRsZXtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbmlvbi1jYXJke1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGQ1Y2E7XHJcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcclxufVxyXG5pb24taXRlbXtcclxuICAtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNkYWUzZjM7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuaW9uLWJ1dHRvbntcclxuICAgY29sb3I6ICMwMDA7XHJcbiAgLS1iYWNrZ3JvdW5kOm5vbmU7XHJcbiAgLS1ib3JkZXItY29sb3I6IG5vbmU7XHJcbiAgLS1ib3gtc2hhZG93Om5vbmU7XHJcbn1cclxuaW9uLWxhYmVse1xyXG4gICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcbn1cclxuLmlvbi1pdGVtLWNoYW5nZS1jb2xvcntcclxuICAtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmZmYyY2MgIWltcG9ydGFudDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxufSIsIjpob3N0IGlvbi1jYXJkLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuOmhvc3QgaW9uLWNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNWNhO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuOmhvc3QgaW9uLWl0ZW0ge1xuICAtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNkYWUzZjM7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbjpob3N0IGlvbi1idXR0b24ge1xuICBjb2xvcjogIzAwMDtcbiAgLS1iYWNrZ3JvdW5kOm5vbmU7XG4gIC0tYm9yZGVyLWNvbG9yOiBub25lO1xuICAtLWJveC1zaGFkb3c6bm9uZTtcbn1cbjpob3N0IGlvbi1sYWJlbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5pb24taXRlbS1jaGFuZ2UtY29sb3Ige1xuICAtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNmZmYyY2MgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufSJdfQ== */"); + +/***/ }), + +/***/ "./src/app/pages/gabinete-digital/gabinete-digital.page.ts": +/*!*****************************************************************!*\ + !*** ./src/app/pages/gabinete-digital/gabinete-digital.page.ts ***! + \*****************************************************************/ +/*! exports provided: GabineteDigitalPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GabineteDigitalPage", function() { return GabineteDigitalPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var src_app_services_processes_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/services/processes.service */ "./src/app/services/processes.service.ts"); +/* harmony import */ var src_app_services_alert_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/app/services/alert.service */ "./src/app/services/alert.service.ts"); + + + + +let GabineteDigitalPage = class GabineteDigitalPage { + constructor(processesbackend, alertService) { + this.processesbackend = processesbackend; + this.alertService = alertService; + } + ngOnInit() { + this.LoadCounts(); + console.log('cheguei'); + } + LoadCounts() { + this.showLoader = true; + this.processesbackend.GetTasksList("Expediente", true).subscribe(result => { + this.showLoader = false; + this.count_exp_dailywork = result; + }); + this.processesbackend.GetToApprovedEvents('PR', 'true').subscribe(res => { + this.count_ev_pr = res; + }); + this.processesbackend.GetToApprovedEvents('MDGPR', 'true').subscribe(res => { + this.count_ev_md = res; + }); + this.count_exp_pp = "-"; + this.count_exp_pd = "-"; + this.count_dip_apr = "-"; + this.count_dip_pv = "-"; + this.count_de_pr = "-"; + this.count_ev_md = '-'; + } + doRefresh(event) { + this.LoadCounts(); + setTimeout(() => { + event.target.complete(); + }, 2000); + } + notImplemented() { + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); + } +}; +GabineteDigitalPage.ctorParameters = () => [ + { type: src_app_services_processes_service__WEBPACK_IMPORTED_MODULE_2__["ProcessesService"] }, + { type: src_app_services_alert_service__WEBPACK_IMPORTED_MODULE_3__["AlertService"] } +]; +GabineteDigitalPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-gabinete-digital', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./gabinete-digital.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/gabinete-digital/gabinete-digital.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./gabinete-digital.page.scss */ "./src/app/pages/gabinete-digital/gabinete-digital.page.scss")).default] + }) +], GabineteDigitalPage); + + + +/***/ }) + +}]); +//# sourceMappingURL=pages-gabinete-digital-gabinete-digital-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/pages-login-login-module.js.download b/src/assets/images/Gabinete Digital_files/pages-login-login-module.js.download new file mode 100644 index 000000000..8b254b5a5 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/pages-login-login-module.js.download @@ -0,0 +1,281 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["pages-login-login-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/login/login.page.html": +/*!***********************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/pages/login/login.page.html ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\r\n
\r\n
\r\n logo\r\n
\r\n

Inicie a sessão

\r\n
\r\n \r\n \r\n Nome de utilizador\r\n \r\n \r\n \r\n Palavra-passe\r\n \r\n \r\n Iniciar\r\n \r\n
\r\n
\r\n
\r\n"); + +/***/ }), + +/***/ "./src/app/pages/login/login-routing.module.ts": +/*!*****************************************************!*\ + !*** ./src/app/pages/login/login-routing.module.ts ***! + \*****************************************************/ +/*! exports provided: LoginPageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginPageRoutingModule", function() { return LoginPageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _login_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./login.page */ "./src/app/pages/login/login.page.ts"); + + + + +const routes = [ + { + path: '', + component: _login_page__WEBPACK_IMPORTED_MODULE_3__["LoginPage"] + } +]; +let LoginPageRoutingModule = class LoginPageRoutingModule { +}; +LoginPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], LoginPageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/pages/login/login.module.ts": +/*!*********************************************!*\ + !*** ./src/app/pages/login/login.module.ts ***! + \*********************************************/ +/*! exports provided: LoginPageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginPageModule", function() { return LoginPageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _login_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./login-routing.module */ "./src/app/pages/login/login-routing.module.ts"); +/* harmony import */ var _login_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./login.page */ "./src/app/pages/login/login.page.ts"); + + + + + + + +let LoginPageModule = class LoginPageModule { +}; +LoginPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _login_routing_module__WEBPACK_IMPORTED_MODULE_5__["LoginPageRoutingModule"] + ], + declarations: [_login_page__WEBPACK_IMPORTED_MODULE_6__["LoginPage"]], + schemas: [_angular_core__WEBPACK_IMPORTED_MODULE_1__["CUSTOM_ELEMENTS_SCHEMA"]] + }) +], LoginPageModule); + + + +/***/ }), + +/***/ "./src/app/pages/login/login.page.scss": +/*!*********************************************!*\ + !*** ./src/app/pages/login/login.page.scss ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = (".wrapper {\n margin: 0 auto;\n}\n\n.div-logo {\n width: 270px;\n margin: 0 auto;\n padding-bottom: 15px;\n}\n\n.div-logo img {\n width: 100%;\n}\n\nform {\n /* border: 1px solid red; */\n padding: 10px;\n}\n\n.wrapper ion-label {\n font-size: 20px;\n}\n\n.wrapper ion-input {\n font-size: 22px;\n}\n\n.wrapper ion-button {\n font-size: medium;\n margin-top: 25px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbG9naW4vQzpcXFVzZXJzXFx0aWFnby5rYXlheWFcXGRldmVsb3BtZW50XFxnYWJpbmV0ZS1kaWdpdGFsL3NyY1xcYXBwXFxwYWdlc1xcbG9naW5cXGxvZ2luLnBhZ2Uuc2NzcyIsInNyYy9hcHAvcGFnZXMvbG9naW4vbG9naW4ucGFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksY0FBQTtBQ0NKOztBRENBO0VBQ0ksWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtBQ0VKOztBREFBO0VBQ0ksV0FBQTtBQ0dKOztBRERBO0VBQ0ksMkJBQUE7RUFDQSxhQUFBO0FDSUo7O0FERkE7RUFDSSxlQUFBO0FDS0o7O0FESEE7RUFDSSxlQUFBO0FDTUo7O0FESkE7RUFDSSxpQkFBQTtFQUNBLGdCQUFBO0FDT0oiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9sb2dpbi9sb2dpbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIud3JhcHBlcntcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcbi5kaXYtbG9nb3tcclxuICAgIHdpZHRoOiAyNzBweDtcclxuICAgIG1hcmdpbjogIDAgYXV0bztcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG59XHJcbi5kaXYtbG9nbyBpbWd7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5mb3Jte1xyXG4gICAgLyogYm9yZGVyOiAxcHggc29saWQgcmVkOyAqL1xyXG4gICAgcGFkZGluZzogMTBweDtcclxufVxyXG4ud3JhcHBlciBpb24tbGFiZWx7XHJcbiAgICBmb250LXNpemU6IDIwcHg7IFxyXG59XHJcbi53cmFwcGVyIGlvbi1pbnB1dHtcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxufVxyXG4ud3JhcHBlciBpb24tYnV0dG9ue1xyXG4gICAgZm9udC1zaXplOiBtZWRpdW07XHJcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xyXG59XHJcbiIsIi53cmFwcGVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5kaXYtbG9nbyB7XG4gIHdpZHRoOiAyNzBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuXG4uZGl2LWxvZ28gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmZvcm0ge1xuICAvKiBib3JkZXI6IDFweCBzb2xpZCByZWQ7ICovXG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi53cmFwcGVyIGlvbi1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLndyYXBwZXIgaW9uLWlucHV0IHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuXG4ud3JhcHBlciBpb24tYnV0dG9uIHtcbiAgZm9udC1zaXplOiBtZWRpdW07XG4gIG1hcmdpbi10b3A6IDI1cHg7XG59Il19 */"); + +/***/ }), + +/***/ "./src/app/pages/login/login.page.ts": +/*!*******************************************!*\ + !*** ./src/app/pages/login/login.page.ts ***! + \*******************************************/ +/*! exports provided: LoginPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginPage", function() { return LoginPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var src_app_services_auth_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/app/services/auth.service */ "./src/app/services/auth.service.ts"); +/* harmony import */ var src_app_services_toast_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! src/app/services/toast.service */ "./src/app/services/toast.service.ts"); +/* harmony import */ var src_environments_environment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! src/environments/environment */ "./src/environments/environment.ts"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var src_app_services_storage_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! src/app/services/storage.service */ "./src/app/services/storage.service.ts"); +/* harmony import */ var src_app_config_auth_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! src/app/config/auth-constants */ "./src/app/config/auth-constants.ts"); + + + + + + + + + +let LoginPage = class LoginPage { + constructor(router, authService, storageService, toastService, alertController) { + this.router = router; + this.authService = authService; + this.storageService = storageService; + this.toastService = toastService; + this.alertController = alertController; + this.username = src_environments_environment__WEBPACK_IMPORTED_MODULE_5__["environment"].defaultuser; + this.password = src_environments_environment__WEBPACK_IMPORTED_MODULE_5__["environment"].defaultuserpwd; + this.body = { "user": this.username, "password": this.password }; + this.postData = { "user": "admin", "password": this.password }; + } + ngOnInit() { + } + /* Function to validade the login inputs */ + validateInput() { + return (this.username.trim().length > 0 + && this.password.trim().length > 0); + } + presentAlert(message) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const alert = yield this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Mensagem do sistema', + message: message, + buttons: ['OK'] + }); + yield alert.present(); + }); + } + loginAction() { + if (this.validateInput()) { + this.authService.loginChat2(this.postData).subscribe((res) => { + if (res.data) { + this.storageService.store(src_app_config_auth_constants__WEBPACK_IMPORTED_MODULE_8__["AuthConnstants"].AUTH, res.data); + console.log('Log RockectChat OK'); + console.log(res.data); + } + else { + console.log("Invalid username or password!"); + } + }, (error) => { + console.log('Network error'); + }); + } + else { + this.presentAlert('Por favor, insira o seu nome de utilizador e palavra-passe.'); + } + } + Login() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + try { + //Go to our home in home/feed. + if (this.validateInput()) { + this.userattempt = { + username: this.username, + password: this.password, + domainName: src_environments_environment__WEBPACK_IMPORTED_MODULE_5__["environment"].domain, + BasicAuthKey: "" + }; + if (yield this.authService.login(this.userattempt)) { + this.loginAction(); + console.log('Log Gabinete Digital OK'); + this.router.navigate(['/home/events']); + } + else { + /* this.toastService.presentToast('Não foi possível fazer login"'); */ + this.presentAlert('O nome de utilizador e palavra-passe estão incorretas ou verifique a sua conexão com a internet e volte a tentar.'); + } + } + else { + /* this.toastService.presentToast('Preencha todos campos'); */ + this.presentAlert('Por favor, insira o seu nome de utilizador e palavra-passe.'); + } + } + catch (error) { + this.presentAlert('Ocorreu um erro ao fazer login. Contacte o administrador de sistema.'); + } + }); + } +}; +LoginPage.ctorParameters = () => [ + { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] }, + { type: src_app_services_auth_service__WEBPACK_IMPORTED_MODULE_3__["AuthService"] }, + { type: src_app_services_storage_service__WEBPACK_IMPORTED_MODULE_7__["StorageService"] }, + { type: src_app_services_toast_service__WEBPACK_IMPORTED_MODULE_4__["ToastService"] }, + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_6__["AlertController"] } +]; +LoginPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-login', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./login.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/pages/login/login.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./login.page.scss */ "./src/app/pages/login/login.page.scss")).default] + }) +], LoginPage); + + + +/***/ }), + +/***/ "./src/app/services/toast.service.ts": +/*!*******************************************!*\ + !*** ./src/app/services/toast.service.ts ***! + \*******************************************/ +/*! exports provided: ToastService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToastService", function() { return ToastService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + + + +let ToastService = class ToastService { + constructor(toastController) { + this.toastController = toastController; + } + presentToast(infoMessage) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const toast = yield this.toastController.create({ + message: infoMessage, + duration: 2000 + }); + toast.present(); + }); + } +}; +ToastService.ctorParameters = () => [ + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_2__["ToastController"] } +]; +ToastService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"])({ + providedIn: 'root' + }) +], ToastService); + + + +/***/ }) + +}]); +//# sourceMappingURL=pages-login-login-module.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/polyfills.js.download b/src/assets/images/Gabinete Digital_files/polyfills.js.download new file mode 100644 index 000000000..b9e14d5b9 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/polyfills.js.download @@ -0,0 +1,6156 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["polyfills"],{ + +/***/ "./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***! + \**************************************************************************************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var core_js_proposals_reflect_metadata__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/proposals/reflect-metadata */ "./node_modules/core-js/proposals/reflect-metadata.js"); +/* harmony import */ var core_js_proposals_reflect_metadata__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_proposals_reflect_metadata__WEBPACK_IMPORTED_MODULE_0__); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + +/***/ }), + +/***/ "./node_modules/core-js/internals/a-function.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/a-function.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/a-possible-prototype.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); + +module.exports = function (it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/an-instance.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/an-instance.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (it, Constructor, name) { + if (!(it instanceof Constructor)) { + throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); + } return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/an-object.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/an-object.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); + +module.exports = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/array-includes.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/array-includes.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); +var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); +var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.github.io/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.github.io/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/array-iteration.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/array-iteration.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); +var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); +var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); +var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js"); + +var push = [].push; + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push.call(target, value); // filter + } else if (IS_EVERY) return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.github.io/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.github.io/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.github.io/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.github.io/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.github.io/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.github.io/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6) +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/array-species-create.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/array-species-create.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var SPECIES = wellKnownSymbol('species'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.github.io/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": +/*!****************************************************************************!*\ + !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (error) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); + throw error; + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/check-correctness-of-iteration.js": +/*!**************************************************************************!*\ + !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line no-throw-literal + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/classof-raw.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/classof-raw.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/classof.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/internals/classof.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js"); +var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/collection-strong.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/collection-strong.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f; +var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); +var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js"); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); +var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); +var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js"); +var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js"); +var setSpecies = __webpack_require__(/*! ../internals/set-species */ "./node_modules/core-js/internals/set-species.js"); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var fastKey = __webpack_require__(/*! ../internals/internal-metadata */ "./node_modules/core-js/internals/internal-metadata.js").fastKey; +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, CONSTRUCTOR_NAME); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); + }); + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(this, key); + } + }); + + redefineAll(C.prototype, IS_MAP ? { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineProperty(C.prototype, 'size', { + get: function () { + return getInternalState(this).size; + } + }); + return C; + }, + setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return { value: undefined, done: true }; + } + // return step by kind + if (kind == 'keys') return { value: entry.key, done: false }; + if (kind == 'values') return { value: entry.value, done: false }; + return { value: [entry.key, entry.value], done: false }; + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/collection-weak.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/collection-weak.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js"); +var getWeakData = __webpack_require__(/*! ../internals/internal-metadata */ "./node_modules/core-js/internals/internal-metadata.js").getWeakData; +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); +var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js"); +var ArrayIterationModule = __webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js"); +var $has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (store) { + return store.frozen || (store.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) this.entries.splice(index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, CONSTRUCTOR_NAME); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); + }); + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && $has(data, state.id) && delete data[state.id]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && $has(data, state.id); + } + }); + + redefineAll(C.prototype, IS_MAP ? { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return define(this, key, value); + } + } : { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return define(this, value, true); + } + }); + + return C; + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/collection.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/collection.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); +var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); +var InternalMetadataModule = __webpack_require__(/*! ../internals/internal-metadata */ "./node_modules/core-js/internals/internal-metadata.js"); +var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js"); +var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); +var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ "./node_modules/core-js/internals/check-correctness-of-iteration.js"); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); +var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "./node_modules/core-js/internals/inherit-if-required.js"); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var nativeMethod = NativePrototype[KEY]; + redefine(NativePrototype, KEY, + KEY == 'add' ? function add(value) { + nativeMethod.call(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + } : function set(key, value) { + nativeMethod.call(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + // eslint-disable-next-line max-len + if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })))) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.REQUIRED = true; + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, Constructor, CONSTRUCTOR_NAME); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, forced: Constructor != NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/copy-constructor-properties.js": +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js"); +var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); + +module.exports = function (target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/correct-prototype-getter.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/create-iterator-constructor.js": +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; +var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); +var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js": +/*!**************************************************************************!*\ + !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/create-property-descriptor.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/define-iterator.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/define-iterator.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js"); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); +var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); +var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); +var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); +var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js"); + +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { + createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return nativeIterator.call(this); }; + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + return methods; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/descriptors.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/descriptors.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); + +// Thank's IE8 for his funny defineProperty +module.exports = !fails(function () { + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/document-create-element.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/document-create-element.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/enum-bug-keys.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/export.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/export.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); +var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); +var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js"); +var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/fails.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/internals/fails.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/freezing.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/internals/freezing.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); + +module.exports = !fails(function () { + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/function-bind-context.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/internals/function-bind-context.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); + +// optional / simple context binding +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/get-built-in.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/get-built-in.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js"); +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); + +var aFunction = function (variable) { + return typeof variable == 'function' ? variable : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) + : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/get-iterator-method.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/internals/get-iterator-method.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); +var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/global.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/global.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line no-undef + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + // eslint-disable-next-line no-new-func + Function('return this')(); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/has.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/internals/has.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/hidden-keys.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/hidden-keys.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/html.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/internals/html.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/ie8-dom-define.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); +var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); + +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/indexed-object.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/indexed-object.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); +var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); + +var split = ''.split; + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/inherit-if-required.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/internals/inherit-if-required.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + typeof (NewTarget = dummy.constructor) == 'function' && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/inspect-source.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/inspect-source.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); + +var functionToString = Function.toString; + +// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper +if (typeof store.inspectSource != 'function') { + store.inspectSource = function (it) { + return functionToString.call(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/internal-metadata.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/internal-metadata.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f; +var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); +var FREEZING = __webpack_require__(/*! ../internals/freezing */ "./node_modules/core-js/internals/freezing.js"); + +var METADATA = uid('meta'); +var id = 0; + +var isExtensible = Object.isExtensible || function () { + return true; +}; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + ++id, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!has(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it); + return it; +}; + +var meta = module.exports = { + REQUIRED: false, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/internal-state.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/internal-state.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js"); +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); +var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); + +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP) { + var store = new WeakMap(); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + wmset.call(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return objectHas(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/is-array-iterator-method.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); +var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/is-array.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/internals/is-array.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); + +// `IsArray` abstract operation +// https://tc39.github.io/ecma262/#sec-isarray +module.exports = Array.isArray || function isArray(arg) { + return classof(arg) == 'Array'; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/is-forced.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-forced.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/is-object.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-object.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/is-pure.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/internals/is-pure.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = false; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/iterate.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/internals/iterate.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js"); +var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); +var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); +var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { + var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1); + var iterator, iterFn, index, length, result, next, step; + + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = AS_ENTRIES + ? boundFunction(anObject(step = iterable[index])[0], step[1]) + : boundFunction(iterable[index]); + if (result && result instanceof Result) return result; + } return new Result(false); + } + iterator = iterFn.call(iterable); + } + + next = iterator.next; + while (!(step = next.call(iterator)).done) { + result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); + if (typeof result == 'object' && result && result instanceof Result) return result; + } return new Result(false); +}; + +iterate.stop = function (result) { + return new Result(true, result); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/iterators-core.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/iterators-core.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +var returnThis = function () { return this; }; + +// `%IteratorPrototype%` object +// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +if (IteratorPrototype == undefined) IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { + createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/iterators.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/iterators.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/native-symbol.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/native-symbol.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); + +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + // Chrome 38 Symbol has incorrect toString conversion + // eslint-disable-next-line no-undef + return !String(Symbol()); +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/native-weak-map.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/native-weak-map.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); + +var WeakMap = global.WeakMap; + +module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-create.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/object-create.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js"); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); +var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js"); +var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + /* global ActiveXObject */ + activeXDocument = document.domain && new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.github.io/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-define-properties.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-properties.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); + +// `Object.defineProperties` method +// https://tc39.github.io/ecma262/#sec-object.defineproperties +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); + return O; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-define-property.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-property.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); + +var nativeDefineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.github.io/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js": +/*!******************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); +var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); + +var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-get-own-property-names.js": +/*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.github.io/ecma262/#sec-object.getownpropertynames +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js": +/*!***************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-get-prototype-of.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js"); + +var IE_PROTO = sharedKey('IE_PROTO'); +var ObjectPrototype = Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.github.io/ecma262/#sec-object.getprototypeof +module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectPrototype : null; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-keys-internal.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys-internal.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); +var indexOf = __webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf; +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); + } + return result; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-keys.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); + +// `Object.keys` method +// https://tc39.github.io/ecma262/#sec-object.keys +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js": +/*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var nativePropertyIsEnumerable = {}.propertyIsEnumerable; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : nativePropertyIsEnumerable; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/object-set-prototype-of.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "./node_modules/core-js/internals/a-possible-prototype.js"); + +// `Object.setPrototypeOf` method +// https://tc39.github.io/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; + setter.call(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter.call(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/own-keys.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/internals/own-keys.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); +var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js"); +var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/path.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/internals/path.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); + +module.exports = global; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/redefine-all.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/redefine-all.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); + +module.exports = function (target, src, options) { + for (var key in src) redefine(target, key, src[key], options); + return target; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/redefine.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/internals/redefine.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); + +var getInternalState = InternalStateModule.get; +var enforceInternalState = InternalStateModule.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + if (typeof value == 'function') { + if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); + enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + if (O === global) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/reflect-metadata.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/internals/reflect-metadata.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +var Map = __webpack_require__(/*! ../modules/es.map */ "./node_modules/core-js/modules/es.map.js"); +var WeakMap = __webpack_require__(/*! ../modules/es.weak-map */ "./node_modules/core-js/modules/es.weak-map.js"); +var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); + +var metadata = shared('metadata'); +var store = metadata.store || (metadata.store = new WeakMap()); + +var getOrCreateMetadataMap = function (target, targetKey, create) { + var targetMetadata = store.get(target); + if (!targetMetadata) { + if (!create) return; + store.set(target, targetMetadata = new Map()); + } + var keyMetadata = targetMetadata.get(targetKey); + if (!keyMetadata) { + if (!create) return; + targetMetadata.set(targetKey, keyMetadata = new Map()); + } return keyMetadata; +}; + +var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); +}; + +var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); +}; + +var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); +}; + +var ordinaryOwnMetadataKeys = function (target, targetKey) { + var metadataMap = getOrCreateMetadataMap(target, targetKey, false); + var keys = []; + if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); + return keys; +}; + +var toMetadataKey = function (it) { + return it === undefined || typeof it == 'symbol' ? it : String(it); +}; + +module.exports = { + store: store, + getMap: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + toKey: toMetadataKey +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/require-object-coercible.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/require-object-coercible.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// `RequireObjectCoercible` abstract operation +// https://tc39.github.io/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/set-global.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/set-global.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); + +module.exports = function (key, value) { + try { + createNonEnumerableProperty(global, key, value); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/set-species.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/set-species.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + var defineProperty = definePropertyModule.f; + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineProperty(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/set-to-string-tag.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f; +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/shared-key.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/shared-key.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); +var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/shared-store.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/shared-store.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || setGlobal(SHARED, {}); + +module.exports = store; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/shared.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/shared.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); +var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.6.4', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2020 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-absolute-index.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-absolute-index.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-indexed-object.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-indexed-object.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-integer.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/to-integer.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var ceil = Math.ceil; +var floor = Math.floor; + +// `ToInteger` abstract operation +// https://tc39.github.io/ecma262/#sec-tointeger +module.exports = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-length.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-length.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.github.io/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-object.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-object.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); + +// `ToObject` abstract operation +// https://tc39.github.io/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-primitive.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/to-primitive.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); + +// `ToPrimitive` abstract operation +// https://tc39.github.io/ecma262/#sec-toprimitive +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function (input, PREFERRED_STRING) { + if (!isObject(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/to-string-tag-support.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/uid.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/internals/uid.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var id = 0; +var postfix = Math.random(); + +module.exports = function (key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); +}; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); + +module.exports = NATIVE_SYMBOL + // eslint-disable-next-line no-undef + && !Symbol.sham + // eslint-disable-next-line no-undef + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), + +/***/ "./node_modules/core-js/internals/well-known-symbol.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/well-known-symbol.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); +var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); +var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); +var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js"); + +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!has(WellKnownSymbolsStore, name)) { + if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; + else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), + +/***/ "./node_modules/core-js/modules/es.map.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/modules/es.map.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var collection = __webpack_require__(/*! ../internals/collection */ "./node_modules/core-js/internals/collection.js"); +var collectionStrong = __webpack_require__(/*! ../internals/collection-strong */ "./node_modules/core-js/internals/collection-strong.js"); + +// `Map` constructor +// https://tc39.github.io/ecma262/#sec-map-objects +module.exports = collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/es.set.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/modules/es.set.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var collection = __webpack_require__(/*! ../internals/collection */ "./node_modules/core-js/internals/collection.js"); +var collectionStrong = __webpack_require__(/*! ../internals/collection-strong */ "./node_modules/core-js/internals/collection-strong.js"); + +// `Set` constructor +// https://tc39.github.io/ecma262/#sec-set-objects +module.exports = collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/es.weak-map.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/es.weak-map.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); +var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js"); +var InternalMetadataModule = __webpack_require__(/*! ../internals/internal-metadata */ "./node_modules/core-js/internals/internal-metadata.js"); +var collection = __webpack_require__(/*! ../internals/collection */ "./node_modules/core-js/internals/collection.js"); +var collectionWeak = __webpack_require__(/*! ../internals/collection-weak */ "./node_modules/core-js/internals/collection-weak.js"); +var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); +var enforceIternalState = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").enforce; +var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js"); + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var isExtensible = Object.isExtensible; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.github.io/ecma262/#sec-weakmap-constructor +var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak); + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP && IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.REQUIRED = true; + var WeakMapPrototype = $WeakMap.prototype; + var nativeDelete = WeakMapPrototype['delete']; + var nativeHas = WeakMapPrototype.has; + var nativeGet = WeakMapPrototype.get; + var nativeSet = WeakMapPrototype.set; + redefineAll(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete.call(this, key) || state.frozen['delete'](key); + } return nativeDelete.call(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas.call(this, key) || state.frozen.has(key); + } return nativeHas.call(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); + } return nativeGet.call(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); + } else nativeSet.call(this, key, value); + return this; + } + }); +} + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.define-metadata.js": +/*!************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.define-metadata.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var toMetadataKey = ReflectMetadataModule.toKey; +var ordinaryDefineOwnMetadata = ReflectMetadataModule.set; + +// `Reflect.defineMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) { + var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]); + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.delete-metadata.js": +/*!************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.delete-metadata.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var toMetadataKey = ReflectMetadataModule.toKey; +var getOrCreateMetadataMap = ReflectMetadataModule.getMap; +var store = ReflectMetadataModule.store; + +// `Reflect.deleteMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js": +/*!**************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +var Set = __webpack_require__(/*! ../modules/es.set */ "./node_modules/core-js/modules/es.set.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); +var iterate = __webpack_require__(/*! ../internals/iterate */ "./node_modules/core-js/internals/iterate.js"); + +var ordinaryOwnMetadataKeys = ReflectMetadataModule.keys; +var toMetadataKey = ReflectMetadataModule.toKey; + +var from = function (iter) { + var result = []; + iterate(iter, result.push, result); + return result; +}; + +var ordinaryMetadataKeys = function (O, P) { + var oKeys = ordinaryOwnMetadataKeys(O, P); + var parent = getPrototypeOf(O); + if (parent === null) return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; +}; + +// `Reflect.getMetadataKeys` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { + var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]); + return ordinaryMetadataKeys(anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.get-metadata.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.get-metadata.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); + +var ordinaryHasOwnMetadata = ReflectMetadataModule.has; +var ordinaryGetOwnMetadata = ReflectMetadataModule.get; +var toMetadataKey = ReflectMetadataModule.toKey; + +var ordinaryGetMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; +}; + +// `Reflect.getMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + return ordinaryGetMetadata(metadataKey, anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js": +/*!******************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var ordinaryOwnMetadataKeys = ReflectMetadataModule.keys; +var toMetadataKey = ReflectMetadataModule.toKey; + +// `Reflect.getOwnMetadataKeys` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { + var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]); + return ordinaryOwnMetadataKeys(anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.get-own-metadata.js": +/*!*************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.get-own-metadata.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var ordinaryGetOwnMetadata = ReflectMetadataModule.get; +var toMetadataKey = ReflectMetadataModule.toKey; + +// `Reflect.getOwnMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.has-metadata.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.has-metadata.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); + +var ordinaryHasOwnMetadata = ReflectMetadataModule.has; +var toMetadataKey = ReflectMetadataModule.toKey; + +var ordinaryHasMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; +}; + +// `Reflect.hasMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + return ordinaryHasMetadata(metadataKey, anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.has-own-metadata.js": +/*!*************************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.has-own-metadata.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var ordinaryHasOwnMetadata = ReflectMetadataModule.has; +var toMetadataKey = ReflectMetadataModule.toKey; + +// `Reflect.hasOwnMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey); + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/modules/esnext.reflect.metadata.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/esnext.reflect.metadata.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); +var ReflectMetadataModule = __webpack_require__(/*! ../internals/reflect-metadata */ "./node_modules/core-js/internals/reflect-metadata.js"); +var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); + +var toMetadataKey = ReflectMetadataModule.toKey; +var ordinaryDefineOwnMetadata = ReflectMetadataModule.set; + +// `Reflect.metadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + metadata: function metadata(metadataKey, metadataValue) { + return function decorator(target, key) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key)); + }; + } +}); + + +/***/ }), + +/***/ "./node_modules/core-js/proposals/reflect-metadata.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/proposals/reflect-metadata.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ../modules/esnext.reflect.define-metadata */ "./node_modules/core-js/modules/esnext.reflect.define-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.delete-metadata */ "./node_modules/core-js/modules/esnext.reflect.delete-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.get-metadata */ "./node_modules/core-js/modules/esnext.reflect.get-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.get-metadata-keys */ "./node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js"); +__webpack_require__(/*! ../modules/esnext.reflect.get-own-metadata */ "./node_modules/core-js/modules/esnext.reflect.get-own-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.get-own-metadata-keys */ "./node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js"); +__webpack_require__(/*! ../modules/esnext.reflect.has-metadata */ "./node_modules/core-js/modules/esnext.reflect.has-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.has-own-metadata */ "./node_modules/core-js/modules/esnext.reflect.has-own-metadata.js"); +__webpack_require__(/*! ../modules/esnext.reflect.metadata */ "./node_modules/core-js/modules/esnext.reflect.metadata.js"); + + +/***/ }), + +/***/ "./node_modules/zone.js/dist/zone-evergreen.js": +/*!*****************************************************!*\ + !*** ./node_modules/zone.js/dist/zone-evergreen.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/** +* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes +* (c) 2010-2020 Google LLC. https://angular.io/ +* License: MIT +*/ +(function (factory) { + true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : + __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : + undefined; +}((function () { 'use strict'; + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const Zone$1 = (function (global) { + const performance = global['performance']; + function mark(name) { performance && performance['mark'] && performance['mark'](name); } + function performanceMeasure(name, label) { + performance && performance['measure'] && performance['measure'](name, label); + } + mark('Zone'); + // Initialize before it's accessed below. + // __Zone_symbol_prefix global can be used to override the default zone + // symbol prefix with a custom one if needed. + const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__'; + function __symbol__(name) { return symbolPrefix + name; } + const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true; + if (global['Zone']) { + // if global['Zone'] already exists (maybe zone.js was already loaded or + // some other lib also registered a global object named Zone), we may need + // to throw an error, but sometimes user may not want this error. + // For example, + // we have two web pages, page1 includes zone.js, page2 doesn't. + // and the 1st time user load page1 and page2, everything work fine, + // but when user load page2 again, error occurs because global['Zone'] already exists. + // so we add a flag to let user choose whether to throw this error or not. + // By default, if existing Zone is from zone.js, we will not throw the error. + if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { + throw new Error('Zone already loaded.'); + } + else { + return global['Zone']; + } + } + class Zone { + constructor(parent, zoneSpec) { + this._parent = parent; + this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; + this._properties = zoneSpec && zoneSpec.properties || {}; + this._zoneDelegate = + new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); + } + static assertZonePatched() { + if (global['Promise'] !== patches['ZoneAwarePromise']) { + throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + + 'has been overwritten.\n' + + 'Most likely cause is that a Promise polyfill has been loaded ' + + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + + 'If you must load one, do so before loading zone.js.)'); + } + } + static get root() { + let zone = Zone.current; + while (zone.parent) { + zone = zone.parent; + } + return zone; + } + static get current() { return _currentZoneFrame.zone; } + static get currentTask() { return _currentTask; } + // tslint:disable-next-line:require-internal-with-underscore + static __load_patch(name, fn) { + if (patches.hasOwnProperty(name)) { + if (checkDuplicate) { + throw Error('Already loaded patch: ' + name); + } + } + else if (!global['__Zone_disable_' + name]) { + const perfName = 'Zone:' + name; + mark(perfName); + patches[name] = fn(global, Zone, _api); + performanceMeasure(perfName, perfName); + } + } + get parent() { return this._parent; } + get name() { return this._name; } + get(key) { + const zone = this.getZoneWith(key); + if (zone) + return zone._properties[key]; + } + getZoneWith(key) { + let current = this; + while (current) { + if (current._properties.hasOwnProperty(key)) { + return current; + } + current = current._parent; + } + return null; + } + fork(zoneSpec) { + if (!zoneSpec) + throw new Error('ZoneSpec required!'); + return this._zoneDelegate.fork(this, zoneSpec); + } + wrap(callback, source) { + if (typeof callback !== 'function') { + throw new Error('Expecting function got: ' + callback); + } + const _callback = this._zoneDelegate.intercept(this, callback, source); + const zone = this; + return function () { + return zone.runGuarded(_callback, this, arguments, source); + }; + } + run(callback, applyThis, applyArgs, source) { + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; + try { + return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); + } + finally { + _currentZoneFrame = _currentZoneFrame.parent; + } + } + runGuarded(callback, applyThis = null, applyArgs, source) { + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; + try { + try { + return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); + } + catch (error) { + if (this._zoneDelegate.handleError(this, error)) { + throw error; + } + } + } + finally { + _currentZoneFrame = _currentZoneFrame.parent; + } + } + runTask(task, applyThis, applyArgs) { + if (task.zone != this) { + throw new Error('A task can only be run in the zone of creation! (Creation: ' + + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); + } + // https://github.com/angular/zone.js/issues/778, sometimes eventTask + // will run in notScheduled(canceled) state, we should not try to + // run such kind of task but just return + if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { + return; + } + const reEntryGuard = task.state != running; + reEntryGuard && task._transitionTo(running, scheduled); + task.runCount++; + const previousTask = _currentTask; + _currentTask = task; + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; + try { + if (task.type == macroTask && task.data && !task.data.isPeriodic) { + task.cancelFn = undefined; + } + try { + return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); + } + catch (error) { + if (this._zoneDelegate.handleError(this, error)) { + throw error; + } + } + } + finally { + // if the task's state is notScheduled or unknown, then it has already been cancelled + // we should not reset the state to scheduled + if (task.state !== notScheduled && task.state !== unknown) { + if (task.type == eventTask || (task.data && task.data.isPeriodic)) { + reEntryGuard && task._transitionTo(scheduled, running); + } + else { + task.runCount = 0; + this._updateTaskCount(task, -1); + reEntryGuard && + task._transitionTo(notScheduled, running, notScheduled); + } + } + _currentZoneFrame = _currentZoneFrame.parent; + _currentTask = previousTask; + } + } + scheduleTask(task) { + if (task.zone && task.zone !== this) { + // check if the task was rescheduled, the newZone + // should not be the children of the original zone + let newZone = this; + while (newZone) { + if (newZone === task.zone) { + throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`); + } + newZone = newZone.parent; + } + } + task._transitionTo(scheduling, notScheduled); + const zoneDelegates = []; + task._zoneDelegates = zoneDelegates; + task._zone = this; + try { + task = this._zoneDelegate.scheduleTask(this, task); + } + catch (err) { + // should set task's state to unknown when scheduleTask throw error + // because the err may from reschedule, so the fromState maybe notScheduled + task._transitionTo(unknown, scheduling, notScheduled); + // TODO: @JiaLiPassion, should we check the result from handleError? + this._zoneDelegate.handleError(this, err); + throw err; + } + if (task._zoneDelegates === zoneDelegates) { + // we have to check because internally the delegate can reschedule the task. + this._updateTaskCount(task, 1); + } + if (task.state == scheduling) { + task._transitionTo(scheduled, scheduling); + } + return task; + } + scheduleMicroTask(source, callback, data, customSchedule) { + return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); + } + scheduleMacroTask(source, callback, data, customSchedule, customCancel) { + return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); + } + scheduleEventTask(source, callback, data, customSchedule, customCancel) { + return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); + } + cancelTask(task) { + if (task.zone != this) + throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); + task._transitionTo(canceling, scheduled, running); + try { + this._zoneDelegate.cancelTask(this, task); + } + catch (err) { + // if error occurs when cancelTask, transit the state to unknown + task._transitionTo(unknown, canceling); + this._zoneDelegate.handleError(this, err); + throw err; + } + this._updateTaskCount(task, -1); + task._transitionTo(notScheduled, canceling); + task.runCount = 0; + return task; + } + _updateTaskCount(task, count) { + const zoneDelegates = task._zoneDelegates; + if (count == -1) { + task._zoneDelegates = null; + } + for (let i = 0; i < zoneDelegates.length; i++) { + zoneDelegates[i]._updateTaskCount(task.type, count); + } + } + } + // tslint:disable-next-line:require-internal-with-underscore + Zone.__symbol__ = __symbol__; + const DELEGATE_ZS = { + name: '', + onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState), + onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task), + onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs), + onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task) + }; + class ZoneDelegate { + constructor(zone, parentDelegate, zoneSpec) { + this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 }; + this.zone = zone; + this._parentDelegate = parentDelegate; + this._forkZS = + zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); + this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); + this._forkCurrZone = + zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone); + this._interceptZS = + zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); + this._interceptDlgt = + zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); + this._interceptCurrZone = + zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone); + this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); + this._invokeDlgt = + zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); + this._invokeCurrZone = + zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone); + this._handleErrorZS = + zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); + this._handleErrorDlgt = zoneSpec && + (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); + this._handleErrorCurrZone = + zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone); + this._scheduleTaskZS = + zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); + this._scheduleTaskDlgt = zoneSpec && + (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); + this._scheduleTaskCurrZone = zoneSpec && + (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone); + this._invokeTaskZS = + zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); + this._invokeTaskDlgt = + zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); + this._invokeTaskCurrZone = + zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone); + this._cancelTaskZS = + zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); + this._cancelTaskDlgt = + zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); + this._cancelTaskCurrZone = + zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone); + this._hasTaskZS = null; + this._hasTaskDlgt = null; + this._hasTaskDlgtOwner = null; + this._hasTaskCurrZone = null; + const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; + const parentHasTask = parentDelegate && parentDelegate._hasTaskZS; + if (zoneSpecHasTask || parentHasTask) { + // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such + // a case all task related interceptors must go through this ZD. We can't short circuit it. + this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; + this._hasTaskDlgt = parentDelegate; + this._hasTaskDlgtOwner = this; + this._hasTaskCurrZone = zone; + if (!zoneSpec.onScheduleTask) { + this._scheduleTaskZS = DELEGATE_ZS; + this._scheduleTaskDlgt = parentDelegate; + this._scheduleTaskCurrZone = this.zone; + } + if (!zoneSpec.onInvokeTask) { + this._invokeTaskZS = DELEGATE_ZS; + this._invokeTaskDlgt = parentDelegate; + this._invokeTaskCurrZone = this.zone; + } + if (!zoneSpec.onCancelTask) { + this._cancelTaskZS = DELEGATE_ZS; + this._cancelTaskDlgt = parentDelegate; + this._cancelTaskCurrZone = this.zone; + } + } + } + fork(targetZone, zoneSpec) { + return this._forkZS ? + this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : + new Zone(targetZone, zoneSpec); + } + intercept(targetZone, callback, source) { + return this._interceptZS ? + this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : + callback; + } + invoke(targetZone, callback, applyThis, applyArgs, source) { + return this._invokeZS ? + this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : + callback.apply(applyThis, applyArgs); + } + handleError(targetZone, error) { + return this._handleErrorZS ? + this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : + true; + } + scheduleTask(targetZone, task) { + let returnTask = task; + if (this._scheduleTaskZS) { + if (this._hasTaskZS) { + returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); + } + // clang-format off + returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); + // clang-format on + if (!returnTask) + returnTask = task; + } + else { + if (task.scheduleFn) { + task.scheduleFn(task); + } + else if (task.type == microTask) { + scheduleMicroTask(task); + } + else { + throw new Error('Task is missing scheduleFn.'); + } + } + return returnTask; + } + invokeTask(targetZone, task, applyThis, applyArgs) { + return this._invokeTaskZS ? + this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : + task.callback.apply(applyThis, applyArgs); + } + cancelTask(targetZone, task) { + let value; + if (this._cancelTaskZS) { + value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); + } + else { + if (!task.cancelFn) { + throw Error('Task is not cancelable'); + } + value = task.cancelFn(task); + } + return value; + } + hasTask(targetZone, isEmpty) { + // hasTask should not throw error so other ZoneDelegate + // can still trigger hasTask callback + try { + this._hasTaskZS && + this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); + } + catch (err) { + this.handleError(targetZone, err); + } + } + // tslint:disable-next-line:require-internal-with-underscore + _updateTaskCount(type, count) { + const counts = this._taskCounts; + const prev = counts[type]; + const next = counts[type] = prev + count; + if (next < 0) { + throw new Error('More tasks executed then were scheduled.'); + } + if (prev == 0 || next == 0) { + const isEmpty = { + microTask: counts['microTask'] > 0, + macroTask: counts['macroTask'] > 0, + eventTask: counts['eventTask'] > 0, + change: type + }; + this.hasTask(this.zone, isEmpty); + } + } + } + class ZoneTask { + constructor(type, source, callback, options, scheduleFn, cancelFn) { + // tslint:disable-next-line:require-internal-with-underscore + this._zone = null; + this.runCount = 0; + // tslint:disable-next-line:require-internal-with-underscore + this._zoneDelegates = null; + // tslint:disable-next-line:require-internal-with-underscore + this._state = 'notScheduled'; + this.type = type; + this.source = source; + this.data = options; + this.scheduleFn = scheduleFn; + this.cancelFn = cancelFn; + if (!callback) { + throw new Error('callback is not defined'); + } + this.callback = callback; + const self = this; + // TODO: @JiaLiPassion options should have interface + if (type === eventTask && options && options.useG) { + this.invoke = ZoneTask.invokeTask; + } + else { + this.invoke = function () { + return ZoneTask.invokeTask.call(global, self, this, arguments); + }; + } + } + static invokeTask(task, target, args) { + if (!task) { + task = this; + } + _numberOfNestedTaskFrames++; + try { + task.runCount++; + return task.zone.runTask(task, target, args); + } + finally { + if (_numberOfNestedTaskFrames == 1) { + drainMicroTaskQueue(); + } + _numberOfNestedTaskFrames--; + } + } + get zone() { return this._zone; } + get state() { return this._state; } + cancelScheduleRequest() { this._transitionTo(notScheduled, scheduling); } + // tslint:disable-next-line:require-internal-with-underscore + _transitionTo(toState, fromState1, fromState2) { + if (this._state === fromState1 || this._state === fromState2) { + this._state = toState; + if (toState == notScheduled) { + this._zoneDelegates = null; + } + } + else { + throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \'' + fromState2 + '\'' : ''}, was '${this._state}'.`); + } + } + toString() { + if (this.data && typeof this.data.handleId !== 'undefined') { + return this.data.handleId.toString(); + } + else { + return Object.prototype.toString.call(this); + } + } + // add toJSON method to prevent cyclic error when + // call JSON.stringify(zoneTask) + toJSON() { + return { + type: this.type, + state: this.state, + source: this.source, + zone: this.zone.name, + runCount: this.runCount + }; + } + } + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// MICROTASK QUEUE + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + const symbolSetTimeout = __symbol__('setTimeout'); + const symbolPromise = __symbol__('Promise'); + const symbolThen = __symbol__('then'); + let _microTaskQueue = []; + let _isDrainingMicrotaskQueue = false; + let nativeMicroTaskQueuePromise; + function scheduleMicroTask(task) { + // if we are not running in any task, and there has not been anything scheduled + // we must bootstrap the initial task creation by manually scheduling the drain + if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { + // We are not running in Task, so we need to kickstart the microtask queue. + if (!nativeMicroTaskQueuePromise) { + if (global[symbolPromise]) { + nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); + } + } + if (nativeMicroTaskQueuePromise) { + let nativeThen = nativeMicroTaskQueuePromise[symbolThen]; + if (!nativeThen) { + // native Promise is not patchable, we need to use `then` directly + // issue 1078 + nativeThen = nativeMicroTaskQueuePromise['then']; + } + nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue); + } + else { + global[symbolSetTimeout](drainMicroTaskQueue, 0); + } + } + task && _microTaskQueue.push(task); + } + function drainMicroTaskQueue() { + if (!_isDrainingMicrotaskQueue) { + _isDrainingMicrotaskQueue = true; + while (_microTaskQueue.length) { + const queue = _microTaskQueue; + _microTaskQueue = []; + for (let i = 0; i < queue.length; i++) { + const task = queue[i]; + try { + task.zone.runTask(task, null, null); + } + catch (error) { + _api.onUnhandledError(error); + } + } + } + _api.microtaskDrainDone(); + _isDrainingMicrotaskQueue = false; + } + } + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// BOOTSTRAP + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + const NO_ZONE = { name: 'NO ZONE' }; + const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown'; + const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; + const patches = {}; + const _api = { + symbol: __symbol__, + currentZoneFrame: () => _currentZoneFrame, + onUnhandledError: noop, + microtaskDrainDone: noop, + scheduleMicroTask: scheduleMicroTask, + showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')], + patchEventTarget: () => [], + patchOnProperties: noop, + patchMethod: () => noop, + bindArguments: () => [], + patchThen: () => noop, + patchMacroTask: () => noop, + setNativePromise: (NativePromise) => { + // sometimes NativePromise.resolve static function + // is not ready yet, (such as core-js/es6.promise) + // so we need to check here. + if (NativePromise && typeof NativePromise.resolve === 'function') { + nativeMicroTaskQueuePromise = NativePromise.resolve(0); + } + }, + patchEventPrototype: () => noop, + isIEOrEdge: () => false, + getGlobalObjects: () => undefined, + ObjectDefineProperty: () => noop, + ObjectGetOwnPropertyDescriptor: () => undefined, + ObjectCreate: () => undefined, + ArraySlice: () => [], + patchClass: () => noop, + wrapWithCurrentZone: () => noop, + filterProperties: () => [], + attachOriginToPatched: () => noop, + _redefineProperty: () => noop, + patchCallbacks: () => noop + }; + let _currentZoneFrame = { parent: null, zone: new Zone(null, null) }; + let _currentTask = null; + let _numberOfNestedTaskFrames = 0; + function noop() { } + performanceMeasure('Zone', 'Zone'); + return global['Zone'] = Zone; + })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => { + const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + const ObjectDefineProperty = Object.defineProperty; + function readableObjectToString(obj) { + if (obj && obj.toString === Object.prototype.toString) { + const className = obj.constructor && obj.constructor.name; + return (className ? className : '') + ': ' + JSON.stringify(obj); + } + return obj ? obj.toString() : Object.prototype.toString.call(obj); + } + const __symbol__ = api.symbol; + const _uncaughtPromiseErrors = []; + const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true; + const symbolPromise = __symbol__('Promise'); + const symbolThen = __symbol__('then'); + const creationTrace = '__creationTrace__'; + api.onUnhandledError = (e) => { + if (api.showUncaughtError()) { + const rejection = e && e.rejection; + if (rejection) { + console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); + } + else { + console.error(e); + } + } + }; + api.microtaskDrainDone = () => { + while (_uncaughtPromiseErrors.length) { + const uncaughtPromiseError = _uncaughtPromiseErrors.shift(); + try { + uncaughtPromiseError.zone.runGuarded(() => { throw uncaughtPromiseError; }); + } + catch (error) { + handleUnhandledRejection(error); + } + } + }; + const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); + function handleUnhandledRejection(e) { + api.onUnhandledError(e); + try { + const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; + if (typeof handler === 'function') { + handler.call(this, e); + } + } + catch (err) { + } + } + function isThenable(value) { return value && value.then; } + function forwardResolution(value) { return value; } + function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); } + const symbolState = __symbol__('state'); + const symbolValue = __symbol__('value'); + const symbolFinally = __symbol__('finally'); + const symbolParentPromiseValue = __symbol__('parentPromiseValue'); + const symbolParentPromiseState = __symbol__('parentPromiseState'); + const source = 'Promise.then'; + const UNRESOLVED = null; + const RESOLVED = true; + const REJECTED = false; + const REJECTED_NO_CATCH = 0; + function makeResolver(promise, state) { + return (v) => { + try { + resolvePromise(promise, state, v); + } + catch (err) { + resolvePromise(promise, false, err); + } + // Do not return value or you will break the Promise spec. + }; + } + const once = function () { + let wasCalled = false; + return function wrapper(wrappedFunction) { + return function () { + if (wasCalled) { + return; + } + wasCalled = true; + wrappedFunction.apply(null, arguments); + }; + }; + }; + const TYPE_ERROR = 'Promise resolved with itself'; + const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); + // Promise Resolution + function resolvePromise(promise, state, value) { + const onceWrapper = once(); + if (promise === value) { + throw new TypeError(TYPE_ERROR); + } + if (promise[symbolState] === UNRESOLVED) { + // should only get value.then once based on promise spec. + let then = null; + try { + if (typeof value === 'object' || typeof value === 'function') { + then = value && value.then; + } + } + catch (err) { + onceWrapper(() => { resolvePromise(promise, false, err); })(); + return promise; + } + // if (value instanceof ZoneAwarePromise) { + if (state !== REJECTED && value instanceof ZoneAwarePromise && + value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && + value[symbolState] !== UNRESOLVED) { + clearRejectedNoCatch(value); + resolvePromise(promise, value[symbolState], value[symbolValue]); + } + else if (state !== REJECTED && typeof then === 'function') { + try { + then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); + } + catch (err) { + onceWrapper(() => { resolvePromise(promise, false, err); })(); + } + } + else { + promise[symbolState] = state; + const queue = promise[symbolValue]; + promise[symbolValue] = value; + if (promise[symbolFinally] === symbolFinally) { + // the promise is generated by Promise.prototype.finally + if (state === RESOLVED) { + // the state is resolved, should ignore the value + // and use parent promise value + promise[symbolState] = promise[symbolParentPromiseState]; + promise[symbolValue] = promise[symbolParentPromiseValue]; + } + } + // record task information in value when error occurs, so we can + // do some additional work such as render longStackTrace + if (state === REJECTED && value instanceof Error) { + // check if longStackTraceZone is here + const trace = Zone.currentTask && Zone.currentTask.data && + Zone.currentTask.data[creationTrace]; + if (trace) { + // only keep the long stack trace into error when in longStackTraceZone + ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace }); + } + } + for (let i = 0; i < queue.length;) { + scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); + } + if (queue.length == 0 && state == REJECTED) { + promise[symbolState] = REJECTED_NO_CATCH; + let uncaughtPromiseError = value; + if (!isDisableWrappingUncaughtPromiseRejection) { + // If disable wrapping uncaught promise reject + // and the rejected value is an Error object, + // use the value instead of wrapping it. + try { + // Here we throws a new Error to print more readable error log + // and if the value is not an error, zone.js builds an `Error` + // Object here to attach the stack information. + throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + + (value && value.stack ? '\n' + value.stack : '')); + } + catch (err) { + uncaughtPromiseError = err; + } + } + uncaughtPromiseError.rejection = value; + uncaughtPromiseError.promise = promise; + uncaughtPromiseError.zone = Zone.current; + uncaughtPromiseError.task = Zone.currentTask; + _uncaughtPromiseErrors.push(uncaughtPromiseError); + api.scheduleMicroTask(); // to make sure that it is running + } + } + } + // Resolving an already resolved promise is a noop. + return promise; + } + const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); + function clearRejectedNoCatch(promise) { + if (promise[symbolState] === REJECTED_NO_CATCH) { + // if the promise is rejected no catch status + // and queue.length > 0, means there is a error handler + // here to handle the rejected promise, we should trigger + // windows.rejectionhandled eventHandler or nodejs rejectionHandled + // eventHandler + try { + const handler = Zone[REJECTION_HANDLED_HANDLER]; + if (handler && typeof handler === 'function') { + handler.call(this, { rejection: promise[symbolValue], promise: promise }); + } + } + catch (err) { + } + promise[symbolState] = REJECTED; + for (let i = 0; i < _uncaughtPromiseErrors.length; i++) { + if (promise === _uncaughtPromiseErrors[i].promise) { + _uncaughtPromiseErrors.splice(i, 1); + } + } + } + } + function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { + clearRejectedNoCatch(promise); + const promiseState = promise[symbolState]; + const delegate = promiseState ? + (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution : + (typeof onRejected === 'function') ? onRejected : forwardRejection; + zone.scheduleMicroTask(source, () => { + try { + const parentPromiseValue = promise[symbolValue]; + const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally]; + if (isFinallyPromise) { + // if the promise is generated from finally call, keep parent promise's state and value + chainPromise[symbolParentPromiseValue] = parentPromiseValue; + chainPromise[symbolParentPromiseState] = promiseState; + } + // should not pass value to finally callback + const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? + [] : + [parentPromiseValue]); + resolvePromise(chainPromise, true, value); + } + catch (error) { + // if error occurs, should always return this error + resolvePromise(chainPromise, false, error); + } + }, chainPromise); + } + const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; + const noop = function () { }; + class ZoneAwarePromise { + static toString() { return ZONE_AWARE_PROMISE_TO_STRING; } + static resolve(value) { + return resolvePromise(new this(null), RESOLVED, value); + } + static reject(error) { + return resolvePromise(new this(null), REJECTED, error); + } + static race(values) { + let resolve; + let reject; + let promise = new this((res, rej) => { + resolve = res; + reject = rej; + }); + function onResolve(value) { resolve(value); } + function onReject(error) { reject(error); } + for (let value of values) { + if (!isThenable(value)) { + value = this.resolve(value); + } + value.then(onResolve, onReject); + } + return promise; + } + static all(values) { return ZoneAwarePromise.allWithCallback(values); } + static allSettled(values) { + const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise; + return P.allWithCallback(values, { + thenCallback: (value) => ({ status: 'fulfilled', value }), + errorCallback: (err) => ({ status: 'rejected', reason: err }) + }); + } + static allWithCallback(values, callback) { + let resolve; + let reject; + let promise = new this((res, rej) => { + resolve = res; + reject = rej; + }); + // Start at 2 to prevent prematurely resolving if .then is called immediately. + let unresolvedCount = 2; + let valueIndex = 0; + const resolvedValues = []; + for (let value of values) { + if (!isThenable(value)) { + value = this.resolve(value); + } + const curValueIndex = valueIndex; + try { + value.then((value) => { + resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value; + unresolvedCount--; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + }, (err) => { + if (!callback) { + reject(err); + } + else { + resolvedValues[curValueIndex] = callback.errorCallback(err); + unresolvedCount--; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + } + }); + } + catch (thenErr) { + reject(thenErr); + } + unresolvedCount++; + valueIndex++; + } + // Make the unresolvedCount zero-based again. + unresolvedCount -= 2; + if (unresolvedCount === 0) { + resolve(resolvedValues); + } + return promise; + } + constructor(executor) { + const promise = this; + if (!(promise instanceof ZoneAwarePromise)) { + throw new Error('Must be an instanceof Promise.'); + } + promise[symbolState] = UNRESOLVED; + promise[symbolValue] = []; // queue; + try { + executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED)); + } + catch (error) { + resolvePromise(promise, false, error); + } + } + get [Symbol.toStringTag]() { return 'Promise'; } + get [Symbol.species]() { return ZoneAwarePromise; } + then(onFulfilled, onRejected) { + let C = this.constructor[Symbol.species]; + if (!C || typeof C !== 'function') { + C = this.constructor || ZoneAwarePromise; + } + const chainPromise = new C(noop); + const zone = Zone.current; + if (this[symbolState] == UNRESOLVED) { + this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); + } + else { + scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); + } + return chainPromise; + } + catch(onRejected) { + return this.then(null, onRejected); + } + finally(onFinally) { + let C = this.constructor[Symbol.species]; + if (!C || typeof C !== 'function') { + C = ZoneAwarePromise; + } + const chainPromise = new C(noop); + chainPromise[symbolFinally] = symbolFinally; + const zone = Zone.current; + if (this[symbolState] == UNRESOLVED) { + this[symbolValue].push(zone, chainPromise, onFinally, onFinally); + } + else { + scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); + } + return chainPromise; + } + } + // Protect against aggressive optimizers dropping seemingly unused properties. + // E.g. Closure Compiler in advanced mode. + ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; + ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; + ZoneAwarePromise['race'] = ZoneAwarePromise.race; + ZoneAwarePromise['all'] = ZoneAwarePromise.all; + const NativePromise = global[symbolPromise] = global['Promise']; + const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise'); + let desc = ObjectGetOwnPropertyDescriptor(global, 'Promise'); + if (!desc || desc.configurable) { + desc && delete desc.writable; + desc && delete desc.value; + if (!desc) { + desc = { configurable: true, enumerable: true }; + } + desc.get = function () { + // if we already set ZoneAwarePromise, use patched one + // otherwise return native one. + return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise]; + }; + desc.set = function (NewNativePromise) { + if (NewNativePromise === ZoneAwarePromise) { + // if the NewNativePromise is ZoneAwarePromise + // save to global + global[ZONE_AWARE_PROMISE] = NewNativePromise; + } + else { + // if the NewNativePromise is not ZoneAwarePromise + // for example: after load zone.js, some library just + // set es6-promise to global, if we set it to global + // directly, assertZonePatched will fail and angular + // will not loaded, so we just set the NewNativePromise + // to global[symbolPromise], so the result is just like + // we load ES6 Promise before zone.js + global[symbolPromise] = NewNativePromise; + if (!NewNativePromise.prototype[symbolThen]) { + patchThen(NewNativePromise); + } + api.setNativePromise(NewNativePromise); + } + }; + ObjectDefineProperty(global, 'Promise', desc); + } + global['Promise'] = ZoneAwarePromise; + const symbolThenPatched = __symbol__('thenPatched'); + function patchThen(Ctor) { + const proto = Ctor.prototype; + const prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); + if (prop && (prop.writable === false || !prop.configurable)) { + // check Ctor.prototype.then propertyDescriptor is writable or not + // in meteor env, writable is false, we should ignore such case + return; + } + const originalThen = proto.then; + // Keep a reference to the original method. + proto[symbolThen] = originalThen; + Ctor.prototype.then = function (onResolve, onReject) { + const wrapped = new ZoneAwarePromise((resolve, reject) => { originalThen.call(this, resolve, reject); }); + return wrapped.then(onResolve, onReject); + }; + Ctor[symbolThenPatched] = true; + } + api.patchThen = patchThen; + function zoneify(fn) { + return function () { + let resultPromise = fn.apply(this, arguments); + if (resultPromise instanceof ZoneAwarePromise) { + return resultPromise; + } + let ctor = resultPromise.constructor; + if (!ctor[symbolThenPatched]) { + patchThen(ctor); + } + return resultPromise; + }; + } + if (NativePromise) { + patchThen(NativePromise); + const fetch = global['fetch']; + if (typeof fetch == 'function') { + global[api.symbol('fetch')] = fetch; + global['fetch'] = zoneify(fetch); + } + } + // This is not part of public API, but it is useful for tests, so we expose it. + Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; + return ZoneAwarePromise; + }); + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * Suppress closure compiler errors about unknown 'Zone' variable + * @fileoverview + * @suppress {undefinedVars,globalThis,missingRequire} + */ + /// + // issue #989, to reduce bundle size, use short name + /** Object.getOwnPropertyDescriptor */ + const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + /** Object.defineProperty */ + const ObjectDefineProperty = Object.defineProperty; + /** Object.getPrototypeOf */ + const ObjectGetPrototypeOf = Object.getPrototypeOf; + /** Object.create */ + const ObjectCreate = Object.create; + /** Array.prototype.slice */ + const ArraySlice = Array.prototype.slice; + /** addEventListener string const */ + const ADD_EVENT_LISTENER_STR = 'addEventListener'; + /** removeEventListener string const */ + const REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; + /** zoneSymbol addEventListener */ + const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); + /** zoneSymbol removeEventListener */ + const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); + /** true string const */ + const TRUE_STR = 'true'; + /** false string const */ + const FALSE_STR = 'false'; + /** Zone symbol prefix string const. */ + const ZONE_SYMBOL_PREFIX = Zone.__symbol__(''); + function wrapWithCurrentZone(callback, source) { + return Zone.current.wrap(callback, source); + } + function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { + return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); + } + const zoneSymbol = Zone.__symbol__; + const isWindowExists = typeof window !== 'undefined'; + const internalWindow = isWindowExists ? window : undefined; + const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; + const REMOVE_ATTRIBUTE = 'removeAttribute'; + const NULL_ON_PROP_VALUE = [null]; + function bindArguments(args, source) { + for (let i = args.length - 1; i >= 0; i--) { + if (typeof args[i] === 'function') { + args[i] = wrapWithCurrentZone(args[i], source + '_' + i); + } + } + return args; + } + function patchPrototype(prototype, fnNames) { + const source = prototype.constructor['name']; + for (let i = 0; i < fnNames.length; i++) { + const name = fnNames[i]; + const delegate = prototype[name]; + if (delegate) { + const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name); + if (!isPropertyWritable(prototypeDesc)) { + continue; + } + prototype[name] = ((delegate) => { + const patched = function () { + return delegate.apply(this, bindArguments(arguments, source + '.' + name)); + }; + attachOriginToPatched(patched, delegate); + return patched; + })(delegate); + } + } + } + function isPropertyWritable(propertyDesc) { + if (!propertyDesc) { + return true; + } + if (propertyDesc.writable === false) { + return false; + } + return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); + } + const isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope); + // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify + // this code. + const isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' && + {}.toString.call(_global.process) === '[object process]'); + const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); + // we are in electron of nw, so we are both browser and nodejs + // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify + // this code. + const isMix = typeof _global.process !== 'undefined' && + {}.toString.call(_global.process) === '[object process]' && !isWebWorker && + !!(isWindowExists && internalWindow['HTMLElement']); + const zoneSymbolEventNames = {}; + const wrapFn = function (event) { + // https://github.com/angular/zone.js/issues/911, in IE, sometimes + // event will be undefined, so we need to use window.event + event = event || _global.event; + if (!event) { + return; + } + let eventNameSymbol = zoneSymbolEventNames[event.type]; + if (!eventNameSymbol) { + eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type); + } + const target = this || event.target || _global; + const listener = target[eventNameSymbol]; + let result; + if (isBrowser && target === internalWindow && event.type === 'error') { + // window.onerror have different signiture + // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror + // and onerror callback will prevent default when callback return true + const errorEvent = event; + result = listener && + listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); + if (result === true) { + event.preventDefault(); + } + } + else { + result = listener && listener.apply(this, arguments); + if (result != undefined && !result) { + event.preventDefault(); + } + } + return result; + }; + function patchProperty(obj, prop, prototype) { + let desc = ObjectGetOwnPropertyDescriptor(obj, prop); + if (!desc && prototype) { + // when patch window object, use prototype to check prop exist or not + const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); + if (prototypeDesc) { + desc = { enumerable: true, configurable: true }; + } + } + // if the descriptor not exists or is not configurable + // just return + if (!desc || !desc.configurable) { + return; + } + const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); + if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { + return; + } + // A property descriptor cannot have getter/setter and be writable + // deleting the writable and value properties avoids this error: + // + // TypeError: property descriptors must not specify a value or be writable when a + // getter or setter has been specified + delete desc.writable; + delete desc.value; + const originalDescGet = desc.get; + const originalDescSet = desc.set; + // substr(2) cuz 'onclick' -> 'click', etc + const eventName = prop.substr(2); + let eventNameSymbol = zoneSymbolEventNames[eventName]; + if (!eventNameSymbol) { + eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName); + } + desc.set = function (newValue) { + // in some of windows's onproperty callback, this is undefined + // so we need to check it + let target = this; + if (!target && obj === _global) { + target = _global; + } + if (!target) { + return; + } + let previousValue = target[eventNameSymbol]; + if (previousValue) { + target.removeEventListener(eventName, wrapFn); + } + // issue #978, when onload handler was added before loading zone.js + // we should remove it with originalDescSet + if (originalDescSet) { + originalDescSet.apply(target, NULL_ON_PROP_VALUE); + } + if (typeof newValue === 'function') { + target[eventNameSymbol] = newValue; + target.addEventListener(eventName, wrapFn, false); + } + else { + target[eventNameSymbol] = null; + } + }; + // The getter would return undefined for unassigned properties but the default value of an + // unassigned property is null + desc.get = function () { + // in some of windows's onproperty callback, this is undefined + // so we need to check it + let target = this; + if (!target && obj === _global) { + target = _global; + } + if (!target) { + return null; + } + const listener = target[eventNameSymbol]; + if (listener) { + return listener; + } + else if (originalDescGet) { + // result will be null when use inline event attribute, + // such as + // because the onclick function is internal raw uncompiled handler + // the onclick will be evaluated when first time event was triggered or + // the property is accessed, https://github.com/angular/zone.js/issues/525 + // so we should use original native get to retrieve the handler + let value = originalDescGet && originalDescGet.call(this); + if (value) { + desc.set.call(this, value); + if (typeof target[REMOVE_ATTRIBUTE] === 'function') { + target.removeAttribute(prop); + } + return value; + } + } + return null; + }; + ObjectDefineProperty(obj, prop, desc); + obj[onPropPatchedSymbol] = true; + } + function patchOnProperties(obj, properties, prototype) { + if (properties) { + for (let i = 0; i < properties.length; i++) { + patchProperty(obj, 'on' + properties[i], prototype); + } + } + else { + const onProperties = []; + for (const prop in obj) { + if (prop.substr(0, 2) == 'on') { + onProperties.push(prop); + } + } + for (let j = 0; j < onProperties.length; j++) { + patchProperty(obj, onProperties[j], prototype); + } + } + } + const originalInstanceKey = zoneSymbol('originalInstance'); + // wrap some native API on `window` + function patchClass(className) { + const OriginalClass = _global[className]; + if (!OriginalClass) + return; + // keep original class in global + _global[zoneSymbol(className)] = OriginalClass; + _global[className] = function () { + const a = bindArguments(arguments, className); + switch (a.length) { + case 0: + this[originalInstanceKey] = new OriginalClass(); + break; + case 1: + this[originalInstanceKey] = new OriginalClass(a[0]); + break; + case 2: + this[originalInstanceKey] = new OriginalClass(a[0], a[1]); + break; + case 3: + this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); + break; + case 4: + this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); + break; + default: + throw new Error('Arg list too long.'); + } + }; + // attach original delegate to patched function + attachOriginToPatched(_global[className], OriginalClass); + const instance = new OriginalClass(function () { }); + let prop; + for (prop in instance) { + // https://bugs.webkit.org/show_bug.cgi?id=44721 + if (className === 'XMLHttpRequest' && prop === 'responseBlob') + continue; + (function (prop) { + if (typeof instance[prop] === 'function') { + _global[className].prototype[prop] = function () { + return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); + }; + } + else { + ObjectDefineProperty(_global[className].prototype, prop, { + set: function (fn) { + if (typeof fn === 'function') { + this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); + // keep callback in wrapped function so we can + // use it in Function.prototype.toString to return + // the native one. + attachOriginToPatched(this[originalInstanceKey][prop], fn); + } + else { + this[originalInstanceKey][prop] = fn; + } + }, + get: function () { return this[originalInstanceKey][prop]; } + }); + } + }(prop)); + } + for (prop in OriginalClass) { + if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { + _global[className][prop] = OriginalClass[prop]; + } + } + } + function copySymbolProperties(src, dest) { + if (typeof Object.getOwnPropertySymbols !== 'function') { + return; + } + const symbols = Object.getOwnPropertySymbols(src); + symbols.forEach((symbol) => { + const desc = Object.getOwnPropertyDescriptor(src, symbol); + Object.defineProperty(dest, symbol, { + get: function () { return src[symbol]; }, + set: function (value) { + if (desc && (!desc.writable || typeof desc.set !== 'function')) { + // if src[symbol] is not writable or not have a setter, just return + return; + } + src[symbol] = value; + }, + enumerable: desc ? desc.enumerable : true, + configurable: desc ? desc.configurable : true + }); + }); + } + let shouldCopySymbolProperties = false; + function patchMethod(target, name, patchFn) { + let proto = target; + while (proto && !proto.hasOwnProperty(name)) { + proto = ObjectGetPrototypeOf(proto); + } + if (!proto && target[name]) { + // somehow we did not find it, but we can see it. This happens on IE for Window properties. + proto = target; + } + const delegateName = zoneSymbol(name); + let delegate = null; + if (proto && !(delegate = proto[delegateName])) { + delegate = proto[delegateName] = proto[name]; + // check whether proto[name] is writable + // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob + const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); + if (isPropertyWritable(desc)) { + const patchDelegate = patchFn(delegate, delegateName, name); + proto[name] = function () { return patchDelegate(this, arguments); }; + attachOriginToPatched(proto[name], delegate); + if (shouldCopySymbolProperties) { + copySymbolProperties(delegate, proto[name]); + } + } + } + return delegate; + } + // TODO: @JiaLiPassion, support cancel task later if necessary + function patchMacroTask(obj, funcName, metaCreator) { + let setNative = null; + function scheduleTask(task) { + const data = task.data; + data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); }; + setNative.apply(data.target, data.args); + return task; + } + setNative = patchMethod(obj, funcName, (delegate) => function (self, args) { + const meta = metaCreator(self, args); + if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { + return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); + } + else { + // cause an error by calling it directly. + return delegate.apply(self, args); + } + }); + } + function attachOriginToPatched(patched, original) { + patched[zoneSymbol('OriginalDelegate')] = original; + } + let isDetectedIEOrEdge = false; + let ieOrEdge = false; + function isIE() { + try { + const ua = internalWindow.navigator.userAgent; + if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { + return true; + } + } + catch (error) { + } + return false; + } + function isIEOrEdge() { + if (isDetectedIEOrEdge) { + return ieOrEdge; + } + isDetectedIEOrEdge = true; + try { + const ua = internalWindow.navigator.userAgent; + if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { + ieOrEdge = true; + } + } + catch (error) { + } + return ieOrEdge; + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + // override Function.prototype.toString to make zone.js patched function + // look like native function + Zone.__load_patch('toString', (global) => { + // patch Func.prototype.toString to let them look like native + const originalFunctionToString = Function.prototype.toString; + const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); + const PROMISE_SYMBOL = zoneSymbol('Promise'); + const ERROR_SYMBOL = zoneSymbol('Error'); + const newFunctionToString = function toString() { + if (typeof this === 'function') { + const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; + if (originalDelegate) { + if (typeof originalDelegate === 'function') { + return originalFunctionToString.call(originalDelegate); + } + else { + return Object.prototype.toString.call(originalDelegate); + } + } + if (this === Promise) { + const nativePromise = global[PROMISE_SYMBOL]; + if (nativePromise) { + return originalFunctionToString.call(nativePromise); + } + } + if (this === Error) { + const nativeError = global[ERROR_SYMBOL]; + if (nativeError) { + return originalFunctionToString.call(nativeError); + } + } + } + return originalFunctionToString.call(this); + }; + newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; + Function.prototype.toString = newFunctionToString; + // patch Object.prototype.toString to let them look like native + const originalObjectToString = Object.prototype.toString; + const PROMISE_OBJECT_TO_STRING = '[object Promise]'; + Object.prototype.toString = function () { + if (this instanceof Promise) { + return PROMISE_OBJECT_TO_STRING; + } + return originalObjectToString.call(this); + }; + }); + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + let passiveSupported = false; + if (typeof window !== 'undefined') { + try { + const options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } }); + window.addEventListener('test', options, options); + window.removeEventListener('test', options, options); + } + catch (err) { + passiveSupported = false; + } + } + // an identifier to tell ZoneTask do not create a new invoke closure + const OPTIMIZED_ZONE_EVENT_TASK_DATA = { + useG: true + }; + const zoneSymbolEventNames$1 = {}; + const globalSources = {}; + const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); + const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped'); + function prepareEventNames(eventName, eventNameToString) { + const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; + const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; + const symbol = ZONE_SYMBOL_PREFIX + falseEventName; + const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; + zoneSymbolEventNames$1[eventName] = {}; + zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; + zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; + } + function patchEventTarget(_global, apis, patchOptions) { + const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR; + const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR; + const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners'; + const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners'; + const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); + const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; + const PREPEND_EVENT_LISTENER = 'prependListener'; + const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; + const invokeTask = function (task, target, event) { + // for better performance, check isRemoved which is set + // by removeEventListener + if (task.isRemoved) { + return; + } + const delegate = task.callback; + if (typeof delegate === 'object' && delegate.handleEvent) { + // create the bind version of handleEvent when invoke + task.callback = (event) => delegate.handleEvent(event); + task.originalDelegate = delegate; + } + // invoke static task.invoke + task.invoke(task, target, [event]); + const options = task.options; + if (options && typeof options === 'object' && options.once) { + // if options.once is true, after invoke once remove listener here + // only browser need to do this, nodejs eventEmitter will cal removeListener + // inside EventEmitter.once + const delegate = task.originalDelegate ? task.originalDelegate : task.callback; + target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options); + } + }; + // global shared zoneAwareCallback to handle all event callback with capture = false + const globalZoneAwareCallback = function (event) { + // https://github.com/angular/zone.js/issues/911, in IE, sometimes + // event will be undefined, so we need to use window.event + event = event || _global.event; + if (!event) { + return; + } + // event.target is needed for Samsung TV and SourceBuffer + // || global is needed https://github.com/angular/zone.js/issues/190 + const target = this || event.target || _global; + const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]]; + if (tasks) { + // invoke all tasks which attached to current target with given event.type and capture = false + // for performance concern, if task.length === 1, just invoke + if (tasks.length === 1) { + invokeTask(tasks[0], target, event); + } + else { + // https://github.com/angular/zone.js/issues/836 + // copy the tasks array before invoke, to avoid + // the callback will remove itself or other listener + const copyTasks = tasks.slice(); + for (let i = 0; i < copyTasks.length; i++) { + if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { + break; + } + invokeTask(copyTasks[i], target, event); + } + } + } + }; + // global shared zoneAwareCallback to handle all event callback with capture = true + const globalZoneAwareCaptureCallback = function (event) { + // https://github.com/angular/zone.js/issues/911, in IE, sometimes + // event will be undefined, so we need to use window.event + event = event || _global.event; + if (!event) { + return; + } + // event.target is needed for Samsung TV and SourceBuffer + // || global is needed https://github.com/angular/zone.js/issues/190 + const target = this || event.target || _global; + const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]]; + if (tasks) { + // invoke all tasks which attached to current target with given event.type and capture = false + // for performance concern, if task.length === 1, just invoke + if (tasks.length === 1) { + invokeTask(tasks[0], target, event); + } + else { + // https://github.com/angular/zone.js/issues/836 + // copy the tasks array before invoke, to avoid + // the callback will remove itself or other listener + const copyTasks = tasks.slice(); + for (let i = 0; i < copyTasks.length; i++) { + if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { + break; + } + invokeTask(copyTasks[i], target, event); + } + } + } + }; + function patchEventTargetMethods(obj, patchOptions) { + if (!obj) { + return false; + } + let useGlobalCallback = true; + if (patchOptions && patchOptions.useG !== undefined) { + useGlobalCallback = patchOptions.useG; + } + const validateHandler = patchOptions && patchOptions.vh; + let checkDuplicate = true; + if (patchOptions && patchOptions.chkDup !== undefined) { + checkDuplicate = patchOptions.chkDup; + } + let returnTarget = false; + if (patchOptions && patchOptions.rt !== undefined) { + returnTarget = patchOptions.rt; + } + let proto = obj; + while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { + proto = ObjectGetPrototypeOf(proto); + } + if (!proto && obj[ADD_EVENT_LISTENER]) { + // somehow we did not find it, but we can see it. This happens on IE for Window properties. + proto = obj; + } + if (!proto) { + return false; + } + if (proto[zoneSymbolAddEventListener]) { + return false; + } + const eventNameToString = patchOptions && patchOptions.eventNameToString; + // a shared global taskData to pass data for scheduleEventTask + // so we do not need to create a new object just for pass some data + const taskData = {}; + const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; + const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = + proto[REMOVE_EVENT_LISTENER]; + const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = + proto[LISTENERS_EVENT_LISTENER]; + const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = + proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; + let nativePrependEventListener; + if (patchOptions && patchOptions.prepend) { + nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = + proto[patchOptions.prepend]; + } + /** + * This util function will build an option object with passive option + * to handle all possible input from the user. + */ + function buildEventListenerOptions(options, passive) { + if (!passiveSupported && typeof options === 'object' && options) { + // doesn't support passive but user want to pass an object as options. + // this will not work on some old browser, so we just pass a boolean + // as useCapture parameter + return !!options.capture; + } + if (!passiveSupported || !passive) { + return options; + } + if (typeof options === 'boolean') { + return { capture: options, passive: true }; + } + if (!options) { + return { passive: true }; + } + if (typeof options === 'object' && options.passive !== false) { + return Object.assign(Object.assign({}, options), { passive: true }); + } + return options; + } + const customScheduleGlobal = function (task) { + // if there is already a task for the eventName + capture, + // just return, because we use the shared globalZoneAwareCallback here. + if (taskData.isExisting) { + return; + } + return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); + }; + const customCancelGlobal = function (task) { + // if task is not marked as isRemoved, this call is directly + // from Zone.prototype.cancelTask, we should remove the task + // from tasksList of target first + if (!task.isRemoved) { + const symbolEventNames = zoneSymbolEventNames$1[task.eventName]; + let symbolEventName; + if (symbolEventNames) { + symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; + } + const existingTasks = symbolEventName && task.target[symbolEventName]; + if (existingTasks) { + for (let i = 0; i < existingTasks.length; i++) { + const existingTask = existingTasks[i]; + if (existingTask === task) { + existingTasks.splice(i, 1); + // set isRemoved to data for faster invokeTask check + task.isRemoved = true; + if (existingTasks.length === 0) { + // all tasks for the eventName + capture have gone, + // remove globalZoneAwareCallback and remove the task cache from target + task.allRemoved = true; + task.target[symbolEventName] = null; + } + break; + } + } + } + } + // if all tasks for the eventName + capture have gone, + // we will really remove the global event callback, + // if not, return + if (!task.allRemoved) { + return; + } + return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); + }; + const customScheduleNonGlobal = function (task) { + return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); + }; + const customSchedulePrepend = function (task) { + return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); + }; + const customCancelNonGlobal = function (task) { + return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); + }; + const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; + const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; + const compareTaskCallbackVsDelegate = function (task, delegate) { + const typeOfDelegate = typeof delegate; + return (typeOfDelegate === 'function' && task.callback === delegate) || + (typeOfDelegate === 'object' && task.originalDelegate === delegate); + }; + const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate; + const blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')]; + const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')]; + const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) { + return function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + let delegate = arguments[1]; + if (!delegate) { + return nativeListener.apply(this, arguments); + } + if (isNode && eventName === 'uncaughtException') { + // don't patch uncaughtException of nodejs to prevent endless loop + return nativeListener.apply(this, arguments); + } + // don't create the bind delegate function for handleEvent + // case here to improve addEventListener performance + // we will create the bind delegate when invoke + let isHandleEvent = false; + if (typeof delegate !== 'function') { + if (!delegate.handleEvent) { + return nativeListener.apply(this, arguments); + } + isHandleEvent = true; + } + if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { + return; + } + const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1; + const options = buildEventListenerOptions(arguments[2], passive); + if (blackListedEvents) { + // check black list + for (let i = 0; i < blackListedEvents.length; i++) { + if (eventName === blackListedEvents[i]) { + if (passive) { + return nativeListener.call(target, eventName, delegate, options); + } + else { + return nativeListener.apply(this, arguments); + } + } + } + } + const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; + const once = options && typeof options === 'object' ? options.once : false; + const zone = Zone.current; + let symbolEventNames = zoneSymbolEventNames$1[eventName]; + if (!symbolEventNames) { + prepareEventNames(eventName, eventNameToString); + symbolEventNames = zoneSymbolEventNames$1[eventName]; + } + const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; + let existingTasks = target[symbolEventName]; + let isExisting = false; + if (existingTasks) { + // already have task registered + isExisting = true; + if (checkDuplicate) { + for (let i = 0; i < existingTasks.length; i++) { + if (compare(existingTasks[i], delegate)) { + // same callback, same capture, same event name, just return + return; + } + } + } + } + else { + existingTasks = target[symbolEventName] = []; + } + let source; + const constructorName = target.constructor['name']; + const targetSource = globalSources[constructorName]; + if (targetSource) { + source = targetSource[eventName]; + } + if (!source) { + source = constructorName + addSource + + (eventNameToString ? eventNameToString(eventName) : eventName); + } + // do not create a new object as task.data to pass those things + // just use the global shared one + taskData.options = options; + if (once) { + // if addEventListener with once options, we don't pass it to + // native addEventListener, instead we keep the once setting + // and handle ourselves. + taskData.options.once = false; + } + taskData.target = target; + taskData.capture = capture; + taskData.eventName = eventName; + taskData.isExisting = isExisting; + const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; + // keep taskData into data to allow onScheduleEventTask to access the task information + if (data) { + data.taskData = taskData; + } + const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); + // should clear taskData.target to avoid memory leak + // issue, https://github.com/angular/angular/issues/20442 + taskData.target = null; + // need to clear up taskData because it is a global object + if (data) { + data.taskData = null; + } + // have to save those information to task in case + // application may call task.zone.cancelTask() directly + if (once) { + options.once = true; + } + if (!(!passiveSupported && typeof task.options === 'boolean')) { + // if not support passive, and we pass an option object + // to addEventListener, we should save the options to task + task.options = options; + } + task.target = target; + task.capture = capture; + task.eventName = eventName; + if (isHandleEvent) { + // save original delegate for compare to check duplicate + task.originalDelegate = delegate; + } + if (!prepend) { + existingTasks.push(task); + } + else { + existingTasks.unshift(task); + } + if (returnTarget) { + return target; + } + }; + }; + proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); + if (nativePrependEventListener) { + proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); + } + proto[REMOVE_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const options = arguments[2]; + const capture = !options ? false : typeof options === 'boolean' ? true : options.capture; + const delegate = arguments[1]; + if (!delegate) { + return nativeRemoveEventListener.apply(this, arguments); + } + if (validateHandler && + !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { + return; + } + const symbolEventNames = zoneSymbolEventNames$1[eventName]; + let symbolEventName; + if (symbolEventNames) { + symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; + } + const existingTasks = symbolEventName && target[symbolEventName]; + if (existingTasks) { + for (let i = 0; i < existingTasks.length; i++) { + const existingTask = existingTasks[i]; + if (compare(existingTask, delegate)) { + existingTasks.splice(i, 1); + // set isRemoved to data for faster invokeTask check + existingTask.isRemoved = true; + if (existingTasks.length === 0) { + // all tasks for the eventName + capture have gone, + // remove globalZoneAwareCallback and remove the task cache from target + existingTask.allRemoved = true; + target[symbolEventName] = null; + // in the target, we have an event listener which is added by on_property + // such as target.onclick = function() {}, so we need to clear this internal + // property too if all delegates all removed + if (typeof eventName === 'string') { + const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName; + target[onPropertySymbol] = null; + } + } + existingTask.zone.cancelTask(existingTask); + if (returnTarget) { + return target; + } + return; + } + } + } + // issue 930, didn't find the event name or callback + // from zone kept existingTasks, the callback maybe + // added outside of zone, we need to call native removeEventListener + // to try to remove it. + return nativeRemoveEventListener.apply(this, arguments); + }; + proto[LISTENERS_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const listeners = []; + const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); + for (let i = 0; i < tasks.length; i++) { + const task = tasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + listeners.push(delegate); + } + return listeners; + }; + proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { + const target = this || _global; + let eventName = arguments[0]; + if (!eventName) { + const keys = Object.keys(target); + for (let i = 0; i < keys.length; i++) { + const prop = keys[i]; + const match = EVENT_NAME_SYMBOL_REGX.exec(prop); + let evtName = match && match[1]; + // in nodejs EventEmitter, removeListener event is + // used for monitoring the removeListener call, + // so just keep removeListener eventListener until + // all other eventListeners are removed + if (evtName && evtName !== 'removeListener') { + this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); + } + } + // remove removeListener listener finally + this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); + } + else { + if (patchOptions && patchOptions.transferEventName) { + eventName = patchOptions.transferEventName(eventName); + } + const symbolEventNames = zoneSymbolEventNames$1[eventName]; + if (symbolEventNames) { + const symbolEventName = symbolEventNames[FALSE_STR]; + const symbolCaptureEventName = symbolEventNames[TRUE_STR]; + const tasks = target[symbolEventName]; + const captureTasks = target[symbolCaptureEventName]; + if (tasks) { + const removeTasks = tasks.slice(); + for (let i = 0; i < removeTasks.length; i++) { + const task = removeTasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); + } + } + if (captureTasks) { + const removeTasks = captureTasks.slice(); + for (let i = 0; i < removeTasks.length; i++) { + const task = removeTasks[i]; + let delegate = task.originalDelegate ? task.originalDelegate : task.callback; + this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); + } + } + } + } + if (returnTarget) { + return this; + } + }; + // for native toString patch + attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); + attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); + if (nativeRemoveAllListeners) { + attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); + } + if (nativeListeners) { + attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); + } + return true; + } + let results = []; + for (let i = 0; i < apis.length; i++) { + results[i] = patchEventTargetMethods(apis[i], patchOptions); + } + return results; + } + function findEventTasks(target, eventName) { + if (!eventName) { + const foundTasks = []; + for (let prop in target) { + const match = EVENT_NAME_SYMBOL_REGX.exec(prop); + let evtName = match && match[1]; + if (evtName && (!eventName || evtName === eventName)) { + const tasks = target[prop]; + if (tasks) { + for (let i = 0; i < tasks.length; i++) { + foundTasks.push(tasks[i]); + } + } + } + } + return foundTasks; + } + let symbolEventName = zoneSymbolEventNames$1[eventName]; + if (!symbolEventName) { + prepareEventNames(eventName); + symbolEventName = zoneSymbolEventNames$1[eventName]; + } + const captureFalseTasks = target[symbolEventName[FALSE_STR]]; + const captureTrueTasks = target[symbolEventName[TRUE_STR]]; + if (!captureFalseTasks) { + return captureTrueTasks ? captureTrueTasks.slice() : []; + } + else { + return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) : + captureFalseTasks.slice(); + } + } + function patchEventPrototype(global, api) { + const Event = global['Event']; + if (Event && Event.prototype) { + api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) { + self[IMMEDIATE_PROPAGATION_SYMBOL] = true; + // we need to call the native stopImmediatePropagation + // in case in some hybrid application, some part of + // application will be controlled by zone, some are not + delegate && delegate.apply(self, args); + }); + } + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + function patchCallbacks(api, target, targetName, method, callbacks) { + const symbol = Zone.__symbol__(method); + if (target[symbol]) { + return; + } + const nativeDelegate = target[symbol] = target[method]; + target[method] = function (name, opts, options) { + if (opts && opts.prototype) { + callbacks.forEach(function (callback) { + const source = `${targetName}.${method}::` + callback; + const prototype = opts.prototype; + if (prototype.hasOwnProperty(callback)) { + const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback); + if (descriptor && descriptor.value) { + descriptor.value = api.wrapWithCurrentZone(descriptor.value, source); + api._redefineProperty(opts.prototype, callback, descriptor); + } + else if (prototype[callback]) { + prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); + } + } + else if (prototype[callback]) { + prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source); + } + }); + } + return nativeDelegate.call(target, name, opts, options); + }; + api.attachOriginToPatched(target[method], nativeDelegate); + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const globalEventHandlersEventNames = [ + 'abort', + 'animationcancel', + 'animationend', + 'animationiteration', + 'auxclick', + 'beforeinput', + 'blur', + 'cancel', + 'canplay', + 'canplaythrough', + 'change', + 'compositionstart', + 'compositionupdate', + 'compositionend', + 'cuechange', + 'click', + 'close', + 'contextmenu', + 'curechange', + 'dblclick', + 'drag', + 'dragend', + 'dragenter', + 'dragexit', + 'dragleave', + 'dragover', + 'drop', + 'durationchange', + 'emptied', + 'ended', + 'error', + 'focus', + 'focusin', + 'focusout', + 'gotpointercapture', + 'input', + 'invalid', + 'keydown', + 'keypress', + 'keyup', + 'load', + 'loadstart', + 'loadeddata', + 'loadedmetadata', + 'lostpointercapture', + 'mousedown', + 'mouseenter', + 'mouseleave', + 'mousemove', + 'mouseout', + 'mouseover', + 'mouseup', + 'mousewheel', + 'orientationchange', + 'pause', + 'play', + 'playing', + 'pointercancel', + 'pointerdown', + 'pointerenter', + 'pointerleave', + 'pointerlockchange', + 'mozpointerlockchange', + 'webkitpointerlockerchange', + 'pointerlockerror', + 'mozpointerlockerror', + 'webkitpointerlockerror', + 'pointermove', + 'pointout', + 'pointerover', + 'pointerup', + 'progress', + 'ratechange', + 'reset', + 'resize', + 'scroll', + 'seeked', + 'seeking', + 'select', + 'selectionchange', + 'selectstart', + 'show', + 'sort', + 'stalled', + 'submit', + 'suspend', + 'timeupdate', + 'volumechange', + 'touchcancel', + 'touchmove', + 'touchstart', + 'touchend', + 'transitioncancel', + 'transitionend', + 'waiting', + 'wheel' + ]; + const documentEventNames = [ + 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange', + 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', + 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange', + 'visibilitychange', 'resume' + ]; + const windowEventNames = [ + 'absolutedeviceorientation', + 'afterinput', + 'afterprint', + 'appinstalled', + 'beforeinstallprompt', + 'beforeprint', + 'beforeunload', + 'devicelight', + 'devicemotion', + 'deviceorientation', + 'deviceorientationabsolute', + 'deviceproximity', + 'hashchange', + 'languagechange', + 'message', + 'mozbeforepaint', + 'offline', + 'online', + 'paint', + 'pageshow', + 'pagehide', + 'popstate', + 'rejectionhandled', + 'storage', + 'unhandledrejection', + 'unload', + 'userproximity', + 'vrdisplayconnected', + 'vrdisplaydisconnected', + 'vrdisplaypresentchange' + ]; + const htmlElementEventNames = [ + 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', + 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', + 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend' + ]; + const mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; + const ieElementEventNames = [ + 'activate', + 'afterupdate', + 'ariarequest', + 'beforeactivate', + 'beforedeactivate', + 'beforeeditfocus', + 'beforeupdate', + 'cellchange', + 'controlselect', + 'dataavailable', + 'datasetchanged', + 'datasetcomplete', + 'errorupdate', + 'filterchange', + 'layoutcomplete', + 'losecapture', + 'move', + 'moveend', + 'movestart', + 'propertychange', + 'resizeend', + 'resizestart', + 'rowenter', + 'rowexit', + 'rowsdelete', + 'rowsinserted', + 'command', + 'compassneedscalibration', + 'deactivate', + 'help', + 'mscontentzoom', + 'msmanipulationstatechanged', + 'msgesturechange', + 'msgesturedoubletap', + 'msgestureend', + 'msgesturehold', + 'msgesturestart', + 'msgesturetap', + 'msgotpointercapture', + 'msinertiastart', + 'mslostpointercapture', + 'mspointercancel', + 'mspointerdown', + 'mspointerenter', + 'mspointerhover', + 'mspointerleave', + 'mspointermove', + 'mspointerout', + 'mspointerover', + 'mspointerup', + 'pointerout', + 'mssitemodejumplistitemremoved', + 'msthumbnailclick', + 'stop', + 'storagecommit' + ]; + const webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; + const formEventNames = ['autocomplete', 'autocompleteerror']; + const detailEventNames = ['toggle']; + const frameEventNames = ['load']; + const frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror']; + const marqueeEventNames = ['bounce', 'finish', 'start']; + const XMLHttpRequestEventNames = [ + 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', + 'readystatechange' + ]; + const IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; + const websocketEventNames = ['close', 'error', 'open', 'message']; + const workerEventNames = ['error', 'message']; + const eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); + function filterProperties(target, onProperties, ignoreProperties) { + if (!ignoreProperties || ignoreProperties.length === 0) { + return onProperties; + } + const tip = ignoreProperties.filter(ip => ip.target === target); + if (!tip || tip.length === 0) { + return onProperties; + } + const targetIgnoreProperties = tip[0].ignoreProperties; + return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1); + } + function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { + // check whether target is available, sometimes target will be undefined + // because different browser or some 3rd party plugin. + if (!target) { + return; + } + const filteredProperties = filterProperties(target, onProperties, ignoreProperties); + patchOnProperties(target, filteredProperties, prototype); + } + function propertyDescriptorPatch(api, _global) { + if (isNode && !isMix) { + return; + } + if (Zone[api.symbol('patchEvents')]) { + // events are already been patched by legacy patch. + return; + } + const supportsWebSocket = typeof WebSocket !== 'undefined'; + const ignoreProperties = _global['__Zone_ignore_on_properties']; + // for browsers that we can patch the descriptor: Chrome & Firefox + if (isBrowser) { + const internalWindow = window; + const ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : []; + // in IE/Edge, onProp not exist in window object, but in WindowPrototype + // so we need to pass WindowPrototype to check onProp exist or not + patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); + patchFilteredProperties(Document.prototype, eventNames, ignoreProperties); + if (typeof internalWindow['SVGElement'] !== 'undefined') { + patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties); + } + patchFilteredProperties(Element.prototype, eventNames, ignoreProperties); + patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties); + patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties); + patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); + patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); + patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties); + patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties); + const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement']; + if (HTMLMarqueeElement) { + patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties); + } + const Worker = internalWindow['Worker']; + if (Worker) { + patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties); + } + } + const XMLHttpRequest = _global['XMLHttpRequest']; + if (XMLHttpRequest) { + // XMLHttpRequest is not available in ServiceWorker, so we need to check here + patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties); + } + const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget) { + patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties); + } + if (typeof IDBIndex !== 'undefined') { + patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties); + patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties); + patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties); + patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties); + patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties); + patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties); + } + if (supportsWebSocket) { + patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties); + } + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + Zone.__load_patch('util', (global, Zone, api) => { + api.patchOnProperties = patchOnProperties; + api.patchMethod = patchMethod; + api.bindArguments = bindArguments; + api.patchMacroTask = patchMacroTask; + // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to + // define which events will not be patched by `Zone.js`. + // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep + // the name consistent with angular repo. + // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for + // backwards compatibility. + const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); + const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); + if (global[SYMBOL_UNPATCHED_EVENTS]) { + global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; + } + if (global[SYMBOL_BLACK_LISTED_EVENTS]) { + Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] = + global[SYMBOL_BLACK_LISTED_EVENTS]; + } + api.patchEventPrototype = patchEventPrototype; + api.patchEventTarget = patchEventTarget; + api.isIEOrEdge = isIEOrEdge; + api.ObjectDefineProperty = ObjectDefineProperty; + api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; + api.ObjectCreate = ObjectCreate; + api.ArraySlice = ArraySlice; + api.patchClass = patchClass; + api.wrapWithCurrentZone = wrapWithCurrentZone; + api.filterProperties = filterProperties; + api.attachOriginToPatched = attachOriginToPatched; + api._redefineProperty = Object.defineProperty; + api.patchCallbacks = patchCallbacks; + api.getGlobalObjects = () => ({ globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames, isBrowser, isMix, isNode, TRUE_STR, + FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR }); + }); + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const taskSymbol = zoneSymbol('zoneTask'); + function patchTimer(window, setName, cancelName, nameSuffix) { + let setNative = null; + let clearNative = null; + setName += nameSuffix; + cancelName += nameSuffix; + const tasksByHandleId = {}; + function scheduleTask(task) { + const data = task.data; + function timer() { + try { + task.invoke.apply(this, arguments); + } + finally { + // issue-934, task will be cancelled + // even it is a periodic task such as + // setInterval + if (!(task.data && task.data.isPeriodic)) { + if (typeof data.handleId === 'number') { + // in non-nodejs env, we remove timerId + // from local cache + delete tasksByHandleId[data.handleId]; + } + else if (data.handleId) { + // Node returns complex objects as handleIds + // we remove task reference from timer object + data.handleId[taskSymbol] = null; + } + } + } + } + data.args[0] = timer; + data.handleId = setNative.apply(window, data.args); + return task; + } + function clearTask(task) { return clearNative(task.data.handleId); } + setNative = + patchMethod(window, setName, (delegate) => function (self, args) { + if (typeof args[0] === 'function') { + const options = { + isPeriodic: nameSuffix === 'Interval', + delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : + undefined, + args: args + }; + const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); + if (!task) { + return task; + } + // Node.js must additionally support the ref and unref functions. + const handle = task.data.handleId; + if (typeof handle === 'number') { + // for non nodejs env, we save handleId: task + // mapping in local cache for clearTimeout + tasksByHandleId[handle] = task; + } + else if (handle) { + // for nodejs env, we save task + // reference in timerId Object for clearTimeout + handle[taskSymbol] = task; + } + // check whether handle is null, because some polyfill or browser + // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame + if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && + typeof handle.unref === 'function') { + task.ref = handle.ref.bind(handle); + task.unref = handle.unref.bind(handle); + } + if (typeof handle === 'number' || handle) { + return handle; + } + return task; + } + else { + // cause an error by calling it directly. + return delegate.apply(window, args); + } + }); + clearNative = + patchMethod(window, cancelName, (delegate) => function (self, args) { + const id = args[0]; + let task; + if (typeof id === 'number') { + // non nodejs env. + task = tasksByHandleId[id]; + } + else { + // nodejs env. + task = id && id[taskSymbol]; + // other environments. + if (!task) { + task = id; + } + } + if (task && typeof task.type === 'string') { + if (task.state !== 'notScheduled' && + (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { + if (typeof id === 'number') { + delete tasksByHandleId[id]; + } + else if (id) { + id[taskSymbol] = null; + } + // Do not cancel already canceled functions + task.zone.cancelTask(task); + } + } + else { + // cause an error by calling it directly. + delegate.apply(window, args); + } + }); + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + function patchCustomElements(_global, api) { + const { isBrowser, isMix } = api.getGlobalObjects(); + if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) { + return; + } + const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; + api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks); + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + function eventTargetPatch(_global, api) { + if (Zone[api.symbol('patchEventTarget')]) { + // EventTarget is already patched. + return; + } + const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects(); + // predefine all __zone_symbol__ + eventName + true/false string + for (let i = 0; i < eventNames.length; i++) { + const eventName = eventNames[i]; + const falseEventName = eventName + FALSE_STR; + const trueEventName = eventName + TRUE_STR; + const symbol = ZONE_SYMBOL_PREFIX + falseEventName; + const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; + zoneSymbolEventNames[eventName] = {}; + zoneSymbolEventNames[eventName][FALSE_STR] = symbol; + zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; + } + const EVENT_TARGET = _global['EventTarget']; + if (!EVENT_TARGET || !EVENT_TARGET.prototype) { + return; + } + api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]); + return true; + } + function patchEvent(global, api) { + api.patchEventPrototype(global, api); + } + + /** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + Zone.__load_patch('legacy', (global) => { + const legacyPatch = global[Zone.__symbol__('legacyPatch')]; + if (legacyPatch) { + legacyPatch(); + } + }); + Zone.__load_patch('timers', (global) => { + const set = 'set'; + const clear = 'clear'; + patchTimer(global, set, clear, 'Timeout'); + patchTimer(global, set, clear, 'Interval'); + patchTimer(global, set, clear, 'Immediate'); + }); + Zone.__load_patch('requestAnimationFrame', (global) => { + patchTimer(global, 'request', 'cancel', 'AnimationFrame'); + patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); + patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); + }); + Zone.__load_patch('blocking', (global, Zone) => { + const blockingMethods = ['alert', 'prompt', 'confirm']; + for (let i = 0; i < blockingMethods.length; i++) { + const name = blockingMethods[i]; + patchMethod(global, name, (delegate, symbol, name) => { + return function (s, args) { + return Zone.current.run(delegate, global, args, name); + }; + }); + } + }); + Zone.__load_patch('EventTarget', (global, Zone, api) => { + patchEvent(global, api); + eventTargetPatch(global, api); + // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener + const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { + api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]); + } + patchClass('MutationObserver'); + patchClass('WebKitMutationObserver'); + patchClass('IntersectionObserver'); + patchClass('FileReader'); + }); + Zone.__load_patch('on_property', (global, Zone, api) => { + propertyDescriptorPatch(api, global); + }); + Zone.__load_patch('customElements', (global, Zone, api) => { + patchCustomElements(global, api); + }); + Zone.__load_patch('XHR', (global, Zone) => { + // Treat XMLHttpRequest as a macrotask. + patchXHR(global); + const XHR_TASK = zoneSymbol('xhrTask'); + const XHR_SYNC = zoneSymbol('xhrSync'); + const XHR_LISTENER = zoneSymbol('xhrListener'); + const XHR_SCHEDULED = zoneSymbol('xhrScheduled'); + const XHR_URL = zoneSymbol('xhrURL'); + const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); + function patchXHR(window) { + const XMLHttpRequest = window['XMLHttpRequest']; + if (!XMLHttpRequest) { + // XMLHttpRequest is not available in service worker + return; + } + const XMLHttpRequestPrototype = XMLHttpRequest.prototype; + function findPendingTask(target) { return target[XHR_TASK]; } + let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + if (!oriAddListener) { + const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget) { + const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype; + oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + } + } + const READY_STATE_CHANGE = 'readystatechange'; + const SCHEDULED = 'scheduled'; + function scheduleTask(task) { + const data = task.data; + const target = data.target; + target[XHR_SCHEDULED] = false; + target[XHR_ERROR_BEFORE_SCHEDULED] = false; + // remove existing event listener + const listener = target[XHR_LISTENER]; + if (!oriAddListener) { + oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; + oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; + } + if (listener) { + oriRemoveListener.call(target, READY_STATE_CHANGE, listener); + } + const newListener = target[XHR_LISTENER] = () => { + if (target.readyState === target.DONE) { + // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with + // readyState=4 multiple times, so we need to check task state here + if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { + // check whether the xhr has registered onload listener + // if that is the case, the task should invoke after all + // onload listeners finish. + const loadTasks = target[Zone.__symbol__('loadfalse')]; + if (loadTasks && loadTasks.length > 0) { + const oriInvoke = task.invoke; + task.invoke = function () { + // need to load the tasks again, because in other + // load listener, they may remove themselves + const loadTasks = target[Zone.__symbol__('loadfalse')]; + for (let i = 0; i < loadTasks.length; i++) { + if (loadTasks[i] === task) { + loadTasks.splice(i, 1); + } + } + if (!data.aborted && task.state === SCHEDULED) { + oriInvoke.call(task); + } + }; + loadTasks.push(task); + } + else { + task.invoke(); + } + } + else if (!data.aborted && target[XHR_SCHEDULED] === false) { + // error occurs when xhr.send() + target[XHR_ERROR_BEFORE_SCHEDULED] = true; + } + } + }; + oriAddListener.call(target, READY_STATE_CHANGE, newListener); + const storedTask = target[XHR_TASK]; + if (!storedTask) { + target[XHR_TASK] = task; + } + sendNative.apply(target, data.args); + target[XHR_SCHEDULED] = true; + return task; + } + function placeholderCallback() { } + function clearTask(task) { + const data = task.data; + // Note - ideally, we would call data.target.removeEventListener here, but it's too late + // to prevent it from firing. So instead, we store info for the event listener. + data.aborted = true; + return abortNative.apply(data.target, data.args); + } + const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) { + self[XHR_SYNC] = args[2] == false; + self[XHR_URL] = args[1]; + return openNative.apply(self, args); + }); + const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; + const fetchTaskAborting = zoneSymbol('fetchTaskAborting'); + const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); + const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) { + if (Zone.current[fetchTaskScheduling] === true) { + // a fetch is scheduling, so we are using xhr to polyfill fetch + // and because we already schedule macroTask for fetch, we should + // not schedule a macroTask for xhr again + return sendNative.apply(self, args); + } + if (self[XHR_SYNC]) { + // if the XHR is sync there is no task to schedule, just execute the code. + return sendNative.apply(self, args); + } + else { + const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false }; + const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); + if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && + task.state === SCHEDULED) { + // xhr request throw error when send + // we should invoke task instead of leaving a scheduled + // pending macroTask + task.invoke(); + } + } + }); + const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) { + const task = findPendingTask(self); + if (task && typeof task.type == 'string') { + // If the XHR has already completed, do nothing. + // If the XHR has already been aborted, do nothing. + // Fix #569, call abort multiple times before done will cause + // macroTask task count be negative number + if (task.cancelFn == null || (task.data && task.data.aborted)) { + return; + } + task.zone.cancelTask(task); + } + else if (Zone.current[fetchTaskAborting] === true) { + // the abort is called from fetch polyfill, we need to call native abort of XHR. + return abortNative.apply(self, args); + } + // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no + // task + // to cancel. Do nothing. + }); + } + }); + Zone.__load_patch('geolocation', (global) => { + /// GEO_LOCATION + if (global['navigator'] && global['navigator'].geolocation) { + patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); + } + }); + Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => { + // handle unhandled promise rejection + function findPromiseRejectionHandler(evtName) { + return function (e) { + const eventTasks = findEventTasks(global, evtName); + eventTasks.forEach(eventTask => { + // windows has added unhandledrejection event listener + // trigger the event listener + const PromiseRejectionEvent = global['PromiseRejectionEvent']; + if (PromiseRejectionEvent) { + const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); + eventTask.invoke(evt); + } + }); + }; + } + if (global['PromiseRejectionEvent']) { + Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = + findPromiseRejectionHandler('unhandledrejection'); + Zone[zoneSymbol('rejectionHandledHandler')] = + findPromiseRejectionHandler('rejectionhandled'); + } + }); + +}))); + + +/***/ }), + +/***/ "./src/polyfills.ts": +/*!**************************!*\ + !*** ./src/polyfills.ts ***! + \**************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _zone_flags__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zone-flags */ "./src/zone-flags.ts"); +/* harmony import */ var _zone_flags__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_zone_flags__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zone.js/dist/zone */ "./node_modules/zone.js/dist/zone-evergreen.js"); +/* harmony import */ var zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(zone_js_dist_zone__WEBPACK_IMPORTED_MODULE_1__); +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ +/*************************************************************************************************** + * BROWSER POLYFILLS + */ +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ + // Included with Angular CLI. +/*************************************************************************************************** + * APPLICATION IMPORTS + */ +window.global = window; + + +/***/ }), + +/***/ "./src/zone-flags.ts": +/*!***************************!*\ + !*** ./src/zone-flags.ts ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Prevents Angular change detection from + * running with certain Web Component callbacks + */ +window.__Zone_disable_customElements = true; + + +/***/ }), + +/***/ 2: +/*!***************************************************************************************************************************!*\ + !*** multi ./src/polyfills.ts ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js ***! + \***************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! C:\Users\tiago.kayaya\development\gabinete-digital\src\polyfills.ts */"./src/polyfills.ts"); +module.exports = __webpack_require__(/*! C:\Users\tiago.kayaya\development\gabinete-digital\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\jit-polyfills.js */"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js"); + + +/***/ }) + +},[[2,"runtime"]]]); +//# sourceMappingURL=polyfills.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/runtime.js.download b/src/assets/images/Gabinete Digital_files/runtime.js.download new file mode 100644 index 000000000..9cedd1f70 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/runtime.js.download @@ -0,0 +1,224 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "runtime": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // script path function +/******/ function jsonpScriptSrc(chunkId) { +/******/ return __webpack_require__.p + "" + ({"common":"common","default~home-home-module~pages-chat-chat-module~pages-login-login-module":"default~home-home-module~pages-chat-chat-module~pages-login-login-module","home-home-module":"home-home-module","pages-chat-chat-module":"pages-chat-chat-module","index-index-module":"index-index-module","polyfills-core-js":"polyfills-core-js","polyfills-css-shim":"polyfills-css-shim","polyfills-dom":"polyfills-dom","shadow-css-fc98efba-js":"shadow-css-fc98efba-js","swiper-bundle-95afeea2-js":"swiper-bundle-95afeea2-js","focus-visible-15ada7f7-js":"focus-visible-15ada7f7-js","input-shims-b956f530-js":"input-shims-b956f530-js","keyboard-dd970efc-js":"keyboard-dd970efc-js","status-tap-a9bf301d-js":"status-tap-a9bf301d-js","swipe-back-0a6a44c8-js":"swipe-back-0a6a44c8-js","tap-click-252af35a-js":"tap-click-252af35a-js","event-list-event-list-module":"event-list-event-list-module","expediente-detail-expediente-detail-module":"expediente-detail-expediente-detail-module","pages-events-events-module":"pages-events-events-module","pages-gabinete-digital-gabinete-digital-module":"pages-gabinete-digital-gabinete-digital-module","default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b":"default~attachments-attachments-module~event-detail-event-detail-module~pages-events-event-detail-ev~f3bcdd0b","attachments-attachments-module":"attachments-attachments-module","default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5":"default~attendees-attendees-module~event-detail-event-detail-module~pages-agenda-agenda-module~pages~2e9e46f5","attendees-attendees-module":"attendees-attendees-module","default~event-detail-event-detail-module~pages-events-event-detail-event-detail-module":"default~event-detail-event-detail-module~pages-events-event-detail-event-detail-module","default~expediente-expediente-module~pages-agenda-agenda-module":"default~expediente-expediente-module~pages-agenda-agenda-module","pages-agenda-agenda-module":"pages-agenda-agenda-module","expediente-expediente-module":"expediente-expediente-module","pages-login-login-module":"pages-login-login-module","pages-search-search-module":"pages-search-search-module","conversation-conversation-module":"conversation-conversation-module","newchat-newchat-module":"newchat-newchat-module","attendee-modal-attendee-modal-module":"attendee-modal-attendee-modal-module","event-list-pr-event-list-pr-module":"event-list-pr-event-list-pr-module","approve-event-modal-approve-event-modal-module":"approve-event-modal-approve-event-modal-module"}[chunkId]||chunkId) + ".js" +/******/ } +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = function requireEnsure(chunkId) { +/******/ var promises = []; +/******/ +/******/ +/******/ // JSONP chunk loading for javascript +/******/ +/******/ var installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise(function(resolve, reject) { +/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; +/******/ }); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var script = document.createElement('script'); +/******/ var onScriptComplete; +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.src = jsonpScriptSrc(chunkId); +/******/ +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ onScriptComplete = function (event) { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var chunk = installedChunks[chunkId]; +/******/ if(chunk !== 0) { +/******/ if(chunk) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ chunk[1](error); +/******/ } +/******/ installedChunks[chunkId] = undefined; +/******/ } +/******/ }; +/******/ var timeout = setTimeout(function(){ +/******/ onScriptComplete({ type: 'timeout', target: script }); +/******/ }, 120000); +/******/ script.onerror = script.onload = onScriptComplete; +/******/ document.head.appendChild(script); +/******/ } +/******/ } +/******/ return Promise.all(promises); +/******/ }; +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // on error function for async loading +/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; +/******/ +/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // run deferred modules from other chunks +/******/ checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ([]); +//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/saved_resource.html b/src/assets/images/Gabinete Digital_files/saved_resource.html new file mode 100644 index 000000000..be1eee7a3 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/saved_resource.html @@ -0,0 +1,1313 @@ + + + + + Gabinete Digital + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/Gabinete Digital_files/styles.js.download b/src/assets/images/Gabinete Digital_files/styles.js.download new file mode 100644 index 000000000..a9d4953e6 --- /dev/null +++ b/src/assets/images/Gabinete Digital_files/styles.js.download @@ -0,0 +1,500 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["styles"],{ + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./src/global.scss": +/*!************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--13-1!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/dist/cjs.js??ref--13-3!./src/global.scss ***! + \************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.i, "/*\n * App Global CSS\n * ----------------------------------------------------------------------------\n * Put style rules here that you want to apply globally. These styles are for\n * the entire app and not just one component. Additionally, this file can be\n * used as an entry point to import other CSS/Sass files to be included in the\n * output CSS.\n * For more information on global stylesheets, visit the documentation:\n * https://ionicframework.com/docs/layout/global-stylesheets\n */\n/* Core CSS required for Ionic components to work properly */\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\nhtml {\n --ion-font-family: var(--ion-default-font);\n}\nbody {\n background: var(--ion-background-color);\n}\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\nhtml.ios ion-modal.modal-card .ion-page > ion-header > ion-toolbar:first-of-type {\n padding-top: 0px;\n}\nhtml.ios ion-modal .ion-page {\n border-radius: inherit;\n}\n.ion-color-primary {\n --ion-color-base: var(--ion-color-primary, #3880ff) !important;\n --ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;\n --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;\n --ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important;\n}\n.ion-color-secondary {\n --ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;\n --ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;\n --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;\n --ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important;\n}\n.ion-color-tertiary {\n --ion-color-base: var(--ion-color-tertiary, #5260ff) !important;\n --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;\n --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;\n --ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important;\n}\n.ion-color-success {\n --ion-color-base: var(--ion-color-success, #2dd36f) !important;\n --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;\n --ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;\n --ion-color-tint: var(--ion-color-success-tint, #42d77d) !important;\n}\n.ion-color-warning {\n --ion-color-base: var(--ion-color-warning, #ffc409) !important;\n --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;\n --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;\n --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;\n}\n.ion-color-danger {\n --ion-color-base: var(--ion-color-danger, #eb445a) !important;\n --ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;\n --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;\n --ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important;\n}\n.ion-color-light {\n --ion-color-base: var(--ion-color-light, #f4f5f8) !important;\n --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;\n --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;\n --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;\n}\n.ion-color-medium {\n --ion-color-base: var(--ion-color-medium, #92949c) !important;\n --ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;\n --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-medium-shade, #808289) !important;\n --ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important;\n}\n.ion-color-dark {\n --ion-color-base: var(--ion-color-dark, #222428) !important;\n --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;\n --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;\n --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;\n}\n.ion-page {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n position: absolute;\n flex-direction: column;\n justify-content: space-between;\n contain: layout size style;\n overflow: hidden;\n z-index: 0;\n}\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden,\n[hidden] {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n.ion-page-invisible {\n opacity: 0;\n}\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n.menu-content {\n transform: translate3d(0, 0, 0);\n}\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n pointer-events: none;\n}\n.ios .menu-content-reveal {\n box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);\n}\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);\n}\n.md .menu-content-reveal {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n.md .menu-content-push {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n/* Basic CSS for apps built with Ionic */\naudio,\ncanvas,\nprogress,\nvideo {\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\nimg {\n max-width: 100%;\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 1px;\n border-width: 0;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nlabel,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n line-height: normal;\n}\ntextarea {\n overflow: auto;\n height: auto;\n font: inherit;\n color: inherit;\n}\ntextarea::-moz-placeholder {\n padding-left: 2px;\n}\ntextarea::-ms-input-placeholder {\n padding-left: 2px;\n}\ntextarea::placeholder {\n padding-left: 2px;\n}\nform,\ninput,\noptgroup,\nselect {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nhtml input[type=button],\ninput[type=reset],\ninput[type=submit] {\n cursor: pointer;\n -webkit-appearance: button;\n}\na,\na div,\na span,\na ion-icon,\na ion-label,\nbutton,\nbutton div,\nbutton span,\nbutton ion-icon,\nbutton ion-label,\n.ion-tappable,\n[tappable],\n[tappable] div,\n[tappable] span,\n[tappable] ion-icon,\n[tappable] ion-label,\ninput,\ntextarea {\n touch-action: manipulation;\n}\na ion-label,\nbutton ion-label {\n pointer-events: none;\n}\nbutton {\n border: 0;\n border-radius: 0;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n line-height: 1;\n text-transform: none;\n cursor: pointer;\n -webkit-appearance: button;\n}\n[tappable] {\n cursor: pointer;\n}\na[disabled],\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput[type=checkbox],\ninput[type=radio] {\n padding: 0;\n box-sizing: border-box;\n}\ninput[type=number]::-webkit-inner-spin-button,\ninput[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n* {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\nhtml {\n width: 100%;\n height: 100%;\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n text-size-adjust: 100%;\n}\nhtml:not(.hydrated) body {\n display: none;\n}\nhtml.plt-pwa {\n height: 100vh;\n}\nbody {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n margin-left: 0;\n margin-right: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n position: fixed;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n text-rendering: optimizeLegibility;\n overflow: hidden;\n touch-action: manipulation;\n -webkit-user-drag: none;\n -ms-content-zooming: none;\n word-wrap: break-word;\n overscroll-behavior-y: none;\n -webkit-text-size-adjust: none;\n -moz-text-size-adjust: none;\n -ms-text-size-adjust: none;\n text-size-adjust: none;\n}\nhtml {\n font-family: var(--ion-font-family);\n}\na {\n background-color: transparent;\n color: var(--ion-color-primary, #3880ff);\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 16px;\n margin-bottom: 10px;\n font-weight: 500;\n line-height: 1.2;\n}\nh1 {\n margin-top: 20px;\n font-size: 26px;\n}\nh2 {\n margin-top: 18px;\n font-size: 24px;\n}\nh3 {\n font-size: 22px;\n}\nh4 {\n font-size: 20px;\n}\nh5 {\n font-size: 18px;\n}\nh6 {\n font-size: 16px;\n}\nsmall {\n font-size: 75%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\n.ion-hide {\n display: none !important;\n}\n.ion-hide-up {\n display: none !important;\n}\n.ion-hide-down {\n display: none !important;\n}\n@media (min-width: 576px) {\n .ion-hide-sm-up {\n display: none !important;\n }\n}\n@media (max-width: 575.98px) {\n .ion-hide-sm-down {\n display: none !important;\n }\n}\n@media (min-width: 768px) {\n .ion-hide-md-up {\n display: none !important;\n }\n}\n@media (max-width: 767.98px) {\n .ion-hide-md-down {\n display: none !important;\n }\n}\n@media (min-width: 992px) {\n .ion-hide-lg-up {\n display: none !important;\n }\n}\n@media (max-width: 991.98px) {\n .ion-hide-lg-down {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-hide-xl-up {\n display: none !important;\n }\n}\n@media (max-width: 1199.98px) {\n .ion-hide-xl-down {\n display: none !important;\n }\n}\n/* Optional CSS utils that can be commented out */\n.ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n.ion-padding {\n --padding-start: var(--ion-padding, 16px);\n --padding-end: var(--ion-padding, 16px);\n --padding-top: var(--ion-padding, 16px);\n --padding-bottom: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-padding {\n padding-left: unset;\n padding-right: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n.ion-padding-top {\n --padding-top: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n}\n.ion-padding-start {\n --padding-start: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-padding-start {\n padding-left: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n }\n}\n.ion-padding-end {\n --padding-end: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-padding-end {\n padding-right: unset;\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n.ion-padding-bottom {\n --padding-bottom: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n.ion-padding-vertical {\n --padding-top: var(--ion-padding, 16px);\n --padding-bottom: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n.ion-padding-horizontal {\n --padding-start: var(--ion-padding, 16px);\n --padding-end: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-padding-horizontal {\n padding-left: unset;\n padding-right: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n margin-left: 0;\n margin-right: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n.ion-margin {\n --margin-start: var(--ion-margin, 16px);\n --margin-end: var(--ion-margin, 16px);\n --margin-top: var(--ion-margin, 16px);\n --margin-bottom: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-margin {\n margin-left: unset;\n margin-right: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n.ion-margin-top {\n --margin-top: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n}\n.ion-margin-start {\n --margin-start: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-margin-start {\n margin-left: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n }\n}\n.ion-margin-end {\n --margin-end: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-margin-end {\n margin-right: unset;\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n.ion-margin-bottom {\n --margin-bottom: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n.ion-margin-vertical {\n --margin-top: var(--ion-margin, 16px);\n --margin-bottom: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n.ion-margin-horizontal {\n --margin-start: var(--ion-margin, 16px);\n --margin-end: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n}\n@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {\n .ion-margin-horizontal {\n margin-left: unset;\n margin-right: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n.ion-float-left {\n float: left !important;\n}\n.ion-float-right {\n float: right !important;\n}\n.ion-float-start {\n float: left !important;\n}\n[dir=rtl] .ion-float-start, :host-context([dir=rtl]) .ion-float-start {\n float: right !important;\n}\n.ion-float-end {\n float: right !important;\n}\n[dir=rtl] .ion-float-end, :host-context([dir=rtl]) .ion-float-end {\n float: left !important;\n}\n@media (min-width: 576px) {\n .ion-float-sm-left {\n float: left !important;\n }\n\n .ion-float-sm-right {\n float: right !important;\n }\n\n .ion-float-sm-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-sm-start, :host-context([dir=rtl]) .ion-float-sm-start {\n float: right !important;\n }\n\n .ion-float-sm-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-sm-end, :host-context([dir=rtl]) .ion-float-sm-end {\n float: left !important;\n }\n}\n@media (min-width: 768px) {\n .ion-float-md-left {\n float: left !important;\n }\n\n .ion-float-md-right {\n float: right !important;\n }\n\n .ion-float-md-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-md-start, :host-context([dir=rtl]) .ion-float-md-start {\n float: right !important;\n }\n\n .ion-float-md-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-md-end, :host-context([dir=rtl]) .ion-float-md-end {\n float: left !important;\n }\n}\n@media (min-width: 992px) {\n .ion-float-lg-left {\n float: left !important;\n }\n\n .ion-float-lg-right {\n float: right !important;\n }\n\n .ion-float-lg-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-lg-start, :host-context([dir=rtl]) .ion-float-lg-start {\n float: right !important;\n }\n\n .ion-float-lg-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-lg-end, :host-context([dir=rtl]) .ion-float-lg-end {\n float: left !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-float-xl-left {\n float: left !important;\n }\n\n .ion-float-xl-right {\n float: right !important;\n }\n\n .ion-float-xl-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-xl-start, :host-context([dir=rtl]) .ion-float-xl-start {\n float: right !important;\n }\n\n .ion-float-xl-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-xl-end, :host-context([dir=rtl]) .ion-float-xl-end {\n float: left !important;\n }\n}\n.ion-text-center {\n text-align: center !important;\n}\n.ion-text-justify {\n text-align: justify !important;\n}\n.ion-text-start {\n text-align: start !important;\n}\n.ion-text-end {\n text-align: end !important;\n}\n.ion-text-left {\n text-align: left !important;\n}\n.ion-text-right {\n text-align: right !important;\n}\n.ion-text-nowrap {\n white-space: nowrap !important;\n}\n.ion-text-wrap {\n white-space: normal !important;\n}\n@media (min-width: 576px) {\n .ion-text-sm-center {\n text-align: center !important;\n }\n\n .ion-text-sm-justify {\n text-align: justify !important;\n }\n\n .ion-text-sm-start {\n text-align: start !important;\n }\n\n .ion-text-sm-end {\n text-align: end !important;\n }\n\n .ion-text-sm-left {\n text-align: left !important;\n }\n\n .ion-text-sm-right {\n text-align: right !important;\n }\n\n .ion-text-sm-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-sm-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 768px) {\n .ion-text-md-center {\n text-align: center !important;\n }\n\n .ion-text-md-justify {\n text-align: justify !important;\n }\n\n .ion-text-md-start {\n text-align: start !important;\n }\n\n .ion-text-md-end {\n text-align: end !important;\n }\n\n .ion-text-md-left {\n text-align: left !important;\n }\n\n .ion-text-md-right {\n text-align: right !important;\n }\n\n .ion-text-md-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-md-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 992px) {\n .ion-text-lg-center {\n text-align: center !important;\n }\n\n .ion-text-lg-justify {\n text-align: justify !important;\n }\n\n .ion-text-lg-start {\n text-align: start !important;\n }\n\n .ion-text-lg-end {\n text-align: end !important;\n }\n\n .ion-text-lg-left {\n text-align: left !important;\n }\n\n .ion-text-lg-right {\n text-align: right !important;\n }\n\n .ion-text-lg-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-lg-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-text-xl-center {\n text-align: center !important;\n }\n\n .ion-text-xl-justify {\n text-align: justify !important;\n }\n\n .ion-text-xl-start {\n text-align: start !important;\n }\n\n .ion-text-xl-end {\n text-align: end !important;\n }\n\n .ion-text-xl-left {\n text-align: left !important;\n }\n\n .ion-text-xl-right {\n text-align: right !important;\n }\n\n .ion-text-xl-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-xl-wrap {\n white-space: normal !important;\n }\n}\n.ion-text-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n}\n.ion-text-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n}\n.ion-text-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n}\n@media (min-width: 576px) {\n .ion-text-sm-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-sm-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-sm-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 768px) {\n .ion-text-md-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-md-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-md-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 992px) {\n .ion-text-lg-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-lg-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-lg-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-text-xl-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-xl-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-xl-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n.ion-align-self-start {\n align-self: flex-start !important;\n}\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n.ion-align-self-center {\n align-self: center !important;\n}\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n.ion-align-self-auto {\n align-self: auto !important;\n}\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n.ion-justify-content-center {\n justify-content: center !important;\n}\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n.ion-align-items-center {\n align-items: center !important;\n}\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n.ion-align-items-baseline {\n align-items: baseline !important;\n}", "",{"version":3,"sources":["C:\\Users\\tiago.kayaya\\development\\gabinete-digital/src\\global.scss","../node_modules/@ionic/angular/src/css/core.scss","../node_modules/@ionic/angular/css/core.css","../node_modules/@ionic/angular/src/themes/ionic.mixins.scss","../node_modules/@ionic/angular/src/themes/ionic.globals.scss","../node_modules/@ionic/angular/src/components/menu/menu.ios.vars.scss","../node_modules/@ionic/angular/src/components/menu/menu.md.vars.scss","../node_modules/@ionic/angular/src/css/normalize.scss","../node_modules/@ionic/angular/css/normalize.css","../node_modules/@ionic/angular/src/css/structure.scss","../node_modules/@ionic/angular/css/structure.css","../node_modules/@ionic/angular/src/css/typography.scss","../node_modules/@ionic/angular/css/typography.css","../node_modules/@ionic/angular/src/css/display.scss","../node_modules/@ionic/angular/css/display.css","../node_modules/@ionic/angular/src/css/padding.scss","../node_modules/@ionic/angular/css/padding.css","../node_modules/@ionic/angular/src/css/float-elements.scss","../node_modules/@ionic/angular/css/float-elements.css","../node_modules/@ionic/angular/src/css/text-alignment.scss","../node_modules/@ionic/angular/css/text-alignment.css","../node_modules/@ionic/angular/src/css/text-transformation.scss","../node_modules/@ionic/angular/css/text-transformation.css","../node_modules/@ionic/angular/src/css/flex-utils.scss","../node_modules/@ionic/angular/css/flex-utils.css"],"names":[],"mappings":"AAAA;;;;;;;;;EAAA;AAWA,4DAAA;ACHA;EACE,6FAAA;ACPF;ADSA;EACE,0DAAA;ACNF;ADSA;EACE,0CAAA;ACNF;ADSA;EACE,uCAAA;ACNF;ADSA;EACE,gBAAA;ACNF;ADmBA;EACE,gBAAA;AChBF;ADsBA;EACE,sBAAA;ACnBF;AD4CE;EATA,8DAAA;EACA,2EAAA;EACA,wEAAA;EACA,yFAAA;EACA,qEAAA;EACA,mEAAA;AC/BF;ADmCE;EATA,gEAAA;EACA,6EAAA;EACA,0EAAA;EACA,2FAAA;EACA,uEAAA;EACA,qEAAA;ACtBF;AD0BE;EATA,+DAAA;EACA,2EAAA;EACA,yEAAA;EACA,0FAAA;EACA,sEAAA;EACA,oEAAA;ACbF;ADiBE;EATA,8DAAA;EACA,2EAAA;EACA,wEAAA;EACA,yFAAA;EACA,qEAAA;EACA,mEAAA;ACJF;ADQE;EATA,8DAAA;EACA,0EAAA;EACA,wEAAA;EACA,mFAAA;EACA,qEAAA;EACA,mEAAA;ACKF;ADDE;EATA,6DAAA;EACA,yEAAA;EACA,uEAAA;EACA,wFAAA;EACA,oEAAA;EACA,kEAAA;ACcF;ADVE;EATA,4DAAA;EACA,0EAAA;EACA,sEAAA;EACA,iFAAA;EACA,mEAAA;EACA,iEAAA;ACuBF;ADnBE;EATA,6DAAA;EACA,2EAAA;EACA,uEAAA;EACA,wFAAA;EACA,oEAAA;EACA,kEAAA;ACgCF;AD5BE;EATA,2DAAA;EACA,sEAAA;EACA,qEAAA;EACA,sFAAA;EACA,kEAAA;EACA,gEAAA;ACyCF;AD5BA;EE8NM,OF7NuB;EE8NvB,QF9NiB;EEuPrB,MFvPkB;EEwPlB,SFxPwB;EAExB,aAAA;EACA,kBAAA;EAEA,sBAAA;EACA,8BAAA;EAEA,0BAAA;EACA,gBAAA;EACA,UGxC+B;AFuEjC;AD5BA;EACE,kBAAA;AC+BF;AD5BA;;;;;;;;;;;;;;;EAeE,yDAAA;EACA,wBAAA;AC+BF;AD5BA;EACE,UAAA;AC+BF;AD5BA;EACE,cAAA;AC+BF;ADxBA;EACE,6BAAA;AC2BF;ADxBA;EACE;IACE,iDAAA;EC2BF;AACF;ADvBA;EACE;IACE,kDAAA;IACA,wDAAA;IACA,oDAAA;IACA,sDAAA;ECyBF;AACF;ADtBA;EACE;IACE,6CAAA;IACA,mDAAA;IACA,+CAAA;IACA,iDAAA;ECwBF;AACF;ADjBA;;EAEE,cAAA;ACmBF;ADXA;EEyUM,iCAAA;AD1TN;ADXA;EACE,eAAA;EACA,0BAAA;EAIA,oBAAA;ACWF;ADRA;EACE,2CI7K+B;AHwLjC;ADRA;EACE,0CI9K+B;AHyLjC;ADJA;EACE,4CK5L8B;AJmMhC;ADJA;EACE,4CKhM8B;AJuMhC;AFlMA,wCAAA;AOPA;;;;EAIE,wBAAA;ACNF;ADWA;EACE,aAAA;EAEA,SAAA;ACTF;ADiBA;;EAEE,iBAAA;ACdF;ADsBA;EACE,eAAA;EAEA,SAAA;ACpBF;ADwBA;EACE,gBAAA;ACrBF;AD6BA;EACE,gBAAA;AC1BF;AD6BA;EACE,WAAA;EAEA,eAAA;EAEA,uBAAA;AC5BF;ADgCA;EACE,cAAA;AC7BF;ADiCA;;;;EAIE,iCAAA;EACA,cAAA;AC9BF;AD8CA;;;;EAIE,oBAAA;EACA,mBAAA;AC3CF;AD8CA;EACE,cAAA;EAEA,YAAA;EAEA,aAAA;EACA,cAAA;AC7CF;ADgDA;EACE,iBAAA;AC7CF;AD4CA;EACE,iBAAA;AC7CF;AD4CA;EACE,iBAAA;AC7CF;ADgDA;;;;EAIE,SAAA;EAEA,aAAA;EACA,cAAA;AC9CF;ADsDA;;;EAGE,eAAA;EAEA,0BAAA;ACpDF;ADwDA;;;;;;;;;;;;;;;;;;EAkBE,0BAAA;ACrDF;ADwDA;;EAEE,oBAAA;ACrDF;ADwDA;EACE,SAAA;EACA,gBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,cAAA;EACA,oBAAA;EACA,eAAA;EAEA,0BAAA;ACtDF;ADyDA;EACE,eAAA;ACtDF;AD0DA;;;EAGE,eAAA;ACvDF;AD2DA;;EAEE,UAAA;EAEA,SAAA;ACzDF;AD+DA;;EAEE,UAAA;EAEA,sBAAA;AC7DF;ADmEA;;EAEE,YAAA;AChEF;ADsEA;;EAEE,wBAAA;ACnEF;AD2EA;EACE,yBAAA;EACA,iBAAA;ACxEF;AD2EA;;EAEE,UAAA;ACxEF;ACxJA;EACE,sBAAA;EAEA,6CAAA;EACA,wCAAA;EACA,2BAAA;ACTF;ADYA;EACE,WAAA;EACA,YAAA;EAEA,8BAAA;KAAA,2BAAA;MAAA,0BAAA;UAAA,sBAAA;ACVF;ADaA;EACE,aAAA;ACVF;ADaA;EACE,aAAA;ACVF;ADaA;ENoBE,kCAAA;EACA,mCAAA;EAoKE,cMvLc;ENwLd,eMxLc;EN4NhB,aM5NgB;EN6NhB,gBM7NgB;ENuLd,eMtLe;ENuLf,gBMvLe;EN2NjB,cM3NiB;EN4NjB,iBM5NiB;EAEjB,eAAA;EAEA,WAAA;EACA,eAAA;EACA,YAAA;EACA,gBAAA;EAEA,kCAAA;EAEA,gBAAA;EAEA,0BAAA;EAEA,uBAAA;EAEA,yBAAA;EAEA,qBAAA;EAEA,2BAAA;EAEA,8BAAA;KAAA,2BAAA;MAAA,0BAAA;UAAA,sBAAA;ACbF;ACdA;EACE,mCAAA;AC9BF;ADiCA;EACE,6BAAA;EACA,wCAAA;AC9BF;ADiCA;;;;;;ERsNE,gBQhNgB;ERiNhB,mBQjN4B;EAE5B,gBAxC6B;EA0C7B,gBAvC6B;ACQ/B;ADkCA;ERyME,gBQxMgB;EAEhB,eA1C6B;ACS/B;ADoCA;ERmME,gBQlMgB;EAEhB,eA7C6B;ACU/B;ADsCA;EACE,eA9C6B;ACU/B;ADuCA;EACE,eA/C6B;ACW/B;ADuCA;EACE,eAhD6B;ACY/B;ADuCA;EACE,eAjD6B;ACa/B;ADuCA;EACE,cAAA;ACpCF;ADuCA;;EAEE,kBAAA;EAEA,cAAA;EAEA,cAAA;EAEA,wBAAA;ACvCF;AD0CA;EACE,WAAA;ACvCF;AD0CA;EACE,eAAA;ACvCF;ACtDA;EACE,wBAAA;ACPF;ADiBI;EACE,wBAAA;ACdN;ADqBI;EACE,wBAAA;AClBN;AX6FI;EUpFA;IACE,wBAAA;ECLJ;AACF;AXgII;EUrHA;IACE,wBAAA;ECRJ;AACF;AXkFI;EUpFA;IACE,wBAAA;ECKJ;AACF;AXsHI;EUrHA;IACE,wBAAA;ECEJ;AACF;AXwEI;EUpFA;IACE,wBAAA;ECeJ;AACF;AX4GI;EUrHA;IACE,wBAAA;ECYJ;AACF;AX8DI;EUpFA;IACE,wBAAA;ECyBJ;AACF;AXkGI;EUrHA;IACE,wBAAA;ECsBJ;AACF;Ad/BA,iDAAA;AeJA;EACE,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EZqME,eYnMe;EZoMf,gBYpMe;EZwOjB,cYxOiB;EZyOjB,iBYzOiB;ACbnB;ADgBA;EACE,yCAAA;EACA,uCAAA;EACA,uCAAA;EACA,0CAAA;EZgME,sCYnNM;EZoNN,uCYpNM;EZoPR,qCYpPQ;EZqPR,wCYrPQ;ACUV;Ab6MM;EACE;IAEI,mBAAA;IAGA,oBAAA;IAGF,+CYhOA;IZiOA,8CYjOA;IZkOA,6CYlOA;IZmOA,4CYnOA;ECmBR;AACF;ADIA;EACE,uCAAA;EZ2NA,qCYpPQ;ACyBV;ADKA;EACE,yCAAA;EZoLE,sCYnNM;AC6BV;Ab0LM;EACE;IAEI,mBAAA;IAMF,+CYhOA;IZiOA,8CYjOA;ECmCR;AACF;ADAA;EACE,uCAAA;EZ+KE,uCYpNM;ACyCV;Ab8KM;EACE;IAKI,oBAAA;IAKF,6CYlOA;IZmOA,4CYnOA;EC+CR;AACF;ADNA;EACE,0CAAA;EZ0MA,wCYrPQ;ACqDV;ADLA;EACE,uCAAA;EACA,0CAAA;EZkMA,qCYpPQ;EZqPR,wCYrPQ;AC2DV;ADJA;EACE,yCAAA;EACA,uCAAA;EZ0JE,sCYnNM;EZoNN,uCYpNM;ACiEV;AbsJM;EACE;IAEI,mBAAA;IAGA,oBAAA;IAGF,+CYhOA;IZiOA,8CYjOA;IZkOA,6CYlOA;IZmOA,4CYnOA;EC0ER;AACF;ADTA;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,kBAAA;EZyIE,cYvIc;EZwId,eYxIc;EZ4KhB,aY5KgB;EZ6KhB,gBY7KgB;ACclB;ADXA;EACE,uCAAA;EACA,qCAAA;EACA,qCAAA;EACA,wCAAA;EZoIE,oCYlNK;EZmNL,qCYnNK;EZmPP,mCYnPO;EZoPP,sCYpPO;ACgGT;AbsHM;EACE;IAEI,kBAAA;IAGA,mBAAA;IAGF,6CY/ND;IZgOC,4CYhOD;IZiOC,2CYjOD;IZkOC,0CYlOD;ECyGP;AACF;ADvBA;EACE,qCAAA;EZ+JA,mCYnPO;AC+GT;ADtBA;EACE,uCAAA;EZwHE,oCYlNK;ACmHT;AbmGM;EACE;IAEI,kBAAA;IAMF,6CY/ND;IZgOC,4CYhOD;ECyHP;AACF;AD3BA;EACE,qCAAA;EZmHE,qCYnNK;AC+HT;AbuFM;EACE;IAKI,mBAAA;IAKF,2CYjOD;IZkOC,0CYlOD;ECqIP;AACF;ADjCA;EACE,wCAAA;EZ8IA,sCYpPO;AC2IT;ADhCA;EACE,qCAAA;EACA,wCAAA;EZsIA,mCYnPO;EZoPP,sCYpPO;ACiJT;AD/BA;EACE,uCAAA;EACA,qCAAA;EZ8FE,oCYlNK;EZmNL,qCYnNK;ACuJT;Ab+DM;EACE;IAEI,kBAAA;IAGA,mBAAA;IAGF,6CY/ND;IZgOC,4CYhOD;IZiOC,2CYjOD;IZkOC,0CYlOD;ECgKP;AACF;AC9JI;Ed0YE,sBAAA;AetZN;ADgBI;EdsYE,uBAAA;AelZN;ADgBI;EdoXE,sBAAA;AehYN;AfmKW;EAgOL,uBAAA;AehYN;ADaI;EduXE,uBAAA;AehYN;Af4JW;EAuOL,sBAAA;AehYN;AfmFI;EczFA;Id0YE,sBAAA;Ee/XJ;;EDPE;IdsYE,uBAAA;Ee3XJ;;EDPE;IdoXE,sBAAA;EezWJ;Ef4IS;IAgOL,uBAAA;EezWJ;;EDVE;IduXE,uBAAA;EezWJ;EfqIS;IAuOL,sBAAA;EezWJ;AACF;Af2DI;EczFA;Id0YE,sBAAA;EexWJ;;ED9BE;IdsYE,uBAAA;EepWJ;;ED9BE;IdoXE,sBAAA;EelVJ;EfqHS;IAgOL,uBAAA;EelVJ;;EDjCE;IduXE,uBAAA;EelVJ;Ef8GS;IAuOL,sBAAA;EelVJ;AACF;AfoCI;EczFA;Id0YE,sBAAA;EejVJ;;EDrDE;IdsYE,uBAAA;Ee7UJ;;EDrDE;IdoXE,sBAAA;Ee3TJ;Ef8FS;IAgOL,uBAAA;Ee3TJ;;EDxDE;IduXE,uBAAA;Ee3TJ;EfuFS;IAuOL,sBAAA;Ee3TJ;AACF;AfaI;EczFA;Id0YE,sBAAA;Ee1TJ;;ED5EE;IdsYE,uBAAA;EetTJ;;ED5EE;IdoXE,sBAAA;EepSJ;EfuES;IAgOL,uBAAA;EepSJ;;ED/EE;IduXE,uBAAA;EepSJ;EfgES;IAuOL,sBAAA;EepSJ;AACF;ACnGI;EACE,6BAAA;ACbN;ADgBI;EACE,8BAAA;ACbN;ADgBI;EACE,4BAAA;ACbN;ADgBI;EACE,0BAAA;ACbN;ADgBI;EACE,2BAAA;ACbN;ADgBI;EACE,4BAAA;ACbN;ADgBI;EACE,8BAAA;ACbN;ADgBI;EACE,8BAAA;ACbN;AjByEI;EgBzFA;IACE,6BAAA;ECoBJ;;EDjBE;IACE,8BAAA;ECoBJ;;EDjBE;IACE,4BAAA;ECoBJ;;EDjBE;IACE,0BAAA;ECoBJ;;EDjBE;IACE,2BAAA;ECoBJ;;EDjBE;IACE,4BAAA;ECoBJ;;EDjBE;IACE,8BAAA;ECoBJ;;EDjBE;IACE,8BAAA;ECoBJ;AACF;AjBuCI;EgBzFA;IACE,6BAAA;ECqDJ;;EDlDE;IACE,8BAAA;ECqDJ;;EDlDE;IACE,4BAAA;ECqDJ;;EDlDE;IACE,0BAAA;ECqDJ;;EDlDE;IACE,2BAAA;ECqDJ;;EDlDE;IACE,4BAAA;ECqDJ;;EDlDE;IACE,8BAAA;ECqDJ;;EDlDE;IACE,8BAAA;ECqDJ;AACF;AjBMI;EgBzFA;IACE,6BAAA;ECsFJ;;EDnFE;IACE,8BAAA;ECsFJ;;EDnFE;IACE,4BAAA;ECsFJ;;EDnFE;IACE,0BAAA;ECsFJ;;EDnFE;IACE,2BAAA;ECsFJ;;EDnFE;IACE,4BAAA;ECsFJ;;EDnFE;IACE,8BAAA;ECsFJ;;EDnFE;IACE,8BAAA;ECsFJ;AACF;AjB3BI;EgBzFA;IACE,6BAAA;ECuHJ;;EDpHE;IACE,8BAAA;ECuHJ;;EDpHE;IACE,4BAAA;ECuHJ;;EDpHE;IACE,0BAAA;ECuHJ;;EDpHE;IACE,2BAAA;ECuHJ;;EDpHE;IACE,4BAAA;ECuHJ;;EDpHE;IACE,8BAAA;ECuHJ;;EDpHE;IACE,8BAAA;ECuHJ;AACF;ACrJI;EACE,yDAAA;EACA,oCAAA;ACbN;ADgBI;EACE,yDAAA;EACA,oCAAA;ACbN;ADgBI;EACE,yDAAA;EACA,qCAAA;ACbN;AnB0FI;EkBzFA;IACE,yDAAA;IACA,oCAAA;ECGJ;;EDAE;IACE,yDAAA;IACA,oCAAA;ECGJ;;EDAE;IACE,yDAAA;IACA,qCAAA;ECGJ;AACF;AnByEI;EkBzFA;IACE,yDAAA;IACA,oCAAA;ECmBJ;;EDhBE;IACE,yDAAA;IACA,oCAAA;ECmBJ;;EDhBE;IACE,yDAAA;IACA,qCAAA;ECmBJ;AACF;AnByDI;EkBzFA;IACE,yDAAA;IACA,oCAAA;ECmCJ;;EDhCE;IACE,yDAAA;IACA,oCAAA;ECmCJ;;EDhCE;IACE,yDAAA;IACA,qCAAA;ECmCJ;AACF;AnByCI;EkBzFA;IACE,yDAAA;IACA,oCAAA;ECmDJ;;EDhDE;IACE,yDAAA;IACA,oCAAA;ECmDJ;;EDhDE;IACE,yDAAA;IACA,qCAAA;ECmDJ;AACF;ACtEA;EACE,iCAAA;ACPF;ADUA;EACE,+BAAA;ACPF;ADUA;EACE,6BAAA;ACPF;ADUA;EACE,8BAAA;ACPF;ADUA;EACE,+BAAA;ACPF;ADUA;EACE,2BAAA;ACPF;ADcA;EACE,0BAAA;ACXF;ADcA;EACE,4BAAA;ACXF;ADcA;EACE,kCAAA;ACXF;ADkBA;EACE,sCAAA;ACfF;ADkBA;EACE,kCAAA;ACfF;ADkBA;EACE,oCAAA;ACfF;ADkBA;EACE,wCAAA;ACfF;ADkBA;EACE,yCAAA;ACfF;ADkBA;EACE,wCAAA;ACfF;ADsBA;EACE,kCAAA;ACnBF;ADsBA;EACE,8BAAA;ACnBF;ADsBA;EACE,gCAAA;ACnBF;ADsBA;EACE,+BAAA;ACnBF;ADsBA;EACE,gCAAA;ACnBF","file":"global.scss","sourcesContent":["/*\r\n * App Global CSS\r\n * ----------------------------------------------------------------------------\r\n * Put style rules here that you want to apply globally. These styles are for\r\n * the entire app and not just one component. Additionally, this file can be\r\n * used as an entry point to import other CSS/Sass files to be included in the\r\n * output CSS.\r\n * For more information on global stylesheets, visit the documentation:\r\n * https://ionicframework.com/docs/layout/global-stylesheets\r\n */\r\n\r\n/* Core CSS required for Ionic components to work properly */\r\n@import \"~@ionic/angular/css/core.css\";\r\n\r\n/* Basic CSS for apps built with Ionic */\r\n@import \"~@ionic/angular/css/normalize.css\";\r\n@import \"~@ionic/angular/css/structure.css\";\r\n@import \"~@ionic/angular/css/typography.css\";\r\n@import '~@ionic/angular/css/display.css';\r\n\r\n/* Optional CSS utils that can be commented out */\r\n@import \"~@ionic/angular/css/padding.css\";\r\n@import \"~@ionic/angular/css/float-elements.css\";\r\n@import \"~@ionic/angular/css/text-alignment.css\";\r\n@import \"~@ionic/angular/css/text-transformation.css\";\r\n@import \"~@ionic/angular/css/flex-utils.css\";\r\n",null,"html.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\n\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\nhtml.ios ion-modal.modal-card .ion-page > ion-header > ion-toolbar:first-of-type {\n padding-top: 0px;\n}\n\nhtml.ios ion-modal .ion-page {\n border-radius: inherit;\n}\n\n.ion-color-primary {\n --ion-color-base: var(--ion-color-primary, #3880ff) !important;\n --ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;\n --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;\n --ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important;\n}\n\n.ion-color-secondary {\n --ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;\n --ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;\n --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;\n --ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important;\n}\n\n.ion-color-tertiary {\n --ion-color-base: var(--ion-color-tertiary, #5260ff) !important;\n --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;\n --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;\n --ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important;\n}\n\n.ion-color-success {\n --ion-color-base: var(--ion-color-success, #2dd36f) !important;\n --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;\n --ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;\n --ion-color-tint: var(--ion-color-success-tint, #42d77d) !important;\n}\n\n.ion-color-warning {\n --ion-color-base: var(--ion-color-warning, #ffc409) !important;\n --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;\n --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;\n --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;\n}\n\n.ion-color-danger {\n --ion-color-base: var(--ion-color-danger, #eb445a) !important;\n --ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;\n --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;\n --ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important;\n}\n\n.ion-color-light {\n --ion-color-base: var(--ion-color-light, #f4f5f8) !important;\n --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;\n --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;\n --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;\n}\n\n.ion-color-medium {\n --ion-color-base: var(--ion-color-medium, #92949c) !important;\n --ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;\n --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-medium-shade, #808289) !important;\n --ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important;\n}\n\n.ion-color-dark {\n --ion-color-base: var(--ion-color-dark, #222428) !important;\n --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;\n --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;\n --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;\n}\n\n.ion-page {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n position: absolute;\n flex-direction: column;\n justify-content: space-between;\n contain: layout size style;\n overflow: hidden;\n z-index: 0;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden,\n[hidden] {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n.menu-content {\n transform: translate3d(0, 0, 0);\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);\n}\n\n.md .menu-content-reveal {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n\n.md .menu-content-push {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n\n/*# sourceMappingURL=core.css.map */\n",null,null,null,null,null,"audio,\ncanvas,\nprogress,\nvideo {\n vertical-align: baseline;\n}\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\nb,\nstrong {\n font-weight: bold;\n}\n\nimg {\n max-width: 100%;\n border: 0;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\nfigure {\n margin: 1em 40px;\n}\n\nhr {\n height: 1px;\n border-width: 0;\n box-sizing: content-box;\n}\n\npre {\n overflow: auto;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\nlabel,\ninput,\nselect,\ntextarea {\n font-family: inherit;\n line-height: normal;\n}\n\ntextarea {\n overflow: auto;\n height: auto;\n font: inherit;\n color: inherit;\n}\n\ntextarea::placeholder {\n padding-left: 2px;\n}\n\nform,\ninput,\noptgroup,\nselect {\n margin: 0;\n font: inherit;\n color: inherit;\n}\n\nhtml input[type=button],\ninput[type=reset],\ninput[type=submit] {\n cursor: pointer;\n -webkit-appearance: button;\n}\n\na,\na div,\na span,\na ion-icon,\na ion-label,\nbutton,\nbutton div,\nbutton span,\nbutton ion-icon,\nbutton ion-label,\n.ion-tappable,\n[tappable],\n[tappable] div,\n[tappable] span,\n[tappable] ion-icon,\n[tappable] ion-label,\ninput,\ntextarea {\n touch-action: manipulation;\n}\n\na ion-label,\nbutton ion-label {\n pointer-events: none;\n}\n\nbutton {\n border: 0;\n border-radius: 0;\n font-family: inherit;\n font-style: inherit;\n font-variant: inherit;\n line-height: 1;\n text-transform: none;\n cursor: pointer;\n -webkit-appearance: button;\n}\n\n[tappable] {\n cursor: pointer;\n}\n\na[disabled],\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\ninput[type=checkbox],\ninput[type=radio] {\n padding: 0;\n box-sizing: border-box;\n}\n\ninput[type=number]::-webkit-inner-spin-button,\ninput[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\n/*# sourceMappingURL=normalize.css.map */\n",null,"* {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\nhtml {\n width: 100%;\n height: 100%;\n text-size-adjust: 100%;\n}\n\nhtml:not(.hydrated) body {\n display: none;\n}\n\nhtml.plt-pwa {\n height: 100vh;\n}\n\nbody {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n margin-left: 0;\n margin-right: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n position: fixed;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n text-rendering: optimizeLegibility;\n overflow: hidden;\n touch-action: manipulation;\n -webkit-user-drag: none;\n -ms-content-zooming: none;\n word-wrap: break-word;\n overscroll-behavior-y: none;\n text-size-adjust: none;\n}\n\n/*# sourceMappingURL=structure.css.map */\n",null,"html {\n font-family: var(--ion-font-family);\n}\n\na {\n background-color: transparent;\n color: var(--ion-color-primary, #3880ff);\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 16px;\n margin-bottom: 10px;\n font-weight: 500;\n line-height: 1.2;\n}\nh1 {\n margin-top: 20px;\n font-size: 26px;\n}\nh2 {\n margin-top: 18px;\n font-size: 24px;\n}\nh3 {\n font-size: 22px;\n}\n\nh4 {\n font-size: 20px;\n}\n\nh5 {\n font-size: 18px;\n}\n\nh6 {\n font-size: 16px;\n}\n\nsmall {\n font-size: 75%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/*# sourceMappingURL=typography.css.map */\n",null,".ion-hide {\n display: none !important;\n}\n\n.ion-hide-up {\n display: none !important;\n}\n\n.ion-hide-down {\n display: none !important;\n}\n\n@media (min-width: 576px) {\n .ion-hide-sm-up {\n display: none !important;\n }\n}\n@media (max-width: 575.98px) {\n .ion-hide-sm-down {\n display: none !important;\n }\n}\n@media (min-width: 768px) {\n .ion-hide-md-up {\n display: none !important;\n }\n}\n@media (max-width: 767.98px) {\n .ion-hide-md-down {\n display: none !important;\n }\n}\n@media (min-width: 992px) {\n .ion-hide-lg-up {\n display: none !important;\n }\n}\n@media (max-width: 991.98px) {\n .ion-hide-lg-down {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-hide-xl-up {\n display: none !important;\n }\n}\n@media (max-width: 1199.98px) {\n .ion-hide-xl-down {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=display.css.map */\n",null,".ion-no-padding {\n --padding-start: 0;\n --padding-end: 0;\n --padding-top: 0;\n --padding-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.ion-padding {\n --padding-start: var(--ion-padding, 16px);\n --padding-end: var(--ion-padding, 16px);\n --padding-top: var(--ion-padding, 16px);\n --padding-bottom: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-padding {\n padding-left: unset;\n padding-right: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n\n.ion-padding-top {\n --padding-top: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n}\n.ion-padding-start {\n --padding-start: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-padding-start {\n padding-left: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n }\n}\n\n.ion-padding-end {\n --padding-end: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-padding-end {\n padding-right: unset;\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n\n.ion-padding-bottom {\n --padding-bottom: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n.ion-padding-vertical {\n --padding-top: var(--ion-padding, 16px);\n --padding-bottom: var(--ion-padding, 16px);\n padding-top: var(--ion-padding, 16px);\n padding-bottom: var(--ion-padding, 16px);\n}\n.ion-padding-horizontal {\n --padding-start: var(--ion-padding, 16px);\n --padding-end: var(--ion-padding, 16px);\n padding-left: var(--ion-padding, 16px);\n padding-right: var(--ion-padding, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-padding-horizontal {\n padding-left: unset;\n padding-right: unset;\n -webkit-padding-start: var(--ion-padding, 16px);\n padding-inline-start: var(--ion-padding, 16px);\n -webkit-padding-end: var(--ion-padding, 16px);\n padding-inline-end: var(--ion-padding, 16px);\n }\n}\n\n.ion-no-margin {\n --margin-start: 0;\n --margin-end: 0;\n --margin-top: 0;\n --margin-bottom: 0;\n margin-left: 0;\n margin-right: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.ion-margin {\n --margin-start: var(--ion-margin, 16px);\n --margin-end: var(--ion-margin, 16px);\n --margin-top: var(--ion-margin, 16px);\n --margin-bottom: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-margin {\n margin-left: unset;\n margin-right: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n\n.ion-margin-top {\n --margin-top: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n}\n.ion-margin-start {\n --margin-start: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-margin-start {\n margin-left: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n }\n}\n\n.ion-margin-end {\n --margin-end: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-margin-end {\n margin-right: unset;\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n\n.ion-margin-bottom {\n --margin-bottom: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n.ion-margin-vertical {\n --margin-top: var(--ion-margin, 16px);\n --margin-bottom: var(--ion-margin, 16px);\n margin-top: var(--ion-margin, 16px);\n margin-bottom: var(--ion-margin, 16px);\n}\n.ion-margin-horizontal {\n --margin-start: var(--ion-margin, 16px);\n --margin-end: var(--ion-margin, 16px);\n margin-left: var(--ion-margin, 16px);\n margin-right: var(--ion-margin, 16px);\n}\n@supports (margin-inline-start: 0) or (-webkit-margin-start: 0) {\n .ion-margin-horizontal {\n margin-left: unset;\n margin-right: unset;\n -webkit-margin-start: var(--ion-margin, 16px);\n margin-inline-start: var(--ion-margin, 16px);\n -webkit-margin-end: var(--ion-margin, 16px);\n margin-inline-end: var(--ion-margin, 16px);\n }\n}\n\n/*# sourceMappingURL=padding.css.map */\n",null,".ion-float-left {\n float: left !important;\n}\n\n.ion-float-right {\n float: right !important;\n}\n\n.ion-float-start {\n float: left !important;\n}\n[dir=rtl] .ion-float-start, :host-context([dir=rtl]) .ion-float-start {\n float: right !important;\n}\n\n.ion-float-end {\n float: right !important;\n}\n[dir=rtl] .ion-float-end, :host-context([dir=rtl]) .ion-float-end {\n float: left !important;\n}\n\n@media (min-width: 576px) {\n .ion-float-sm-left {\n float: left !important;\n }\n\n .ion-float-sm-right {\n float: right !important;\n }\n\n .ion-float-sm-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-sm-start, :host-context([dir=rtl]) .ion-float-sm-start {\n float: right !important;\n }\n\n .ion-float-sm-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-sm-end, :host-context([dir=rtl]) .ion-float-sm-end {\n float: left !important;\n }\n}\n@media (min-width: 768px) {\n .ion-float-md-left {\n float: left !important;\n }\n\n .ion-float-md-right {\n float: right !important;\n }\n\n .ion-float-md-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-md-start, :host-context([dir=rtl]) .ion-float-md-start {\n float: right !important;\n }\n\n .ion-float-md-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-md-end, :host-context([dir=rtl]) .ion-float-md-end {\n float: left !important;\n }\n}\n@media (min-width: 992px) {\n .ion-float-lg-left {\n float: left !important;\n }\n\n .ion-float-lg-right {\n float: right !important;\n }\n\n .ion-float-lg-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-lg-start, :host-context([dir=rtl]) .ion-float-lg-start {\n float: right !important;\n }\n\n .ion-float-lg-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-lg-end, :host-context([dir=rtl]) .ion-float-lg-end {\n float: left !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-float-xl-left {\n float: left !important;\n }\n\n .ion-float-xl-right {\n float: right !important;\n }\n\n .ion-float-xl-start {\n float: left !important;\n }\n [dir=rtl] .ion-float-xl-start, :host-context([dir=rtl]) .ion-float-xl-start {\n float: right !important;\n }\n\n .ion-float-xl-end {\n float: right !important;\n }\n [dir=rtl] .ion-float-xl-end, :host-context([dir=rtl]) .ion-float-xl-end {\n float: left !important;\n }\n}\n\n/*# sourceMappingURL=float-elements.css.map */\n",null,".ion-text-center {\n text-align: center !important;\n}\n\n.ion-text-justify {\n text-align: justify !important;\n}\n\n.ion-text-start {\n text-align: start !important;\n}\n\n.ion-text-end {\n text-align: end !important;\n}\n\n.ion-text-left {\n text-align: left !important;\n}\n\n.ion-text-right {\n text-align: right !important;\n}\n\n.ion-text-nowrap {\n white-space: nowrap !important;\n}\n\n.ion-text-wrap {\n white-space: normal !important;\n}\n\n@media (min-width: 576px) {\n .ion-text-sm-center {\n text-align: center !important;\n }\n\n .ion-text-sm-justify {\n text-align: justify !important;\n }\n\n .ion-text-sm-start {\n text-align: start !important;\n }\n\n .ion-text-sm-end {\n text-align: end !important;\n }\n\n .ion-text-sm-left {\n text-align: left !important;\n }\n\n .ion-text-sm-right {\n text-align: right !important;\n }\n\n .ion-text-sm-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-sm-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 768px) {\n .ion-text-md-center {\n text-align: center !important;\n }\n\n .ion-text-md-justify {\n text-align: justify !important;\n }\n\n .ion-text-md-start {\n text-align: start !important;\n }\n\n .ion-text-md-end {\n text-align: end !important;\n }\n\n .ion-text-md-left {\n text-align: left !important;\n }\n\n .ion-text-md-right {\n text-align: right !important;\n }\n\n .ion-text-md-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-md-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 992px) {\n .ion-text-lg-center {\n text-align: center !important;\n }\n\n .ion-text-lg-justify {\n text-align: justify !important;\n }\n\n .ion-text-lg-start {\n text-align: start !important;\n }\n\n .ion-text-lg-end {\n text-align: end !important;\n }\n\n .ion-text-lg-left {\n text-align: left !important;\n }\n\n .ion-text-lg-right {\n text-align: right !important;\n }\n\n .ion-text-lg-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-lg-wrap {\n white-space: normal !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-text-xl-center {\n text-align: center !important;\n }\n\n .ion-text-xl-justify {\n text-align: justify !important;\n }\n\n .ion-text-xl-start {\n text-align: start !important;\n }\n\n .ion-text-xl-end {\n text-align: end !important;\n }\n\n .ion-text-xl-left {\n text-align: left !important;\n }\n\n .ion-text-xl-right {\n text-align: right !important;\n }\n\n .ion-text-xl-nowrap {\n white-space: nowrap !important;\n }\n\n .ion-text-xl-wrap {\n white-space: normal !important;\n }\n}\n\n/*# sourceMappingURL=text-alignment.css.map */\n",null,".ion-text-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n}\n\n.ion-text-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n}\n\n.ion-text-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n}\n\n@media (min-width: 576px) {\n .ion-text-sm-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-sm-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-sm-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 768px) {\n .ion-text-md-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-md-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-md-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 992px) {\n .ion-text-lg-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-lg-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-lg-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n@media (min-width: 1200px) {\n .ion-text-xl-uppercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: uppercase !important;\n }\n\n .ion-text-xl-lowercase {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: lowercase !important;\n }\n\n .ion-text-xl-capitalize {\n /* stylelint-disable-next-line declaration-no-important */\n text-transform: capitalize !important;\n }\n}\n\n/*# sourceMappingURL=text-transformation.css.map */\n",null,".ion-align-self-start {\n align-self: flex-start !important;\n}\n\n.ion-align-self-end {\n align-self: flex-end !important;\n}\n\n.ion-align-self-center {\n align-self: center !important;\n}\n\n.ion-align-self-stretch {\n align-self: stretch !important;\n}\n\n.ion-align-self-baseline {\n align-self: baseline !important;\n}\n\n.ion-align-self-auto {\n align-self: auto !important;\n}\n\n.ion-wrap {\n flex-wrap: wrap !important;\n}\n\n.ion-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.ion-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.ion-justify-content-start {\n justify-content: flex-start !important;\n}\n\n.ion-justify-content-center {\n justify-content: center !important;\n}\n\n.ion-justify-content-end {\n justify-content: flex-end !important;\n}\n\n.ion-justify-content-around {\n justify-content: space-around !important;\n}\n\n.ion-justify-content-between {\n justify-content: space-between !important;\n}\n\n.ion-justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.ion-align-items-start {\n align-items: flex-start !important;\n}\n\n.ion-align-items-center {\n align-items: center !important;\n}\n\n.ion-align-items-end {\n align-items: flex-end !important;\n}\n\n.ion-align-items-stretch {\n align-items: stretch !important;\n}\n\n.ion-align-items-baseline {\n align-items: baseline !important;\n}\n\n/*# sourceMappingURL=flex-utils.css.map */\n"]}]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./src/theme/variables.scss": +/*!*********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--13-1!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/dist/cjs.js??ref--13-3!./src/theme/variables.scss ***! + \*********************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(true); +// Module +exports.push([module.i, "/** Ionic CSS Variables **/\n:root {\n /** primary **/\n --ion-color-primary: #3880ff;\n --ion-color-primary-rgb: 56, 128, 255;\n --ion-color-primary-contrast: #ffffff;\n --ion-color-primary-contrast-rgb: 255, 255, 255;\n --ion-color-primary-shade: #3171e0;\n --ion-color-primary-tint: #4c8dff;\n /** secondary **/\n --ion-color-secondary: #3dc2ff;\n --ion-color-secondary-rgb: 61, 194, 255;\n --ion-color-secondary-contrast: #ffffff;\n --ion-color-secondary-contrast-rgb: 255, 255, 255;\n --ion-color-secondary-shade: #36abe0;\n --ion-color-secondary-tint: #50c8ff;\n /** tertiary **/\n --ion-color-tertiary: #5260ff;\n --ion-color-tertiary-rgb: 82, 96, 255;\n --ion-color-tertiary-contrast: #ffffff;\n --ion-color-tertiary-contrast-rgb: 255, 255, 255;\n --ion-color-tertiary-shade: #4854e0;\n --ion-color-tertiary-tint: #6370ff;\n /** success **/\n --ion-color-success: #2dd36f;\n --ion-color-success-rgb: 45, 211, 111;\n --ion-color-success-contrast: #ffffff;\n --ion-color-success-contrast-rgb: 255, 255, 255;\n --ion-color-success-shade: #28ba62;\n --ion-color-success-tint: #42d77d;\n /** warning **/\n --ion-color-warning: #ffc409;\n --ion-color-warning-rgb: 255, 196, 9;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0, 0, 0;\n --ion-color-warning-shade: #e0ac08;\n --ion-color-warning-tint: #ffca22;\n /** danger **/\n --ion-color-danger: #eb445a;\n --ion-color-danger-rgb: 235, 68, 90;\n --ion-color-danger-contrast: #ffffff;\n --ion-color-danger-contrast-rgb: 255, 255, 255;\n --ion-color-danger-shade: #cf3c4f;\n --ion-color-danger-tint: #ed576b;\n /** dark **/\n --ion-color-dark: #222428;\n --ion-color-dark-rgb: 34, 36, 40;\n --ion-color-dark-contrast: #ffffff;\n --ion-color-dark-contrast-rgb: 255, 255, 255;\n --ion-color-dark-shade: #1e2023;\n --ion-color-dark-tint: #383a3e;\n /** medium **/\n --ion-color-medium: #92949c;\n --ion-color-medium-rgb: 146, 148, 156;\n --ion-color-medium-contrast: #ffffff;\n --ion-color-medium-contrast-rgb: 255, 255, 255;\n --ion-color-medium-shade: #808289;\n --ion-color-medium-tint: #9d9fa6;\n /** light **/\n --ion-color-light: #f4f5f8;\n --ion-color-light-rgb: 244, 245, 248;\n --ion-color-light-contrast: #000000;\n --ion-color-light-contrast-rgb: 0, 0, 0;\n --ion-color-light-shade: #d7d8da;\n --ion-color-light-tint: #f5f6f9;\n --ion-color-expediente: #dae3f3;\n}\n@media (prefers-color-scheme: dark) {\n /*\n * Dark Colors\n * -------------------------------------------\n */\n body {\n --ion-color-primary: #428cff;\n --ion-color-primary-rgb: 66,140,255;\n --ion-color-primary-contrast: #ffffff;\n --ion-color-primary-contrast-rgb: 255,255,255;\n --ion-color-primary-shade: #3a7be0;\n --ion-color-primary-tint: #5598ff;\n --ion-color-secondary: #50c8ff;\n --ion-color-secondary-rgb: 80,200,255;\n --ion-color-secondary-contrast: #ffffff;\n --ion-color-secondary-contrast-rgb: 255,255,255;\n --ion-color-secondary-shade: #46b0e0;\n --ion-color-secondary-tint: #62ceff;\n --ion-color-tertiary: #6a64ff;\n --ion-color-tertiary-rgb: 106,100,255;\n --ion-color-tertiary-contrast: #ffffff;\n --ion-color-tertiary-contrast-rgb: 255,255,255;\n --ion-color-tertiary-shade: #5d58e0;\n --ion-color-tertiary-tint: #7974ff;\n --ion-color-success: #2fdf75;\n --ion-color-success-rgb: 47,223,117;\n --ion-color-success-contrast: #000000;\n --ion-color-success-contrast-rgb: 0,0,0;\n --ion-color-success-shade: #29c467;\n --ion-color-success-tint: #44e283;\n --ion-color-warning: #ffd534;\n --ion-color-warning-rgb: 255,213,52;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0,0,0;\n --ion-color-warning-shade: #e0bb2e;\n --ion-color-warning-tint: #ffd948;\n --ion-color-danger: #ff4961;\n --ion-color-danger-rgb: 255,73,97;\n --ion-color-danger-contrast: #ffffff;\n --ion-color-danger-contrast-rgb: 255,255,255;\n --ion-color-danger-shade: #e04055;\n --ion-color-danger-tint: #ff5b71;\n --ion-color-dark: #f4f5f8;\n --ion-color-dark-rgb: 244,245,248;\n --ion-color-dark-contrast: #000000;\n --ion-color-dark-contrast-rgb: 0,0,0;\n --ion-color-dark-shade: #d7d8da;\n --ion-color-dark-tint: #f5f6f9;\n --ion-color-medium: #989aa2;\n --ion-color-medium-rgb: 152,154,162;\n --ion-color-medium-contrast: #000000;\n --ion-color-medium-contrast-rgb: 0,0,0;\n --ion-color-medium-shade: #86888f;\n --ion-color-medium-tint: #a2a4ab;\n --ion-color-light: #222428;\n --ion-color-light-rgb: 34,36,40;\n --ion-color-light-contrast: #ffffff;\n --ion-color-light-contrast-rgb: 255,255,255;\n --ion-color-light-shade: #1e2023;\n --ion-color-light-tint: #383a3e;\n --ion-color-expediente: #dae3f3;\n }\n\n /*\n * iOS Dark Theme\n * -------------------------------------------\n */\n .ios body {\n --ion-background-color: #000000;\n --ion-background-color-rgb: 0,0,0;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255,255,255;\n --ion-color-step-50: #0d0d0d;\n --ion-color-step-100: #1a1a1a;\n --ion-color-step-150: #262626;\n --ion-color-step-200: #333333;\n --ion-color-step-250: #404040;\n --ion-color-step-300: #4d4d4d;\n --ion-color-step-350: #595959;\n --ion-color-step-400: #666666;\n --ion-color-step-450: #737373;\n --ion-color-step-500: #808080;\n --ion-color-step-550: #8c8c8c;\n --ion-color-step-600: #999999;\n --ion-color-step-650: #a6a6a6;\n --ion-color-step-700: #b3b3b3;\n --ion-color-step-750: #bfbfbf;\n --ion-color-step-800: #cccccc;\n --ion-color-step-850: #d9d9d9;\n --ion-color-step-900: #e6e6e6;\n --ion-color-step-950: #f2f2f2;\n --ion-toolbar-background: #0d0d0d;\n --ion-item-background: #000000;\n --ion-card-background: #1c1c1d;\n --ion-color-expediente: #dae3f3;\n }\n\n /*\n * Material Design Dark Theme\n * -------------------------------------------\n */\n .md body {\n --ion-background-color: #121212;\n --ion-background-color-rgb: 18,18,18;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255,255,255;\n --ion-border-color: #222222;\n --ion-color-step-50: #1e1e1e;\n --ion-color-step-100: #2a2a2a;\n --ion-color-step-150: #363636;\n --ion-color-step-200: #414141;\n --ion-color-step-250: #4d4d4d;\n --ion-color-step-300: #595959;\n --ion-color-step-350: #656565;\n --ion-color-step-400: #717171;\n --ion-color-step-450: #7d7d7d;\n --ion-color-step-500: #898989;\n --ion-color-step-550: #949494;\n --ion-color-step-600: #a0a0a0;\n --ion-color-step-650: #acacac;\n --ion-color-step-700: #b8b8b8;\n --ion-color-step-750: #c4c4c4;\n --ion-color-step-800: #d0d0d0;\n --ion-color-step-850: #dbdbdb;\n --ion-color-step-900: #e7e7e7;\n --ion-color-step-950: #f3f3f3;\n --ion-item-background: #1e1e1e;\n --ion-toolbar-background: #1f1f1f;\n --ion-tab-bar-background: #1f1f1f;\n --ion-card-background: #1e1e1e;\n /* My colors */\n --ion-color-expediente: #dae3f3;\n }\n}\n.center {\n text-align: center;\n}\n.wrapper {\n padding: 150px 20px 0 20px;\n overflow: auto;\n}\n/* .cal-modal{\n --height: 80%;\n --border-radius: 10px;\n padding: 25px;\n} */\n.capitalizeText {\n text-transform: capitalize;\n}", "",{"version":3,"sources":["C:\\Users\\tiago.kayaya\\development\\gabinete-digital/src\\theme\\variables.scss","variables.scss"],"names":[],"mappings":"AAGA,0BAAA;AACA;EACE,cAAA;EACA,4BAAA;EACA,qCAAA;EACA,qCAAA;EACA,+CAAA;EACA,kCAAA;EACA,iCAAA;EAEA,gBAAA;EACA,8BAAA;EACA,uCAAA;EACA,uCAAA;EACA,iDAAA;EACA,oCAAA;EACA,mCAAA;EAEA,eAAA;EACA,6BAAA;EACA,qCAAA;EACA,sCAAA;EACA,gDAAA;EACA,mCAAA;EACA,kCAAA;EAEA,cAAA;EACA,4BAAA;EACA,qCAAA;EACA,qCAAA;EACA,+CAAA;EACA,kCAAA;EACA,iCAAA;EAEA,cAAA;EACA,4BAAA;EACA,oCAAA;EACA,qCAAA;EACA,yCAAA;EACA,kCAAA;EACA,iCAAA;EAEA,aAAA;EACA,2BAAA;EACA,mCAAA;EACA,oCAAA;EACA,8CAAA;EACA,iCAAA;EACA,gCAAA;EAEA,WAAA;EACA,yBAAA;EACA,gCAAA;EACA,kCAAA;EACA,4CAAA;EACA,+BAAA;EACA,8BAAA;EAEA,aAAA;EACA,2BAAA;EACA,qCAAA;EACA,oCAAA;EACA,8CAAA;EACA,iCAAA;EACA,gCAAA;EAEA,YAAA;EACA,0BAAA;EACA,oCAAA;EACA,mCAAA;EACA,uCAAA;EACA,gCAAA;EACA,+BAAA;EAEA,+BAAA;ACXF;ADcA;EACE;;;IAAA;EAKA;IACE,4BAAA;IACA,mCAAA;IACA,qCAAA;IACA,6CAAA;IACA,kCAAA;IACA,iCAAA;IAEA,8BAAA;IACA,qCAAA;IACA,uCAAA;IACA,+CAAA;IACA,oCAAA;IACA,mCAAA;IAEA,6BAAA;IACA,qCAAA;IACA,sCAAA;IACA,8CAAA;IACA,mCAAA;IACA,kCAAA;IAEA,4BAAA;IACA,mCAAA;IACA,qCAAA;IACA,uCAAA;IACA,kCAAA;IACA,iCAAA;IAEA,4BAAA;IACA,mCAAA;IACA,qCAAA;IACA,uCAAA;IACA,kCAAA;IACA,iCAAA;IAEA,2BAAA;IACA,iCAAA;IACA,oCAAA;IACA,4CAAA;IACA,iCAAA;IACA,gCAAA;IAEA,yBAAA;IACA,iCAAA;IACA,kCAAA;IACA,oCAAA;IACA,+BAAA;IACA,8BAAA;IAEA,2BAAA;IACA,mCAAA;IACA,oCAAA;IACA,sCAAA;IACA,iCAAA;IACA,gCAAA;IAEA,0BAAA;IACA,+BAAA;IACA,mCAAA;IACA,2CAAA;IACA,gCAAA;IACA,+BAAA;IAEA,+BAAA;ECrBF;;EDwBA;;;IAAA;EAKA;IACE,+BAAA;IACA,iCAAA;IAEA,yBAAA;IACA,iCAAA;IAEA,4BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IAEA,iCAAA;IAEA,8BAAA;IAEA,8BAAA;IAEA,+BAAA;EC5BF;;EDgCA;;;IAAA;EAKA;IACE,+BAAA;IACA,oCAAA;IAEA,yBAAA;IACA,iCAAA;IAEA,2BAAA;IAEA,4BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IACA,6BAAA;IAEA,8BAAA;IAEA,iCAAA;IAEA,iCAAA;IAEA,8BAAA;IACJ,cAAA;IACI,+BAAA;ECrCF;AACF;ADuCA;EACE,kBAAA;ACrCF;ADuCA;EACE,0BAAA;EACA,cAAA;ACpCF;ADsCA;;;;GAAA;AAKA;EACE,0BAAA;ACnCF","file":"variables.scss","sourcesContent":["// Ionic Variables and Theming. For more info, please see:\r\n// http://ionicframework.com/docs/theming/\r\n\r\n/** Ionic CSS Variables **/\r\n:root {\r\n /** primary **/\r\n --ion-color-primary: #3880ff;\r\n --ion-color-primary-rgb: 56, 128, 255;\r\n --ion-color-primary-contrast: #ffffff;\r\n --ion-color-primary-contrast-rgb: 255, 255, 255;\r\n --ion-color-primary-shade: #3171e0;\r\n --ion-color-primary-tint: #4c8dff;\r\n\r\n /** secondary **/\r\n --ion-color-secondary: #3dc2ff;\r\n --ion-color-secondary-rgb: 61, 194, 255;\r\n --ion-color-secondary-contrast: #ffffff;\r\n --ion-color-secondary-contrast-rgb: 255, 255, 255;\r\n --ion-color-secondary-shade: #36abe0;\r\n --ion-color-secondary-tint: #50c8ff;\r\n\r\n /** tertiary **/\r\n --ion-color-tertiary: #5260ff;\r\n --ion-color-tertiary-rgb: 82, 96, 255;\r\n --ion-color-tertiary-contrast: #ffffff;\r\n --ion-color-tertiary-contrast-rgb: 255, 255, 255;\r\n --ion-color-tertiary-shade: #4854e0;\r\n --ion-color-tertiary-tint: #6370ff;\r\n\r\n /** success **/\r\n --ion-color-success: #2dd36f;\r\n --ion-color-success-rgb: 45, 211, 111;\r\n --ion-color-success-contrast: #ffffff;\r\n --ion-color-success-contrast-rgb: 255, 255, 255;\r\n --ion-color-success-shade: #28ba62;\r\n --ion-color-success-tint: #42d77d;\r\n\r\n /** warning **/\r\n --ion-color-warning: #ffc409;\r\n --ion-color-warning-rgb: 255, 196, 9;\r\n --ion-color-warning-contrast: #000000;\r\n --ion-color-warning-contrast-rgb: 0, 0, 0;\r\n --ion-color-warning-shade: #e0ac08;\r\n --ion-color-warning-tint: #ffca22;\r\n\r\n /** danger **/\r\n --ion-color-danger: #eb445a;\r\n --ion-color-danger-rgb: 235, 68, 90;\r\n --ion-color-danger-contrast: #ffffff;\r\n --ion-color-danger-contrast-rgb: 255, 255, 255;\r\n --ion-color-danger-shade: #cf3c4f;\r\n --ion-color-danger-tint: #ed576b;\r\n\r\n /** dark **/\r\n --ion-color-dark: #222428;\r\n --ion-color-dark-rgb: 34, 36, 40;\r\n --ion-color-dark-contrast: #ffffff;\r\n --ion-color-dark-contrast-rgb: 255, 255, 255;\r\n --ion-color-dark-shade: #1e2023;\r\n --ion-color-dark-tint: #383a3e;\r\n\r\n /** medium **/\r\n --ion-color-medium: #92949c;\r\n --ion-color-medium-rgb: 146, 148, 156;\r\n --ion-color-medium-contrast: #ffffff;\r\n --ion-color-medium-contrast-rgb: 255, 255, 255;\r\n --ion-color-medium-shade: #808289;\r\n --ion-color-medium-tint: #9d9fa6;\r\n\r\n /** light **/\r\n --ion-color-light: #f4f5f8;\r\n --ion-color-light-rgb: 244, 245, 248;\r\n --ion-color-light-contrast: #000000;\r\n --ion-color-light-contrast-rgb: 0, 0, 0;\r\n --ion-color-light-shade: #d7d8da;\r\n --ion-color-light-tint: #f5f6f9;\r\n\r\n --ion-color-expediente: #dae3f3;\r\n}\r\n\r\n@media (prefers-color-scheme: dark) {\r\n /*\r\n * Dark Colors\r\n * -------------------------------------------\r\n */\r\n\r\n body {\r\n --ion-color-primary: #428cff;\r\n --ion-color-primary-rgb: 66,140,255;\r\n --ion-color-primary-contrast: #ffffff;\r\n --ion-color-primary-contrast-rgb: 255,255,255;\r\n --ion-color-primary-shade: #3a7be0;\r\n --ion-color-primary-tint: #5598ff;\r\n\r\n --ion-color-secondary: #50c8ff;\r\n --ion-color-secondary-rgb: 80,200,255;\r\n --ion-color-secondary-contrast: #ffffff;\r\n --ion-color-secondary-contrast-rgb: 255,255,255;\r\n --ion-color-secondary-shade: #46b0e0;\r\n --ion-color-secondary-tint: #62ceff;\r\n\r\n --ion-color-tertiary: #6a64ff;\r\n --ion-color-tertiary-rgb: 106,100,255;\r\n --ion-color-tertiary-contrast: #ffffff;\r\n --ion-color-tertiary-contrast-rgb: 255,255,255;\r\n --ion-color-tertiary-shade: #5d58e0;\r\n --ion-color-tertiary-tint: #7974ff;\r\n\r\n --ion-color-success: #2fdf75;\r\n --ion-color-success-rgb: 47,223,117;\r\n --ion-color-success-contrast: #000000;\r\n --ion-color-success-contrast-rgb: 0,0,0;\r\n --ion-color-success-shade: #29c467;\r\n --ion-color-success-tint: #44e283;\r\n\r\n --ion-color-warning: #ffd534;\r\n --ion-color-warning-rgb: 255,213,52;\r\n --ion-color-warning-contrast: #000000;\r\n --ion-color-warning-contrast-rgb: 0,0,0;\r\n --ion-color-warning-shade: #e0bb2e;\r\n --ion-color-warning-tint: #ffd948;\r\n\r\n --ion-color-danger: #ff4961;\r\n --ion-color-danger-rgb: 255,73,97;\r\n --ion-color-danger-contrast: #ffffff;\r\n --ion-color-danger-contrast-rgb: 255,255,255;\r\n --ion-color-danger-shade: #e04055;\r\n --ion-color-danger-tint: #ff5b71;\r\n\r\n --ion-color-dark: #f4f5f8;\r\n --ion-color-dark-rgb: 244,245,248;\r\n --ion-color-dark-contrast: #000000;\r\n --ion-color-dark-contrast-rgb: 0,0,0;\r\n --ion-color-dark-shade: #d7d8da;\r\n --ion-color-dark-tint: #f5f6f9;\r\n\r\n --ion-color-medium: #989aa2;\r\n --ion-color-medium-rgb: 152,154,162;\r\n --ion-color-medium-contrast: #000000;\r\n --ion-color-medium-contrast-rgb: 0,0,0;\r\n --ion-color-medium-shade: #86888f;\r\n --ion-color-medium-tint: #a2a4ab;\r\n\r\n --ion-color-light: #222428;\r\n --ion-color-light-rgb: 34,36,40;\r\n --ion-color-light-contrast: #ffffff;\r\n --ion-color-light-contrast-rgb: 255,255,255;\r\n --ion-color-light-shade: #1e2023;\r\n --ion-color-light-tint: #383a3e;\r\n\r\n --ion-color-expediente: #dae3f3;\r\n }\r\n\r\n /*\r\n * iOS Dark Theme\r\n * -------------------------------------------\r\n */\r\n\r\n .ios body {\r\n --ion-background-color: #000000;\r\n --ion-background-color-rgb: 0,0,0;\r\n\r\n --ion-text-color: #ffffff;\r\n --ion-text-color-rgb: 255,255,255;\r\n\r\n --ion-color-step-50: #0d0d0d;\r\n --ion-color-step-100: #1a1a1a;\r\n --ion-color-step-150: #262626;\r\n --ion-color-step-200: #333333;\r\n --ion-color-step-250: #404040;\r\n --ion-color-step-300: #4d4d4d;\r\n --ion-color-step-350: #595959;\r\n --ion-color-step-400: #666666;\r\n --ion-color-step-450: #737373;\r\n --ion-color-step-500: #808080;\r\n --ion-color-step-550: #8c8c8c;\r\n --ion-color-step-600: #999999;\r\n --ion-color-step-650: #a6a6a6;\r\n --ion-color-step-700: #b3b3b3;\r\n --ion-color-step-750: #bfbfbf;\r\n --ion-color-step-800: #cccccc;\r\n --ion-color-step-850: #d9d9d9;\r\n --ion-color-step-900: #e6e6e6;\r\n --ion-color-step-950: #f2f2f2;\r\n\r\n --ion-toolbar-background: #0d0d0d;\r\n\r\n --ion-item-background: #000000;\r\n\r\n --ion-card-background: #1c1c1d;\r\n\r\n --ion-color-expediente: #dae3f3;\r\n }\r\n\r\n\r\n /*\r\n * Material Design Dark Theme\r\n * -------------------------------------------\r\n */\r\n\r\n .md body {\r\n --ion-background-color: #121212;\r\n --ion-background-color-rgb: 18,18,18;\r\n\r\n --ion-text-color: #ffffff;\r\n --ion-text-color-rgb: 255,255,255;\r\n\r\n --ion-border-color: #222222;\r\n\r\n --ion-color-step-50: #1e1e1e;\r\n --ion-color-step-100: #2a2a2a;\r\n --ion-color-step-150: #363636;\r\n --ion-color-step-200: #414141;\r\n --ion-color-step-250: #4d4d4d;\r\n --ion-color-step-300: #595959;\r\n --ion-color-step-350: #656565;\r\n --ion-color-step-400: #717171;\r\n --ion-color-step-450: #7d7d7d;\r\n --ion-color-step-500: #898989;\r\n --ion-color-step-550: #949494;\r\n --ion-color-step-600: #a0a0a0;\r\n --ion-color-step-650: #acacac;\r\n --ion-color-step-700: #b8b8b8;\r\n --ion-color-step-750: #c4c4c4;\r\n --ion-color-step-800: #d0d0d0;\r\n --ion-color-step-850: #dbdbdb;\r\n --ion-color-step-900: #e7e7e7;\r\n --ion-color-step-950: #f3f3f3;\r\n\r\n --ion-item-background: #1e1e1e;\r\n\r\n --ion-toolbar-background: #1f1f1f;\r\n\r\n --ion-tab-bar-background: #1f1f1f;\r\n\r\n --ion-card-background: #1e1e1e;\r\n/* My colors */\r\n --ion-color-expediente: #dae3f3;\r\n }\r\n}\r\n.center{\r\n text-align: center;\r\n}\r\n.wrapper{\r\n padding: 150px 20px 0 20px;\r\n overflow: auto;\r\n}\r\n/* .cal-modal{\r\n --height: 80%;\r\n --border-radius: 10px;\r\n padding: 25px;\r\n} */\r\n.capitalizeText{\r\n text-transform: capitalize;\r\n}","/** Ionic CSS Variables **/\n:root {\n /** primary **/\n --ion-color-primary: #3880ff;\n --ion-color-primary-rgb: 56, 128, 255;\n --ion-color-primary-contrast: #ffffff;\n --ion-color-primary-contrast-rgb: 255, 255, 255;\n --ion-color-primary-shade: #3171e0;\n --ion-color-primary-tint: #4c8dff;\n /** secondary **/\n --ion-color-secondary: #3dc2ff;\n --ion-color-secondary-rgb: 61, 194, 255;\n --ion-color-secondary-contrast: #ffffff;\n --ion-color-secondary-contrast-rgb: 255, 255, 255;\n --ion-color-secondary-shade: #36abe0;\n --ion-color-secondary-tint: #50c8ff;\n /** tertiary **/\n --ion-color-tertiary: #5260ff;\n --ion-color-tertiary-rgb: 82, 96, 255;\n --ion-color-tertiary-contrast: #ffffff;\n --ion-color-tertiary-contrast-rgb: 255, 255, 255;\n --ion-color-tertiary-shade: #4854e0;\n --ion-color-tertiary-tint: #6370ff;\n /** success **/\n --ion-color-success: #2dd36f;\n --ion-color-success-rgb: 45, 211, 111;\n --ion-color-success-contrast: #ffffff;\n --ion-color-success-contrast-rgb: 255, 255, 255;\n --ion-color-success-shade: #28ba62;\n --ion-color-success-tint: #42d77d;\n /** warning **/\n --ion-color-warning: #ffc409;\n --ion-color-warning-rgb: 255, 196, 9;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0, 0, 0;\n --ion-color-warning-shade: #e0ac08;\n --ion-color-warning-tint: #ffca22;\n /** danger **/\n --ion-color-danger: #eb445a;\n --ion-color-danger-rgb: 235, 68, 90;\n --ion-color-danger-contrast: #ffffff;\n --ion-color-danger-contrast-rgb: 255, 255, 255;\n --ion-color-danger-shade: #cf3c4f;\n --ion-color-danger-tint: #ed576b;\n /** dark **/\n --ion-color-dark: #222428;\n --ion-color-dark-rgb: 34, 36, 40;\n --ion-color-dark-contrast: #ffffff;\n --ion-color-dark-contrast-rgb: 255, 255, 255;\n --ion-color-dark-shade: #1e2023;\n --ion-color-dark-tint: #383a3e;\n /** medium **/\n --ion-color-medium: #92949c;\n --ion-color-medium-rgb: 146, 148, 156;\n --ion-color-medium-contrast: #ffffff;\n --ion-color-medium-contrast-rgb: 255, 255, 255;\n --ion-color-medium-shade: #808289;\n --ion-color-medium-tint: #9d9fa6;\n /** light **/\n --ion-color-light: #f4f5f8;\n --ion-color-light-rgb: 244, 245, 248;\n --ion-color-light-contrast: #000000;\n --ion-color-light-contrast-rgb: 0, 0, 0;\n --ion-color-light-shade: #d7d8da;\n --ion-color-light-tint: #f5f6f9;\n --ion-color-expediente: #dae3f3;\n}\n\n@media (prefers-color-scheme: dark) {\n /*\n * Dark Colors\n * -------------------------------------------\n */\n body {\n --ion-color-primary: #428cff;\n --ion-color-primary-rgb: 66,140,255;\n --ion-color-primary-contrast: #ffffff;\n --ion-color-primary-contrast-rgb: 255,255,255;\n --ion-color-primary-shade: #3a7be0;\n --ion-color-primary-tint: #5598ff;\n --ion-color-secondary: #50c8ff;\n --ion-color-secondary-rgb: 80,200,255;\n --ion-color-secondary-contrast: #ffffff;\n --ion-color-secondary-contrast-rgb: 255,255,255;\n --ion-color-secondary-shade: #46b0e0;\n --ion-color-secondary-tint: #62ceff;\n --ion-color-tertiary: #6a64ff;\n --ion-color-tertiary-rgb: 106,100,255;\n --ion-color-tertiary-contrast: #ffffff;\n --ion-color-tertiary-contrast-rgb: 255,255,255;\n --ion-color-tertiary-shade: #5d58e0;\n --ion-color-tertiary-tint: #7974ff;\n --ion-color-success: #2fdf75;\n --ion-color-success-rgb: 47,223,117;\n --ion-color-success-contrast: #000000;\n --ion-color-success-contrast-rgb: 0,0,0;\n --ion-color-success-shade: #29c467;\n --ion-color-success-tint: #44e283;\n --ion-color-warning: #ffd534;\n --ion-color-warning-rgb: 255,213,52;\n --ion-color-warning-contrast: #000000;\n --ion-color-warning-contrast-rgb: 0,0,0;\n --ion-color-warning-shade: #e0bb2e;\n --ion-color-warning-tint: #ffd948;\n --ion-color-danger: #ff4961;\n --ion-color-danger-rgb: 255,73,97;\n --ion-color-danger-contrast: #ffffff;\n --ion-color-danger-contrast-rgb: 255,255,255;\n --ion-color-danger-shade: #e04055;\n --ion-color-danger-tint: #ff5b71;\n --ion-color-dark: #f4f5f8;\n --ion-color-dark-rgb: 244,245,248;\n --ion-color-dark-contrast: #000000;\n --ion-color-dark-contrast-rgb: 0,0,0;\n --ion-color-dark-shade: #d7d8da;\n --ion-color-dark-tint: #f5f6f9;\n --ion-color-medium: #989aa2;\n --ion-color-medium-rgb: 152,154,162;\n --ion-color-medium-contrast: #000000;\n --ion-color-medium-contrast-rgb: 0,0,0;\n --ion-color-medium-shade: #86888f;\n --ion-color-medium-tint: #a2a4ab;\n --ion-color-light: #222428;\n --ion-color-light-rgb: 34,36,40;\n --ion-color-light-contrast: #ffffff;\n --ion-color-light-contrast-rgb: 255,255,255;\n --ion-color-light-shade: #1e2023;\n --ion-color-light-tint: #383a3e;\n --ion-color-expediente: #dae3f3;\n }\n\n /*\n * iOS Dark Theme\n * -------------------------------------------\n */\n .ios body {\n --ion-background-color: #000000;\n --ion-background-color-rgb: 0,0,0;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255,255,255;\n --ion-color-step-50: #0d0d0d;\n --ion-color-step-100: #1a1a1a;\n --ion-color-step-150: #262626;\n --ion-color-step-200: #333333;\n --ion-color-step-250: #404040;\n --ion-color-step-300: #4d4d4d;\n --ion-color-step-350: #595959;\n --ion-color-step-400: #666666;\n --ion-color-step-450: #737373;\n --ion-color-step-500: #808080;\n --ion-color-step-550: #8c8c8c;\n --ion-color-step-600: #999999;\n --ion-color-step-650: #a6a6a6;\n --ion-color-step-700: #b3b3b3;\n --ion-color-step-750: #bfbfbf;\n --ion-color-step-800: #cccccc;\n --ion-color-step-850: #d9d9d9;\n --ion-color-step-900: #e6e6e6;\n --ion-color-step-950: #f2f2f2;\n --ion-toolbar-background: #0d0d0d;\n --ion-item-background: #000000;\n --ion-card-background: #1c1c1d;\n --ion-color-expediente: #dae3f3;\n }\n\n /*\n * Material Design Dark Theme\n * -------------------------------------------\n */\n .md body {\n --ion-background-color: #121212;\n --ion-background-color-rgb: 18,18,18;\n --ion-text-color: #ffffff;\n --ion-text-color-rgb: 255,255,255;\n --ion-border-color: #222222;\n --ion-color-step-50: #1e1e1e;\n --ion-color-step-100: #2a2a2a;\n --ion-color-step-150: #363636;\n --ion-color-step-200: #414141;\n --ion-color-step-250: #4d4d4d;\n --ion-color-step-300: #595959;\n --ion-color-step-350: #656565;\n --ion-color-step-400: #717171;\n --ion-color-step-450: #7d7d7d;\n --ion-color-step-500: #898989;\n --ion-color-step-550: #949494;\n --ion-color-step-600: #a0a0a0;\n --ion-color-step-650: #acacac;\n --ion-color-step-700: #b8b8b8;\n --ion-color-step-750: #c4c4c4;\n --ion-color-step-800: #d0d0d0;\n --ion-color-step-850: #dbdbdb;\n --ion-color-step-900: #e7e7e7;\n --ion-color-step-950: #f3f3f3;\n --ion-item-background: #1e1e1e;\n --ion-toolbar-background: #1f1f1f;\n --ion-tab-bar-background: #1f1f1f;\n --ion-card-background: #1e1e1e;\n /* My colors */\n --ion-color-expediente: #dae3f3;\n }\n}\n.center {\n text-align: center;\n}\n\n.wrapper {\n padding: 150px 20px 0 20px;\n overflow: auto;\n}\n\n/* .cal-modal{\n --height: 80%;\n --border-radius: 10px;\n padding: 25px;\n} */\n.capitalizeText {\n text-transform: capitalize;\n}"]}]); +// Exports +module.exports = exports; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +// eslint-disable-next-line func-names +module.exports = function (useSourceMap) { + var list = []; // return the list of modules as css string + + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item, useSourceMap); + + if (item[2]) { + return "@media ".concat(item[2], " {").concat(content, "}"); + } + + return content; + }).join(''); + }; // import a list of modules into the list + // eslint-disable-next-line func-names + + + list.i = function (modules, mediaQuery, dedupe) { + if (typeof modules === 'string') { + // eslint-disable-next-line no-param-reassign + modules = [[null, modules, '']]; + } + + var alreadyImportedModules = {}; + + if (dedupe) { + for (var i = 0; i < this.length; i++) { + // eslint-disable-next-line prefer-destructuring + var id = this[i][0]; + + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + + for (var _i = 0; _i < modules.length; _i++) { + var item = [].concat(modules[_i]); + + if (dedupe && alreadyImportedModules[item[0]]) { + // eslint-disable-next-line no-continue + continue; + } + + if (mediaQuery) { + if (!item[2]) { + item[2] = mediaQuery; + } else { + item[2] = "".concat(mediaQuery, " and ").concat(item[2]); + } + } + + list.push(item); + } + }; + + return list; +}; + +function cssWithMappingToString(item, useSourceMap) { + var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring + + var cssMapping = item[3]; + + if (!cssMapping) { + return content; + } + + if (useSourceMap && typeof btoa === 'function') { + var sourceMapping = toComment(cssMapping); + var sourceURLs = cssMapping.sources.map(function (source) { + return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */"); + }); + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); + } + + return [content].join('\n'); +} // Adapted from convert-source-map (MIT) + + +function toComment(sourceMap) { + // eslint-disable-next-line no-undef + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); + var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); + return "/*# ".concat(data, " */"); +} + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": +/*!****************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isOldIE = function isOldIE() { + var memo; + return function memorize() { + if (typeof memo === 'undefined') { + // Test for IE <= 9 as proposed by Browserhacks + // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 + // Tests for existence of standard globals is to allow style-loader + // to operate correctly into non-standard environments + // @see https://github.com/webpack-contrib/style-loader/issues/177 + memo = Boolean(window && document && document.all && !window.atob); + } + + return memo; + }; +}(); + +var getTarget = function getTarget() { + var memo = {}; + return function memorize(target) { + if (typeof memo[target] === 'undefined') { + var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself + + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } + + memo[target] = styleTarget; + } + + return memo[target]; + }; +}(); + +var stylesInDom = []; + +function getIndexByIdentifier(identifier) { + var result = -1; + + for (var i = 0; i < stylesInDom.length; i++) { + if (stylesInDom[i].identifier === identifier) { + result = i; + break; + } + } + + return result; +} + +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var index = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3] + }; + + if (index !== -1) { + stylesInDom[index].references++; + stylesInDom[index].updater(obj); + } else { + stylesInDom.push({ + identifier: identifier, + updater: addStyle(obj, options), + references: 1 + }); + } + + identifiers.push(identifier); + } + + return identifiers; +} + +function insertStyleElement(options) { + var style = document.createElement('style'); + var attributes = options.attributes || {}; + + if (typeof attributes.nonce === 'undefined') { + var nonce = true ? __webpack_require__.nc : undefined; + + if (nonce) { + attributes.nonce = nonce; + } + } + + Object.keys(attributes).forEach(function (key) { + style.setAttribute(key, attributes[key]); + }); + + if (typeof options.insert === 'function') { + options.insert(style); + } else { + var target = getTarget(options.insert || 'head'); + + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + } + + target.appendChild(style); + } + + return style; +} + +function removeStyleElement(style) { + // istanbul ignore if + if (style.parentNode === null) { + return false; + } + + style.parentNode.removeChild(style); +} +/* istanbul ignore next */ + + +var replaceText = function replaceText() { + var textStore = []; + return function replace(index, replacement) { + textStore[index] = replacement; + return textStore.filter(Boolean).join('\n'); + }; +}(); + +function applyToSingletonTag(style, index, remove, obj) { + var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE + + /* istanbul ignore if */ + + if (style.styleSheet) { + style.styleSheet.cssText = replaceText(index, css); + } else { + var cssNode = document.createTextNode(css); + var childNodes = style.childNodes; + + if (childNodes[index]) { + style.removeChild(childNodes[index]); + } + + if (childNodes.length) { + style.insertBefore(cssNode, childNodes[index]); + } else { + style.appendChild(cssNode); + } + } +} + +function applyToTag(style, options, obj) { + var css = obj.css; + var media = obj.media; + var sourceMap = obj.sourceMap; + + if (media) { + style.setAttribute('media', media); + } else { + style.removeAttribute('media'); + } + + if (sourceMap && btoa) { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } // For old IE + + /* istanbul ignore if */ + + + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + while (style.firstChild) { + style.removeChild(style.firstChild); + } + + style.appendChild(document.createTextNode(css)); + } +} + +var singleton = null; +var singletonCounter = 0; + +function addStyle(obj, options) { + var style; + var update; + var remove; + + if (options.singleton) { + var styleIndex = singletonCounter++; + style = singleton || (singleton = insertStyleElement(options)); + update = applyToSingletonTag.bind(null, style, styleIndex, false); + remove = applyToSingletonTag.bind(null, style, styleIndex, true); + } else { + style = insertStyleElement(options); + update = applyToTag.bind(null, style, options); + + remove = function remove() { + removeStyleElement(style); + }; + } + + update(obj); + return function updateStyle(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { + return; + } + + update(obj = newObj); + } else { + remove(); + } + }; +} + +module.exports = function (list, options) { + options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of + + + could become: + + +
+ +
+ + Note the use of @polyfill in the comment above a ShadowDOM specific style + declaration. This is a directive to the styling shim to use the selector + in comments in lieu of the next selector when running under polyfill. +*/ +class ShadowCss { + constructor() { + this.strictStyling = true; + } + /* + * Shim some cssText with the given selector. Returns cssText that can + * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css). + * + * When strictStyling is true: + * - selector is the attribute added to all elements inside the host, + * - hostSelector is the attribute added to the host itself. + */ + shimCssText(cssText, selector, hostSelector = '') { + const commentsWithHash = extractCommentsWithHash(cssText); + cssText = stripComments(cssText); + cssText = this._insertDirectives(cssText); + const scopedCssText = this._scopeCssText(cssText, selector, hostSelector); + return [scopedCssText, ...commentsWithHash].join('\n'); + } + _insertDirectives(cssText) { + cssText = this._insertPolyfillDirectivesInCssText(cssText); + return this._insertPolyfillRulesInCssText(cssText); + } + /* + * Process styles to convert native ShadowDOM rules that will trip + * up the css parser; we rely on decorating the stylesheet with inert rules. + * + * For example, we convert this rule: + * + * polyfill-next-selector { content: ':host menu-item'; } + * ::content menu-item { + * + * to this: + * + * scopeName menu-item { + * + **/ + _insertPolyfillDirectivesInCssText(cssText) { + // Difference with webcomponents.js: does not handle comments + return cssText.replace(_cssContentNextSelectorRe, function (...m) { + return m[2] + '{'; + }); + } + /* + * Process styles to add rules which will only apply under the polyfill + * + * For example, we convert this rule: + * + * polyfill-rule { + * content: ':host menu-item'; + * ... + * } + * + * to this: + * + * scopeName menu-item {...} + * + **/ + _insertPolyfillRulesInCssText(cssText) { + // Difference with webcomponents.js: does not handle comments + return cssText.replace(_cssContentRuleRe, (...m) => { + const rule = m[0].replace(m[1], '').replace(m[2], ''); + return m[4] + rule; + }); + } + /* Ensure styles are scoped. Pseudo-scoping takes a rule like: + * + * .foo {... } + * + * and converts this to + * + * scopeName .foo { ... } + */ + _scopeCssText(cssText, scopeSelector, hostSelector) { + const unscopedRules = this._extractUnscopedRulesFromCssText(cssText); + // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively + cssText = this._insertPolyfillHostInCssText(cssText); + cssText = this._convertColonHost(cssText); + cssText = this._convertColonHostContext(cssText); + cssText = this._convertShadowDOMSelectors(cssText); + if (scopeSelector) { + cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector); + } + cssText = cssText + '\n' + unscopedRules; + return cssText.trim(); + } + /* + * Process styles to add rules which will only apply under the polyfill + * and do not process via CSSOM. (CSSOM is destructive to rules on rare + * occasions, e.g. -webkit-calc on Safari.) + * For example, we convert this rule: + * + * @polyfill-unscoped-rule { + * content: 'menu-item'; + * ... } + * + * to this: + * + * menu-item {...} + * + **/ + _extractUnscopedRulesFromCssText(cssText) { + // Difference with webcomponents.js: does not handle comments + let r = ''; + let m; + _cssContentUnscopedRuleRe.lastIndex = 0; + while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) { + const rule = m[0].replace(m[2], '').replace(m[1], m[4]); + r += rule + '\n\n'; + } + return r; + } + /* + * convert a rule like :host(.foo) > .bar { } + * + * to + * + * .foo > .bar + */ + _convertColonHost(cssText) { + return this._convertColonRule(cssText, _cssColonHostRe, this._colonHostPartReplacer); + } + /* + * convert a rule like :host-context(.foo) > .bar { } + * + * to + * + * .foo > .bar, .foo scopeName > .bar { } + * + * and + * + * :host-context(.foo:host) .bar { ... } + * + * to + * + * .foo .bar { ... } + */ + _convertColonHostContext(cssText) { + return this._convertColonRule(cssText, _cssColonHostContextRe, this._colonHostContextPartReplacer); + } + _convertColonRule(cssText, regExp, partReplacer) { + // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule + return cssText.replace(regExp, function (...m) { + if (m[2]) { + const parts = m[2].split(','); + const r = []; + for (let i = 0; i < parts.length; i++) { + const p = parts[i].trim(); + if (!p) + break; + r.push(partReplacer(_polyfillHostNoCombinator, p, m[3])); + } + return r.join(','); + } + else { + return _polyfillHostNoCombinator + m[3]; + } + }); + } + _colonHostContextPartReplacer(host, part, suffix) { + if (part.indexOf(_polyfillHost) > -1) { + return this._colonHostPartReplacer(host, part, suffix); + } + else { + return host + part + suffix + ', ' + part + ' ' + host + suffix; + } + } + _colonHostPartReplacer(host, part, suffix) { + return host + part.replace(_polyfillHost, '') + suffix; + } + /* + * Convert combinators like ::shadow and pseudo-elements like ::content + * by replacing with space. + */ + _convertShadowDOMSelectors(cssText) { + return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText); + } + // change a selector like 'div' to 'name div' + _scopeSelectors(cssText, scopeSelector, hostSelector) { + return processRules(cssText, (rule) => { + let selector = rule.selector; + let content = rule.content; + if (rule.selector[0] != '@') { + selector = + this._scopeSelector(rule.selector, scopeSelector, hostSelector, this.strictStyling); + } + else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') || + rule.selector.startsWith('@page') || rule.selector.startsWith('@document')) { + content = this._scopeSelectors(rule.content, scopeSelector, hostSelector); + } + return new CssRule(selector, content); + }); + } + _scopeSelector(selector, scopeSelector, hostSelector, strict) { + return selector.split(',') + .map(part => part.trim().split(_shadowDeepSelectors)) + .map((deepParts) => { + const [shallowPart, ...otherParts] = deepParts; + const applyScope = (shallowPart) => { + if (this._selectorNeedsScoping(shallowPart, scopeSelector)) { + return strict ? + this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) : + this._applySelectorScope(shallowPart, scopeSelector, hostSelector); + } + else { + return shallowPart; + } + }; + return [applyScope(shallowPart), ...otherParts].join(' '); + }) + .join(', '); + } + _selectorNeedsScoping(selector, scopeSelector) { + const re = this._makeScopeMatcher(scopeSelector); + return !re.test(selector); + } + _makeScopeMatcher(scopeSelector) { + const lre = /\[/g; + const rre = /\]/g; + scopeSelector = scopeSelector.replace(lre, '\\[').replace(rre, '\\]'); + return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm'); + } + _applySelectorScope(selector, scopeSelector, hostSelector) { + // Difference from webcomponents.js: scopeSelector could not be an array + return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector); + } + // scope via name and [is=name] + _applySimpleSelectorScope(selector, scopeSelector, hostSelector) { + // In Android browser, the lastIndex is not reset when the regex is used in String.replace() + _polyfillHostRe.lastIndex = 0; + if (_polyfillHostRe.test(selector)) { + const replaceBy = this.strictStyling ? `[${hostSelector}]` : scopeSelector; + return selector + .replace(_polyfillHostNoCombinatorRe, (hnc, selector) => { + return selector.replace(/([^:]*)(:*)(.*)/, (_, before, colon, after) => { + return before + replaceBy + colon + after; + }); + }) + .replace(_polyfillHostRe, replaceBy + ' '); + } + return scopeSelector + ' ' + selector; + } + // return a selector with [name] suffix on each simple selector + // e.g. .foo.bar > .zot becomes .foo[name].bar[name] > .zot[name] /** @internal */ + _applyStrictSelectorScope(selector, scopeSelector, hostSelector) { + const isRe = /\[is=([^\]]*)\]/g; + scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]); + const attrName = '[' + scopeSelector + ']'; + const _scopeSelectorPart = (p) => { + let scopedP = p.trim(); + if (!scopedP) { + return ''; + } + if (p.indexOf(_polyfillHostNoCombinator) > -1) { + scopedP = this._applySimpleSelectorScope(p, scopeSelector, hostSelector); + } + else { + // remove :host since it should be unnecessary + const t = p.replace(_polyfillHostRe, ''); + if (t.length > 0) { + const matches = t.match(/([^:]*)(:*)(.*)/); + if (matches) { + scopedP = matches[1] + attrName + matches[2] + matches[3]; + } + } + } + return scopedP; + }; + const safeContent = new SafeSelector(selector); + selector = safeContent.content(); + let scopedSelector = ''; + let startIndex = 0; + let res; + const sep = /( |>|\+|~(?!=))\s*/g; + // If a selector appears before :host it should not be shimmed as it + // matches on ancestor elements and not on elements in the host's shadow + // `:host-context(div)` is transformed to + // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator` + // the `div` is not part of the component in the 2nd selectors and should not be scoped. + // Historically `component-tag:host` was matching the component so we also want to preserve + // this behavior to avoid breaking legacy apps (it should not match). + // The behavior should be: + // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything) + // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a + // `:host-context(tag)`) + const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1; + // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present + let shouldScope = !hasHost; + while ((res = sep.exec(selector)) !== null) { + const separator = res[1]; + const part = selector.slice(startIndex, res.index).trim(); + shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1; + const scopedPart = shouldScope ? _scopeSelectorPart(part) : part; + scopedSelector += `${scopedPart} ${separator} `; + startIndex = sep.lastIndex; + } + const part = selector.substring(startIndex); + shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1; + scopedSelector += shouldScope ? _scopeSelectorPart(part) : part; + // replace the placeholders with their original values + return safeContent.restore(scopedSelector); + } + _insertPolyfillHostInCssText(selector) { + return selector.replace(_colonHostContextRe, _polyfillHostContext) + .replace(_colonHostRe, _polyfillHost); + } +} +class SafeSelector { + constructor(selector) { + this.placeholders = []; + this.index = 0; + // Replaces attribute selectors with placeholders. + // The WS in [attr="va lue"] would otherwise be interpreted as a selector separator. + selector = selector.replace(/(\[[^\]]*\])/g, (_, keep) => { + const replaceBy = `__ph-${this.index}__`; + this.placeholders.push(keep); + this.index++; + return replaceBy; + }); + // Replaces the expression in `:nth-child(2n + 1)` with a placeholder. + // WS and "+" would otherwise be interpreted as selector separators. + this._content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => { + const replaceBy = `__ph-${this.index}__`; + this.placeholders.push(exp); + this.index++; + return pseudo + replaceBy; + }); + } + restore(content) { + return content.replace(/__ph-(\d+)__/g, (ph, index) => this.placeholders[+index]); + } + content() { + return this._content; + } +} +const _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim; +const _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; +const _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; +const _polyfillHost = '-shadowcsshost'; +// note: :host-context pre-processed to -shadowcsshostcontext. +const _polyfillHostContext = '-shadowcsscontext'; +const _parenSuffix = ')(?:\\((' + + '(?:\\([^)(]*\\)|[^)(]*)+?' + + ')\\))?([^,{]*)'; +const _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim'); +const _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim'); +const _polyfillHostNoCombinator = _polyfillHost + '-no-combinator'; +const _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/; +const _shadowDOMSelectorsRe = [ + /::shadow/g, + /::content/g, + // Deprecated selectors + /\/shadow-deep\//g, + /\/shadow\//g, +]; +// The deep combinator is deprecated in the CSS spec +// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future. +// see https://github.com/angular/angular/pull/17677 +const _shadowDeepSelectors = /(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g; +const _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$'; +const _polyfillHostRe = /-shadowcsshost/gim; +const _colonHostRe = /:host/gim; +const _colonHostContextRe = /:host-context/gim; +const _commentRe = /\/\*\s*[\s\S]*?\*\//g; +function stripComments(input) { + return input.replace(_commentRe, ''); +} +const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g; +function extractCommentsWithHash(input) { + return input.match(_commentWithHashRe) || []; +} +const _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g; +const _curlyRe = /([{}])/g; +const OPEN_CURLY = '{'; +const CLOSE_CURLY = '}'; +const BLOCK_PLACEHOLDER = '%BLOCK%'; +class CssRule { + constructor(selector, content) { + this.selector = selector; + this.content = content; + } +} +function processRules(input, ruleCallback) { + const inputWithEscapedBlocks = escapeBlocks(input); + let nextBlockIndex = 0; + return inputWithEscapedBlocks.escapedString.replace(_ruleRe, function (...m) { + const selector = m[2]; + let content = ''; + let suffix = m[4]; + let contentPrefix = ''; + if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) { + content = inputWithEscapedBlocks.blocks[nextBlockIndex++]; + suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1); + contentPrefix = '{'; + } + const rule = ruleCallback(new CssRule(selector, content)); + return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`; + }); +} +class StringWithEscapedBlocks { + constructor(escapedString, blocks) { + this.escapedString = escapedString; + this.blocks = blocks; + } +} +function escapeBlocks(input) { + const inputParts = input.split(_curlyRe); + const resultParts = []; + const escapedBlocks = []; + let bracketCount = 0; + let currentBlockParts = []; + for (let partIndex = 0; partIndex < inputParts.length; partIndex++) { + const part = inputParts[partIndex]; + if (part == CLOSE_CURLY) { + bracketCount--; + } + if (bracketCount > 0) { + currentBlockParts.push(part); + } + else { + if (currentBlockParts.length > 0) { + escapedBlocks.push(currentBlockParts.join('')); + resultParts.push(BLOCK_PLACEHOLDER); + currentBlockParts = []; + } + resultParts.push(part); + } + if (part == OPEN_CURLY) { + bracketCount++; + } + } + if (currentBlockParts.length > 0) { + escapedBlocks.push(currentBlockParts.join('')); + resultParts.push(BLOCK_PLACEHOLDER); + } + return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks); +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const COMPONENT_VARIABLE = '%COMP%'; +const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`; +const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`; +class StylesCompileDependency { + constructor(name, moduleUrl, setValue) { + this.name = name; + this.moduleUrl = moduleUrl; + this.setValue = setValue; + } +} +class CompiledStylesheet { + constructor(outputCtx, stylesVar, dependencies, isShimmed, meta) { + this.outputCtx = outputCtx; + this.stylesVar = stylesVar; + this.dependencies = dependencies; + this.isShimmed = isShimmed; + this.meta = meta; + } +} +class StyleCompiler { + constructor(_urlResolver) { + this._urlResolver = _urlResolver; + this._shadowCss = new ShadowCss(); + } + compileComponent(outputCtx, comp) { + const template = comp.template; + return this._compileStyles(outputCtx, comp, new CompileStylesheetMetadata({ + styles: template.styles, + styleUrls: template.styleUrls, + moduleUrl: identifierModuleUrl(comp.type) + }), this.needsStyleShim(comp), true); + } + compileStyles(outputCtx, comp, stylesheet, shim = this.needsStyleShim(comp)) { + return this._compileStyles(outputCtx, comp, stylesheet, shim, false); + } + needsStyleShim(comp) { + return comp.template.encapsulation === ViewEncapsulation.Emulated; + } + _compileStyles(outputCtx, comp, stylesheet, shim, isComponentStylesheet) { + const styleExpressions = stylesheet.styles.map(plainStyle => literal(this._shimIfNeeded(plainStyle, shim))); + const dependencies = []; + stylesheet.styleUrls.forEach((styleUrl) => { + const exprIndex = styleExpressions.length; + // Note: This placeholder will be filled later. + styleExpressions.push(null); + dependencies.push(new StylesCompileDependency(getStylesVarName(null), styleUrl, (value) => styleExpressions[exprIndex] = outputCtx.importExpr(value))); + }); + // styles variable contains plain strings and arrays of other styles arrays (recursive), + // so we set its type to dynamic. + const stylesVar = getStylesVarName(isComponentStylesheet ? comp : null); + const stmt = variable(stylesVar) + .set(literalArr(styleExpressions, new ArrayType(DYNAMIC_TYPE, [TypeModifier.Const]))) + .toDeclStmt(null, isComponentStylesheet ? [StmtModifier.Final] : [ + StmtModifier.Final, StmtModifier.Exported + ]); + outputCtx.statements.push(stmt); + return new CompiledStylesheet(outputCtx, stylesVar, dependencies, shim, stylesheet); + } + _shimIfNeeded(style, shim) { + return shim ? this._shadowCss.shimCssText(style, CONTENT_ATTR, HOST_ATTR) : style; + } +} +function getStylesVarName(component) { + let result = `styles`; + if (component) { + result += `_${identifierName(component.type)}`; + } + return result; +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * A path is an ordered set of elements. Typically a path is to a + * particular offset in a source file. The head of the list is the top + * most node. The tail is the node that contains the offset directly. + * + * For example, the expression `a + b + c` might have an ast that looks + * like: + * + + * / \ + * a + + * / \ + * b c + * + * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10, + * 'c' at 9-10]` and the path the node at offset 1 would be + * `['+' at 1-10, 'a' at 1-2]`. + */ +class AstPath { + constructor(path, position = -1) { + this.path = path; + this.position = position; + } + get empty() { + return !this.path || !this.path.length; + } + get head() { + return this.path[0]; + } + get tail() { + return this.path[this.path.length - 1]; + } + parentOf(node) { + return node && this.path[this.path.indexOf(node) - 1]; + } + childOf(node) { + return this.path[this.path.indexOf(node) + 1]; + } + first(ctor) { + for (let i = this.path.length - 1; i >= 0; i--) { + let item = this.path[i]; + if (item instanceof ctor) + return item; + } + } + push(node) { + this.path.push(node); + } + pop() { + return this.path.pop(); + } +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class NodeWithI18n { + constructor(sourceSpan, i18n) { + this.sourceSpan = sourceSpan; + this.i18n = i18n; + } +} +class Text$3 extends NodeWithI18n { + constructor(value, sourceSpan, i18n) { + super(sourceSpan, i18n); + this.value = value; + } + visit(visitor, context) { + return visitor.visitText(this, context); + } +} +class Expansion extends NodeWithI18n { + constructor(switchValue, type, cases, sourceSpan, switchValueSourceSpan, i18n) { + super(sourceSpan, i18n); + this.switchValue = switchValue; + this.type = type; + this.cases = cases; + this.switchValueSourceSpan = switchValueSourceSpan; + } + visit(visitor, context) { + return visitor.visitExpansion(this, context); + } +} +class ExpansionCase { + constructor(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) { + this.value = value; + this.expression = expression; + this.sourceSpan = sourceSpan; + this.valueSourceSpan = valueSourceSpan; + this.expSourceSpan = expSourceSpan; + } + visit(visitor, context) { + return visitor.visitExpansionCase(this, context); + } +} +class Attribute extends NodeWithI18n { + constructor(name, value, sourceSpan, valueSpan, i18n) { + super(sourceSpan, i18n); + this.name = name; + this.value = value; + this.valueSpan = valueSpan; + } + visit(visitor, context) { + return visitor.visitAttribute(this, context); + } +} +class Element$1 extends NodeWithI18n { + constructor(name, attrs, children, sourceSpan, startSourceSpan = null, endSourceSpan = null, i18n) { + super(sourceSpan, i18n); + this.name = name; + this.attrs = attrs; + this.children = children; + this.startSourceSpan = startSourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor, context) { + return visitor.visitElement(this, context); + } +} +class Comment { + constructor(value, sourceSpan) { + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitComment(this, context); + } +} +function visitAll$1(visitor, nodes, context = null) { + const result = []; + const visit = visitor.visit ? + (ast) => visitor.visit(ast, context) || ast.visit(visitor, context) : + (ast) => ast.visit(visitor, context); + nodes.forEach(ast => { + const astResult = visit(ast); + if (astResult) { + result.push(astResult); + } + }); + return result; +} +class RecursiveVisitor$1 { + constructor() { } + visitElement(ast, context) { + this.visitChildren(context, visit => { + visit(ast.attrs); + visit(ast.children); + }); + } + visitAttribute(ast, context) { } + visitText(ast, context) { } + visitComment(ast, context) { } + visitExpansion(ast, context) { + return this.visitChildren(context, visit => { + visit(ast.cases); + }); + } + visitExpansionCase(ast, context) { } + visitChildren(context, cb) { + let results = []; + let t = this; + function visit(children) { + if (children) + results.push(visitAll$1(t, children, context)); + } + cb(visit); + return Array.prototype.concat.apply([], results); + } +} +function spanOf(ast) { + const start = ast.sourceSpan.start.offset; + let end = ast.sourceSpan.end.offset; + if (ast instanceof Element$1) { + if (ast.endSourceSpan) { + end = ast.endSourceSpan.end.offset; + } + else if (ast.children && ast.children.length) { + end = spanOf(ast.children[ast.children.length - 1]).end; + } + } + return { start, end }; +} +function findNode(nodes, position) { + const path = []; + const visitor = new class extends RecursiveVisitor$1 { + visit(ast, context) { + const span = spanOf(ast); + if (span.start <= position && position < span.end) { + path.push(ast); + } + else { + // Returning a value here will result in the children being skipped. + return true; + } + } + }; + visitAll$1(visitor, nodes); + return new AstPath(path, position); +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var TokenType; +(function (TokenType) { + TokenType[TokenType["TAG_OPEN_START"] = 0] = "TAG_OPEN_START"; + TokenType[TokenType["TAG_OPEN_END"] = 1] = "TAG_OPEN_END"; + TokenType[TokenType["TAG_OPEN_END_VOID"] = 2] = "TAG_OPEN_END_VOID"; + TokenType[TokenType["TAG_CLOSE"] = 3] = "TAG_CLOSE"; + TokenType[TokenType["TEXT"] = 4] = "TEXT"; + TokenType[TokenType["ESCAPABLE_RAW_TEXT"] = 5] = "ESCAPABLE_RAW_TEXT"; + TokenType[TokenType["RAW_TEXT"] = 6] = "RAW_TEXT"; + TokenType[TokenType["COMMENT_START"] = 7] = "COMMENT_START"; + TokenType[TokenType["COMMENT_END"] = 8] = "COMMENT_END"; + TokenType[TokenType["CDATA_START"] = 9] = "CDATA_START"; + TokenType[TokenType["CDATA_END"] = 10] = "CDATA_END"; + TokenType[TokenType["ATTR_NAME"] = 11] = "ATTR_NAME"; + TokenType[TokenType["ATTR_QUOTE"] = 12] = "ATTR_QUOTE"; + TokenType[TokenType["ATTR_VALUE"] = 13] = "ATTR_VALUE"; + TokenType[TokenType["DOC_TYPE"] = 14] = "DOC_TYPE"; + TokenType[TokenType["EXPANSION_FORM_START"] = 15] = "EXPANSION_FORM_START"; + TokenType[TokenType["EXPANSION_CASE_VALUE"] = 16] = "EXPANSION_CASE_VALUE"; + TokenType[TokenType["EXPANSION_CASE_EXP_START"] = 17] = "EXPANSION_CASE_EXP_START"; + TokenType[TokenType["EXPANSION_CASE_EXP_END"] = 18] = "EXPANSION_CASE_EXP_END"; + TokenType[TokenType["EXPANSION_FORM_END"] = 19] = "EXPANSION_FORM_END"; + TokenType[TokenType["EOF"] = 20] = "EOF"; +})(TokenType || (TokenType = {})); +class Token { + constructor(type, parts, sourceSpan) { + this.type = type; + this.parts = parts; + this.sourceSpan = sourceSpan; + } +} +class TokenError extends ParseError { + constructor(errorMsg, tokenType, span) { + super(span, errorMsg); + this.tokenType = tokenType; + } +} +class TokenizeResult { + constructor(tokens, errors) { + this.tokens = tokens; + this.errors = errors; + } +} +function tokenize(source, url, getTagDefinition, options = {}) { + return new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, options).tokenize(); +} +const _CR_OR_CRLF_REGEXP = /\r\n?/g; +function _unexpectedCharacterErrorMsg(charCode) { + const char = charCode === $EOF ? 'EOF' : String.fromCharCode(charCode); + return `Unexpected character "${char}"`; +} +function _unknownEntityErrorMsg(entitySrc) { + return `Unknown entity "${entitySrc}" - use the "&#;" or "&#x;" syntax`; +} +class _ControlFlowError { + constructor(error) { + this.error = error; + } +} +// See http://www.w3.org/TR/html51/syntax.html#writing +class _Tokenizer { + /** + * @param _file The html source file being tokenized. + * @param _getTagDefinition A function that will retrieve a tag definition for a given tag name. + * @param options Configuration of the tokenization. + */ + constructor(_file, _getTagDefinition, options) { + this._getTagDefinition = _getTagDefinition; + this._currentTokenStart = null; + this._currentTokenType = null; + this._expansionCaseStack = []; + this._inInterpolation = false; + this.tokens = []; + this.errors = []; + this._tokenizeIcu = options.tokenizeExpansionForms || false; + this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; + this._leadingTriviaCodePoints = + options.leadingTriviaChars && options.leadingTriviaChars.map(c => c.codePointAt(0) || 0); + const range = options.range || { endPos: _file.content.length, startPos: 0, startLine: 0, startCol: 0 }; + this._cursor = options.escapedString ? new EscapedCharacterCursor(_file, range) : + new PlainCharacterCursor(_file, range); + this._preserveLineEndings = options.preserveLineEndings || false; + try { + this._cursor.init(); + } + catch (e) { + this.handleError(e); + } + } + _processCarriageReturns(content) { + if (this._preserveLineEndings) { + return content; + } + // http://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream + // In order to keep the original position in the source, we can not + // pre-process it. + // Instead CRs are processed right before instantiating the tokens. + return content.replace(_CR_OR_CRLF_REGEXP, '\n'); + } + tokenize() { + while (this._cursor.peek() !== $EOF) { + const start = this._cursor.clone(); + try { + if (this._attemptCharCode($LT)) { + if (this._attemptCharCode($BANG)) { + if (this._attemptCharCode($LBRACKET)) { + this._consumeCdata(start); + } + else if (this._attemptCharCode($MINUS)) { + this._consumeComment(start); + } + else { + this._consumeDocType(start); + } + } + else if (this._attemptCharCode($SLASH)) { + this._consumeTagClose(start); + } + else { + this._consumeTagOpen(start); + } + } + else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) { + this._consumeText(); + } + } + catch (e) { + this.handleError(e); + } + } + this._beginToken(TokenType.EOF); + this._endToken([]); + return new TokenizeResult(mergeTextTokens(this.tokens), this.errors); + } + /** + * @returns whether an ICU token has been created + * @internal + */ + _tokenizeExpansionForm() { + if (this.isExpansionFormStart()) { + this._consumeExpansionFormStart(); + return true; + } + if (isExpansionCaseStart(this._cursor.peek()) && this._isInExpansionForm()) { + this._consumeExpansionCaseStart(); + return true; + } + if (this._cursor.peek() === $RBRACE) { + if (this._isInExpansionCase()) { + this._consumeExpansionCaseEnd(); + return true; + } + if (this._isInExpansionForm()) { + this._consumeExpansionFormEnd(); + return true; + } + } + return false; + } + _beginToken(type, start = this._cursor.clone()) { + this._currentTokenStart = start; + this._currentTokenType = type; + } + _endToken(parts, end) { + if (this._currentTokenStart === null) { + throw new TokenError('Programming error - attempted to end a token when there was no start to the token', this._currentTokenType, this._cursor.getSpan(end)); + } + if (this._currentTokenType === null) { + throw new TokenError('Programming error - attempted to end a token which has no token type', null, this._cursor.getSpan(this._currentTokenStart)); + } + const token = new Token(this._currentTokenType, parts, this._cursor.getSpan(this._currentTokenStart, this._leadingTriviaCodePoints)); + this.tokens.push(token); + this._currentTokenStart = null; + this._currentTokenType = null; + return token; + } + _createError(msg, span) { + if (this._isInExpansionForm()) { + msg += ` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`; + } + const error = new TokenError(msg, this._currentTokenType, span); + this._currentTokenStart = null; + this._currentTokenType = null; + return new _ControlFlowError(error); + } + handleError(e) { + if (e instanceof CursorError) { + e = this._createError(e.msg, this._cursor.getSpan(e.cursor)); + } + if (e instanceof _ControlFlowError) { + this.errors.push(e.error); + } + else { + throw e; + } + } + _attemptCharCode(charCode) { + if (this._cursor.peek() === charCode) { + this._cursor.advance(); + return true; + } + return false; + } + _attemptCharCodeCaseInsensitive(charCode) { + if (compareCharCodeCaseInsensitive(this._cursor.peek(), charCode)) { + this._cursor.advance(); + return true; + } + return false; + } + _requireCharCode(charCode) { + const location = this._cursor.clone(); + if (!this._attemptCharCode(charCode)) { + throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location)); + } + } + _attemptStr(chars) { + const len = chars.length; + if (this._cursor.charsLeft() < len) { + return false; + } + const initialPosition = this._cursor.clone(); + for (let i = 0; i < len; i++) { + if (!this._attemptCharCode(chars.charCodeAt(i))) { + // If attempting to parse the string fails, we want to reset the parser + // to where it was before the attempt + this._cursor = initialPosition; + return false; + } + } + return true; + } + _attemptStrCaseInsensitive(chars) { + for (let i = 0; i < chars.length; i++) { + if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) { + return false; + } + } + return true; + } + _requireStr(chars) { + const location = this._cursor.clone(); + if (!this._attemptStr(chars)) { + throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location)); + } + } + _attemptCharCodeUntilFn(predicate) { + while (!predicate(this._cursor.peek())) { + this._cursor.advance(); + } + } + _requireCharCodeUntilFn(predicate, len) { + const start = this._cursor.clone(); + this._attemptCharCodeUntilFn(predicate); + if (this._cursor.diff(start) < len) { + throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start)); + } + } + _attemptUntilChar(char) { + while (this._cursor.peek() !== char) { + this._cursor.advance(); + } + } + _readChar(decodeEntities) { + if (decodeEntities && this._cursor.peek() === $AMPERSAND) { + return this._decodeEntity(); + } + else { + // Don't rely upon reading directly from `_input` as the actual char value + // may have been generated from an escape sequence. + const char = String.fromCodePoint(this._cursor.peek()); + this._cursor.advance(); + return char; + } + } + _decodeEntity() { + const start = this._cursor.clone(); + this._cursor.advance(); + if (this._attemptCharCode($HASH)) { + const isHex = this._attemptCharCode($x) || this._attemptCharCode($X); + const codeStart = this._cursor.clone(); + this._attemptCharCodeUntilFn(isDigitEntityEnd); + if (this._cursor.peek() != $SEMICOLON) { + throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan()); + } + const strNum = this._cursor.getChars(codeStart); + this._cursor.advance(); + try { + const charCode = parseInt(strNum, isHex ? 16 : 10); + return String.fromCharCode(charCode); + } + catch (_a) { + throw this._createError(_unknownEntityErrorMsg(this._cursor.getChars(start)), this._cursor.getSpan()); + } + } + else { + const nameStart = this._cursor.clone(); + this._attemptCharCodeUntilFn(isNamedEntityEnd); + if (this._cursor.peek() != $SEMICOLON) { + this._cursor = nameStart; + return '&'; + } + const name = this._cursor.getChars(nameStart); + this._cursor.advance(); + const char = NAMED_ENTITIES[name]; + if (!char) { + throw this._createError(_unknownEntityErrorMsg(name), this._cursor.getSpan(start)); + } + return char; + } + } + _consumeRawText(decodeEntities, endMarkerPredicate) { + this._beginToken(decodeEntities ? TokenType.ESCAPABLE_RAW_TEXT : TokenType.RAW_TEXT); + const parts = []; + while (true) { + const tagCloseStart = this._cursor.clone(); + const foundEndMarker = endMarkerPredicate(); + this._cursor = tagCloseStart; + if (foundEndMarker) { + break; + } + parts.push(this._readChar(decodeEntities)); + } + return this._endToken([this._processCarriageReturns(parts.join(''))]); + } + _consumeComment(start) { + this._beginToken(TokenType.COMMENT_START, start); + this._requireCharCode($MINUS); + this._endToken([]); + this._consumeRawText(false, () => this._attemptStr('-->')); + this._beginToken(TokenType.COMMENT_END); + this._requireStr('-->'); + this._endToken([]); + } + _consumeCdata(start) { + this._beginToken(TokenType.CDATA_START, start); + this._requireStr('CDATA['); + this._endToken([]); + this._consumeRawText(false, () => this._attemptStr(']]>')); + this._beginToken(TokenType.CDATA_END); + this._requireStr(']]>'); + this._endToken([]); + } + _consumeDocType(start) { + this._beginToken(TokenType.DOC_TYPE, start); + const contentStart = this._cursor.clone(); + this._attemptUntilChar($GT); + const content = this._cursor.getChars(contentStart); + this._cursor.advance(); + this._endToken([content]); + } + _consumePrefixAndName() { + const nameOrPrefixStart = this._cursor.clone(); + let prefix = ''; + while (this._cursor.peek() !== $COLON && !isPrefixEnd(this._cursor.peek())) { + this._cursor.advance(); + } + let nameStart; + if (this._cursor.peek() === $COLON) { + prefix = this._cursor.getChars(nameOrPrefixStart); + this._cursor.advance(); + nameStart = this._cursor.clone(); + } + else { + nameStart = nameOrPrefixStart; + } + this._requireCharCodeUntilFn(isNameEnd, prefix === '' ? 0 : 1); + const name = this._cursor.getChars(nameStart); + return [prefix, name]; + } + _consumeTagOpen(start) { + let tagName; + let prefix; + let openTagToken; + let tokensBeforeTagOpen = this.tokens.length; + const innerStart = this._cursor.clone(); + try { + if (!isAsciiLetter(this._cursor.peek())) { + throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start)); + } + openTagToken = this._consumeTagOpenStart(start); + prefix = openTagToken.parts[0]; + tagName = openTagToken.parts[1]; + this._attemptCharCodeUntilFn(isNotWhitespace); + while (this._cursor.peek() !== $SLASH && this._cursor.peek() !== $GT) { + this._consumeAttributeName(); + this._attemptCharCodeUntilFn(isNotWhitespace); + if (this._attemptCharCode($EQ)) { + this._attemptCharCodeUntilFn(isNotWhitespace); + this._consumeAttributeValue(); + } + this._attemptCharCodeUntilFn(isNotWhitespace); + } + this._consumeTagOpenEnd(); + } + catch (e) { + if (e instanceof _ControlFlowError) { + // When the start tag is invalid (including invalid "attributes"), assume we want a "<" + this._cursor = innerStart; + if (openTagToken) { + this.tokens.length = tokensBeforeTagOpen; + } + // Back to back text tokens are merged at the end + this._beginToken(TokenType.TEXT, start); + this._endToken(['<']); + return; + } + throw e; + } + const contentTokenType = this._getTagDefinition(tagName).contentType; + if (contentTokenType === TagContentType.RAW_TEXT) { + this._consumeRawTextWithTagClose(prefix, tagName, false); + } + else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) { + this._consumeRawTextWithTagClose(prefix, tagName, true); + } + } + _consumeRawTextWithTagClose(prefix, tagName, decodeEntities) { + const textToken = this._consumeRawText(decodeEntities, () => { + if (!this._attemptCharCode($LT)) + return false; + if (!this._attemptCharCode($SLASH)) + return false; + this._attemptCharCodeUntilFn(isNotWhitespace); + if (!this._attemptStrCaseInsensitive(tagName)) + return false; + this._attemptCharCodeUntilFn(isNotWhitespace); + return this._attemptCharCode($GT); + }); + this._beginToken(TokenType.TAG_CLOSE); + this._requireCharCodeUntilFn(code => code === $GT, 3); + this._cursor.advance(); // Consume the `>` + this._endToken([prefix, tagName]); + } + _consumeTagOpenStart(start) { + this._beginToken(TokenType.TAG_OPEN_START, start); + const parts = this._consumePrefixAndName(); + return this._endToken(parts); + } + _consumeAttributeName() { + const attrNameStart = this._cursor.peek(); + if (attrNameStart === $SQ || attrNameStart === $DQ) { + throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart), this._cursor.getSpan()); + } + this._beginToken(TokenType.ATTR_NAME); + const prefixAndName = this._consumePrefixAndName(); + this._endToken(prefixAndName); + } + _consumeAttributeValue() { + let value; + if (this._cursor.peek() === $SQ || this._cursor.peek() === $DQ) { + this._beginToken(TokenType.ATTR_QUOTE); + const quoteChar = this._cursor.peek(); + this._cursor.advance(); + this._endToken([String.fromCodePoint(quoteChar)]); + this._beginToken(TokenType.ATTR_VALUE); + const parts = []; + while (this._cursor.peek() !== quoteChar) { + parts.push(this._readChar(true)); + } + value = parts.join(''); + this._endToken([this._processCarriageReturns(value)]); + this._beginToken(TokenType.ATTR_QUOTE); + this._cursor.advance(); + this._endToken([String.fromCodePoint(quoteChar)]); + } + else { + this._beginToken(TokenType.ATTR_VALUE); + const valueStart = this._cursor.clone(); + this._requireCharCodeUntilFn(isNameEnd, 1); + value = this._cursor.getChars(valueStart); + this._endToken([this._processCarriageReturns(value)]); + } + } + _consumeTagOpenEnd() { + const tokenType = this._attemptCharCode($SLASH) ? TokenType.TAG_OPEN_END_VOID : TokenType.TAG_OPEN_END; + this._beginToken(tokenType); + this._requireCharCode($GT); + this._endToken([]); + } + _consumeTagClose(start) { + this._beginToken(TokenType.TAG_CLOSE, start); + this._attemptCharCodeUntilFn(isNotWhitespace); + const prefixAndName = this._consumePrefixAndName(); + this._attemptCharCodeUntilFn(isNotWhitespace); + this._requireCharCode($GT); + this._endToken(prefixAndName); + } + _consumeExpansionFormStart() { + this._beginToken(TokenType.EXPANSION_FORM_START); + this._requireCharCode($LBRACE); + this._endToken([]); + this._expansionCaseStack.push(TokenType.EXPANSION_FORM_START); + this._beginToken(TokenType.RAW_TEXT); + const condition = this._readUntil($COMMA); + this._endToken([condition]); + this._requireCharCode($COMMA); + this._attemptCharCodeUntilFn(isNotWhitespace); + this._beginToken(TokenType.RAW_TEXT); + const type = this._readUntil($COMMA); + this._endToken([type]); + this._requireCharCode($COMMA); + this._attemptCharCodeUntilFn(isNotWhitespace); + } + _consumeExpansionCaseStart() { + this._beginToken(TokenType.EXPANSION_CASE_VALUE); + const value = this._readUntil($LBRACE).trim(); + this._endToken([value]); + this._attemptCharCodeUntilFn(isNotWhitespace); + this._beginToken(TokenType.EXPANSION_CASE_EXP_START); + this._requireCharCode($LBRACE); + this._endToken([]); + this._attemptCharCodeUntilFn(isNotWhitespace); + this._expansionCaseStack.push(TokenType.EXPANSION_CASE_EXP_START); + } + _consumeExpansionCaseEnd() { + this._beginToken(TokenType.EXPANSION_CASE_EXP_END); + this._requireCharCode($RBRACE); + this._endToken([]); + this._attemptCharCodeUntilFn(isNotWhitespace); + this._expansionCaseStack.pop(); + } + _consumeExpansionFormEnd() { + this._beginToken(TokenType.EXPANSION_FORM_END); + this._requireCharCode($RBRACE); + this._endToken([]); + this._expansionCaseStack.pop(); + } + _consumeText() { + const start = this._cursor.clone(); + this._beginToken(TokenType.TEXT, start); + const parts = []; + do { + if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) { + parts.push(this._interpolationConfig.start); + this._inInterpolation = true; + } + else if (this._interpolationConfig && this._inInterpolation && + this._attemptStr(this._interpolationConfig.end)) { + parts.push(this._interpolationConfig.end); + this._inInterpolation = false; + } + else { + parts.push(this._readChar(true)); + } + } while (!this._isTextEnd()); + this._endToken([this._processCarriageReturns(parts.join(''))]); + } + _isTextEnd() { + if (this._cursor.peek() === $LT || this._cursor.peek() === $EOF) { + return true; + } + if (this._tokenizeIcu && !this._inInterpolation) { + if (this.isExpansionFormStart()) { + // start of an expansion form + return true; + } + if (this._cursor.peek() === $RBRACE && this._isInExpansionCase()) { + // end of and expansion case + return true; + } + } + return false; + } + _readUntil(char) { + const start = this._cursor.clone(); + this._attemptUntilChar(char); + return this._cursor.getChars(start); + } + _isInExpansionCase() { + return this._expansionCaseStack.length > 0 && + this._expansionCaseStack[this._expansionCaseStack.length - 1] === + TokenType.EXPANSION_CASE_EXP_START; + } + _isInExpansionForm() { + return this._expansionCaseStack.length > 0 && + this._expansionCaseStack[this._expansionCaseStack.length - 1] === + TokenType.EXPANSION_FORM_START; + } + isExpansionFormStart() { + if (this._cursor.peek() !== $LBRACE) { + return false; + } + if (this._interpolationConfig) { + const start = this._cursor.clone(); + const isInterpolation = this._attemptStr(this._interpolationConfig.start); + this._cursor = start; + return !isInterpolation; + } + return true; + } +} +function isNotWhitespace(code) { + return !isWhitespace(code) || code === $EOF; +} +function isNameEnd(code) { + return isWhitespace(code) || code === $GT || code === $SLASH || + code === $SQ || code === $DQ || code === $EQ; +} +function isPrefixEnd(code) { + return (code < $a || $z < code) && (code < $A || $Z < code) && + (code < $0 || code > $9); +} +function isDigitEntityEnd(code) { + return code == $SEMICOLON || code == $EOF || !isAsciiHexDigit(code); +} +function isNamedEntityEnd(code) { + return code == $SEMICOLON || code == $EOF || !isAsciiLetter(code); +} +function isExpansionCaseStart(peek) { + return peek !== $RBRACE; +} +function compareCharCodeCaseInsensitive(code1, code2) { + return toUpperCaseCharCode(code1) == toUpperCaseCharCode(code2); +} +function toUpperCaseCharCode(code) { + return code >= $a && code <= $z ? code - $a + $A : code; +} +function mergeTextTokens(srcTokens) { + const dstTokens = []; + let lastDstToken = undefined; + for (let i = 0; i < srcTokens.length; i++) { + const token = srcTokens[i]; + if (lastDstToken && lastDstToken.type == TokenType.TEXT && token.type == TokenType.TEXT) { + lastDstToken.parts[0] += token.parts[0]; + lastDstToken.sourceSpan.end = token.sourceSpan.end; + } + else { + lastDstToken = token; + dstTokens.push(lastDstToken); + } + } + return dstTokens; +} +class PlainCharacterCursor { + constructor(fileOrCursor, range) { + if (fileOrCursor instanceof PlainCharacterCursor) { + this.file = fileOrCursor.file; + this.input = fileOrCursor.input; + this.end = fileOrCursor.end; + const state = fileOrCursor.state; + // Note: avoid using `{...fileOrCursor.state}` here as that has a severe performance penalty. + // In ES5 bundles the object spread operator is translated into the `__assign` helper, which + // is not optimized by VMs as efficiently as a raw object literal. Since this constructor is + // called in tight loops, this difference matters. + this.state = { + peek: state.peek, + offset: state.offset, + line: state.line, + column: state.column, + }; + } + else { + if (!range) { + throw new Error('Programming error: the range argument must be provided with a file argument.'); + } + this.file = fileOrCursor; + this.input = fileOrCursor.content; + this.end = range.endPos; + this.state = { + peek: -1, + offset: range.startPos, + line: range.startLine, + column: range.startCol, + }; + } + } + clone() { + return new PlainCharacterCursor(this); + } + peek() { + return this.state.peek; + } + charsLeft() { + return this.end - this.state.offset; + } + diff(other) { + return this.state.offset - other.state.offset; + } + advance() { + this.advanceState(this.state); + } + init() { + this.updatePeek(this.state); + } + getSpan(start, leadingTriviaCodePoints) { + start = start || this; + let cloned = false; + if (leadingTriviaCodePoints) { + while (this.diff(start) > 0 && leadingTriviaCodePoints.indexOf(start.peek()) !== -1) { + if (!cloned) { + start = start.clone(); + cloned = true; + } + start.advance(); + } + } + return new ParseSourceSpan(new ParseLocation(start.file, start.state.offset, start.state.line, start.state.column), new ParseLocation(this.file, this.state.offset, this.state.line, this.state.column)); + } + getChars(start) { + return this.input.substring(start.state.offset, this.state.offset); + } + charAt(pos) { + return this.input.charCodeAt(pos); + } + advanceState(state) { + if (state.offset >= this.end) { + this.state = state; + throw new CursorError('Unexpected character "EOF"', this); + } + const currentChar = this.charAt(state.offset); + if (currentChar === $LF) { + state.line++; + state.column = 0; + } + else if (!isNewLine(currentChar)) { + state.column++; + } + state.offset++; + this.updatePeek(state); + } + updatePeek(state) { + state.peek = state.offset >= this.end ? $EOF : this.charAt(state.offset); + } +} +class EscapedCharacterCursor extends PlainCharacterCursor { + constructor(fileOrCursor, range) { + if (fileOrCursor instanceof EscapedCharacterCursor) { + super(fileOrCursor); + this.internalState = Object.assign({}, fileOrCursor.internalState); + } + else { + super(fileOrCursor, range); + this.internalState = this.state; + } + } + advance() { + this.state = this.internalState; + super.advance(); + this.processEscapeSequence(); + } + init() { + super.init(); + this.processEscapeSequence(); + } + clone() { + return new EscapedCharacterCursor(this); + } + getChars(start) { + const cursor = start.clone(); + let chars = ''; + while (cursor.internalState.offset < this.internalState.offset) { + chars += String.fromCodePoint(cursor.peek()); + cursor.advance(); + } + return chars; + } + /** + * Process the escape sequence that starts at the current position in the text. + * + * This method is called to ensure that `peek` has the unescaped value of escape sequences. + */ + processEscapeSequence() { + const peek = () => this.internalState.peek; + if (peek() === $BACKSLASH) { + // We have hit an escape sequence so we need the internal state to become independent + // of the external state. + this.internalState = Object.assign({}, this.state); + // Move past the backslash + this.advanceState(this.internalState); + // First check for standard control char sequences + if (peek() === $n) { + this.state.peek = $LF; + } + else if (peek() === $r) { + this.state.peek = $CR; + } + else if (peek() === $v) { + this.state.peek = $VTAB; + } + else if (peek() === $t) { + this.state.peek = $TAB; + } + else if (peek() === $b) { + this.state.peek = $BSPACE; + } + else if (peek() === $f) { + this.state.peek = $FF; + } + // Now consider more complex sequences + else if (peek() === $u) { + // Unicode code-point sequence + this.advanceState(this.internalState); // advance past the `u` char + if (peek() === $LBRACE) { + // Variable length Unicode, e.g. `\x{123}` + this.advanceState(this.internalState); // advance past the `{` char + // Advance past the variable number of hex digits until we hit a `}` char + const digitStart = this.clone(); + let length = 0; + while (peek() !== $RBRACE) { + this.advanceState(this.internalState); + length++; + } + this.state.peek = this.decodeHexDigits(digitStart, length); + } + else { + // Fixed length Unicode, e.g. `\u1234` + const digitStart = this.clone(); + this.advanceState(this.internalState); + this.advanceState(this.internalState); + this.advanceState(this.internalState); + this.state.peek = this.decodeHexDigits(digitStart, 4); + } + } + else if (peek() === $x) { + // Hex char code, e.g. `\x2F` + this.advanceState(this.internalState); // advance past the `x` char + const digitStart = this.clone(); + this.advanceState(this.internalState); + this.state.peek = this.decodeHexDigits(digitStart, 2); + } + else if (isOctalDigit(peek())) { + // Octal char code, e.g. `\012`, + let octal = ''; + let length = 0; + let previous = this.clone(); + while (isOctalDigit(peek()) && length < 3) { + previous = this.clone(); + octal += String.fromCodePoint(peek()); + this.advanceState(this.internalState); + length++; + } + this.state.peek = parseInt(octal, 8); + // Backup one char + this.internalState = previous.internalState; + } + else if (isNewLine(this.internalState.peek)) { + // Line continuation `\` followed by a new line + this.advanceState(this.internalState); // advance over the newline + this.state = this.internalState; + } + else { + // If none of the `if` blocks were executed then we just have an escaped normal character. + // In that case we just, effectively, skip the backslash from the character. + this.state.peek = this.internalState.peek; + } + } + } + decodeHexDigits(start, length) { + const hex = this.input.substr(start.internalState.offset, length); + const charCode = parseInt(hex, 16); + if (!isNaN(charCode)) { + return charCode; + } + else { + start.state = start.internalState; + throw new CursorError('Invalid hexadecimal escape sequence', start); + } + } +} +class CursorError { + constructor(msg, cursor) { + this.msg = msg; + this.cursor = cursor; + } +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class TreeError extends ParseError { + constructor(elementName, span, msg) { + super(span, msg); + this.elementName = elementName; + } + static create(elementName, span, msg) { + return new TreeError(elementName, span, msg); + } +} +class ParseTreeResult { + constructor(rootNodes, errors) { + this.rootNodes = rootNodes; + this.errors = errors; + } +} +class Parser { + constructor(getTagDefinition) { + this.getTagDefinition = getTagDefinition; + } + parse(source, url, options) { + const tokensAndErrors = tokenize(source, url, this.getTagDefinition, options); + const treeAndErrors = new _TreeBuilder(tokensAndErrors.tokens, this.getTagDefinition).build(); + return new ParseTreeResult(treeAndErrors.rootNodes, tokensAndErrors.errors.concat(treeAndErrors.errors)); + } +} +class _TreeBuilder { + constructor(tokens, getTagDefinition) { + this.tokens = tokens; + this.getTagDefinition = getTagDefinition; + this._index = -1; + this._rootNodes = []; + this._errors = []; + this._elementStack = []; + this._advance(); + } + build() { + while (this._peek.type !== TokenType.EOF) { + if (this._peek.type === TokenType.TAG_OPEN_START) { + this._consumeStartTag(this._advance()); + } + else if (this._peek.type === TokenType.TAG_CLOSE) { + this._consumeEndTag(this._advance()); + } + else if (this._peek.type === TokenType.CDATA_START) { + this._closeVoidElement(); + this._consumeCdata(this._advance()); + } + else if (this._peek.type === TokenType.COMMENT_START) { + this._closeVoidElement(); + this._consumeComment(this._advance()); + } + else if (this._peek.type === TokenType.TEXT || this._peek.type === TokenType.RAW_TEXT || + this._peek.type === TokenType.ESCAPABLE_RAW_TEXT) { + this._closeVoidElement(); + this._consumeText(this._advance()); + } + else if (this._peek.type === TokenType.EXPANSION_FORM_START) { + this._consumeExpansion(this._advance()); + } + else { + // Skip all other tokens... + this._advance(); + } + } + return new ParseTreeResult(this._rootNodes, this._errors); + } + _advance() { + const prev = this._peek; + if (this._index < this.tokens.length - 1) { + // Note: there is always an EOF token at the end + this._index++; + } + this._peek = this.tokens[this._index]; + return prev; + } + _advanceIf(type) { + if (this._peek.type === type) { + return this._advance(); + } + return null; + } + _consumeCdata(startToken) { + this._consumeText(this._advance()); + this._advanceIf(TokenType.CDATA_END); + } + _consumeComment(token) { + const text = this._advanceIf(TokenType.RAW_TEXT); + this._advanceIf(TokenType.COMMENT_END); + const value = text != null ? text.parts[0].trim() : null; + this._addToParent(new Comment(value, token.sourceSpan)); + } + _consumeExpansion(token) { + const switchValue = this._advance(); + const type = this._advance(); + const cases = []; + // read = + while (this._peek.type === TokenType.EXPANSION_CASE_VALUE) { + const expCase = this._parseExpansionCase(); + if (!expCase) + return; // error + cases.push(expCase); + } + // read the final } + if (this._peek.type !== TokenType.EXPANSION_FORM_END) { + this._errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '}'.`)); + return; + } + const sourceSpan = new ParseSourceSpan(token.sourceSpan.start, this._peek.sourceSpan.end); + this._addToParent(new Expansion(switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan)); + this._advance(); + } + _parseExpansionCase() { + const value = this._advance(); + // read { + if (this._peek.type !== TokenType.EXPANSION_CASE_EXP_START) { + this._errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '{'.`)); + return null; + } + // read until } + const start = this._advance(); + const exp = this._collectExpansionExpTokens(start); + if (!exp) + return null; + const end = this._advance(); + exp.push(new Token(TokenType.EOF, [], end.sourceSpan)); + // parse everything in between { and } + const parsedExp = new _TreeBuilder(exp, this.getTagDefinition).build(); + if (parsedExp.errors.length > 0) { + this._errors = this._errors.concat(parsedExp.errors); + return null; + } + const sourceSpan = new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end); + const expSourceSpan = new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end); + return new ExpansionCase(value.parts[0], parsedExp.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan); + } + _collectExpansionExpTokens(start) { + const exp = []; + const expansionFormStack = [TokenType.EXPANSION_CASE_EXP_START]; + while (true) { + if (this._peek.type === TokenType.EXPANSION_FORM_START || + this._peek.type === TokenType.EXPANSION_CASE_EXP_START) { + expansionFormStack.push(this._peek.type); + } + if (this._peek.type === TokenType.EXPANSION_CASE_EXP_END) { + if (lastOnStack(expansionFormStack, TokenType.EXPANSION_CASE_EXP_START)) { + expansionFormStack.pop(); + if (expansionFormStack.length == 0) + return exp; + } + else { + this._errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); + return null; + } + } + if (this._peek.type === TokenType.EXPANSION_FORM_END) { + if (lastOnStack(expansionFormStack, TokenType.EXPANSION_FORM_START)) { + expansionFormStack.pop(); + } + else { + this._errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); + return null; + } + } + if (this._peek.type === TokenType.EOF) { + this._errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); + return null; + } + exp.push(this._advance()); + } + } + _consumeText(token) { + let text = token.parts[0]; + if (text.length > 0 && text[0] == '\n') { + const parent = this._getParentElement(); + if (parent != null && parent.children.length == 0 && + this.getTagDefinition(parent.name).ignoreFirstLf) { + text = text.substring(1); + } + } + if (text.length > 0) { + this._addToParent(new Text$3(text, token.sourceSpan)); + } + } + _closeVoidElement() { + const el = this._getParentElement(); + if (el && this.getTagDefinition(el.name).isVoid) { + this._elementStack.pop(); + } + } + _consumeStartTag(startTagToken) { + const prefix = startTagToken.parts[0]; + const name = startTagToken.parts[1]; + const attrs = []; + while (this._peek.type === TokenType.ATTR_NAME) { + attrs.push(this._consumeAttr(this._advance())); + } + const fullName = this._getElementFullName(prefix, name, this._getParentElement()); + let selfClosing = false; + // Note: There could have been a tokenizer error + // so that we don't get a token for the end tag... + if (this._peek.type === TokenType.TAG_OPEN_END_VOID) { + this._advance(); + selfClosing = true; + const tagDef = this.getTagDefinition(fullName); + if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) { + this._errors.push(TreeError.create(fullName, startTagToken.sourceSpan, `Only void and foreign elements can be self closed "${startTagToken.parts[1]}"`)); + } + } + else if (this._peek.type === TokenType.TAG_OPEN_END) { + this._advance(); + selfClosing = false; + } + const end = this._peek.sourceSpan.start; + const span = new ParseSourceSpan(startTagToken.sourceSpan.start, end); + const el = new Element$1(fullName, attrs, [], span, span, undefined); + this._pushElement(el); + if (selfClosing) { + this._popElement(fullName); + el.endSourceSpan = span; + } + } + _pushElement(el) { + const parentEl = this._getParentElement(); + if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) { + this._elementStack.pop(); + } + this._addToParent(el); + this._elementStack.push(el); + } + _consumeEndTag(endTagToken) { + const fullName = this._getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement()); + if (this._getParentElement()) { + this._getParentElement().endSourceSpan = endTagToken.sourceSpan; + } + if (this.getTagDefinition(fullName).isVoid) { + this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, `Void elements do not have end tags "${endTagToken.parts[1]}"`)); + } + else if (!this._popElement(fullName)) { + const errMsg = `Unexpected closing tag "${fullName}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`; + this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg)); + } + } + _popElement(fullName) { + for (let stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) { + const el = this._elementStack[stackIndex]; + if (el.name == fullName) { + this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex); + return true; + } + if (!this.getTagDefinition(el.name).closedByParent) { + return false; + } + } + return false; + } + _consumeAttr(attrName) { + const fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]); + let end = attrName.sourceSpan.end; + let value = ''; + let valueSpan = undefined; + if (this._peek.type === TokenType.ATTR_QUOTE) { + this._advance(); + } + if (this._peek.type === TokenType.ATTR_VALUE) { + const valueToken = this._advance(); + value = valueToken.parts[0]; + end = valueToken.sourceSpan.end; + valueSpan = valueToken.sourceSpan; + } + if (this._peek.type === TokenType.ATTR_QUOTE) { + const quoteToken = this._advance(); + end = quoteToken.sourceSpan.end; + } + return new Attribute(fullName, value, new ParseSourceSpan(attrName.sourceSpan.start, end), valueSpan); + } + _getParentElement() { + return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null; + } + /** + * Returns the parent in the DOM and the container. + * + * `` elements are skipped as they are not rendered as DOM element. + */ + _getParentElementSkippingContainers() { + let container = null; + for (let i = this._elementStack.length - 1; i >= 0; i--) { + if (!isNgContainer(this._elementStack[i].name)) { + return { parent: this._elementStack[i], container }; + } + container = this._elementStack[i]; + } + return { parent: null, container }; + } + _addToParent(node) { + const parent = this._getParentElement(); + if (parent != null) { + parent.children.push(node); + } + else { + this._rootNodes.push(node); + } + } + /** + * Insert a node between the parent and the container. + * When no container is given, the node is appended as a child of the parent. + * Also updates the element stack accordingly. + * + * @internal + */ + _insertBeforeContainer(parent, container, node) { + if (!container) { + this._addToParent(node); + this._elementStack.push(node); + } + else { + if (parent) { + // replace the container with the new node in the children + const index = parent.children.indexOf(container); + parent.children[index] = node; + } + else { + this._rootNodes.push(node); + } + node.children.push(container); + this._elementStack.splice(this._elementStack.indexOf(container), 0, node); + } + } + _getElementFullName(prefix, localName, parentElement) { + if (prefix === '') { + prefix = this.getTagDefinition(localName).implicitNamespacePrefix || ''; + if (prefix === '' && parentElement != null) { + prefix = getNsPrefix(parentElement.name); + } + } + return mergeNsAndName(prefix, localName); + } +} +function lastOnStack(stack, element) { + return stack.length > 0 && stack[stack.length - 1] === element; +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class HtmlParser extends Parser { + constructor() { + super(getHtmlTagDefinition); + } + parse(source, url, options) { + return super.parse(source, url, options); + } +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces'; +const SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']); +// Equivalent to \s with \u00a0 (non-breaking space) excluded. +// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp +const WS_CHARS = ' \f\n\r\t\v\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff'; +const NO_WS_REGEXP = new RegExp(`[^${WS_CHARS}]`); +const WS_REPLACE_REGEXP = new RegExp(`[${WS_CHARS}]{2,}`, 'g'); +function hasPreserveWhitespacesAttr(attrs) { + return attrs.some((attr) => attr.name === PRESERVE_WS_ATTR_NAME); +} +/** + * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see: + * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32 + * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character + * and later on replaced by a space. We are re-implementing the same idea here. + */ +function replaceNgsp(value) { + // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE + return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' '); +} +/** + * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules: + * - consider spaces, tabs and new lines as whitespace characters; + * - drop text nodes consisting of whitespace characters only; + * - for all other text nodes replace consecutive whitespace characters with one space; + * - convert &ngsp; pseudo-entity to a single space; + * + * Removal and trimming of whitespaces have positive performance impact (less code to generate + * while compiling templates, faster view creation). At the same time it can be "destructive" + * in some cases (whitespaces can influence layout). Because of the potential of breaking layout + * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for + * whitespace removal. The default option for whitespace removal will be revisited in Angular 6 + * and might be changed to "on" by default. + */ +class WhitespaceVisitor { + visitElement(element, context) { + if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) { + // don't descent into elements where we need to preserve whitespaces + // but still visit all attributes to eliminate one used as a market to preserve WS + return new Element$1(element.name, visitAll$1(this, element.attrs), element.children, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); + } + return new Element$1(element.name, element.attrs, visitAllWithSiblings(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); + } + visitAttribute(attribute, context) { + return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null; + } + visitText(text, context) { + const isNotBlank = text.value.match(NO_WS_REGEXP); + const hasExpansionSibling = context && + (context.prev instanceof Expansion || context.next instanceof Expansion); + if (isNotBlank || hasExpansionSibling) { + return new Text$3(replaceNgsp(text.value).replace(WS_REPLACE_REGEXP, ' '), text.sourceSpan, text.i18n); + } + return null; + } + visitComment(comment, context) { + return comment; + } + visitExpansion(expansion, context) { + return expansion; + } + visitExpansionCase(expansionCase, context) { + return expansionCase; + } +} +function removeWhitespaces(htmlAstWithErrors) { + return new ParseTreeResult(visitAll$1(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors); +} +function visitAllWithSiblings(visitor, nodes) { + const result = []; + nodes.forEach((ast, i) => { + const context = { prev: nodes[i - 1], next: nodes[i + 1] }; + const astResult = ast.visit(visitor, context); + if (astResult) { + result.push(astResult); + } + }); + return result; +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +// http://cldr.unicode.org/index/cldr-spec/plural-rules +const PLURAL_CASES = ['zero', 'one', 'two', 'few', 'many', 'other']; +/** + * Expands special forms into elements. + * + * For example, + * + * ``` + * { messages.length, plural, + * =0 {zero} + * =1 {one} + * other {more than one} + * } + * ``` + * + * will be expanded into + * + * ``` + * + * zero + * one + * more than one + * + * ``` + */ +function expandNodes(nodes) { + const expander = new _Expander(); + return new ExpansionResult(visitAll$1(expander, nodes), expander.isExpanded, expander.errors); +} +class ExpansionResult { + constructor(nodes, expanded, errors) { + this.nodes = nodes; + this.expanded = expanded; + this.errors = errors; + } +} +class ExpansionError extends ParseError { + constructor(span, errorMsg) { + super(span, errorMsg); + } +} +/** + * Expand expansion forms (plural, select) to directives + * + * @internal + */ +class _Expander { + constructor() { + this.isExpanded = false; + this.errors = []; + } + visitElement(element, context) { + return new Element$1(element.name, element.attrs, visitAll$1(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan); + } + visitAttribute(attribute, context) { + return attribute; + } + visitText(text, context) { + return text; + } + visitComment(comment, context) { + return comment; + } + visitExpansion(icu, context) { + this.isExpanded = true; + return icu.type == 'plural' ? _expandPluralForm(icu, this.errors) : + _expandDefaultForm(icu, this.errors); + } + visitExpansionCase(icuCase, context) { + throw new Error('Should not be reached'); + } +} +// Plural forms are expanded to `NgPlural` and `NgPluralCase`s +function _expandPluralForm(ast, errors) { + const children = ast.cases.map(c => { + if (PLURAL_CASES.indexOf(c.value) == -1 && !c.value.match(/^=\d+$/)) { + errors.push(new ExpansionError(c.valueSourceSpan, `Plural cases should be "=" or one of ${PLURAL_CASES.join(', ')}`)); + } + const expansionResult = expandNodes(c.expression); + errors.push(...expansionResult.errors); + return new Element$1(`ng-template`, [new Attribute('ngPluralCase', `${c.value}`, c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan); + }); + const switchAttr = new Attribute('[ngPlural]', ast.switchValue, ast.switchValueSourceSpan); + return new Element$1('ng-container', [switchAttr], children, ast.sourceSpan, ast.sourceSpan, ast.sourceSpan); +} +// ICU messages (excluding plural form) are expanded to `NgSwitch` and `NgSwitchCase`s +function _expandDefaultForm(ast, errors) { + const children = ast.cases.map(c => { + const expansionResult = expandNodes(c.expression); + errors.push(...expansionResult.errors); + if (c.value === 'other') { + // other is the default case when no values match + return new Element$1(`ng-template`, [new Attribute('ngSwitchDefault', '', c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan); + } + return new Element$1(`ng-template`, [new Attribute('ngSwitchCase', `${c.value}`, c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan); + }); + const switchAttr = new Attribute('[ngSwitch]', ast.switchValue, ast.switchValueSourceSpan); + return new Element$1('ng-container', [switchAttr], children, ast.sourceSpan, ast.sourceSpan, ast.sourceSpan); +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * A segment of text within the template. + */ +class TextAst { + constructor(value, ngContentIndex, sourceSpan) { + this.value = value; + this.ngContentIndex = ngContentIndex; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitText(this, context); + } +} +/** + * A bound expression within the text of a template. + */ +class BoundTextAst { + constructor(value, ngContentIndex, sourceSpan) { + this.value = value; + this.ngContentIndex = ngContentIndex; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitBoundText(this, context); + } +} +/** + * A plain attribute on an element. + */ +class AttrAst { + constructor(name, value, sourceSpan) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitAttr(this, context); + } +} +const BoundPropertyMapping = { + [4 /* Animation */]: 4 /* Animation */, + [1 /* Attribute */]: 1 /* Attribute */, + [2 /* Class */]: 2 /* Class */, + [0 /* Property */]: 0 /* Property */, + [3 /* Style */]: 3 /* Style */, +}; +/** + * A binding for an element property (e.g. `[property]="expression"`) or an animation trigger (e.g. + * `[@trigger]="stateExp"`) + */ +class BoundElementPropertyAst { + constructor(name, type, securityContext, value, unit, sourceSpan) { + this.name = name; + this.type = type; + this.securityContext = securityContext; + this.value = value; + this.unit = unit; + this.sourceSpan = sourceSpan; + this.isAnimation = this.type === 4 /* Animation */; + } + static fromBoundProperty(prop) { + const type = BoundPropertyMapping[prop.type]; + return new BoundElementPropertyAst(prop.name, type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan); + } + visit(visitor, context) { + return visitor.visitElementProperty(this, context); + } +} +/** + * A binding for an element event (e.g. `(event)="handler()"`) or an animation trigger event (e.g. + * `(@trigger.phase)="callback($event)"`). + */ +class BoundEventAst { + constructor(name, target, phase, handler, sourceSpan, handlerSpan) { + this.name = name; + this.target = target; + this.phase = phase; + this.handler = handler; + this.sourceSpan = sourceSpan; + this.handlerSpan = handlerSpan; + this.fullName = BoundEventAst.calcFullName(this.name, this.target, this.phase); + this.isAnimation = !!this.phase; + } + static calcFullName(name, target, phase) { + if (target) { + return `${target}:${name}`; + } + if (phase) { + return `@${name}.${phase}`; + } + return name; + } + static fromParsedEvent(event) { + const target = event.type === 0 /* Regular */ ? event.targetOrPhase : null; + const phase = event.type === 1 /* Animation */ ? event.targetOrPhase : null; + return new BoundEventAst(event.name, target, phase, event.handler, event.sourceSpan, event.handlerSpan); + } + visit(visitor, context) { + return visitor.visitEvent(this, context); + } +} +/** + * A reference declaration on an element (e.g. `let someName="expression"`). + */ +class ReferenceAst { + constructor(name, value, originalValue, sourceSpan) { + this.name = name; + this.value = value; + this.originalValue = originalValue; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitReference(this, context); + } +} +/** + * A variable declaration on a (e.g. `var-someName="someLocalName"`). + */ +class VariableAst { + constructor(name, value, sourceSpan, valueSpan) { + this.name = name; + this.value = value; + this.sourceSpan = sourceSpan; + this.valueSpan = valueSpan; + } + static fromParsedVariable(v) { + return new VariableAst(v.name, v.value, v.sourceSpan, v.valueSpan); + } + visit(visitor, context) { + return visitor.visitVariable(this, context); + } +} +/** + * An element declaration in a template. + */ +class ElementAst { + constructor(name, attrs, inputs, outputs, references, directives, providers, hasViewContainer, queryMatches, children, ngContentIndex, sourceSpan, endSourceSpan) { + this.name = name; + this.attrs = attrs; + this.inputs = inputs; + this.outputs = outputs; + this.references = references; + this.directives = directives; + this.providers = providers; + this.hasViewContainer = hasViewContainer; + this.queryMatches = queryMatches; + this.children = children; + this.ngContentIndex = ngContentIndex; + this.sourceSpan = sourceSpan; + this.endSourceSpan = endSourceSpan; + } + visit(visitor, context) { + return visitor.visitElement(this, context); + } +} +/** + * A `` element included in an Angular template. + */ +class EmbeddedTemplateAst { + constructor(attrs, outputs, references, variables, directives, providers, hasViewContainer, queryMatches, children, ngContentIndex, sourceSpan) { + this.attrs = attrs; + this.outputs = outputs; + this.references = references; + this.variables = variables; + this.directives = directives; + this.providers = providers; + this.hasViewContainer = hasViewContainer; + this.queryMatches = queryMatches; + this.children = children; + this.ngContentIndex = ngContentIndex; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitEmbeddedTemplate(this, context); + } +} +/** + * A directive property with a bound value (e.g. `*ngIf="condition"). + */ +class BoundDirectivePropertyAst { + constructor(directiveName, templateName, value, sourceSpan) { + this.directiveName = directiveName; + this.templateName = templateName; + this.value = value; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitDirectiveProperty(this, context); + } +} +/** + * A directive declared on an element. + */ +class DirectiveAst { + constructor(directive, inputs, hostProperties, hostEvents, contentQueryStartId, sourceSpan) { + this.directive = directive; + this.inputs = inputs; + this.hostProperties = hostProperties; + this.hostEvents = hostEvents; + this.contentQueryStartId = contentQueryStartId; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitDirective(this, context); + } +} +/** + * A provider declared on an element + */ +class ProviderAst { + constructor(token, multiProvider, eager, providers, providerType, lifecycleHooks, sourceSpan, isModule) { + this.token = token; + this.multiProvider = multiProvider; + this.eager = eager; + this.providers = providers; + this.providerType = providerType; + this.lifecycleHooks = lifecycleHooks; + this.sourceSpan = sourceSpan; + this.isModule = isModule; + } + visit(visitor, context) { + // No visit method in the visitor for now... + return null; + } +} +var ProviderAstType; +(function (ProviderAstType) { + ProviderAstType[ProviderAstType["PublicService"] = 0] = "PublicService"; + ProviderAstType[ProviderAstType["PrivateService"] = 1] = "PrivateService"; + ProviderAstType[ProviderAstType["Component"] = 2] = "Component"; + ProviderAstType[ProviderAstType["Directive"] = 3] = "Directive"; + ProviderAstType[ProviderAstType["Builtin"] = 4] = "Builtin"; +})(ProviderAstType || (ProviderAstType = {})); +/** + * Position where content is to be projected (instance of `` in a template). + */ +class NgContentAst { + constructor(index, ngContentIndex, sourceSpan) { + this.index = index; + this.ngContentIndex = ngContentIndex; + this.sourceSpan = sourceSpan; + } + visit(visitor, context) { + return visitor.visitNgContent(this, context); + } +} +/** + * A visitor that accepts each node but doesn't do anything. It is intended to be used + * as the base class for a visitor that is only interested in a subset of the node types. + */ +class NullTemplateVisitor { + visitNgContent(ast, context) { } + visitEmbeddedTemplate(ast, context) { } + visitElement(ast, context) { } + visitReference(ast, context) { } + visitVariable(ast, context) { } + visitEvent(ast, context) { } + visitElementProperty(ast, context) { } + visitAttr(ast, context) { } + visitBoundText(ast, context) { } + visitText(ast, context) { } + visitDirective(ast, context) { } + visitDirectiveProperty(ast, context) { } +} +/** + * Base class that can be used to build a visitor that visits each node + * in an template ast recursively. + */ +class RecursiveTemplateAstVisitor extends NullTemplateVisitor { + constructor() { + super(); + } + // Nodes with children + visitEmbeddedTemplate(ast, context) { + return this.visitChildren(context, visit => { + visit(ast.attrs); + visit(ast.references); + visit(ast.variables); + visit(ast.directives); + visit(ast.providers); + visit(ast.children); + }); + } + visitElement(ast, context) { + return this.visitChildren(context, visit => { + visit(ast.attrs); + visit(ast.inputs); + visit(ast.outputs); + visit(ast.references); + visit(ast.directives); + visit(ast.providers); + visit(ast.children); + }); + } + visitDirective(ast, context) { + return this.visitChildren(context, visit => { + visit(ast.inputs); + visit(ast.hostProperties); + visit(ast.hostEvents); + }); + } + visitChildren(context, cb) { + let results = []; + let t = this; + function visit(children) { + if (children && children.length) + results.push(templateVisitAll(t, children, context)); + } + cb(visit); + return Array.prototype.concat.apply([], results); + } +} +/** + * Visit every node in a list of {@link TemplateAst}s with the given {@link TemplateAstVisitor}. + */ +function templateVisitAll(visitor, asts, context = null) { + const result = []; + const visit = visitor.visit ? + (ast) => visitor.visit(ast, context) || ast.visit(visitor, context) : + (ast) => ast.visit(visitor, context); + asts.forEach(ast => { + const astResult = visit(ast); + if (astResult) { + result.push(astResult); + } + }); + return result; +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class ProviderError extends ParseError { + constructor(message, span) { + super(span, message); + } +} +class ProviderViewContext { + constructor(reflector, component) { + this.reflector = reflector; + this.component = component; + this.errors = []; + this.viewQueries = _getViewQueries(component); + this.viewProviders = new Map(); + component.viewProviders.forEach((provider) => { + if (this.viewProviders.get(tokenReference(provider.token)) == null) { + this.viewProviders.set(tokenReference(provider.token), true); + } + }); + } +} +class ProviderElementContext { + constructor(viewContext, _parent, _isViewRoot, _directiveAsts, attrs, refs, isTemplate, contentQueryStartId, _sourceSpan) { + this.viewContext = viewContext; + this._parent = _parent; + this._isViewRoot = _isViewRoot; + this._directiveAsts = _directiveAsts; + this._sourceSpan = _sourceSpan; + this._transformedProviders = new Map(); + this._seenProviders = new Map(); + this._queriedTokens = new Map(); + this.transformedHasViewContainer = false; + this._attrs = {}; + attrs.forEach((attrAst) => this._attrs[attrAst.name] = attrAst.value); + const directivesMeta = _directiveAsts.map(directiveAst => directiveAst.directive); + this._allProviders = + _resolveProvidersFromDirectives(directivesMeta, _sourceSpan, viewContext.errors); + this._contentQueries = _getContentQueries(contentQueryStartId, directivesMeta); + Array.from(this._allProviders.values()).forEach((provider) => { + this._addQueryReadsTo(provider.token, provider.token, this._queriedTokens); + }); + if (isTemplate) { + const templateRefId = createTokenForExternalReference(this.viewContext.reflector, Identifiers.TemplateRef); + this._addQueryReadsTo(templateRefId, templateRefId, this._queriedTokens); + } + refs.forEach((refAst) => { + let defaultQueryValue = refAst.value || + createTokenForExternalReference(this.viewContext.reflector, Identifiers.ElementRef); + this._addQueryReadsTo({ value: refAst.name }, defaultQueryValue, this._queriedTokens); + }); + if (this._queriedTokens.get(this.viewContext.reflector.resolveExternalReference(Identifiers.ViewContainerRef))) { + this.transformedHasViewContainer = true; + } + // create the providers that we know are eager first + Array.from(this._allProviders.values()).forEach((provider) => { + const eager = provider.eager || this._queriedTokens.get(tokenReference(provider.token)); + if (eager) { + this._getOrCreateLocalProvider(provider.providerType, provider.token, true); + } + }); + } + afterElement() { + // collect lazy providers + Array.from(this._allProviders.values()).forEach((provider) => { + this._getOrCreateLocalProvider(provider.providerType, provider.token, false); + }); + } + get transformProviders() { + // Note: Maps keep their insertion order. + const lazyProviders = []; + const eagerProviders = []; + this._transformedProviders.forEach(provider => { + if (provider.eager) { + eagerProviders.push(provider); + } + else { + lazyProviders.push(provider); + } + }); + return lazyProviders.concat(eagerProviders); + } + get transformedDirectiveAsts() { + const sortedProviderTypes = this.transformProviders.map(provider => provider.token.identifier); + const sortedDirectives = this._directiveAsts.slice(); + sortedDirectives.sort((dir1, dir2) => sortedProviderTypes.indexOf(dir1.directive.type) - + sortedProviderTypes.indexOf(dir2.directive.type)); + return sortedDirectives; + } + get queryMatches() { + const allMatches = []; + this._queriedTokens.forEach((matches) => { + allMatches.push(...matches); + }); + return allMatches; + } + _addQueryReadsTo(token, defaultValue, queryReadTokens) { + this._getQueriesFor(token).forEach((query) => { + const queryValue = query.meta.read || defaultValue; + const tokenRef = tokenReference(queryValue); + let queryMatches = queryReadTokens.get(tokenRef); + if (!queryMatches) { + queryMatches = []; + queryReadTokens.set(tokenRef, queryMatches); + } + queryMatches.push({ queryId: query.queryId, value: queryValue }); + }); + } + _getQueriesFor(token) { + const result = []; + let currentEl = this; + let distance = 0; + let queries; + while (currentEl !== null) { + queries = currentEl._contentQueries.get(tokenReference(token)); + if (queries) { + result.push(...queries.filter((query) => query.meta.descendants || distance <= 1)); + } + if (currentEl._directiveAsts.length > 0) { + distance++; + } + currentEl = currentEl._parent; + } + queries = this.viewContext.viewQueries.get(tokenReference(token)); + if (queries) { + result.push(...queries); + } + return result; + } + _getOrCreateLocalProvider(requestingProviderType, token, eager) { + const resolvedProvider = this._allProviders.get(tokenReference(token)); + if (!resolvedProvider || + ((requestingProviderType === ProviderAstType.Directive || + requestingProviderType === ProviderAstType.PublicService) && + resolvedProvider.providerType === ProviderAstType.PrivateService) || + ((requestingProviderType === ProviderAstType.PrivateService || + requestingProviderType === ProviderAstType.PublicService) && + resolvedProvider.providerType === ProviderAstType.Builtin)) { + return null; + } + let transformedProviderAst = this._transformedProviders.get(tokenReference(token)); + if (transformedProviderAst) { + return transformedProviderAst; + } + if (this._seenProviders.get(tokenReference(token)) != null) { + this.viewContext.errors.push(new ProviderError(`Cannot instantiate cyclic dependency! ${tokenName(token)}`, this._sourceSpan)); + return null; + } + this._seenProviders.set(tokenReference(token), true); + const transformedProviders = resolvedProvider.providers.map((provider) => { + let transformedUseValue = provider.useValue; + let transformedUseExisting = provider.useExisting; + let transformedDeps = undefined; + if (provider.useExisting != null) { + const existingDiDep = this._getDependency(resolvedProvider.providerType, { token: provider.useExisting }, eager); + if (existingDiDep.token != null) { + transformedUseExisting = existingDiDep.token; + } + else { + transformedUseExisting = null; + transformedUseValue = existingDiDep.value; + } + } + else if (provider.useFactory) { + const deps = provider.deps || provider.useFactory.diDeps; + transformedDeps = + deps.map((dep) => this._getDependency(resolvedProvider.providerType, dep, eager)); + } + else if (provider.useClass) { + const deps = provider.deps || provider.useClass.diDeps; + transformedDeps = + deps.map((dep) => this._getDependency(resolvedProvider.providerType, dep, eager)); + } + return _transformProvider(provider, { + useExisting: transformedUseExisting, + useValue: transformedUseValue, + deps: transformedDeps + }); + }); + transformedProviderAst = + _transformProviderAst(resolvedProvider, { eager: eager, providers: transformedProviders }); + this._transformedProviders.set(tokenReference(token), transformedProviderAst); + return transformedProviderAst; + } + _getLocalDependency(requestingProviderType, dep, eager = false) { + if (dep.isAttribute) { + const attrValue = this._attrs[dep.token.value]; + return { isValue: true, value: attrValue == null ? null : attrValue }; + } + if (dep.token != null) { + // access builtints + if ((requestingProviderType === ProviderAstType.Directive || + requestingProviderType === ProviderAstType.Component)) { + if (tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.Renderer) || + tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.ElementRef) || + tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.ChangeDetectorRef) || + tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.TemplateRef)) { + return dep; + } + if (tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.ViewContainerRef)) { + this.transformedHasViewContainer = true; + } + } + // access the injector + if (tokenReference(dep.token) === + this.viewContext.reflector.resolveExternalReference(Identifiers.Injector)) { + return dep; + } + // access providers + if (this._getOrCreateLocalProvider(requestingProviderType, dep.token, eager) != null) { + return dep; + } + } + return null; + } + _getDependency(requestingProviderType, dep, eager = false) { + let currElement = this; + let currEager = eager; + let result = null; + if (!dep.isSkipSelf) { + result = this._getLocalDependency(requestingProviderType, dep, eager); + } + if (dep.isSelf) { + if (!result && dep.isOptional) { + result = { isValue: true, value: null }; + } + } + else { + // check parent elements + while (!result && currElement._parent) { + const prevElement = currElement; + currElement = currElement._parent; + if (prevElement._isViewRoot) { + currEager = false; + } + result = currElement._getLocalDependency(ProviderAstType.PublicService, dep, currEager); + } + // check @Host restriction + if (!result) { + if (!dep.isHost || this.viewContext.component.isHost || + this.viewContext.component.type.reference === tokenReference(dep.token) || + this.viewContext.viewProviders.get(tokenReference(dep.token)) != null) { + result = dep; + } + else { + result = dep.isOptional ? { isValue: true, value: null } : null; + } + } + } + if (!result) { + this.viewContext.errors.push(new ProviderError(`No provider for ${tokenName(dep.token)}`, this._sourceSpan)); + } + return result; + } +} +class NgModuleProviderAnalyzer { + constructor(reflector, ngModule, extraProviders, sourceSpan) { + this.reflector = reflector; + this._transformedProviders = new Map(); + this._seenProviders = new Map(); + this._errors = []; + this._allProviders = new Map(); + ngModule.transitiveModule.modules.forEach((ngModuleType) => { + const ngModuleProvider = { token: { identifier: ngModuleType }, useClass: ngModuleType }; + _resolveProviders([ngModuleProvider], ProviderAstType.PublicService, true, sourceSpan, this._errors, this._allProviders, /* isModule */ true); + }); + _resolveProviders(ngModule.transitiveModule.providers.map(entry => entry.provider).concat(extraProviders), ProviderAstType.PublicService, false, sourceSpan, this._errors, this._allProviders, + /* isModule */ false); + } + parse() { + Array.from(this._allProviders.values()).forEach((provider) => { + this._getOrCreateLocalProvider(provider.token, provider.eager); + }); + if (this._errors.length > 0) { + const errorString = this._errors.join('\n'); + throw new Error(`Provider parse errors:\n${errorString}`); + } + // Note: Maps keep their insertion order. + const lazyProviders = []; + const eagerProviders = []; + this._transformedProviders.forEach(provider => { + if (provider.eager) { + eagerProviders.push(provider); + } + else { + lazyProviders.push(provider); + } + }); + return lazyProviders.concat(eagerProviders); + } + _getOrCreateLocalProvider(token, eager) { + const resolvedProvider = this._allProviders.get(tokenReference(token)); + if (!resolvedProvider) { + return null; + } + let transformedProviderAst = this._transformedProviders.get(tokenReference(token)); + if (transformedProviderAst) { + return transformedProviderAst; + } + if (this._seenProviders.get(tokenReference(token)) != null) { + this._errors.push(new ProviderError(`Cannot instantiate cyclic dependency! ${tokenName(token)}`, resolvedProvider.sourceSpan)); + return null; + } + this._seenProviders.set(tokenReference(token), true); + const transformedProviders = resolvedProvider.providers.map((provider) => { + let transformedUseValue = provider.useValue; + let transformedUseExisting = provider.useExisting; + let transformedDeps = undefined; + if (provider.useExisting != null) { + const existingDiDep = this._getDependency({ token: provider.useExisting }, eager, resolvedProvider.sourceSpan); + if (existingDiDep.token != null) { + transformedUseExisting = existingDiDep.token; + } + else { + transformedUseExisting = null; + transformedUseValue = existingDiDep.value; + } + } + else if (provider.useFactory) { + const deps = provider.deps || provider.useFactory.diDeps; + transformedDeps = + deps.map((dep) => this._getDependency(dep, eager, resolvedProvider.sourceSpan)); + } + else if (provider.useClass) { + const deps = provider.deps || provider.useClass.diDeps; + transformedDeps = + deps.map((dep) => this._getDependency(dep, eager, resolvedProvider.sourceSpan)); + } + return _transformProvider(provider, { + useExisting: transformedUseExisting, + useValue: transformedUseValue, + deps: transformedDeps + }); + }); + transformedProviderAst = + _transformProviderAst(resolvedProvider, { eager: eager, providers: transformedProviders }); + this._transformedProviders.set(tokenReference(token), transformedProviderAst); + return transformedProviderAst; + } + _getDependency(dep, eager = false, requestorSourceSpan) { + let foundLocal = false; + if (!dep.isSkipSelf && dep.token != null) { + // access the injector + if (tokenReference(dep.token) === + this.reflector.resolveExternalReference(Identifiers.Injector) || + tokenReference(dep.token) === + this.reflector.resolveExternalReference(Identifiers.ComponentFactoryResolver)) { + foundLocal = true; + // access providers + } + else if (this._getOrCreateLocalProvider(dep.token, eager) != null) { + foundLocal = true; + } + } + return dep; + } +} +function _transformProvider(provider, { useExisting, useValue, deps }) { + return { + token: provider.token, + useClass: provider.useClass, + useExisting: useExisting, + useFactory: provider.useFactory, + useValue: useValue, + deps: deps, + multi: provider.multi + }; +} +function _transformProviderAst(provider, { eager, providers }) { + return new ProviderAst(provider.token, provider.multiProvider, provider.eager || eager, providers, provider.providerType, provider.lifecycleHooks, provider.sourceSpan, provider.isModule); +} +function _resolveProvidersFromDirectives(directives, sourceSpan, targetErrors) { + const providersByToken = new Map(); + directives.forEach((directive) => { + const dirProvider = { token: { identifier: directive.type }, useClass: directive.type }; + _resolveProviders([dirProvider], directive.isComponent ? ProviderAstType.Component : ProviderAstType.Directive, true, sourceSpan, targetErrors, providersByToken, /* isModule */ false); + }); + // Note: directives need to be able to overwrite providers of a component! + const directivesWithComponentFirst = directives.filter(dir => dir.isComponent).concat(directives.filter(dir => !dir.isComponent)); + directivesWithComponentFirst.forEach((directive) => { + _resolveProviders(directive.providers, ProviderAstType.PublicService, false, sourceSpan, targetErrors, providersByToken, /* isModule */ false); + _resolveProviders(directive.viewProviders, ProviderAstType.PrivateService, false, sourceSpan, targetErrors, providersByToken, /* isModule */ false); + }); + return providersByToken; +} +function _resolveProviders(providers, providerType, eager, sourceSpan, targetErrors, targetProvidersByToken, isModule) { + providers.forEach((provider) => { + let resolvedProvider = targetProvidersByToken.get(tokenReference(provider.token)); + if (resolvedProvider != null && !!resolvedProvider.multiProvider !== !!provider.multi) { + targetErrors.push(new ProviderError(`Mixing multi and non multi provider is not possible for token ${tokenName(resolvedProvider.token)}`, sourceSpan)); + } + if (!resolvedProvider) { + const lifecycleHooks = provider.token.identifier && + provider.token.identifier.lifecycleHooks ? + provider.token.identifier.lifecycleHooks : + []; + const isUseValue = !(provider.useClass || provider.useExisting || provider.useFactory); + resolvedProvider = new ProviderAst(provider.token, !!provider.multi, eager || isUseValue, [provider], providerType, lifecycleHooks, sourceSpan, isModule); + targetProvidersByToken.set(tokenReference(provider.token), resolvedProvider); + } + else { + if (!provider.multi) { + resolvedProvider.providers.length = 0; + } + resolvedProvider.providers.push(provider); + } + }); +} +function _getViewQueries(component) { + // Note: queries start with id 1 so we can use the number in a Bloom filter! + let viewQueryId = 1; + const viewQueries = new Map(); + if (component.viewQueries) { + component.viewQueries.forEach((query) => _addQueryToTokenMap(viewQueries, { meta: query, queryId: viewQueryId++ })); + } + return viewQueries; +} +function _getContentQueries(contentQueryStartId, directives) { + let contentQueryId = contentQueryStartId; + const contentQueries = new Map(); + directives.forEach((directive, directiveIndex) => { + if (directive.queries) { + directive.queries.forEach((query) => _addQueryToTokenMap(contentQueries, { meta: query, queryId: contentQueryId++ })); + } + }); + return contentQueries; +} +function _addQueryToTokenMap(map, query) { + query.meta.selectors.forEach((token) => { + let entry = map.get(tokenReference(token)); + if (!entry) { + entry = []; + map.set(tokenReference(token), entry); + } + entry.push(query); + }); +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class StyleWithImports { + constructor(style, styleUrls) { + this.style = style; + this.styleUrls = styleUrls; + } +} +function isStyleUrlResolvable(url) { + if (url == null || url.length === 0 || url[0] == '/') + return false; + const schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP); + return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset'; +} +/** + * Rewrites stylesheets by resolving and removing the @import urls that + * are either relative or don't have a `package:` scheme + */ +function extractStyleUrls(resolver, baseUrl, cssText) { + const foundUrls = []; + const modifiedCssText = cssText.replace(CSS_STRIPPABLE_COMMENT_REGEXP, '') + .replace(CSS_IMPORT_REGEXP, (...m) => { + const url = m[1] || m[2]; + if (!isStyleUrlResolvable(url)) { + // Do not attempt to resolve non-package absolute URLs with URI + // scheme + return m[0]; + } + foundUrls.push(resolver.resolve(baseUrl, url)); + return ''; + }); + return new StyleWithImports(modifiedCssText, foundUrls); +} +const CSS_IMPORT_REGEXP = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g; +const CSS_STRIPPABLE_COMMENT_REGEXP = /\/\*(?!#\s*(?:sourceURL|sourceMappingURL)=)[\s\S]+?\*\//g; +const URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/; + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const PROPERTY_PARTS_SEPARATOR = '.'; +const ATTRIBUTE_PREFIX = 'attr'; +const CLASS_PREFIX = 'class'; +const STYLE_PREFIX = 'style'; +const TEMPLATE_ATTR_PREFIX = '*'; +const ANIMATE_PROP_PREFIX = 'animate-'; +/** + * Parses bindings in templates and in the directive host area. + */ +class BindingParser { + constructor(_exprParser, _interpolationConfig, _schemaRegistry, pipes, errors) { + this._exprParser = _exprParser; + this._interpolationConfig = _interpolationConfig; + this._schemaRegistry = _schemaRegistry; + this.errors = errors; + this.pipesByName = null; + this._usedPipes = new Map(); + // When the `pipes` parameter is `null`, do not check for used pipes + // This is used in IVY when we might not know the available pipes at compile time + if (pipes) { + const pipesByName = new Map(); + pipes.forEach(pipe => pipesByName.set(pipe.name, pipe)); + this.pipesByName = pipesByName; + } + } + get interpolationConfig() { + return this._interpolationConfig; + } + getUsedPipes() { + return Array.from(this._usedPipes.values()); + } + createBoundHostProperties(dirMeta, sourceSpan) { + if (dirMeta.hostProperties) { + const boundProps = []; + Object.keys(dirMeta.hostProperties).forEach(propName => { + const expression = dirMeta.hostProperties[propName]; + if (typeof expression === 'string') { + this.parsePropertyBinding(propName, expression, true, sourceSpan, sourceSpan.start.offset, undefined, [], boundProps); + } + else { + this._reportError(`Value of the host property binding "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`, sourceSpan); + } + }); + return boundProps; + } + return null; + } + createDirectiveHostPropertyAsts(dirMeta, elementSelector, sourceSpan) { + const boundProps = this.createBoundHostProperties(dirMeta, sourceSpan); + return boundProps && + boundProps.map((prop) => this.createBoundElementProperty(elementSelector, prop)); + } + createDirectiveHostEventAsts(dirMeta, sourceSpan) { + if (dirMeta.hostListeners) { + const targetEvents = []; + Object.keys(dirMeta.hostListeners).forEach(propName => { + const expression = dirMeta.hostListeners[propName]; + if (typeof expression === 'string') { + // TODO: pass a more accurate handlerSpan for this event. + this.parseEvent(propName, expression, sourceSpan, sourceSpan, [], targetEvents); + } + else { + this._reportError(`Value of the host listener "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`, sourceSpan); + } + }); + return targetEvents; + } + return null; + } + parseInterpolation(value, sourceSpan) { + const sourceInfo = sourceSpan.start.toString(); + try { + const ast = this._exprParser.parseInterpolation(value, sourceInfo, sourceSpan.start.offset, this._interpolationConfig); + if (ast) + this._reportExpressionParserErrors(ast.errors, sourceSpan); + this._checkPipes(ast, sourceSpan); + return ast; + } + catch (e) { + this._reportError(`${e}`, sourceSpan); + return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, sourceSpan.start.offset); + } + } + /** + * Parses the bindings in a microsyntax expression, and converts them to + * `ParsedProperty` or `ParsedVariable`. + * + * @param tplKey template binding name + * @param tplValue template binding value + * @param sourceSpan span of template binding relative to entire the template + * @param absoluteValueOffset start of the tplValue relative to the entire template + * @param targetMatchableAttrs potential attributes to match in the template + * @param targetProps target property bindings in the template + * @param targetVars target variables in the template + */ + parseInlineTemplateBinding(tplKey, tplValue, sourceSpan, absoluteValueOffset, targetMatchableAttrs, targetProps, targetVars) { + const absoluteKeyOffset = sourceSpan.start.offset + TEMPLATE_ATTR_PREFIX.length; + const bindings = this._parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset); + for (const binding of bindings) { + // sourceSpan is for the entire HTML attribute. bindingSpan is for a particular + // binding within the microsyntax expression so it's more narrow than sourceSpan. + const bindingSpan = moveParseSourceSpan(sourceSpan, binding.sourceSpan); + const key = binding.key.source; + const keySpan = moveParseSourceSpan(sourceSpan, binding.key.span); + if (binding instanceof VariableBinding) { + const value = binding.value ? binding.value.source : '$implicit'; + const valueSpan = binding.value ? moveParseSourceSpan(sourceSpan, binding.value.span) : undefined; + targetVars.push(new ParsedVariable(key, value, bindingSpan, keySpan, valueSpan)); + } + else if (binding.value) { + const valueSpan = moveParseSourceSpan(sourceSpan, binding.value.ast.sourceSpan); + this._parsePropertyAst(key, binding.value, sourceSpan, valueSpan, targetMatchableAttrs, targetProps); + } + else { + targetMatchableAttrs.push([key, '']); + this.parseLiteralAttr(key, null, sourceSpan, absoluteValueOffset, undefined, targetMatchableAttrs, targetProps); + } + } + } + /** + * Parses the bindings in a microsyntax expression, e.g. + * ``` + * + * ``` + * + * @param tplKey template binding name + * @param tplValue template binding value + * @param sourceSpan span of template binding relative to entire the template + * @param absoluteKeyOffset start of the `tplKey` + * @param absoluteValueOffset start of the `tplValue` + */ + _parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset) { + const sourceInfo = sourceSpan.start.toString(); + try { + const bindingsResult = this._exprParser.parseTemplateBindings(tplKey, tplValue, sourceInfo, absoluteKeyOffset, absoluteValueOffset); + this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan); + bindingsResult.templateBindings.forEach((binding) => { + if (binding.value instanceof ASTWithSource) { + this._checkPipes(binding.value, sourceSpan); + } + }); + bindingsResult.warnings.forEach((warning) => { + this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING); + }); + return bindingsResult.templateBindings; + } + catch (e) { + this._reportError(`${e}`, sourceSpan); + return []; + } + } + parseLiteralAttr(name, value, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps) { + if (isAnimationLabel(name)) { + name = name.substring(1); + if (value) { + this._reportError(`Assigning animation triggers via @prop="exp" attributes with an expression is invalid.` + + ` Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.`, sourceSpan, ParseErrorLevel.ERROR); + } + this._parseAnimation(name, value, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps); + } + else { + targetProps.push(new ParsedProperty(name, this._exprParser.wrapLiteralPrimitive(value, '', absoluteOffset), ParsedPropertyType.LITERAL_ATTR, sourceSpan, valueSpan)); + } + } + parsePropertyBinding(name, expression, isHost, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps) { + if (name.length === 0) { + this._reportError(`Property name is missing in binding`, sourceSpan); + } + let isAnimationProp = false; + if (name.startsWith(ANIMATE_PROP_PREFIX)) { + isAnimationProp = true; + name = name.substring(ANIMATE_PROP_PREFIX.length); + } + else if (isAnimationLabel(name)) { + isAnimationProp = true; + name = name.substring(1); + } + if (isAnimationProp) { + this._parseAnimation(name, expression, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps); + } + else { + this._parsePropertyAst(name, this._parseBinding(expression, isHost, valueSpan || sourceSpan, absoluteOffset), sourceSpan, valueSpan, targetMatchableAttrs, targetProps); + } + } + parsePropertyInterpolation(name, value, sourceSpan, valueSpan, targetMatchableAttrs, targetProps) { + const expr = this.parseInterpolation(value, valueSpan || sourceSpan); + if (expr) { + this._parsePropertyAst(name, expr, sourceSpan, valueSpan, targetMatchableAttrs, targetProps); + return true; + } + return false; + } + _parsePropertyAst(name, ast, sourceSpan, valueSpan, targetMatchableAttrs, targetProps) { + targetMatchableAttrs.push([name, ast.source]); + targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.DEFAULT, sourceSpan, valueSpan)); + } + _parseAnimation(name, expression, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps) { + if (name.length === 0) { + this._reportError('Animation trigger is missing', sourceSpan); + } + // This will occur when a @trigger is not paired with an expression. + // For animations it is valid to not have an expression since */void + // states will be applied by angular when the element is attached/detached + const ast = this._parseBinding(expression || 'undefined', false, valueSpan || sourceSpan, absoluteOffset); + targetMatchableAttrs.push([name, ast.source]); + targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.ANIMATION, sourceSpan, valueSpan)); + } + _parseBinding(value, isHostBinding, sourceSpan, absoluteOffset) { + const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown)').toString(); + try { + const ast = isHostBinding ? + this._exprParser.parseSimpleBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig) : + this._exprParser.parseBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig); + if (ast) + this._reportExpressionParserErrors(ast.errors, sourceSpan); + this._checkPipes(ast, sourceSpan); + return ast; + } + catch (e) { + this._reportError(`${e}`, sourceSpan); + return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); + } + } + createBoundElementProperty(elementSelector, boundProp, skipValidation = false, mapPropertyName = true) { + if (boundProp.isAnimation) { + return new BoundElementProperty(boundProp.name, 4 /* Animation */, SecurityContext.NONE, boundProp.expression, null, boundProp.sourceSpan, boundProp.valueSpan); + } + let unit = null; + let bindingType = undefined; + let boundPropertyName = null; + const parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR); + let securityContexts = undefined; + // Check for special cases (prefix style, attr, class) + if (parts.length > 1) { + if (parts[0] == ATTRIBUTE_PREFIX) { + boundPropertyName = parts.slice(1).join(PROPERTY_PARTS_SEPARATOR); + if (!skipValidation) { + this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true); + } + securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, true); + const nsSeparatorIdx = boundPropertyName.indexOf(':'); + if (nsSeparatorIdx > -1) { + const ns = boundPropertyName.substring(0, nsSeparatorIdx); + const name = boundPropertyName.substring(nsSeparatorIdx + 1); + boundPropertyName = mergeNsAndName(ns, name); + } + bindingType = 1 /* Attribute */; + } + else if (parts[0] == CLASS_PREFIX) { + boundPropertyName = parts[1]; + bindingType = 2 /* Class */; + securityContexts = [SecurityContext.NONE]; + } + else if (parts[0] == STYLE_PREFIX) { + unit = parts.length > 2 ? parts[2] : null; + boundPropertyName = parts[1]; + bindingType = 3 /* Style */; + securityContexts = [SecurityContext.STYLE]; + } + } + // If not a special case, use the full property name + if (boundPropertyName === null) { + const mappedPropName = this._schemaRegistry.getMappedPropName(boundProp.name); + boundPropertyName = mapPropertyName ? mappedPropName : boundProp.name; + securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, mappedPropName, false); + bindingType = 0 /* Property */; + if (!skipValidation) { + this._validatePropertyOrAttributeName(mappedPropName, boundProp.sourceSpan, false); + } + } + return new BoundElementProperty(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan, boundProp.valueSpan); + } + parseEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents) { + if (name.length === 0) { + this._reportError(`Event name is missing in binding`, sourceSpan); + } + if (isAnimationLabel(name)) { + name = name.substr(1); + this._parseAnimationEvent(name, expression, sourceSpan, handlerSpan, targetEvents); + } + else { + this._parseRegularEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents); + } + } + calcPossibleSecurityContexts(selector, propName, isAttribute) { + const prop = this._schemaRegistry.getMappedPropName(propName); + return calcPossibleSecurityContexts(this._schemaRegistry, selector, prop, isAttribute); + } + _parseAnimationEvent(name, expression, sourceSpan, handlerSpan, targetEvents) { + const matches = splitAtPeriod(name, [name, '']); + const eventName = matches[0]; + const phase = matches[1].toLowerCase(); + if (phase) { + switch (phase) { + case 'start': + case 'done': + const ast = this._parseAction(expression, handlerSpan); + targetEvents.push(new ParsedEvent(eventName, phase, 1 /* Animation */, ast, sourceSpan, handlerSpan)); + break; + default: + this._reportError(`The provided animation output phase value "${phase}" for "@${eventName}" is not supported (use start or done)`, sourceSpan); + break; + } + } + else { + this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`, sourceSpan); + } + } + _parseRegularEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents) { + // long format: 'target: eventName' + const [target, eventName] = splitAtColon(name, [null, name]); + const ast = this._parseAction(expression, handlerSpan); + targetMatchableAttrs.push([name, ast.source]); + targetEvents.push(new ParsedEvent(eventName, target, 0 /* Regular */, ast, sourceSpan, handlerSpan)); + // Don't detect directives for event names for now, + // so don't add the event name to the matchableAttrs + } + _parseAction(value, sourceSpan) { + const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString(); + const absoluteOffset = (sourceSpan && sourceSpan.start) ? sourceSpan.start.offset : 0; + try { + const ast = this._exprParser.parseAction(value, sourceInfo, absoluteOffset, this._interpolationConfig); + if (ast) { + this._reportExpressionParserErrors(ast.errors, sourceSpan); + } + if (!ast || ast.ast instanceof EmptyExpr) { + this._reportError(`Empty expressions are not allowed`, sourceSpan); + return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); + } + this._checkPipes(ast, sourceSpan); + return ast; + } + catch (e) { + this._reportError(`${e}`, sourceSpan); + return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); + } + } + _reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) { + this.errors.push(new ParseError(sourceSpan, message, level)); + } + _reportExpressionParserErrors(errors, sourceSpan) { + for (const error of errors) { + this._reportError(error.message, sourceSpan); + } + } + // Make sure all the used pipes are known in `this.pipesByName` + _checkPipes(ast, sourceSpan) { + if (ast && this.pipesByName) { + const collector = new PipeCollector(); + ast.visit(collector); + collector.pipes.forEach((ast, pipeName) => { + const pipeMeta = this.pipesByName.get(pipeName); + if (!pipeMeta) { + this._reportError(`The pipe '${pipeName}' could not be found`, new ParseSourceSpan(sourceSpan.start.moveBy(ast.span.start), sourceSpan.start.moveBy(ast.span.end))); + } + else { + this._usedPipes.set(pipeName, pipeMeta); + } + }); + } + } + /** + * @param propName the name of the property / attribute + * @param sourceSpan + * @param isAttr true when binding to an attribute + */ + _validatePropertyOrAttributeName(propName, sourceSpan, isAttr) { + const report = isAttr ? this._schemaRegistry.validateAttribute(propName) : + this._schemaRegistry.validateProperty(propName); + if (report.error) { + this._reportError(report.msg, sourceSpan, ParseErrorLevel.ERROR); + } + } +} +class PipeCollector extends RecursiveAstVisitor$1 { + constructor() { + super(...arguments); + this.pipes = new Map(); + } + visitPipe(ast, context) { + this.pipes.set(ast.name, ast); + ast.exp.visit(this); + this.visitAll(ast.args, context); + return null; + } +} +function isAnimationLabel(name) { + return name[0] == '@'; +} +function calcPossibleSecurityContexts(registry, selector, propName, isAttribute) { + const ctxs = []; + CssSelector.parse(selector).forEach((selector) => { + const elementNames = selector.element ? [selector.element] : registry.allKnownElementNames(); + const notElementNames = new Set(selector.notSelectors.filter(selector => selector.isElementSelector()) + .map((selector) => selector.element)); + const possibleElementNames = elementNames.filter(elementName => !notElementNames.has(elementName)); + ctxs.push(...possibleElementNames.map(elementName => registry.securityContext(elementName, propName, isAttribute))); + }); + return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort(); +} +/** + * Compute a new ParseSourceSpan based off an original `sourceSpan` by using + * absolute offsets from the specified `absoluteSpan`. + * + * @param sourceSpan original source span + * @param absoluteSpan absolute source span to move to + */ +function moveParseSourceSpan(sourceSpan, absoluteSpan) { + // The difference of two absolute offsets provide the relative offset + const startDiff = absoluteSpan.start - sourceSpan.start.offset; + const endDiff = absoluteSpan.end - sourceSpan.end.offset; + return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff)); +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const NG_CONTENT_SELECT_ATTR = 'select'; +const LINK_ELEMENT = 'link'; +const LINK_STYLE_REL_ATTR = 'rel'; +const LINK_STYLE_HREF_ATTR = 'href'; +const LINK_STYLE_REL_VALUE = 'stylesheet'; +const STYLE_ELEMENT = 'style'; +const SCRIPT_ELEMENT = 'script'; +const NG_NON_BINDABLE_ATTR = 'ngNonBindable'; +const NG_PROJECT_AS = 'ngProjectAs'; +function preparseElement(ast) { + let selectAttr = null; + let hrefAttr = null; + let relAttr = null; + let nonBindable = false; + let projectAs = ''; + ast.attrs.forEach(attr => { + const lcAttrName = attr.name.toLowerCase(); + if (lcAttrName == NG_CONTENT_SELECT_ATTR) { + selectAttr = attr.value; + } + else if (lcAttrName == LINK_STYLE_HREF_ATTR) { + hrefAttr = attr.value; + } + else if (lcAttrName == LINK_STYLE_REL_ATTR) { + relAttr = attr.value; + } + else if (attr.name == NG_NON_BINDABLE_ATTR) { + nonBindable = true; + } + else if (attr.name == NG_PROJECT_AS) { + if (attr.value.length > 0) { + projectAs = attr.value; + } + } + }); + selectAttr = normalizeNgContentSelect(selectAttr); + const nodeName = ast.name.toLowerCase(); + let type = PreparsedElementType.OTHER; + if (isNgContent(nodeName)) { + type = PreparsedElementType.NG_CONTENT; + } + else if (nodeName == STYLE_ELEMENT) { + type = PreparsedElementType.STYLE; + } + else if (nodeName == SCRIPT_ELEMENT) { + type = PreparsedElementType.SCRIPT; + } + else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) { + type = PreparsedElementType.STYLESHEET; + } + return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs); +} +var PreparsedElementType; +(function (PreparsedElementType) { + PreparsedElementType[PreparsedElementType["NG_CONTENT"] = 0] = "NG_CONTENT"; + PreparsedElementType[PreparsedElementType["STYLE"] = 1] = "STYLE"; + PreparsedElementType[PreparsedElementType["STYLESHEET"] = 2] = "STYLESHEET"; + PreparsedElementType[PreparsedElementType["SCRIPT"] = 3] = "SCRIPT"; + PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER"; +})(PreparsedElementType || (PreparsedElementType = {})); +class PreparsedElement { + constructor(type, selectAttr, hrefAttr, nonBindable, projectAs) { + this.type = type; + this.selectAttr = selectAttr; + this.hrefAttr = hrefAttr; + this.nonBindable = nonBindable; + this.projectAs = projectAs; + } +} +function normalizeNgContentSelect(selectAttr) { + if (selectAttr === null || selectAttr.length === 0) { + return '*'; + } + return selectAttr; +} + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const BIND_NAME_REGEXP = /^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/; +// Group 1 = "bind-" +const KW_BIND_IDX = 1; +// Group 2 = "let-" +const KW_LET_IDX = 2; +// Group 3 = "ref-/#" +const KW_REF_IDX = 3; +// Group 4 = "on-" +const KW_ON_IDX = 4; +// Group 5 = "bindon-" +const KW_BINDON_IDX = 5; +// Group 6 = "@" +const KW_AT_IDX = 6; +// Group 7 = the identifier after "bind-", "let-", "ref-/#", "on-", "bindon-" or "@" +const IDENT_KW_IDX = 7; +// Group 8 = identifier inside [()] +const IDENT_BANANA_BOX_IDX = 8; +// Group 9 = identifier inside [] +const IDENT_PROPERTY_IDX = 9; +// Group 10 = identifier inside () +const IDENT_EVENT_IDX = 10; +const TEMPLATE_ATTR_PREFIX$1 = '*'; +const CLASS_ATTR = 'class'; +let _TEXT_CSS_SELECTOR; +function TEXT_CSS_SELECTOR() { + if (!_TEXT_CSS_SELECTOR) { + _TEXT_CSS_SELECTOR = CssSelector.parse('*')[0]; + } + return _TEXT_CSS_SELECTOR; +} +class TemplateParseError extends ParseError { + constructor(message, span, level) { + super(span, message, level); + } +} +class TemplateParseResult { + constructor(templateAst, usedPipes, errors) { + this.templateAst = templateAst; + this.usedPipes = usedPipes; + this.errors = errors; + } +} +class TemplateParser { + constructor(_config, _reflector, _exprParser, _schemaRegistry, _htmlParser, _console, transforms) { + this._config = _config; + this._reflector = _reflector; + this._exprParser = _exprParser; + this._schemaRegistry = _schemaRegistry; + this._htmlParser = _htmlParser; + this._console = _console; + this.transforms = transforms; + } + get expressionParser() { + return this._exprParser; + } + parse(component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces) { + const result = this.tryParse(component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces); + const warnings = result.errors.filter(error => error.level === ParseErrorLevel.WARNING); + const errors = result.errors.filter(error => error.level === ParseErrorLevel.ERROR); + if (warnings.length > 0) { + this._console.warn(`Template parse warnings:\n${warnings.join('\n')}`); + } + if (errors.length > 0) { + const errorString = errors.join('\n'); + throw syntaxError(`Template parse errors:\n${errorString}`, errors); + } + return { template: result.templateAst, pipes: result.usedPipes }; + } + tryParse(component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces) { + let htmlParseResult = typeof template === 'string' ? + this._htmlParser.parse(template, templateUrl, { + tokenizeExpansionForms: true, + interpolationConfig: this.getInterpolationConfig(component) + }) : + template; + if (!preserveWhitespaces) { + htmlParseResult = removeWhitespaces(htmlParseResult); + } + return this.tryParseHtml(this.expandHtml(htmlParseResult), component, directives, pipes, schemas); + } + tryParseHtml(htmlAstWithErrors, component, directives, pipes, schemas) { + let result; + const errors = htmlAstWithErrors.errors; + const usedPipes = []; + if (htmlAstWithErrors.rootNodes.length > 0) { + const uniqDirectives = removeSummaryDuplicates(directives); + const uniqPipes = removeSummaryDuplicates(pipes); + const providerViewContext = new ProviderViewContext(this._reflector, component); + let interpolationConfig = undefined; + if (component.template && component.template.interpolation) { + interpolationConfig = { + start: component.template.interpolation[0], + end: component.template.interpolation[1] + }; + } + const bindingParser = new BindingParser(this._exprParser, interpolationConfig, this._schemaRegistry, uniqPipes, errors); + const parseVisitor = new TemplateParseVisitor(this._reflector, this._config, providerViewContext, uniqDirectives, bindingParser, this._schemaRegistry, schemas, errors); + result = visitAll$1(parseVisitor, htmlAstWithErrors.rootNodes, EMPTY_ELEMENT_CONTEXT); + errors.push(...providerViewContext.errors); + usedPipes.push(...bindingParser.getUsedPipes()); + } + else { + result = []; + } + this._assertNoReferenceDuplicationOnTemplate(result, errors); + if (errors.length > 0) { + return new TemplateParseResult(result, usedPipes, errors); + } + if (this.transforms) { + this.transforms.forEach((transform) => { + result = templateVisitAll(transform, result); + }); + } + return new TemplateParseResult(result, usedPipes, errors); + } + expandHtml(htmlAstWithErrors, forced = false) { + const errors = htmlAstWithErrors.errors; + if (errors.length == 0 || forced) { + // Transform ICU messages to angular directives + const expandedHtmlAst = expandNodes(htmlAstWithErrors.rootNodes); + errors.push(...expandedHtmlAst.errors); + htmlAstWithErrors = new ParseTreeResult(expandedHtmlAst.nodes, errors); + } + return htmlAstWithErrors; + } + getInterpolationConfig(component) { + if (component.template) { + return InterpolationConfig.fromArray(component.template.interpolation); + } + return undefined; + } + /** @internal */ + _assertNoReferenceDuplicationOnTemplate(result, errors) { + const existingReferences = []; + result.filter(element => !!element.references) + .forEach(element => element.references.forEach((reference) => { + const name = reference.name; + if (existingReferences.indexOf(name) < 0) { + existingReferences.push(name); + } + else { + const error = new TemplateParseError(`Reference "#${name}" is defined several times`, reference.sourceSpan, ParseErrorLevel.ERROR); + errors.push(error); + } + })); + } +} +class TemplateParseVisitor { + constructor(reflector, config, providerViewContext, directives, _bindingParser, _schemaRegistry, _schemas, _targetErrors) { + this.reflector = reflector; + this.config = config; + this.providerViewContext = providerViewContext; + this._bindingParser = _bindingParser; + this._schemaRegistry = _schemaRegistry; + this._schemas = _schemas; + this._targetErrors = _targetErrors; + this.selectorMatcher = new SelectorMatcher(); + this.directivesIndex = new Map(); + this.ngContentCount = 0; + // Note: queries start with id 1 so we can use the number in a Bloom filter! + this.contentQueryStartId = providerViewContext.component.viewQueries.length + 1; + directives.forEach((directive, index) => { + const selector = CssSelector.parse(directive.selector); + this.selectorMatcher.addSelectables(selector, directive); + this.directivesIndex.set(directive, index); + }); + } + visitExpansion(expansion, context) { + return null; + } + visitExpansionCase(expansionCase, context) { + return null; + } + visitText(text, parent) { + const ngContentIndex = parent.findNgContentIndex(TEXT_CSS_SELECTOR()); + const valueNoNgsp = replaceNgsp(text.value); + const expr = this._bindingParser.parseInterpolation(valueNoNgsp, text.sourceSpan); + return expr ? new BoundTextAst(expr, ngContentIndex, text.sourceSpan) : + new TextAst(valueNoNgsp, ngContentIndex, text.sourceSpan); + } + visitAttribute(attribute, context) { + return new AttrAst(attribute.name, attribute.value, attribute.sourceSpan); + } + visitComment(comment, context) { + return null; + } + visitElement(element, parent) { + const queryStartIndex = this.contentQueryStartId; + const elName = element.name; + const preparsedElement = preparseElement(element); + if (preparsedElement.type === PreparsedElementType.SCRIPT || + preparsedElement.type === PreparsedElementType.STYLE) { + // Skipping