@firestitch/app-message 9.1.4 → 9.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/app/modules/message-queues/components/queues/queues.component.d.ts +3 -1
  2. package/app/modules/message-queues/services/message-queue.service.d.ts +9 -0
  3. package/bundles/firestitch-app-message.umd.js +80 -53
  4. package/bundles/firestitch-app-message.umd.js.map +1 -1
  5. package/bundles/firestitch-app-message.umd.min.js +1 -1
  6. package/bundles/firestitch-app-message.umd.min.js.map +1 -1
  7. package/esm2015/app/modules/message-queues/components/queue/queue.component.js +2 -2
  8. package/esm2015/app/modules/message-queues/components/queues/queues.component.js +9 -12
  9. package/esm2015/app/modules/message-queues/message-queues.module.js +6 -2
  10. package/esm2015/app/modules/message-queues/services/message-queue.service.js +31 -0
  11. package/esm2015/firestitch-app-message.js +2 -2
  12. package/esm2015/public_api.js +2 -1
  13. package/esm5/app/modules/message-queues/components/queue/queue.component.js +2 -2
  14. package/esm5/app/modules/message-queues/components/queues/queues.component.js +9 -12
  15. package/esm5/app/modules/message-queues/message-queues.module.js +6 -2
  16. package/esm5/app/modules/message-queues/services/message-queue.service.js +33 -0
  17. package/esm5/firestitch-app-message.js +2 -2
  18. package/esm5/public_api.js +2 -1
  19. package/fesm2015/firestitch-app-message.js +76 -52
  20. package/fesm2015/firestitch-app-message.js.map +1 -1
  21. package/fesm5/firestitch-app-message.js +81 -55
  22. package/fesm5/firestitch-app-message.js.map +1 -1
  23. package/firestitch-app-message.d.ts +1 -1
  24. package/firestitch-app-message.metadata.json +1 -1
  25. package/package.json +1 -1
  26. package/public_api.d.ts +1 -0
  27. package/app/modules/message-queues/components/index.d.ts +0 -3
  28. package/app/modules/message-queues/components/queue/index.d.ts +0 -1
  29. package/app/modules/message-queues/components/queues/index.d.ts +0 -1
  30. package/app/modules/message-queues/components/recipient/index.d.ts +0 -1
  31. package/esm2015/app/modules/message-queues/components/index.js +0 -4
  32. package/esm2015/app/modules/message-queues/components/queue/index.js +0 -2
  33. package/esm2015/app/modules/message-queues/components/queues/index.js +0 -2
  34. package/esm2015/app/modules/message-queues/components/recipient/index.js +0 -2
  35. package/esm5/app/modules/message-queues/components/index.js +0 -4
  36. package/esm5/app/modules/message-queues/components/queue/index.js +0 -2
  37. package/esm5/app/modules/message-queues/components/queues/index.js +0 -2
  38. package/esm5/app/modules/message-queues/components/recipient/index.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/app-message/app/modules/messages/enums/email-message-format.enum.ts","ng://@firestitch/app-message/app/modules/messages/consts/email-message-formats.const.ts","ng://@firestitch/app-message/app/modules/message-preview/components/preview/preview.component.ts","ng://@firestitch/app-message/app/modules/app-message/injectors/app-message-config.injector.ts","ng://@firestitch/app-message/app/modules/messages/components/message/message.component.ts","ng://@firestitch/app-message/app/helpers/index-name-value.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/email-message-queue-format.enum.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/message-queue-type.enum.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/message-queue-state.enum.ts","ng://@firestitch/app-message/app/modules/messages/components/messages/messages.component.ts","ng://@firestitch/app-message/app/modules/message-preview/message-preview.module.ts","ng://@firestitch/app-message/app/modules/messages/messages.module.ts","ng://@firestitch/app-message/app/modules/message-queues/consts/message-queue-states.const.ts","ng://@firestitch/app-message/app/modules/message-queues/components/queue/queue.component.ts","ng://@firestitch/app-message/app/modules/message-queues/components/queues/queues.component.ts","ng://@firestitch/app-message/app/modules/message-queues/pipes/linkify.pipe.ts","ng://@firestitch/app-message/app/modules/message-queues/pipes/truncate.pipe.ts","ng://@firestitch/app-message/app/modules/message-queues/components/recipient/recipient.component.ts","ng://@firestitch/app-message/app/modules/message-queues/message-queues.module.ts","ng://@firestitch/app-message/app/modules/message-templates/components/template/template.component.ts","ng://@firestitch/app-message/app/modules/message-templates/components/templates/templates.component.ts","ng://@firestitch/app-message/app/modules/message-templates/message-templates.module.ts","ng://@firestitch/app-message/app/modules/webhooks/components/webhooks/webhooks.component.ts","ng://@firestitch/app-message/app/modules/webhooks/webhooks.module.ts","ng://@firestitch/app-message/app/modules/app-message/app-message.module.ts"],"names":["EmailMessageFormat","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","EmailMessageFormats","name","Text","HTML","RichText","PreviewComponent","_data","html","styles","ngOnInit","Inject","args","MAT_DIALOG_DATA","Component","template","FS_APP_MESSAGE_CONFIG","InjectionToken","MessageComponent","_config","_prompt","_message","_dialog","_cdRef","_this","messageTemplates","emailMessageFormats","emailMessageFormat","save","saveMessage","message","pipe","tap","success","loadMessage","subscribe","response","emailMessage","undefined","customize","smsMessage","markForCheck","loadMessageTemplates","data","tabChange","event","tab","textLabel","openPreview","body","messageTemplateId","messageTemplate","find","item","id","content","replace","concat","open","width","sendTest","type","of","switchMap","getTestEmail","default_","typeName","input","label","title","commitLabel","default","required","testMessage","FsPrompt","FsMessage","MatDialog","ChangeDetectorRef","changeDetection","ChangeDetectionStrategy","OnPush","indexNameValue","arry","obj","forEach","EmailMessageQueueFormat","MessageQueueType","MessageQueueState","MessagesComponent","list","config","_destroy$","Subject","filters","ItemType","Keyword","fetch","query","loadMessages","map","paging","afterClosed","takeUntil","updateData","row","ngOnDestroy","complete","ViewChild","FsListComponent","static","selector","FsAppMessagePreviewModule","NgModule","imports","MatDialogModule","MatButtonModule","FsDialogModule","FsIFrameModule","declarations","exports","FsAppMessagesModule","RouterModule","CommonModule","FormsModule","MatTabsModule","MatFormFieldModule","MatInputModule","MatOptionModule","MatSelectModule","MatTooltipModule","MatCheckboxModule","FsListModule","FsLabelModule","FlexLayoutModule","FsSkeletonModule","FsFormModule","FsTextEditorModule","FsEditorRichTextModule","MessageQueueStates","Sent","PartiallySent","Sending","Queued","Canceled","InvalidRecipients","Failed","QueueComponent","messageQueueRecipients","emailMessageQueueFormat","messageQueueStates","resendMessageQueue","forwardMessageQueue","loadMessageQueue","messageQueue","emailMessageQueue","format","doc","DOMParser","parseFromString","querySelectorAll","el","setAttribute","documentElement","innerHTML","anchorme","smsMessageQueue","reduce","accum","messageQueueRecipient","recipient","state","_setLogsConfig","_setAttachmentsConfig","options","attributes","openMessage","resend","confirm","logList","reload","forward","Email","logConfig","loadMore","queryParam","loadLogs","attachmentConfig","loadMessageQueueAttachments","prettyFilesize","_prettyFilesize","filesize","downloadMessageQueueAttachment","rowActions","click","messageAttachment","bytes","Math","floor","log","pow","toFixed","charAt","QueuesComponent","Select","values","DateRange","sort","direction","messageQueueAttachmentCounts","emailMessageQueues","emailMessageQueueBodies","smsMessageQueues","loadMessageQueues","cancelMessageQueues","selection","selectAll","actions","actionSelected","action","SelectionActionType","Action","limit","__spread","Input","LinkifyPipe","transform","Pipe","TruncatePipe","completeWords","ellipsis","substr","lastIndexOf","RecipientComponent","icon","S","tooltip","E","F","FsAppMessageQueuesModule","MatIconModule","FsDateModule","FsPromptInputModule","TemplateComponent","_dialogRef","htmlEditorconfig","language","insertSpaces","tabSize","cssEditorconfig","saveMessageTemplate","submitter","close","loadMessageTemplate","MatDialogRef","TemplatesComponent","status","deleteMessageTemplate","remove","menu","FsAppMessageTemplatesModule","WebhooksComponent","listConfig","createWebhook","webhook","deleteWebhook","loadWebhooks","webhooks","FsAppMessageWebhooksModule","FsAppMessageModule","forRoot","ngModule","FsAppMessageModule_1"],"mappings":"w5EA6BO,IC7BKA,ED6BDC,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKU,MAAMC,KAAMP,YAezB,SAASQ,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAId,UAAUC,OAAQc,EAAID,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOlB,OAAOsB,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAId,EAAIW,EAAWR,OAAS,EAAGH,GAAK,EAAGA,KAASe,EAAIJ,EAAWX,MAAIiB,GAAKD,EAAI,EAAID,EAAEE,GAAKD,EAAI,EAAID,EAAEH,EAAQC,EAAKI,GAAKF,EAAEH,EAAQC,KAASI,GAChJ,OAAOD,EAAI,GAAKC,GAAKrB,OAAOyB,eAAeT,EAAQC,EAAKI,GAAIA,EAGzD,SAASK,EAAQC,EAAYC,GAChC,OAAO,SAAUZ,EAAQC,GAAOW,EAAUZ,EAAQC,EAAKU,IAGpD,SAASE,EAAWC,EAAaC,GACpC,GAAuB,iBAAZR,SAAoD,mBAArBA,QAAQS,SAAyB,OAAOT,QAAQS,SAASF,EAAaC,GA8D7G,SAASE,EAAOC,EAAG7B,GACtB,IAAI8B,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UACjD,IAAKF,EAAG,OAAOD,EACf,IAAmBb,EAAYiB,EAA3BlC,EAAI+B,EAAExB,KAAKuB,GAAOK,EAAK,GAC3B,IACI,WAAc,IAANlC,GAAgBA,KAAM,MAAQgB,EAAIjB,EAAEoC,QAAQC,MAAMF,EAAGG,KAAKrB,EAAEsB,OAExE,MAAOC,GAASN,EAAI,CAAEM,MAAOA,GACjC,QACQ,IACQvB,IAAMA,EAAEoB,OAASN,EAAI/B,EAAU,SAAI+B,EAAExB,KAAKP,GAE1D,QAAkB,GAAIkC,EAAG,MAAMA,EAAEM,OAE7B,OAAOL,GC5IX,SAAYzC,GACVA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,SAAA,IAHF,CAAYA,IAAAA,EAAkB,KCGvB,IAAM+C,EAAsB,CACjC,CAAEC,KAAM,OAAQH,MAAO7C,EAAmBiD,MAC1C,CAAED,KAAM,OAAQH,MAAO7C,EAAmBkD,MAC1C,CAAEF,KAAM,YAAaH,MAAO7C,EAAmBmD,wBCQ/C,SAAAC,EACmCC,GAAAtC,KAAAsC,MAAAA,EAEjCtC,KAAKuC,KAAOD,EAAMC,KAClBvC,KAAKwC,OAASF,EAAME,OAMxB,OAHSH,EAAAzC,UAAA6C,SAAP,+EANGC,EAAAA,OAAMC,KAAA,CAACC,EAAAA,sBANCP,EAAgBpC,EAAA,CAJ5B4C,EAAAA,UAAU,CACTC,SAAA,oWASGjC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,mDANCP,MCNAU,GAD6B,IAAIC,EAAAA,eAAsB,8BAC/B,IAAIA,EAAAA,eAAsB,uCC4B7D,SAAAC,EACyCC,EACNZ,EACzBa,EACAC,EACAC,EACAC,GANV,IAAAC,EAAAvD,KACyCA,KAAAkD,QAAAA,EACNlD,KAAAsC,MAAAA,EACzBtC,KAAAmD,QAAAA,EACAnD,KAAAoD,SAAAA,EACApD,KAAAqD,QAAAA,EACArD,KAAAsD,OAAAA,EAVHtD,KAAAwD,iBAAmB,GACnBxD,KAAAyD,oBAAsBzB,EACtBhC,KAAA0D,mBAAqBzE,EA+CrBe,KAAA2D,KAAO,WACZ,OAAOJ,EAAKL,QAAQU,YAAYL,EAAKM,SACpCC,KACCC,EAAAA,KAAI,WACFR,EAAKH,SAASY,QAAQ,sBAuD9B,OA9FSf,EAAArD,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKkD,QAAQe,YAAYjE,KAAKsC,MAAMuB,SACnCK,WAAU,SAACC,GACVZ,EAAKM,QAAUM,EAEXZ,EAAKM,QAAQO,mBAAwDC,IAAxCd,EAAKM,QAAQO,aAAaE,YACzDf,EAAKM,QAAQO,aAAaE,WAAY,GAEpCf,EAAKM,QAAQU,iBAAoDF,IAAtCd,EAAKM,QAAQU,WAAWD,YACrDf,EAAKM,QAAQU,WAAWD,WAAY,GAGtCf,EAAKD,OAAOkB,kBAGdxE,KAAKkD,QAAQuB,uBACZP,WAAU,SAACQ,GACVnB,EAAKC,iBAAmBkB,EAAKA,KAC7BnB,EAAKD,OAAOkB,mBAITvB,EAAArD,UAAA+E,UAAP,SAAiBC,GACf,OAAQA,EAAMC,IAAIC,WAChB,IAAK,cACH9E,KAAK6E,IAAM,MACX,MACF,IAAK,gBACH7E,KAAK6E,IAAM,QACX,MACF,QACE7E,KAAK6E,IAAM,OAaV5B,EAAArD,UAAAmF,YAAP,WAAA,IAAAxB,EAAAvD,KACMuC,EAAOvC,KAAK6D,QAAQO,aAAaY,KACjCxC,EAASxC,KAAK6D,QAAQO,aAAa5B,OAEvC,GAAIxC,KAAK6D,QAAQO,aAAaa,kBAAmB,CAC/C,IAAMC,EAAkBlF,KAAKwD,iBAC1B2B,MAAK,SAACC,GACL,OAAO7B,EAAKM,QAAQO,aAAaa,oBAAsBG,EAAKC,MAG5DH,IACF3C,EAAO2C,EAAgBI,QAAQC,QAAQ,aAAchD,GACrDC,EAAS0C,EAAgB1C,OAAOgD,OAAOhD,IAI3CxC,KAAKqD,QAAQoC,KAAKpD,EAAkB,CAClCqC,KAAM,CACJlC,OAAMA,EACND,KAAIA,GAENmD,MAAO,SAIJzC,EAAArD,UAAA+F,SAAP,SAAgBC,GAAhB,IAAArC,EAAAvD,KACE6F,EAAAA,IAAG,GACF/B,KACCgC,EAAAA,WAAU,WACR,MAAgB,UAATF,EAAmBrC,EAAKL,QAAQ6C,eAAiBF,EAAAA,GAAG,OAE7DC,EAAAA,WAAU,SAACE,GACT,IAAMC,EAAoB,UAATL,EAAmB,WAAa,eAEjD,OAAOrC,EAAKJ,QAAQ+C,MAAM,CACxBC,MAAO,gBAAgBF,EAAQ,mBAC/BG,MAAO,YACPC,YAAa,OACbC,QAASN,EACTO,UAAU,QAIfrC,WAAU,SAACpC,GACVyB,EAAKL,QAAQsD,YAAYjD,EAAKM,QAAS/B,EAAO8D,GAC3C1B,WAAU,WACTX,EAAKH,SAASY,QAAQ,sFAnG3BtB,EAAAA,OAAMC,KAAA,CAACI,qCACPL,EAAAA,OAAMC,KAAA,CAACC,EAAAA,0BACS6D,EAAAA,gBACCC,EAAAA,iBACDC,EAAAA,iBACDC,EAAAA,qBAdP3D,EAAgBhD,EAAA,CAL5B4C,EAAAA,UAAU,CACTC,SAAA,wlXAEA+D,gBAAiBC,EAAAA,wBAAwBC,8VAWtClG,EAAA,EAAA6B,EAAAA,OAAOK,IACPlC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,uDACS6D,EAAAA,SACCC,EAAAA,UACDC,EAAAA,UACDC,EAAAA,qBAdP3D,eCtBG+D,EAAeC,GAC7B,IAAMC,EAAM,GAKZ,OAJAD,EAAKE,SAAQ,SAAA/B,GACX8B,EAAI9B,EAAKtD,OAASsD,EAAKnD,QAGlBiF,MCPGE,ECAAC,ECAAC,eC8BV,SAAAC,EACyCrE,EAC/BG,GAD+BrD,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EATHrD,KAAAwH,KAAwB,KAExBxH,KAAAyH,OAAuB,KACvBzH,KAAAyD,oBAAsB,GAErBzD,KAAA0H,UAAY,IAAIC,EAAAA,QAyD1B,OAlDSJ,EAAA3H,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKyD,oBAAsBuD,EAAehF,GAE1ChC,KAAKyH,OAAS,CACZG,QAAS,CACP,CACE3F,KAAM,UACN2D,KAAMiC,EAAAA,SAASC,QACf3B,MAAO,WAIX4B,MAAO,SAAAC,GACL,OAAOzE,EAAKL,QAAQ+E,aAAaD,GAChClE,KACCoE,EAAAA,KAAI,SAAA/D,GACF,MAAA,CAAUO,KAAMP,EAASO,KAAMyD,OAAQhE,EAASgE,eAOnDZ,EAAA3H,UAAA6F,KAAP,SAAY5B,GAAZ,IAAAN,EAAAvD,KACoBA,KAAKqD,QAAQoC,KAAKxC,EAAkB,CACpDyB,KAAM,CACJb,QAASA,GAEX6B,MAAO,QAGC0C,cACTtE,KACCuE,EAAAA,UAAUrI,KAAK0H,YAEhBxD,WAAU,SAACC,GACNA,GACFZ,EAAKiE,KAAKc,WACRnE,GACA,SAACoE,GACC,OAAOA,EAAIlD,KAAOlB,EAASkB,UAM9BkC,EAAA3H,UAAA4I,YAAP,WACExI,KAAK0H,UAAU/F,OACf3B,KAAK0H,UAAUe,8EApDd/F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,aATnB1G,EAAA,CADCyI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAHFpB,EAAiBtH,EAAA,CAJ7B4C,EAAAA,UAAU,CACTgG,SAAU,kBACV/F,SAAA,yaAaGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,aAZRY,mBCMb,SAAAuB,KACA,OADaA,EAAyB7I,EAAA,CAfrC8I,EAAAA,SAAS,CACRC,QAAS,CACPC,EAAAA,gBACAC,EAAAA,gBAEAC,EAAAA,eACAC,EAAAA,gBAEFC,aAAc,CACZhH,GAEFiH,QAAS,CACPjH,MAGSyG,mBCsCb,SAAAS,KAAkC,OAArBA,EAAmBtJ,EAAA,CApC/B8I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAC,EAAAA,aACAC,EAAAA,YAEAT,EAAAA,gBACAC,EAAAA,gBACAS,EAAAA,cACAC,EAAAA,mBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,gBACAC,EAAAA,iBACAC,EAAAA,kBAEAd,EAAAA,eACAe,EAAAA,aACAC,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,uBAEA1B,GAEFO,aAAc,CACZ9B,EACAtE,GAEFqG,QAAS,CACP/B,EACAtE,MAGSsG,OLhEb,SAAYnC,GACVA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,SAAA,IAHF,CAAYA,IAAAA,EAAuB,KCAnC,SAAYC,GACVA,EAAA,IAAA,IACAA,EAAA,MAAA,IAFF,CAAYA,IAAAA,EAAgB,KCA5B,SAAYC,GACVA,EAAA,KAAA,IACAA,EAAA,cAAA,IACAA,EAAA,QAAA,IACAA,EAAA,OAAA,IACAA,EAAA,SAAA,IACAA,EAAA,kBAAA,IACAA,EAAA,OAAA,IAPF,CAAYA,IAAAA,EAAiB,KIGtB,IAAMmD,EAAqB,CAChC,CAAExI,KAAM,OAAQH,MAAOwF,EAAkBoD,MACzC,CAAEzI,KAAM,iBAAkBH,MAAOwF,EAAkBqD,eACnD,CAAE1I,KAAM,UAAWH,MAAOwF,EAAkBsD,SAC5C,CAAE3I,KAAM,SAAUH,MAAOwF,EAAkBuD,QAC3C,CAAE5I,KAAM,WAAYH,MAAOwF,EAAkBwD,UAC7C,CAAE7I,KAAM,qBAAsBH,MAAOwF,EAAkByD,mBACvD,CAAE9I,KAAM,SAAUH,MAAOwF,EAAkB0D,sBCoC3C,SAAAC,EACyC/H,EAC/BE,EACAD,EACAE,EACyBf,GAJMtC,KAAAkD,QAAAA,EAC/BlD,KAAAoD,SAAAA,EACApD,KAAAmD,QAAAA,EACAnD,KAAAqD,QAAAA,EACyBrD,KAAAsC,MAAAA,EAb5BtC,KAAAkL,uBAAyB,GACzBlL,KAAAmL,wBAA0B/D,EAKzBpH,KAAA0H,UAAY,IAAIC,EAAAA,QA0K1B,OA/JSsD,EAAArL,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKoL,mBAAqBpE,EAAeyD,GACzCzK,KAAKqL,mBAAqBrL,KAAKkD,QAAQmI,mBACvCrL,KAAKsL,oBAAsBtL,KAAKkD,QAAQoI,oBAExCtL,KAAKkD,QAAQqI,iBAAiBvL,KAAKsC,MAAMkJ,aAAanG,IACrDnB,WAAU,SAACsH,GAGV,GAFAjI,EAAKiI,aAAeA,EAEhBjI,EAAKiI,aAAaC,kBAAmB,CACvC,IAAIzG,EAAOzB,EAAKiI,aAAaC,kBAAkBzG,KAC/C,GAAIzB,EAAKiI,aAAaC,kBAAkBC,SAAWtE,EAAwBjF,KACzE,IACE,IAAMwJ,GAAM,IAAIC,WAAYC,gBAAgB7G,EAAM,aAElD2G,EAAIG,iBAAiB,KAAK3E,SAAQ,SAAC4E,GACjCA,EAAGC,aAAa,SAAU,aAG5BhH,EAAO2G,EAAIM,gBAAgBC,UAE3B,MAAOzK,SAGTuD,EAAOzB,EAAK4I,SAASnH,GAGvBzB,EAAKiI,aAAaC,kBAAkBzG,KAAOA,EAGzCzB,EAAKiI,aAAaY,kBACpB7I,EAAKiI,aAAaY,gBAAgBpH,KAAOzB,EAAK4I,SAAS5I,EAAKiI,aAAaY,gBAAgBpH,OAG3FzB,EAAK2H,uBAAyB3H,EAAKiI,aAAaN,uBAC7CmB,QAAO,SAACC,EAAOC,GAGd,OAFAD,EAAMC,EAAsBC,WAAaD,EAAsBE,MAExDH,IACN,IAEL/I,EAAKmJ,eAAelB,GACpBjI,EAAKoJ,sBAAsBnB,OAIxBP,EAAArL,UAAAuM,SAAP,SAAgB5J,GACd,OAAO4J,EAAS5J,EAAM,CACpBqK,QAAS,CACPC,WAAY,CACV,CACE5K,KAAM,SACNH,MAAO,eAOVmJ,EAAArL,UAAAkN,YAAP,SAAmBjJ,GACjB7D,KAAKqD,QAAQoC,KAAKxC,EAAkB,CAClCyB,KAAM,CACJb,QAASA,GAEX6B,MAAO,SAIJuF,EAAArL,UAAAmN,OAAP,WAAA,IAAAxJ,EAAAvD,KACEA,KAAKmD,QAAQ6J,QAAQ,CACnB5G,MAAO,UACPtD,SAAU,wDACToB,WAAU,WACXX,EAAK8H,mBAAmB9H,EAAKiI,cAC5BtH,WAAU,SAAAsH,GACTrM,OAAOC,OAAOmE,EAAKiI,aAAcA,GACjCjI,EAAKH,SAASY,QAAQ,uBAElBT,EAAK0J,SACP1J,EAAK0J,QAAQC,gBAMdjC,EAAArL,UAAAuN,QAAP,WAAA,IAAA5J,EAAAvD,KACQiG,EAAWjG,KAAKwL,aAAa5F,OAASyB,EAAiB+F,MAAQ,WAAa,iBAElFpN,KAAKmD,QAAQ+C,MAAM,CACjBC,MAAO,gBAAgBF,EAAQ,iBAC/BG,MAAO,kBACPC,YAAa,UACbE,UAAU,IACTrC,WAAU,SAACpC,GACRA,GACFyB,EAAK+H,oBAAoB/H,EAAKiI,aAAc1J,GAC3CoC,WAAU,SAAAsH,GACTjI,EAAKiI,aAAYtM,EAAAA,EAAA,GACZqE,EAAKiI,cAAY,CACpBA,aAAYA,IAEdjI,EAAKH,SAASY,QAAQ,0BAElBT,EAAK0J,SACP1J,EAAK0J,QAAQC,gBAOhBjC,EAAArL,UAAA4I,YAAP,WACExI,KAAK0H,UAAU/F,OACf3B,KAAK0H,UAAUe,YAGTwC,EAAArL,UAAA8M,eAAR,SAAuBlB,GAAvB,IAAAjI,EAAAvD,KACEA,KAAKqN,UAAY,CACfC,UAAU,EACVC,YAAY,EACZxF,MAAO,SAAAC,GACL,OAAOzE,EAAKL,QAAQsK,SAAShC,EAAcxD,MAKzCiD,EAAArL,UAAA+M,sBAAR,SAA8BnB,GAA9B,IAAAjI,EAAAvD,KACEA,KAAKyN,iBAAmB,CACtBF,YAAY,EACZxF,MAAO,SAAAC,GACL,OAAOzE,EAAKL,QAAQwK,4BAA4BlC,EAAcxD,GAC3DlE,KACCoE,EAAAA,KAAI,SAAA/D,GAAY,MAAA,CACdO,KAAMP,EAASO,KAAKwD,KAAI,SAAApG,GAEtB,OADAA,EAAM6L,eAAiBpK,EAAKqK,gBAAgB9L,EAAM+L,UAC3C/L,KACLqG,OAAQhE,EAASgE,cAM3BnI,KAAKkD,QAAQ4K,iCACf9N,KAAKyN,iBAAiBM,WAAa,CACjC,CACEC,MAAO,SAACC,GACN1K,EAAKL,QAAQ4K,+BAA+BG,EAAmB1K,EAAKiI,eAEtErF,MAAO,eAMP8E,EAAArL,UAAAgO,gBAAR,SAAwBM,GACtB,GAAc,IAAVA,EAAe,MAAO,SAC1B,IAAMzM,EAAI0M,KAAKC,MAAMD,KAAKE,IAAIH,GAASC,KAAKE,IAAI,OAChD,OAAQH,EAAQC,KAAKG,IAAI,KAAM7M,IAAI8M,QAAQ,GAAK,IAAM,SAASC,OAAO/M,GAAK,uEArK1EiB,EAAAA,OAAMC,KAAA,CAACI,YACU2D,EAAAA,iBACDD,EAAAA,gBACAE,EAAAA,0CAChBjE,EAAAA,OAAMC,KAAA,CAACC,EAAAA,sBAnBV3C,EAAA,CADCyI,EAAAA,UAAU,2BACKC,EAAAA,gDAHLsC,EAAchL,EAAA,CAJ1B4C,EAAAA,UAAU,CACTC,SAAA,kwPAqBGjC,EAAA,EAAA6B,EAAAA,OAAOK,IAIPlC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,gDAHU8D,EAAAA,UACDD,EAAAA,SACAE,EAAAA,UAASxH,UArBjB8L,mBCQX,SAAAwD,EACyCvL,EAC/BG,GAD+BrD,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EAZHrD,KAAAwH,KAAwB,KAEfxH,KAAAgI,MAAQ,GAEjBhI,KAAAyH,OAAuB,KACvBzH,KAAAoL,mBAAqB,GACrBpL,KAAAsH,kBAAoBA,EAEnBtH,KAAA0H,UAAY,IAAIC,EAAAA,QAwI1B,OAjIS8G,EAAA7O,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKoL,mBAAqBpE,EAAeyD,GAEzCzK,KAAKyH,OAAS,CACZG,QAAS,CACP,CACE3F,KAAM,UACN2D,KAAMiC,EAAAA,SAASC,QACf3B,MAAO,UAET,CACElE,KAAM,QACN2D,KAAMiC,EAAAA,SAAS6G,OACfvI,MAAO,SACPwI,OAAQ,WACN,OAAOlE,IAGX,CACExI,KAAM,OACN2D,KAAMiC,EAAAA,SAAS+G,UACfzI,MAAO,CAAC,YAAa,aAGzB0I,KAAM,CAAE/M,MAAO,eAAgBgN,UAAW,QAC1C/G,MAAO,SAAAC,GAUL,OATAA,EAAK9I,EAAAA,EAAAA,EAAA,GACA8I,GACAzE,EAAKyE,OAAK,CACb+G,8BAA8B,EAC9BC,oBAAoB,EACpBC,yBAAyB,EACzBC,kBAAkB,IAGb3L,EAAKL,QAAQiM,kBAAkBnH,GACnClE,KACCoE,EAAAA,KAAI,SAAA/D,GAAY,MAAA,CAAGO,KAAMP,EAASO,KAC/BwD,KAAI,SAACsD,GACJ,OAAAtM,EAAAA,EAAA,GACKsM,GAAY,CACfN,uBAAwBM,EAAaN,uBACpCmB,QAAO,SAACC,EAAOC,GAGd,OAFAD,EAAMC,EAAsBC,WAAaD,EAAsBE,MAExDH,IACN,SAEHnE,OAAQhE,EAASgE,cAM3BnI,KAAKkD,QAAQkM,sBACfpP,KAAKyH,OAAO4H,UAAY,CACtBC,WAAW,EACXC,QAAS,GAETC,eAAgB,SAACC,GACf,OAAO5J,EAAAA,IAAG,GACP/B,KACCgC,EAAAA,WAAU,WACR,MAA2B,WAAvB2J,EAAOA,OAAOxN,KACTsB,EAAKL,QAAQkM,oBAAoBK,GAGnC5J,EAAAA,IAAG,MAEZ9B,EAAAA,KAAI,WACFR,EAAKiE,KAAK0F,gBAQlBlN,KAAKkD,QAAQkM,qBACfpP,KAAKyH,OAAO4H,UAAUE,QAAQ1N,KAAK,CACjC+D,KAAM8J,EAAAA,oBAAoBC,OAC1B1N,KAAM,SACNkE,MAAO,kBAIXnG,KAAKyH,OAAOG,QAAQ/F,KAAK,CACvBI,KAAM,aACN2D,KAAMiC,EAAAA,SAAS6G,OACfvI,MAAO,eACPwI,OAAQ,SAAC3G,GAMP,OALAA,EAAK9I,EAAAA,EAAA,GACA8I,GAAK,CACR4H,MAAO,KAGFrM,EAAKL,QAAQ+E,aAAaD,GAC9BlE,KACCoE,EAAAA,KAAI,SAAC/D,GACH,OfEP,WACH,IAAK,IAAIzC,EAAK,GAAInC,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAC3CmC,EAAKA,EAAG8D,OAAOpE,EAAO3B,UAAUF,KACpC,OAAOmC,EeLGmO,CAAA,CACE,CAAE/N,MAAO,KAAMG,KAAM,QAClBkC,EAASO,KAAKwD,KAAI,SAAC9C,GAAS,MAAA,CAAGnD,KAAMmD,EAAKnD,KAAMH,MAAOsD,EAAKC,gBAQtEoJ,EAAA7O,UAAA6F,KAAP,SAAY+F,GAAZ,IAAAjI,EAAAvD,KACEA,KAAKqD,QAAQoC,KAAKwF,EAAgB,CAChCvG,KAAM,CACJ8G,aAAcA,GAEhB9F,MAAO,QAEN0C,cACAtE,KACCuE,EAAAA,UAAUrI,KAAK0H,YAEhBxD,WAAU,WACTX,EAAKiE,KAAK0F,aAITuB,EAAA7O,UAAA4I,YAAP,WACExI,KAAK0H,UAAU/F,OACf3B,KAAK0H,UAAUe,8EAnId/F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,aAZnB1G,EAAA,CADCyI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAEJ1I,EAAA,CAAR6P,EAAAA,6DALUrB,EAAexO,EAAA,CAL3B4C,EAAAA,UAAU,CACTgG,SAAU,wBAEV/F,SAAA,g+FAgBGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,aAfR8H,mBClBb,SAAAsB,KAWA,OAVEA,EAAAnQ,UAAAoQ,UAAA,SAAUlO,GACR,OAAOqK,EAASrK,EAAO,CACrB+K,WAAY,CACV,CACE5K,KAAM,SACNH,MAAO,cANJiO,EAAW9P,EAAA,CADvBgQ,EAAAA,KAAK,CAAChO,KAAM,aACA8N,mBCDb,SAAAG,KAYA,OAXAA,EAAAtQ,UAAAoQ,UAAA,SAAUlO,EAAe8N,EAAYO,EAAuBC,GAE1D,YAFuB,IAAAR,IAAAA,EAAA,SAAY,IAAAO,IAAAA,GAAA,QAAuB,IAAAC,IAAAA,EAAA,OAEtDtO,EAAMpC,OAASkQ,EACV,GAAG9N,EAAMuO,OAAO,EAAGT,IAGvBO,IACFP,EAAQ9N,EAAMuO,OAAO,EAAGT,GAAOU,YAAY,MAEtC,GAAGxO,EAAMuO,OAAO,EAAGT,GAASQ,IAVzBF,EAAYjQ,EAAA,CAHxBgQ,EAAAA,KAAK,CACJhO,KAAM,cAEKiO,oBCMb,SAAAK,KAkBA,OAXSA,EAAA3Q,UAAA6C,SAAP,WAQEzC,KAAKwQ,KANS,CACZC,EAAK,CAAExO,KAAM,eAAgByO,QAAS,QACtCC,EAAK,CAAE1O,KAAM,eAAgByO,QAAS,WACtCE,EAAK,CAAE3O,KAAM,OAAQyO,QAAS,WAGd1Q,KAAKyM,QAbhBxM,EAAA,CAAR6P,EAAAA,4DACQ7P,EAAA,CAAR6P,EAAAA,6DAHUS,EAAkBtQ,EAAA,CAL9B4C,EAAAA,UAAU,CACTgG,SAAU,gBACV/F,SAAA,saAGWyN,oBCuDb,SAAAM,KAAuC,OAA1BA,EAAwB5Q,EAAA,CApCpC8I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAE,EAAAA,YACAD,EAAAA,aAEAW,EAAAA,iBAEAJ,EAAAA,iBACAf,EAAAA,gBACAC,EAAAA,gBACA4H,EAAAA,cACAnH,EAAAA,cAEAO,EAAAA,aACAf,EAAAA,eACAgB,EAAAA,cACA4G,EAAAA,aACA1G,EAAAA,iBACAd,EACAe,EAAAA,aACA0G,EAAAA,oBACA5H,EAAAA,gBAEFC,aAAc,CACZoF,EACAxD,EACA8E,EACAG,EACAK,IAEFjH,QAAS,CACPmF,EACAxD,MAGS4F,oBChCX,SAAAI,EACmC3O,EACMY,EAC/BgO,EACA9N,EACAC,GALV,IAAAE,EAAAvD,KACmCA,KAAAsC,MAAAA,EACMtC,KAAAkD,QAAAA,EAC/BlD,KAAAkR,WAAAA,EACAlR,KAAAoD,SAAAA,EACApD,KAAAqD,QAAAA,EAjBHrD,KAAAmR,iBAAuC,CAC5CC,SAAU,OACVC,cAAc,EACdC,QAAS,GAGJtR,KAAAuR,gBAAsC,CAC3CH,SAAU,OACVC,cAAc,EACdC,QAAS,GAiCJtR,KAAA2D,KAAO,SAACiB,GACb,OAAOrB,EAAKL,QAAQsO,oBAAoBjO,EAAK2B,iBAC5CpB,KACCC,EAAAA,KAAI,SAAAmB,GACF3B,EAAKH,SAASY,QAAQ,iBACE,eAApBY,EAAM6M,WACRlO,EAAK2N,WAAWQ,MAAMxM,QAKhC,OAhCS+L,EAAArR,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACMA,KAAKsC,MAAM4C,gBAAgBG,GAC7BrF,KAAKkD,QAAQyO,oBAAoB3R,KAAKsC,MAAM4C,iBAC3ChB,WAAU,SAAAgB,GACT3B,EAAK2B,gBAAkBA,KAGzBlF,KAAKkF,gBAAkB,IAIpB+L,EAAArR,UAAAmF,YAAP,WACE/E,KAAKqD,QAAQoC,KAAKpD,EAAkB,CAClCqC,KAAM,CACJlC,OAAQxC,KAAKkF,gBAAgB1C,OAC7BD,KAAMvC,KAAKkF,gBAAgBI,SAE7BI,MAAO,2EAzBRhD,EAAAA,OAAMC,KAAA,CAACC,EAAAA,mDACPF,EAAAA,OAAMC,KAAA,CAACI,YACY6O,EAAAA,oBACFlL,EAAAA,iBACDC,EAAAA,aApBRsK,EAAiBhR,EAAA,CAJ7B4C,EAAAA,UAAU,CACTC,SAAA,unEAmBGjC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,kBACP/B,EAAA,EAAA6B,EAAAA,OAAOK,yCACY6O,EAAAA,aACFlL,EAAAA,UACDC,EAAAA,aApBRsK,oBCQX,SAAAY,EACyC3O,EAC/BG,GAD+BrD,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EATHrD,KAAAwH,KAAwB,KAExBxH,KAAAyH,OAAuB,KACvBzH,KAAAoL,mBAAqB,GAEpBpL,KAAA0H,UAAY,IAAIC,EAAAA,QAuE1B,OAhESkK,EAAAjS,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKyH,OAAS,CACZ8H,QAAS,CACP,CACEpJ,MAAO,SACP6H,MAAO,WACLzK,EAAKkC,KAAK,OAIhBqM,QAAQ,EACR/J,MAAO,SAAAC,GACL,OAAOzE,EAAKL,QAAQuB,qBAAqBuD,KAIzChI,KAAKkD,QAAQ6O,wBACf/R,KAAKyH,OAAOsG,WAAa,CACvB,CACEC,MAAO,SAAAtJ,GACL,OAAOnB,EAAKL,QAAQ6O,sBAAsBrN,IAE5CsN,OAAQ,CACN5L,MAAO,UACPtD,SAAU,wDAEZmP,MAAM,EACN9L,MAAO,aAMR0L,EAAAjS,UAAA6F,KAAP,SAAYP,GAAZ,IAAA3B,EAAAvD,KACoBA,KAAKqD,QAAQoC,KAAKwL,GAAmB,CACrDvM,KAAM,CACJQ,gBAAiBA,GAEnBQ,MAAO,QAGC0C,cACTtE,KACCuE,EAAAA,UAAUrI,KAAK0H,YAEhBxD,WAAU,SAACC,GACNA,IACaZ,EAAKiE,KAAKc,WACvBnE,GACA,SAACoE,GACC,OAAOA,EAAIlD,KAAOlB,EAASkB,OAI7B9B,EAAKiE,KAAK0F,cAMX2E,EAAAjS,UAAA4I,YAAP,WACExI,KAAK0H,UAAU/F,OACf3B,KAAK0H,UAAUe,8EAlEd/F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,aATnB1G,EAAA,CADCyI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAHFkJ,EAAkB5R,EAAA,CAJ9B4C,EAAAA,UAAU,CACTgG,SAAU,2BACV/F,SAAA,mNAaGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,aAZRkL,oBC0Cb,SAAAK,KACA,OADaA,EAA2BjS,EAAA,CAjCvC8I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAC,EAAAA,aACAC,EAAAA,YAEAM,EAAAA,iBACAf,EAAAA,gBACAC,EAAAA,gBACAS,EAAAA,cACAC,EAAAA,mBACAA,EAAAA,mBACAC,EAAAA,eAEAK,EAAAA,aACAf,EAAAA,eACAgB,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBAEAzB,GAEFO,aAAc,CACZwI,GACAZ,IAEF3H,QAAS,CACPuI,GACAZ,OAGSiB,oBCrCX,SAAAC,EACyCjP,EAC/BE,GAD+BpD,KAAAkD,QAAAA,EAC/BlD,KAAAoD,SAAAA,EAsCZ,OAnCS+O,EAAAvS,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKoS,WAAa,CAChBjK,QAAQ,EACRoH,QAAS,CACP,CACEvB,MAAO,WACLzK,EAAKL,QAAQmP,gBACVnO,WAAU,WACTX,EAAKH,SAASY,QAAQ,mBACtBT,EAAKiE,KAAK0F,aAGhB/G,MAAO,WAGX4H,WAAY,CACV,CACEC,MAAO,SAACsE,GACN/O,EAAKL,QAAQqP,cAAcD,GACxBpO,WAAU,WACTX,EAAKH,SAASY,QAAQ,mBACtBT,EAAKiE,KAAK0F,aAGhB/G,MAAO,WAGX4B,MAAO,WACL,OAAOxE,EAAKL,QAAQsP,eACjB1O,KACCoE,EAAAA,KAAI,SAACuK,GAAa,MAAA,CAAG/N,KAAM+N,4EAlClC/P,EAAAA,OAAMC,KAAA,CAACI,YACU2D,EAAAA,aANpBzG,EAAA,CADCyI,EAAAA,UAAUC,EAAAA,iCACEA,EAAAA,6CAHFwJ,EAAiBlS,EAAA,CAJ7B4C,EAAAA,UAAU,CACTgG,SAAU,0BACV/F,SAAA,8WAUGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACU2D,EAAAA,aATTyL,oBCKb,SAAAO,KAAyC,OAA5BA,EAA0BzS,EAAA,CAbtC8I,EAAAA,SAAS,CACRC,QAAS,CACPkB,EAAAA,aAEA6G,EAAAA,cAEF1H,aAAc,CACZ8I,IAEF7I,QAAS,CACP6I,OAGSO,oBCfb,SAAAC,WAMA,SANaA,EACJA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUC,IAHHH,EAAkBG,EAAA7S,EAAA,CAF9B8I,EAAAA,SAAS,KAEG4J","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum EmailMessageFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","\nimport { EmailMessageFormat } from '../enums';\n\nexport const EmailMessageFormats = [\n { name: 'Text', value: EmailMessageFormat.Text },\n { name: 'HTML', value: EmailMessageFormat.HTML },\n { name: 'Rich Text', value: EmailMessageFormat.RichText }\n];\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n\n@Component({\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss']\n})\nexport class PreviewComponent implements OnInit {\n\n public html;\n public styles;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n this.html = _data.html;\n this.styles = _data.styles;\n }\n\n public ngOnInit() {\n\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_MESSAGE_ROOT_CONFIG = new InjectionToken<any[]>('fs-app-message-root-config');\nexport const FS_APP_MESSAGE_CONFIG = new InjectionToken<any[]>('fs-app-message-config');\n","import { Component, OnInit, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { EmailMessageFormats } from '../../consts';\nimport { EmailMessageFormat } from '../../enums';\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { of } from 'rxjs';\n\n\n@Component({\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageComponent implements OnInit {\n\n public message;\n public tab;\n public messageTemplates = [];\n public emailMessageFormats = EmailMessageFormats;\n public emailMessageFormat = EmailMessageFormat;\n\n public constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _prompt: FsPrompt,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this._config.loadMessage(this._data.message)\n .subscribe((response) => {\n this.message = response;\n\n if (this.message.emailMessage && this.message.emailMessage.customize === undefined) {\n this.message.emailMessage.customize = true;\n }\n if (this.message.smsMessage && this.message.smsMessage.customize === undefined) {\n this.message.smsMessage.customize = true;\n }\n\n this._cdRef.markForCheck();\n });\n\n this._config.loadMessageTemplates()\n .subscribe((data) => {\n this.messageTemplates = data.data;\n this._cdRef.markForCheck();\n });\n }\n\n public tabChange(event: MatTabChangeEvent) {\n switch (event.tab.textLabel) {\n case 'SMS Message':\n this.tab = 'sms';\n break;\n case 'Email Message':\n this.tab = 'email';\n break;\n default:\n this.tab = null;\n }\n }\n\n public save = () => {\n return this._config.saveMessage(this.message)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n })\n );\n }\n\n public openPreview(): void {\n let html = this.message.emailMessage.body;\n let styles = this.message.emailMessage.styles;\n\n if (this.message.emailMessage.messageTemplateId) {\n const messageTemplate = this.messageTemplates\n .find((item) => {\n return this.message.emailMessage.messageTemplateId === item.id;\n });\n\n if (messageTemplate) {\n html = messageTemplate.content.replace('{$content}', html);\n styles = messageTemplate.styles.concat(styles);\n }\n }\n\n this._dialog.open(PreviewComponent, {\n data: {\n styles,\n html,\n },\n width: '95%'\n });\n }\n\n public sendTest(type) {\n of(true)\n .pipe(\n switchMap(() => {\n return type === 'email' ? this._config.getTestEmail() : of('');\n }),\n switchMap((default_) => { \n const typeName = type === 'email' ? 'an email' : 'phone number';\n \n return this._prompt.input({\n label: `Please enter ${typeName} to send test to`,\n title: 'Send Test',\n commitLabel: 'Send',\n default: default_,\n required: true\n })\n })\n )\n .subscribe((value: string) => {\n this._config.testMessage(this.message, value, type)\n .subscribe(() => {\n this._message.success('Test Sent');\n });\n });\n }\n}\n","\nexport function indexNameValue(arry) {\n const obj = {};\n arry.forEach(item => {\n obj[item.value] = item.name;\n });\n\n return obj;\n}\n","export enum EmailMessageQueueFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","export enum MessageQueueType {\n Sms = 'S',\n Email = 'E'\n}\n","export enum MessageQueueState {\n Sent = 'S',\n PartiallySent = 'P',\n Sending = 'E',\n Queued = 'Q',\n Canceled = 'C',\n InvalidRecipients = 'I',\n Failed = 'F'\n}","import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { MessageComponent } from '../message';\nimport { EmailMessageFormats } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n@Component({\n selector: 'fs-app-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public emailMessageFormats = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.emailMessageFormats = indexNameValue(EmailMessageFormats);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n }\n ],\n\n fetch: query => {\n return this._config.loadMessages(query)\n .pipe(\n map(response => {\n return ({ data: response.data, paging: response.paging })\n })\n );\n }\n }\n }\n\n public open(message) {\n const dialogRef = this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((response) => {\n if (response) {\n this.list.updateData(\n response,\n (row: any) => {\n return row.id === response.id;\n });\n }\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { PreviewComponent } from './components/preview';\n\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n\n FsDialogModule,\n FsIFrameModule,\n ],\n declarations: [\n PreviewComponent,\n ],\n exports: [\n PreviewComponent,\n ]\n})\nexport class FsAppMessagePreviewModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\nimport { FsEditorRichTextModule } from '@firestitch/editor';\n\nimport { MessagesComponent } from './components/messages/messages.component';\nimport { MessageComponent } from './components/message/message.component';\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatOptionModule,\n MatSelectModule,\n MatTooltipModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsLabelModule,\n FlexLayoutModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n FsEditorRichTextModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n MessagesComponent,\n MessageComponent,\n ],\n exports: [\n MessagesComponent,\n MessageComponent,\n ],\n})\nexport class FsAppMessagesModule {}\n","import { MessageQueueState } from '../enums/message-queue-state.enum';\n\n\nexport const MessageQueueStates = [\n { name: 'Sent', value: MessageQueueState.Sent },\n { name: 'Partially Sent', value: MessageQueueState.PartiallySent },\n { name: 'Sending', value: MessageQueueState.Sending },\n { name: 'Queued', value: MessageQueueState.Queued },\n { name: 'Canceled', value: MessageQueueState.Canceled },\n { name: 'Invalid Recipients', value: MessageQueueState.InvalidRecipients },\n { name: 'Failed', value: MessageQueueState.Failed }\n];\n","import {\n Component, OnInit, Inject, OnDestroy, ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport anchorme from 'anchorme';\n\nimport { EmailMessageQueueFormat } from '../../enums';\nimport { MessageQueueStates } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageComponent } from '../../../../modules/messages/components';\nimport { MessageQueueType } from '../../enums';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { ResendMessageQueue, ForwardMessageQueue, LoadMessage } from '../../../app-message/types';\n\n\n@Component({\n templateUrl: './queue.component.html',\n styleUrls: ['./queue.component.scss'],\n})\nexport class QueueComponent implements OnInit, OnDestroy {\n\n @ViewChild('logList')\n public logList: FsListComponent;\n\n public messageQueue;\n public loadMessage: LoadMessage;\n public resendMessageQueue: ResendMessageQueue;\n public forwardMessageQueue: ForwardMessageQueue;\n public messageQueueRecipients = {};\n public emailMessageQueueFormat = EmailMessageQueueFormat;\n public messageQueueStates;\n public logConfig: FsListConfig;\n public attachmentConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.resendMessageQueue = this._config.resendMessageQueue;\n this.forwardMessageQueue = this._config.forwardMessageQueue;\n\n this._config.loadMessageQueue(this._data.messageQueue.id)\n .subscribe((messageQueue) => {\n this.messageQueue = messageQueue;\n\n if (this.messageQueue.emailMessageQueue) {\n let body = this.messageQueue.emailMessageQueue.body;\n if (this.messageQueue.emailMessageQueue.format === EmailMessageQueueFormat.HTML) {\n try {\n const doc = new DOMParser().parseFromString(body, 'text/html');\n\n doc.querySelectorAll('a').forEach((el) => {\n el.setAttribute('target', '_blank');\n });\n\n body = doc.documentElement.innerHTML;\n\n } catch (e) {\n }\n } else {\n body = this.anchorme(body);\n }\n\n this.messageQueue.emailMessageQueue.body = body;\n }\n\n if (this.messageQueue.smsMessageQueue) {\n this.messageQueue.smsMessageQueue.body = this.anchorme(this.messageQueue.smsMessageQueue.body);\n }\n\n this.messageQueueRecipients = this.messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {});\n\n this._setLogsConfig(messageQueue);\n this._setAttachmentsConfig(messageQueue);\n });\n }\n\n public anchorme(html) {\n return anchorme(html, {\n options: {\n attributes: [\n {\n name: 'target',\n value: '_blank'\n },\n ],\n },\n });\n }\n\n public openMessage(message) {\n this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n }\n\n public resend() {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Are you sure you would like to resend this message?'\n }).subscribe(() => {\n this.resendMessageQueue(this.messageQueue)\n .subscribe(messageQueue => {\n Object.assign(this.messageQueue, messageQueue);\n this._message.success('Successfully resent');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n });\n }\n\n public forward() {\n const typeName = this.messageQueue.type === MessageQueueType.Email ? 'an email' : 'a phone number';\n\n this._prompt.input({\n label: `Please enter ${typeName} to forward to`,\n title: 'Forward Message',\n commitLabel: 'Forward',\n required: true\n }).subscribe((value: string) => {\n if (value) {\n this.forwardMessageQueue(this.messageQueue, value)\n .subscribe(messageQueue => {\n this.messageQueue = {\n ...this.messageQueue,\n messageQueue,\n };\n this._message.success('Successfully forwarded');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n }\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _setLogsConfig(messageQueue) {\n this.logConfig = {\n loadMore: true,\n queryParam: false,\n fetch: query => {\n return this._config.loadLogs(messageQueue, query);\n }\n }\n }\n\n private _setAttachmentsConfig(messageQueue) {\n this.attachmentConfig = {\n queryParam: false,\n fetch: query => {\n return this._config.loadMessageQueueAttachments(messageQueue, query)\n .pipe(\n map(response => ({\n data: response.data.map(value => {\n value.prettyFilesize = this._prettyFilesize(value.filesize);\n return value;\n }), paging: response.paging\n }))\n );\n }\n };\n\n if (this._config.downloadMessageQueueAttachment) {\n this.attachmentConfig.rowActions = [\n {\n click: (messageAttachment) => {\n this._config.downloadMessageQueueAttachment(messageAttachment, this.messageQueue);\n },\n label: 'Download',\n }\n ];\n }\n }\n\n private _prettyFilesize(bytes) {\n if (bytes === 0) { return '0.00 B'; }\n const e = Math.floor(Math.log(bytes) / Math.log(1024));\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + ' KMGTP'.charAt(e) + 'B';\n }\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map, switchMap, tap } from 'rxjs/operators';\nimport { Subject, of } from 'rxjs';\n\nimport { FsListActionSelected, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { SelectionActionType } from '@firestitch/selection';\n\nimport { QueueComponent } from '../queue';\nimport { MessageQueueStates } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageQueueState } from '../../enums/message-queue-state.enum';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n selector: 'fs-app-message-queues',\n styleUrls: ['./queues.component.scss'],\n templateUrl: './queues.component.html'\n})\nexport class QueuesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n @Input() public query = {};\n\n public config: FsListConfig = null;\n public messageQueueStates = {};\n public MessageQueueState = MessageQueueState;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig, \n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n },\n {\n name: 'state',\n type: ItemType.Select,\n label: 'Status',\n values: () => {\n return MessageQueueStates;\n }\n },\n {\n name: 'date',\n type: ItemType.DateRange,\n label: ['From Date', 'To Date'],\n },\n ],\n sort: { value: 'created_date', direction: 'desc' },\n fetch: query => {\n query = {\n ...query,\n ...this.query,\n messageQueueAttachmentCounts: true,\n emailMessageQueues: true,\n emailMessageQueueBodies: false,\n smsMessageQueues: true,\n };\n\n return this._config.loadMessageQueues(query)\n .pipe(\n map(response => ({ data: response.data\n .map((messageQueue) => { \n return {\n ...messageQueue,\n messageQueueRecipients: messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {}),\n };\n }), paging: response.paging }))\n )\n }\n };\n\n // if any bulk actions add the selection object to config.\n if (this._config.cancelMessageQueues) {\n this.config.selection = {\n selectAll: false,\n actions: [\n ],\n actionSelected: (action: FsListActionSelected) => {\n return of(true)\n .pipe(\n switchMap(() => {\n if (action.action.name === 'cancel') {\n return this._config.cancelMessageQueues(action);\n }\n\n return of(true);\n }),\n tap(() => {\n this.list.reload();\n }),\n );\n }\n };\n }\n\n // add each individual bulk action to select actions\n if (this._config.cancelMessageQueues) {\n this.config.selection.actions.push({\n type: SelectionActionType.Action,\n name: 'cancel',\n label: 'Cancel Queued',\n });\n }\n\n this.config.filters.push({\n name: 'message_id',\n type: ItemType.Select,\n label: 'Message Type',\n values: (query) => {\n query = { \n ...query,\n limit: 50,\n };\n\n return this._config.loadMessages(query)\n .pipe(\n map((response) => {\n return [\n { value: null, name: 'All', },\n ...response.data.map((item) => ({ name: item.name, value: item.id })),\n ];\n })\n )\n }\n });\n }\n\n public open(messageQueue) {\n this._dialog.open(QueueComponent, {\n data: {\n messageQueue: messageQueue,\n },\n width: '85%'\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport anchorme from 'anchorme';\n\n\n@Pipe({name: 'linkify'})\nexport class LinkifyPipe implements PipeTransform {\n transform(value: string): string {\n return anchorme(value, {\n attributes: [\n {\n name: 'target',\n value: '_blank'\n },\n ]\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\ntransform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n\n if (value.length < limit) {\n return `${value.substr(0, limit)}`;\n }\n\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n return `${value.substr(0, limit)}${ellipsis}`;\n}\n}\n","import {\n Component, Input, OnInit,\n} from '@angular/core';\n\n\n\n@Component({\n selector: 'app-recipient',\n templateUrl: './recipient.component.html',\n styleUrls: ['./recipient.component.scss'],\n})\nexport class RecipientComponent implements OnInit {\n \n @Input() name;\n @Input() state;\n \n public icon;\n\n public ngOnInit(): void {\n \n const icons = {\n 'S': { name: 'check_circle', tooltip: 'Sent' },\n 'E': { name: 'offline_bolt', tooltip: 'Sending' },\n 'F': { name: 'info', tooltip: 'Failed' },\n }\n\n this.icon = icons[this.state];\n }\n\n}\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsPromptInputModule } from '@firestitch/prompt';\n\nimport { FsAppMessagesModule } from '../messages/messages.module';\nimport { QueuesComponent } from './components/queues/queues.component';\nimport { QueueComponent } from './components/queue/queue.component';\nimport { LinkifyPipe } from './pipes/linkify.pipe';\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { RecipientComponent } from './components';\n\n\n@NgModule({\n imports: [\n RouterModule,\n FormsModule,\n CommonModule,\n\n FlexLayoutModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatTabsModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsDateModule,\n FsSkeletonModule,\n FsAppMessagesModule,\n FsFormModule,\n FsPromptInputModule,\n FsIFrameModule,\n ],\n declarations: [\n QueuesComponent,\n QueueComponent,\n LinkifyPipe,\n TruncatePipe,\n RecipientComponent,\n ],\n exports: [\n QueuesComponent,\n QueueComponent,\n ]\n})\nexport class FsAppMessageQueuesModule {}\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\n\nimport { tap } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\nimport { SubmitEvent } from '@firestitch/form';\n\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n templateUrl: './template.component.html',\n styleUrls: ['./template.component.scss']\n})\nexport class TemplateComponent implements OnInit {\n\n public messageTemplate;\n public htmlEditorconfig: FsTextEditorConfig = {\n language: 'html',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public cssEditorconfig: FsTextEditorConfig = {\n language: 'scss',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialogRef: MatDialogRef<TemplateComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n ) {\n }\n\n public ngOnInit(): void {\n if (this._data.messageTemplate.id) {\n this._config.loadMessageTemplate(this._data.messageTemplate)\n .subscribe(messageTemplate => {\n this.messageTemplate = messageTemplate;\n });\n } else {\n this.messageTemplate = {};\n }\n }\n\n public openPreview() {\n this._dialog.open(PreviewComponent, {\n data: {\n styles: this.messageTemplate.styles,\n html: this.messageTemplate.content,\n },\n width: '95%'\n });\n }\n\n public save = (event: SubmitEvent) => {\n return this._config.saveMessageTemplate(this.messageTemplate)\n .pipe(\n tap(messageTemplate => {\n this._message.success('Saved Changes');\n if (event.submitter === 'save-close') {\n this._dialogRef.close(messageTemplate);\n }\n })\n );\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild, Inject } from '@angular/core';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { MatDialog } from '@angular/material/dialog';\nimport { TemplateComponent } from '../template';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n selector: 'fs-app-message-templates',\n templateUrl: './templates.component.html'\n})\nexport class TemplatesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n actions: [\n {\n label: 'Create',\n click: () => {\n this.open({});\n }\n }\n ],\n status: false,\n fetch: query => {\n return this._config.loadMessageTemplates(query);\n }\n }\n\n if (this._config.deleteMessageTemplate) {\n this.config.rowActions = [\n {\n click: data => {\n return this._config.deleteMessageTemplate(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n menu: true,\n label: 'Delete'\n }\n ];\n }\n }\n\n public open(messageTemplate) {\n const dialogRef = this._dialog.open(TemplateComponent, {\n data: {\n messageTemplate: messageTemplate,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((response) => {\n if (response) {\n const update = this.list.updateData(\n response,\n (row: any) => {\n return row.id === response.id;\n });\n\n if (!update) {\n this.list.reload();\n }\n }\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { TemplatesComponent } from './components/templates/templates.component';\nimport { TemplateComponent } from './components/template/template.component';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatFormFieldModule,\n MatInputModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FlexLayoutModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n TemplatesComponent,\n TemplateComponent,\n ],\n exports: [\n TemplatesComponent,\n TemplateComponent,\n ],\n})\nexport class FsAppMessageTemplatesModule {\n}\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\r\nimport { FsMessage } from '@firestitch/message';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\r\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'fs-app-message-webhooks',\r\n templateUrl: './webhooks.component.html',\r\n})\r\nexport class WebhooksComponent implements OnInit {\r\n\r\n @ViewChild(FsListComponent)\r\n public list: FsListComponent;\r\n\r\n public listConfig: FsListConfig;\r\n\r\n constructor(\r\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\r\n private _message: FsMessage,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.listConfig = {\r\n paging: false,\r\n actions: [\r\n {\r\n click: () => {\r\n this._config.createWebhook()\r\n .subscribe(() => {\r\n this._message.success('Created webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Create',\r\n },\r\n ],\r\n rowActions: [\r\n {\r\n click: (webhook) => {\r\n this._config.deleteWebhook(webhook)\r\n .subscribe(() => {\r\n this._message.success('Deleted webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Delete',\r\n },\r\n ],\r\n fetch: () => {\r\n return this._config.loadWebhooks()\r\n .pipe(\r\n map((webhooks) => ({ data: webhooks })),\r\n );\r\n },\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { FsDateModule } from '@firestitch/date';\n\nimport { FsListModule } from '@firestitch/list';\n\nimport { WebhooksComponent } from './components/webhooks/webhooks.component';\n\n@NgModule({\n imports: [\n FsListModule,\n\n FsDateModule,\n ],\n declarations: [\n WebhooksComponent,\n ],\n exports: [\n WebhooksComponent,\n ],\n})\nexport class FsAppMessageWebhooksModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\n\n@NgModule({\n})\nexport class FsAppMessageModule {\n static forRoot(): ModuleWithProviders<FsAppMessageModule> {\n return {\n ngModule: FsAppMessageModule,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/app-message/app/modules/messages/enums/email-message-format.enum.ts","ng://@firestitch/app-message/app/modules/messages/consts/email-message-formats.const.ts","ng://@firestitch/app-message/app/modules/message-preview/components/preview/preview.component.ts","ng://@firestitch/app-message/app/modules/app-message/injectors/app-message-config.injector.ts","ng://@firestitch/app-message/app/modules/messages/components/message/message.component.ts","ng://@firestitch/app-message/app/helpers/index-name-value.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/message-queue-state.enum.ts","ng://@firestitch/app-message/app/modules/messages/components/messages/messages.component.ts","ng://@firestitch/app-message/app/modules/message-preview/message-preview.module.ts","ng://@firestitch/app-message/app/modules/messages/messages.module.ts","ng://@firestitch/app-message/app/modules/message-queues/consts/message-queue-states.const.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/email-message-queue-format.enum.ts","ng://@firestitch/app-message/app/modules/message-queues/enums/message-queue-type.enum.ts","ng://@firestitch/app-message/app/modules/message-queues/components/queue/queue.component.ts","ng://@firestitch/app-message/app/modules/message-queues/services/message-queue.service.ts","ng://@firestitch/app-message/app/modules/message-queues/components/queues/queues.component.ts","ng://@firestitch/app-message/app/modules/message-queues/components/recipient/recipient.component.ts","ng://@firestitch/app-message/app/modules/message-queues/pipes/linkify.pipe.ts","ng://@firestitch/app-message/app/modules/message-queues/pipes/truncate.pipe.ts","ng://@firestitch/app-message/app/modules/message-queues/message-queues.module.ts","ng://@firestitch/app-message/app/modules/message-templates/components/template/template.component.ts","ng://@firestitch/app-message/app/modules/message-templates/components/templates/templates.component.ts","ng://@firestitch/app-message/app/modules/message-templates/message-templates.module.ts","ng://@firestitch/app-message/app/modules/webhooks/components/webhooks/webhooks.component.ts","ng://@firestitch/app-message/app/modules/webhooks/webhooks.module.ts","ng://@firestitch/app-message/app/modules/app-message/app-message.module.ts"],"names":["EmailMessageFormat","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","EmailMessageFormats","name","Text","HTML","RichText","PreviewComponent","_data","html","styles","ngOnInit","Inject","args","MAT_DIALOG_DATA","Component","template","FS_APP_MESSAGE_CONFIG","InjectionToken","MessageComponent","_config","_prompt","_message","_dialog","_cdRef","_this","messageTemplates","emailMessageFormats","emailMessageFormat","save","saveMessage","message","pipe","tap","success","loadMessage","subscribe","response","emailMessage","undefined","customize","smsMessage","markForCheck","loadMessageTemplates","data","tabChange","event","tab","textLabel","openPreview","body","messageTemplateId","messageTemplate","find","item","id","content","replace","concat","open","width","sendTest","type","of","switchMap","getTestEmail","default_","typeName","input","label","title","commitLabel","default","required","testMessage","FsPrompt","FsMessage","MatDialog","ChangeDetectorRef","changeDetection","ChangeDetectionStrategy","OnPush","indexNameValue","arry","obj","forEach","MessageQueueState","MessagesComponent","list","config","_destroy$","Subject","filters","ItemType","Keyword","fetch","query","loadMessages","map","paging","afterClosed","takeUntil","updateData","row","ngOnDestroy","complete","ViewChild","FsListComponent","static","selector","FsAppMessagePreviewModule","NgModule","imports","MatDialogModule","MatButtonModule","FsDialogModule","FsIFrameModule","declarations","exports","FsAppMessagesModule","RouterModule","CommonModule","FormsModule","MatTabsModule","MatFormFieldModule","MatInputModule","MatOptionModule","MatSelectModule","MatTooltipModule","MatCheckboxModule","FsListModule","FsLabelModule","FlexLayoutModule","FsSkeletonModule","FsFormModule","FsTextEditorModule","FsEditorRichTextModule","EmailMessageQueueFormat","MessageQueueType","MessageQueueStates","Sent","PartiallySent","Sending","Queued","Canceled","InvalidRecipients","Failed","QueueComponent","messageQueueRecipients","emailMessageQueueFormat","messageQueueStates","resendMessageQueue","forwardMessageQueue","loadMessageQueue","messageQueueId","messageQueue","emailMessageQueue","format","doc","DOMParser","parseFromString","querySelectorAll","el","setAttribute","documentElement","innerHTML","anchorme","smsMessageQueue","reduce","accum","messageQueueRecipient","recipient","state","_setLogsConfig","_setAttachmentsConfig","options","attributes","openMessage","resend","confirm","logList","reload","forward","Email","logConfig","loadMore","queryParam","loadLogs","attachmentConfig","loadMessageQueueAttachments","prettyFilesize","_prettyFilesize","filesize","downloadMessageQueueAttachment","rowActions","click","messageAttachment","bytes","Math","floor","log","pow","toFixed","charAt","FsMessageQueueService","openMessageQueue","Injectable","QueuesComponent","_messageQueueService","Select","values","DateRange","sort","direction","messageQueueAttachmentCounts","emailMessageQueues","emailMessageQueueBodies","smsMessageQueues","loadMessageQueues","cancelMessageQueues","selection","selectAll","actions","actionSelected","action","SelectionActionType","Action","limit","__spread","Input","RecipientComponent","icon","S","tooltip","E","F","LinkifyPipe","transform","Pipe","TruncatePipe","completeWords","ellipsis","substr","lastIndexOf","FsAppMessageQueuesModule","MatIconModule","FsDateModule","FsPromptInputModule","providers","TemplateComponent","_dialogRef","htmlEditorconfig","language","insertSpaces","tabSize","cssEditorconfig","saveMessageTemplate","submitter","close","loadMessageTemplate","MatDialogRef","TemplatesComponent","status","deleteMessageTemplate","remove","menu","FsAppMessageTemplatesModule","WebhooksComponent","listConfig","createWebhook","webhook","deleteWebhook","loadWebhooks","webhooks","FsAppMessageWebhooksModule","FsAppMessageModule","forRoot","ngModule","FsAppMessageModule_1"],"mappings":"w5EA6BO,IC7BKA,ED6BDC,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,IAEKU,MAAMC,KAAMP,YAezB,SAASQ,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAId,UAAUC,OAAQc,EAAID,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOlB,OAAOsB,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAId,EAAIW,EAAWR,OAAS,EAAGH,GAAK,EAAGA,KAASe,EAAIJ,EAAWX,MAAIiB,GAAKD,EAAI,EAAID,EAAEE,GAAKD,EAAI,EAAID,EAAEH,EAAQC,EAAKI,GAAKF,EAAEH,EAAQC,KAASI,GAChJ,OAAOD,EAAI,GAAKC,GAAKrB,OAAOyB,eAAeT,EAAQC,EAAKI,GAAIA,EAGzD,SAASK,EAAQC,EAAYC,GAChC,OAAO,SAAUZ,EAAQC,GAAOW,EAAUZ,EAAQC,EAAKU,IAGpD,SAASE,EAAWC,EAAaC,GACpC,GAAuB,iBAAZR,SAAoD,mBAArBA,QAAQS,SAAyB,OAAOT,QAAQS,SAASF,EAAaC,GA8D7G,SAASE,EAAOC,EAAG7B,GACtB,IAAI8B,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UACjD,IAAKF,EAAG,OAAOD,EACf,IAAmBb,EAAYiB,EAA3BlC,EAAI+B,EAAExB,KAAKuB,GAAOK,EAAK,GAC3B,IACI,WAAc,IAANlC,GAAgBA,KAAM,MAAQgB,EAAIjB,EAAEoC,QAAQC,MAAMF,EAAGG,KAAKrB,EAAEsB,OAExE,MAAOC,GAASN,EAAI,CAAEM,MAAOA,GACjC,QACQ,IACQvB,IAAMA,EAAEoB,OAASN,EAAI/B,EAAU,SAAI+B,EAAExB,KAAKP,GAE1D,QAAkB,GAAIkC,EAAG,MAAMA,EAAEM,OAE7B,OAAOL,GC5IX,SAAYzC,GACVA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,SAAA,IAHF,CAAYA,IAAAA,EAAkB,KCGvB,IAAM+C,EAAsB,CACjC,CAAEC,KAAM,OAAQH,MAAO7C,EAAmBiD,MAC1C,CAAED,KAAM,OAAQH,MAAO7C,EAAmBkD,MAC1C,CAAEF,KAAM,YAAaH,MAAO7C,EAAmBmD,wBCQ/C,SAAAC,EACmCC,GAAAtC,KAAAsC,MAAAA,EAEjCtC,KAAKuC,KAAOD,EAAMC,KAClBvC,KAAKwC,OAASF,EAAME,OAMxB,OAHSH,EAAAzC,UAAA6C,SAAP,+EANGC,EAAAA,OAAMC,KAAA,CAACC,EAAAA,sBANCP,EAAgBpC,EAAA,CAJ5B4C,EAAAA,UAAU,CACTC,SAAA,oWASGjC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,mDANCP,MCNAU,GAD6B,IAAIC,EAAAA,eAAsB,8BAC/B,IAAIA,EAAAA,eAAsB,uCC4B7D,SAAAC,EACyCC,EACNZ,EACzBa,EACAC,EACAC,EACAC,GANV,IAAAC,EAAAvD,KACyCA,KAAAkD,QAAAA,EACNlD,KAAAsC,MAAAA,EACzBtC,KAAAmD,QAAAA,EACAnD,KAAAoD,SAAAA,EACApD,KAAAqD,QAAAA,EACArD,KAAAsD,OAAAA,EAVHtD,KAAAwD,iBAAmB,GACnBxD,KAAAyD,oBAAsBzB,EACtBhC,KAAA0D,mBAAqBzE,EA+CrBe,KAAA2D,KAAO,WACZ,OAAOJ,EAAKL,QAAQU,YAAYL,EAAKM,SACpCC,KACCC,EAAAA,KAAI,WACFR,EAAKH,SAASY,QAAQ,sBAuD9B,OA9FSf,EAAArD,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKkD,QAAQe,YAAYjE,KAAKsC,MAAMuB,SACnCK,WAAU,SAACC,GACVZ,EAAKM,QAAUM,EAEXZ,EAAKM,QAAQO,mBAAwDC,IAAxCd,EAAKM,QAAQO,aAAaE,YACzDf,EAAKM,QAAQO,aAAaE,WAAY,GAEpCf,EAAKM,QAAQU,iBAAoDF,IAAtCd,EAAKM,QAAQU,WAAWD,YACrDf,EAAKM,QAAQU,WAAWD,WAAY,GAGtCf,EAAKD,OAAOkB,kBAGdxE,KAAKkD,QAAQuB,uBACZP,WAAU,SAACQ,GACVnB,EAAKC,iBAAmBkB,EAAKA,KAC7BnB,EAAKD,OAAOkB,mBAITvB,EAAArD,UAAA+E,UAAP,SAAiBC,GACf,OAAQA,EAAMC,IAAIC,WAChB,IAAK,cACH9E,KAAK6E,IAAM,MACX,MACF,IAAK,gBACH7E,KAAK6E,IAAM,QACX,MACF,QACE7E,KAAK6E,IAAM,OAaV5B,EAAArD,UAAAmF,YAAP,WAAA,IAAAxB,EAAAvD,KACMuC,EAAOvC,KAAK6D,QAAQO,aAAaY,KACjCxC,EAASxC,KAAK6D,QAAQO,aAAa5B,OAEvC,GAAIxC,KAAK6D,QAAQO,aAAaa,kBAAmB,CAC/C,IAAMC,EAAkBlF,KAAKwD,iBAC1B2B,MAAK,SAACC,GACL,OAAO7B,EAAKM,QAAQO,aAAaa,oBAAsBG,EAAKC,MAG5DH,IACF3C,EAAO2C,EAAgBI,QAAQC,QAAQ,aAAchD,GACrDC,EAAS0C,EAAgB1C,OAAOgD,OAAOhD,IAI3CxC,KAAKqD,QAAQoC,KAAKpD,EAAkB,CAClCqC,KAAM,CACJlC,OAAMA,EACND,KAAIA,GAENmD,MAAO,SAIJzC,EAAArD,UAAA+F,SAAP,SAAgBC,GAAhB,IAAArC,EAAAvD,KACE6F,EAAAA,IAAG,GACF/B,KACCgC,EAAAA,WAAU,WACR,MAAgB,UAATF,EAAmBrC,EAAKL,QAAQ6C,eAAiBF,EAAAA,GAAG,OAE7DC,EAAAA,WAAU,SAACE,GACT,IAAMC,EAAoB,UAATL,EAAmB,WAAa,eAEjD,OAAOrC,EAAKJ,QAAQ+C,MAAM,CACxBC,MAAO,gBAAgBF,EAAQ,mBAC/BG,MAAO,YACPC,YAAa,OACbC,QAASN,EACTO,UAAU,QAIfrC,WAAU,SAACpC,GACVyB,EAAKL,QAAQsD,YAAYjD,EAAKM,QAAS/B,EAAO8D,GAC3C1B,WAAU,WACTX,EAAKH,SAASY,QAAQ,sFAnG3BtB,EAAAA,OAAMC,KAAA,CAACI,qCACPL,EAAAA,OAAMC,KAAA,CAACC,EAAAA,0BACS6D,EAAAA,gBACCC,EAAAA,iBACDC,EAAAA,iBACDC,EAAAA,qBAdP3D,EAAgBhD,EAAA,CAL5B4C,EAAAA,UAAU,CACTC,SAAA,wlXAEA+D,gBAAiBC,EAAAA,wBAAwBC,8VAWtClG,EAAA,EAAA6B,EAAAA,OAAOK,IACPlC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,uDACS6D,EAAAA,SACCC,EAAAA,UACDC,EAAAA,UACDC,EAAAA,qBAdP3D,eCtBG+D,EAAeC,GAC7B,IAAMC,EAAM,GAKZ,OAJAD,EAAKE,SAAQ,SAAA/B,GACX8B,EAAI9B,EAAKtD,OAASsD,EAAKnD,QAGlBiF,MCPGE,eC8BV,SAAAC,EACyCnE,EAC/BG,GAD+BrD,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EATHrD,KAAAsH,KAAwB,KAExBtH,KAAAuH,OAAuB,KACvBvH,KAAAyD,oBAAsB,GAErBzD,KAAAwH,UAAY,IAAIC,EAAAA,QAyD1B,OAlDSJ,EAAAzH,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKyD,oBAAsBuD,EAAehF,GAE1ChC,KAAKuH,OAAS,CACZG,QAAS,CACP,CACEzF,KAAM,UACN2D,KAAM+B,EAAAA,SAASC,QACfzB,MAAO,WAIX0B,MAAO,SAAAC,GACL,OAAOvE,EAAKL,QAAQ6E,aAAaD,GAChChE,KACCkE,EAAAA,KAAI,SAAA7D,GACF,MAAA,CAAUO,KAAMP,EAASO,KAAMuD,OAAQ9D,EAAS8D,eAOnDZ,EAAAzH,UAAA6F,KAAP,SAAY5B,GAAZ,IAAAN,EAAAvD,KACoBA,KAAKqD,QAAQoC,KAAKxC,EAAkB,CACpDyB,KAAM,CACJb,QAASA,GAEX6B,MAAO,QAGCwC,cACTpE,KACCqE,EAAAA,UAAUnI,KAAKwH,YAEhBtD,WAAU,SAACC,GACNA,GACFZ,EAAK+D,KAAKc,WACRjE,GACA,SAACkE,GACC,OAAOA,EAAIhD,KAAOlB,EAASkB,UAM9BgC,EAAAzH,UAAA0I,YAAP,WACEtI,KAAKwH,UAAU7F,OACf3B,KAAKwH,UAAUe,8EApDd7F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,aATnB1G,EAAA,CADCuI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAHFpB,EAAiBpH,EAAA,CAJ7B4C,EAAAA,UAAU,CACT8F,SAAU,kBACV7F,SAAA,yaAaGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,aAZRU,mBCMb,SAAAuB,KACA,OADaA,EAAyB3I,EAAA,CAfrC4I,EAAAA,SAAS,CACRC,QAAS,CACPC,EAAAA,gBACAC,EAAAA,gBAEAC,EAAAA,eACAC,EAAAA,gBAEFC,aAAc,CACZ9G,GAEF+G,QAAS,CACP/G,MAGSuG,mBCsCb,SAAAS,KAAkC,OAArBA,EAAmBpJ,EAAA,CApC/B4I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAC,EAAAA,aACAC,EAAAA,YAEAT,EAAAA,gBACAC,EAAAA,gBACAS,EAAAA,cACAC,EAAAA,mBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,gBACAC,EAAAA,iBACAC,EAAAA,kBAEAd,EAAAA,eACAe,EAAAA,aACAC,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,uBAEA1B,GAEFO,aAAc,CACZ9B,EACApE,GAEFmG,QAAS,CACP/B,EACApE,MAGSoG,OHhEb,SAAYjC,GACVA,EAAA,KAAA,IACAA,EAAA,cAAA,IACAA,EAAA,QAAA,IACAA,EAAA,OAAA,IACAA,EAAA,SAAA,IACAA,EAAA,kBAAA,IACAA,EAAA,OAAA,IAPF,CAAYA,IAAAA,EAAiB,KIGtB,ICHKmD,ECAAC,EFGCC,EAAqB,CAChC,CAAExI,KAAM,OAAQH,MAAOsF,EAAkBsD,MACzC,CAAEzI,KAAM,iBAAkBH,MAAOsF,EAAkBuD,eACnD,CAAE1I,KAAM,UAAWH,MAAOsF,EAAkBwD,SAC5C,CAAE3I,KAAM,SAAUH,MAAOsF,EAAkByD,QAC3C,CAAE5I,KAAM,WAAYH,MAAOsF,EAAkB0D,UAC7C,CAAE7I,KAAM,qBAAsBH,MAAOsF,EAAkB2D,mBACvD,CAAE9I,KAAM,SAAUH,MAAOsF,EAAkB4D,UCV7C,SAAYT,GACVA,EAAA,KAAA,IACAA,EAAA,KAAA,IACAA,EAAA,SAAA,IAHF,CAAYA,IAAAA,EAAuB,KCAnC,SAAYC,GACVA,EAAA,IAAA,IACAA,EAAA,MAAA,IAFF,CAAYA,IAAAA,EAAgB,sBC8C1B,SAAAS,EACyC/H,EAC/BE,EACAD,EACAE,EACyBf,GAJMtC,KAAAkD,QAAAA,EAC/BlD,KAAAoD,SAAAA,EACApD,KAAAmD,QAAAA,EACAnD,KAAAqD,QAAAA,EACyBrD,KAAAsC,MAAAA,EAb5BtC,KAAAkL,uBAAyB,GACzBlL,KAAAmL,wBAA0BZ,EAKzBvK,KAAAwH,UAAY,IAAIC,EAAAA,QA0K1B,OA/JSwD,EAAArL,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKoL,mBAAqBpE,EAAeyD,GACzCzK,KAAKqL,mBAAqBrL,KAAKkD,QAAQmI,mBACvCrL,KAAKsL,oBAAsBtL,KAAKkD,QAAQoI,oBAExCtL,KAAKkD,QAAQqI,iBAAiBvL,KAAKsC,MAAMkJ,gBACxCtH,WAAU,SAACuH,GAGV,GAFAlI,EAAKkI,aAAeA,EAEhBlI,EAAKkI,aAAaC,kBAAmB,CACvC,IAAI1G,EAAOzB,EAAKkI,aAAaC,kBAAkB1G,KAC/C,GAAIzB,EAAKkI,aAAaC,kBAAkBC,SAAWpB,EAAwBpI,KACzE,IACE,IAAMyJ,GAAM,IAAIC,WAAYC,gBAAgB9G,EAAM,aAElD4G,EAAIG,iBAAiB,KAAK5E,SAAQ,SAAC6E,GACjCA,EAAGC,aAAa,SAAU,aAG5BjH,EAAO4G,EAAIM,gBAAgBC,UAE3B,MAAO1K,SAGTuD,EAAOzB,EAAK6I,SAASpH,GAGvBzB,EAAKkI,aAAaC,kBAAkB1G,KAAOA,EAGzCzB,EAAKkI,aAAaY,kBACpB9I,EAAKkI,aAAaY,gBAAgBrH,KAAOzB,EAAK6I,SAAS7I,EAAKkI,aAAaY,gBAAgBrH,OAG3FzB,EAAK2H,uBAAyB3H,EAAKkI,aAAaP,uBAC7CoB,QAAO,SAACC,EAAOC,GAGd,OAFAD,EAAMC,EAAsBC,WAAaD,EAAsBE,MAExDH,IACN,IAELhJ,EAAKoJ,eAAelB,GACpBlI,EAAKqJ,sBAAsBnB,OAIxBR,EAAArL,UAAAwM,SAAP,SAAgB7J,GACd,OAAO6J,EAAS7J,EAAM,CACpBsK,QAAS,CACPC,WAAY,CACV,CACE7K,KAAM,SACNH,MAAO,eAOVmJ,EAAArL,UAAAmN,YAAP,SAAmBlJ,GACjB7D,KAAKqD,QAAQoC,KAAKxC,EAAkB,CAClCyB,KAAM,CACJb,QAASA,GAEX6B,MAAO,SAIJuF,EAAArL,UAAAoN,OAAP,WAAA,IAAAzJ,EAAAvD,KACEA,KAAKmD,QAAQ8J,QAAQ,CACnB7G,MAAO,UACPtD,SAAU,wDACToB,WAAU,WACXX,EAAK8H,mBAAmB9H,EAAKkI,cAC5BvH,WAAU,SAAAuH,GACTtM,OAAOC,OAAOmE,EAAKkI,aAAcA,GACjClI,EAAKH,SAASY,QAAQ,uBAElBT,EAAK2J,SACP3J,EAAK2J,QAAQC,gBAMdlC,EAAArL,UAAAwN,QAAP,WAAA,IAAA7J,EAAAvD,KACQiG,EAAWjG,KAAKyL,aAAa7F,OAAS4E,EAAiB6C,MAAQ,WAAa,iBAElFrN,KAAKmD,QAAQ+C,MAAM,CACjBC,MAAO,gBAAgBF,EAAQ,iBAC/BG,MAAO,kBACPC,YAAa,UACbE,UAAU,IACTrC,WAAU,SAACpC,GACRA,GACFyB,EAAK+H,oBAAoB/H,EAAKkI,aAAc3J,GAC3CoC,WAAU,SAAAuH,GACTlI,EAAKkI,aAAYvM,EAAAA,EAAA,GACZqE,EAAKkI,cAAY,CACpBA,aAAYA,IAEdlI,EAAKH,SAASY,QAAQ,0BAElBT,EAAK2J,SACP3J,EAAK2J,QAAQC,gBAOhBlC,EAAArL,UAAA0I,YAAP,WACEtI,KAAKwH,UAAU7F,OACf3B,KAAKwH,UAAUe,YAGT0C,EAAArL,UAAA+M,eAAR,SAAuBlB,GAAvB,IAAAlI,EAAAvD,KACEA,KAAKsN,UAAY,CACfC,UAAU,EACVC,YAAY,EACZ3F,MAAO,SAAAC,GACL,OAAOvE,EAAKL,QAAQuK,SAAShC,EAAc3D,MAKzCmD,EAAArL,UAAAgN,sBAAR,SAA8BnB,GAA9B,IAAAlI,EAAAvD,KACEA,KAAK0N,iBAAmB,CACtBF,YAAY,EACZ3F,MAAO,SAAAC,GACL,OAAOvE,EAAKL,QAAQyK,4BAA4BlC,EAAc3D,GAC3DhE,KACCkE,EAAAA,KAAI,SAAA7D,GAAY,MAAA,CACdO,KAAMP,EAASO,KAAKsD,KAAI,SAAAlG,GAEtB,OADAA,EAAM8L,eAAiBrK,EAAKsK,gBAAgB/L,EAAMgM,UAC3ChM,KACLmG,OAAQ9D,EAAS8D,cAM3BjI,KAAKkD,QAAQ6K,iCACf/N,KAAK0N,iBAAiBM,WAAa,CACjC,CACEC,MAAO,SAACC,GACN3K,EAAKL,QAAQ6K,+BAA+BG,EAAmB3K,EAAKkI,eAEtEtF,MAAO,eAMP8E,EAAArL,UAAAiO,gBAAR,SAAwBM,GACtB,GAAc,IAAVA,EAAe,MAAO,SAC1B,IAAM1M,EAAI2M,KAAKC,MAAMD,KAAKE,IAAIH,GAASC,KAAKE,IAAI,OAChD,OAAQH,EAAQC,KAAKG,IAAI,KAAM9M,IAAI+M,QAAQ,GAAK,IAAM,SAASC,OAAOhN,GAAK,uEArK1EiB,EAAAA,OAAMC,KAAA,CAACI,YACU2D,EAAAA,iBACDD,EAAAA,gBACAE,EAAAA,0CAChBjE,EAAAA,OAAMC,KAAA,CAACC,EAAAA,sBAnBV3C,EAAA,CADCuI,EAAAA,UAAU,2BACKC,EAAAA,gDAHLwC,EAAchL,EAAA,CAJ1B4C,EAAAA,UAAU,CACTC,SAAA,kwPAqBGjC,EAAA,EAAA6B,EAAAA,OAAOK,IAIPlC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,gDAHU8D,EAAAA,UACDD,EAAAA,SACAE,EAAAA,UAASxH,UArBjB8L,mBCdX,SAAAyD,EACUrL,GAAArD,KAAAqD,QAAAA,EAHFrD,KAAAwH,UAAY,IAAIC,EAAAA,QAwB1B,OAlBSiH,EAAA9O,UAAA+O,iBAAP,SAAwBnD,EAAwBqB,GAC9C,YAD8C,IAAAA,IAAAA,EAAA,IACvC7M,KAAKqD,QAAQoC,KAAKwF,EAAc/L,EAAAA,EAAA,GAClC2N,GAAO,CACVnI,KAAM,CACJ8G,eAAcA,GAEhB9F,MAAOmH,EAAQnH,OAAS,SACvBwC,cACFpE,KACCqE,EAAAA,UAAUnI,KAAKwH,aAIZkH,EAAA9O,UAAA0I,YAAP,WACEtI,KAAKwH,UAAU7F,OACf3B,KAAKwH,UAAUe,qDAlBE5B,EAAAA,aALR+H,EAAqBzO,EAAA,CADjC2O,EAAAA,oCAMoBjI,EAAAA,aALR+H,mBC0BX,SAAAG,EACyC3L,EAC/BG,EACAyL,GAF+B9O,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EACArD,KAAA8O,qBAAAA,EAbH9O,KAAAsH,KAAwB,KAEftH,KAAA8H,MAAQ,GAEjB9H,KAAAuH,OAAuB,KACvBvH,KAAAoL,mBAAqB,GACrBpL,KAAAoH,kBAAoBA,EAEnBpH,KAAAwH,UAAY,IAAIC,EAAAA,QAmI1B,OA3HSoH,EAAAjP,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKoL,mBAAqBpE,EAAeyD,GAEzCzK,KAAKuH,OAAS,CACZG,QAAS,CACP,CACEzF,KAAM,UACN2D,KAAM+B,EAAAA,SAASC,QACfzB,MAAO,UAET,CACElE,KAAM,QACN2D,KAAM+B,EAAAA,SAASoH,OACf5I,MAAO,SACP6I,OAAQ,WACN,OAAOvE,IAGX,CACExI,KAAM,OACN2D,KAAM+B,EAAAA,SAASsH,UACf9I,MAAO,CAAC,YAAa,aAGzB+I,KAAM,CAAEpN,MAAO,eAAgBqN,UAAW,QAC1CtH,MAAO,SAAAC,GAUL,OATAA,EAAK5I,EAAAA,EAAAA,EAAA,GACA4I,GACAvE,EAAKuE,OAAK,CACbsH,8BAA8B,EAC9BC,oBAAoB,EACpBC,yBAAyB,EACzBC,kBAAkB,IAGbhM,EAAKL,QAAQsM,kBAAkB1H,GACnChE,KACCkE,EAAAA,KAAI,SAAA7D,GAAY,MAAA,CAAGO,KAAMP,EAASO,KAC/BsD,KAAI,SAACyD,GACJ,OAAAvM,EAAAA,EAAA,GACKuM,GAAY,CACfP,uBAAwBO,EAAaP,uBACpCoB,QAAO,SAACC,EAAOC,GAGd,OAFAD,EAAMC,EAAsBC,WAAaD,EAAsBE,MAExDH,IACN,SAEHtE,OAAQ9D,EAAS8D,cAM3BjI,KAAKkD,QAAQuM,sBACfzP,KAAKuH,OAAOmI,UAAY,CACtBC,WAAW,EACXC,QAAS,GAETC,eAAgB,SAACC,GACf,OAAOjK,EAAAA,IAAG,GACP/B,KACCgC,EAAAA,WAAU,WACR,MAA2B,WAAvBgK,EAAOA,OAAO7N,KACTsB,EAAKL,QAAQuM,oBAAoBK,GAGnCjK,EAAAA,IAAG,MAEZ9B,EAAAA,KAAI,WACFR,EAAK+D,KAAK6F,gBAQlBnN,KAAKkD,QAAQuM,qBACfzP,KAAKuH,OAAOmI,UAAUE,QAAQ/N,KAAK,CACjC+D,KAAMmK,EAAAA,oBAAoBC,OAC1B/N,KAAM,SACNkE,MAAO,kBAIXnG,KAAKuH,OAAOG,QAAQ7F,KAAK,CACvBI,KAAM,aACN2D,KAAM+B,EAAAA,SAASoH,OACf5I,MAAO,eACP6I,OAAQ,SAAClH,GAMP,OALAA,EAAK5I,EAAAA,EAAA,GACA4I,GAAK,CACRmI,MAAO,KAGF1M,EAAKL,QAAQ6E,aAAaD,GAC9BhE,KACCkE,EAAAA,KAAI,SAAC7D,GACH,OhBCP,WACH,IAAK,IAAIzC,EAAK,GAAInC,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAC3CmC,EAAKA,EAAG8D,OAAOpE,EAAO3B,UAAUF,KACpC,OAAOmC,EgBJGwO,CAAA,CACE,CAAEpO,MAAO,KAAMG,KAAM,QAClBkC,EAASO,KAAKsD,KAAI,SAAC5C,GAAS,MAAA,CAAGnD,KAAMmD,EAAKnD,KAAMH,MAAOsD,EAAKC,gBAQtEwJ,EAAAjP,UAAA6F,KAAP,SAAYgG,GAAZ,IAAAlI,EAAAvD,KACEA,KAAK8O,qBAAqBH,iBAAiBlD,EAAapG,IACrDvB,KACCqE,EAAAA,UAAUnI,KAAKwH,YAEhBtD,WAAU,WACTX,EAAK+D,KAAK6F,aAIT0B,EAAAjP,UAAA0I,YAAP,WACEtI,KAAKwH,UAAU7F,OACf3B,KAAKwH,UAAUe,8EA9Hd7F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,iBACa+H,KAbhCzO,EAAA,CADCuI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAEJxI,EAAA,CAARkQ,EAAAA,6DALUtB,EAAe5O,EAAA,CAL3B4C,EAAAA,UAAU,CACT8F,SAAU,wBAEV7F,SAAA,g+FAgBGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,UACa+H,KAhBrBG,mBCbb,SAAAuB,KAkBA,OAXSA,EAAAxQ,UAAA6C,SAAP,WAQEzC,KAAKqQ,KANS,CACZC,EAAK,CAAErO,KAAM,eAAgBsO,QAAS,QACtCC,EAAK,CAAEvO,KAAM,eAAgBsO,QAAS,WACtCE,EAAK,CAAExO,KAAM,OAAQsO,QAAS,WAGdvQ,KAAK0M,QAbhBzM,EAAA,CAARkQ,EAAAA,4DACQlQ,EAAA,CAARkQ,EAAAA,6DAHUC,EAAkBnQ,EAAA,CAL9B4C,EAAAA,UAAU,CACT8F,SAAU,gBACV7F,SAAA,saAGWsN,oBCLb,SAAAM,KAWA,OAVEA,EAAA9Q,UAAA+Q,UAAA,SAAU7O,GACR,OAAOsK,EAAStK,EAAO,CACrBgL,WAAY,CACV,CACE7K,KAAM,SACNH,MAAO,cANJ4O,EAAWzQ,EAAA,CADvB2Q,EAAAA,KAAK,CAAC3O,KAAM,aACAyO,oBCDb,SAAAG,KAYA,OAXAA,EAAAjR,UAAA+Q,UAAA,SAAU7O,EAAemO,EAAYa,EAAuBC,GAE1D,YAFuB,IAAAd,IAAAA,EAAA,SAAY,IAAAa,IAAAA,GAAA,QAAuB,IAAAC,IAAAA,EAAA,OAEtDjP,EAAMpC,OAASuQ,EACV,GAAGnO,EAAMkP,OAAO,EAAGf,IAGvBa,IACFb,EAAQnO,EAAMkP,OAAO,EAAGf,GAAOgB,YAAY,MAEtC,GAAGnP,EAAMkP,OAAO,EAAGf,GAASc,IAVzBF,EAAY5Q,EAAA,CAHxB2Q,EAAAA,KAAK,CACJ3O,KAAM,cAEK4O,oBCiEb,SAAAK,KAAuC,OAA1BA,EAAwBjR,EAAA,CAvCpC4I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAE,EAAAA,YACAD,EAAAA,aAEAW,EAAAA,iBAEAJ,EAAAA,iBACAf,EAAAA,gBACAC,EAAAA,gBACAmI,EAAAA,cACA1H,EAAAA,cAEAO,EAAAA,aACAf,EAAAA,eACAgB,EAAAA,cACAmH,EAAAA,aACAjH,EAAAA,iBACAd,EACAe,EAAAA,aACAiH,EAAAA,oBACAnI,EAAAA,gBAEFC,aAAc,CACZ0F,EACA5D,EACAyF,GACAG,GACAT,GAEFhH,QAAS,CACPyF,EACA5D,GAEFqG,UAAW,CACT5C,MAGSwC,oBCpCX,SAAAK,EACmCjP,EACMY,EAC/BsO,EACApO,EACAC,GALV,IAAAE,EAAAvD,KACmCA,KAAAsC,MAAAA,EACMtC,KAAAkD,QAAAA,EAC/BlD,KAAAwR,WAAAA,EACAxR,KAAAoD,SAAAA,EACApD,KAAAqD,QAAAA,EAjBHrD,KAAAyR,iBAAuC,CAC5CC,SAAU,OACVC,cAAc,EACdC,QAAS,GAGJ5R,KAAA6R,gBAAsC,CAC3CH,SAAU,OACVC,cAAc,EACdC,QAAS,GAiCJ5R,KAAA2D,KAAO,SAACiB,GACb,OAAOrB,EAAKL,QAAQ4O,oBAAoBvO,EAAK2B,iBAC5CpB,KACCC,EAAAA,KAAI,SAAAmB,GACF3B,EAAKH,SAASY,QAAQ,iBACE,eAApBY,EAAMmN,WACRxO,EAAKiO,WAAWQ,MAAM9M,QAKhC,OAhCSqM,EAAA3R,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACMA,KAAKsC,MAAM4C,gBAAgBG,GAC7BrF,KAAKkD,QAAQ+O,oBAAoBjS,KAAKsC,MAAM4C,iBAC3ChB,WAAU,SAAAgB,GACT3B,EAAK2B,gBAAkBA,KAGzBlF,KAAKkF,gBAAkB,IAIpBqM,EAAA3R,UAAAmF,YAAP,WACE/E,KAAKqD,QAAQoC,KAAKpD,EAAkB,CAClCqC,KAAM,CACJlC,OAAQxC,KAAKkF,gBAAgB1C,OAC7BD,KAAMvC,KAAKkF,gBAAgBI,SAE7BI,MAAO,2EAzBRhD,EAAAA,OAAMC,KAAA,CAACC,EAAAA,mDACPF,EAAAA,OAAMC,KAAA,CAACI,YACYmP,EAAAA,oBACFxL,EAAAA,iBACDC,EAAAA,aApBR4K,EAAiBtR,EAAA,CAJ7B4C,EAAAA,UAAU,CACTC,SAAA,unEAmBGjC,EAAA,EAAA6B,EAAAA,OAAOE,EAAAA,kBACP/B,EAAA,EAAA6B,EAAAA,OAAOK,yCACYmP,EAAAA,aACFxL,EAAAA,UACDC,EAAAA,aApBR4K,oBCQX,SAAAY,EACyCjP,EAC/BG,GAD+BrD,KAAAkD,QAAAA,EAC/BlD,KAAAqD,QAAAA,EATHrD,KAAAsH,KAAwB,KAExBtH,KAAAuH,OAAuB,KACvBvH,KAAAoL,mBAAqB,GAEpBpL,KAAAwH,UAAY,IAAIC,EAAAA,QAuE1B,OAhES0K,EAAAvS,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAKuH,OAAS,CACZqI,QAAS,CACP,CACEzJ,MAAO,SACP8H,MAAO,WACL1K,EAAKkC,KAAK,OAIhB2M,QAAQ,EACRvK,MAAO,SAAAC,GACL,OAAOvE,EAAKL,QAAQuB,qBAAqBqD,KAIzC9H,KAAKkD,QAAQmP,wBACfrS,KAAKuH,OAAOyG,WAAa,CACvB,CACEC,MAAO,SAAAvJ,GACL,OAAOnB,EAAKL,QAAQmP,sBAAsB3N,IAE5C4N,OAAQ,CACNlM,MAAO,UACPtD,SAAU,wDAEZyP,MAAM,EACNpM,MAAO,aAMRgM,EAAAvS,UAAA6F,KAAP,SAAYP,GAAZ,IAAA3B,EAAAvD,KACoBA,KAAKqD,QAAQoC,KAAK8L,GAAmB,CACrD7M,KAAM,CACJQ,gBAAiBA,GAEnBQ,MAAO,QAGCwC,cACTpE,KACCqE,EAAAA,UAAUnI,KAAKwH,YAEhBtD,WAAU,SAACC,GACNA,IACaZ,EAAK+D,KAAKc,WACvBjE,GACA,SAACkE,GACC,OAAOA,EAAIhD,KAAOlB,EAASkB,OAI7B9B,EAAK+D,KAAK6F,cAMXgF,EAAAvS,UAAA0I,YAAP,WACEtI,KAAKwH,UAAU7F,OACf3B,KAAKwH,UAAUe,8EAlEd7F,EAAAA,OAAMC,KAAA,CAACI,YACS4D,EAAAA,aATnB1G,EAAA,CADCuI,EAAAA,UAAUC,EAAAA,gBAAiB,CAAEC,QAAQ,oBACzBD,EAAAA,6CAHF0J,EAAkBlS,EAAA,CAJ9B4C,EAAAA,UAAU,CACT8F,SAAU,2BACV7F,SAAA,mNAaGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACS4D,EAAAA,aAZRwL,oBC0Cb,SAAAK,KACA,OADaA,EAA2BvS,EAAA,CAjCvC4I,EAAAA,SAAS,CACRC,QAAS,CACPQ,EAAAA,aACAC,EAAAA,aACAC,EAAAA,YAEAM,EAAAA,iBACAf,EAAAA,gBACAC,EAAAA,gBACAS,EAAAA,cACAC,EAAAA,mBACAA,EAAAA,mBACAC,EAAAA,eAEAK,EAAAA,aACAf,EAAAA,eACAgB,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBAEAzB,GAEFO,aAAc,CACZgJ,GACAZ,IAEFnI,QAAS,CACP+I,GACAZ,OAGSiB,oBCrCX,SAAAC,EACyCvP,EAC/BE,GAD+BpD,KAAAkD,QAAAA,EAC/BlD,KAAAoD,SAAAA,EAsCZ,OAnCSqP,EAAA7S,UAAA6C,SAAP,WAAA,IAAAc,EAAAvD,KACEA,KAAK0S,WAAa,CAChBzK,QAAQ,EACR2H,QAAS,CACP,CACE3B,MAAO,WACL1K,EAAKL,QAAQyP,gBACVzO,WAAU,WACTX,EAAKH,SAASY,QAAQ,mBACtBT,EAAK+D,KAAK6F,aAGhBhH,MAAO,WAGX6H,WAAY,CACV,CACEC,MAAO,SAAC2E,GACNrP,EAAKL,QAAQ2P,cAAcD,GACxB1O,WAAU,WACTX,EAAKH,SAASY,QAAQ,mBACtBT,EAAK+D,KAAK6F,aAGhBhH,MAAO,WAGX0B,MAAO,WACL,OAAOtE,EAAKL,QAAQ4P,eACjBhP,KACCkE,EAAAA,KAAI,SAAC+K,GAAa,MAAA,CAAGrO,KAAMqO,4EAlClCrQ,EAAAA,OAAMC,KAAA,CAACI,YACU2D,EAAAA,aANpBzG,EAAA,CADCuI,EAAAA,UAAUC,EAAAA,iCACEA,EAAAA,6CAHFgK,EAAiBxS,EAAA,CAJ7B4C,EAAAA,UAAU,CACT8F,SAAU,0BACV7F,SAAA,8WAUGjC,EAAA,EAAA6B,EAAAA,OAAOK,kCACU2D,EAAAA,aATT+L,oBCKb,SAAAO,KAAyC,OAA5BA,EAA0B/S,EAAA,CAbtC4I,EAAAA,SAAS,CACRC,QAAS,CACPkB,EAAAA,aAEAoH,EAAAA,cAEFjI,aAAc,CACZsJ,IAEFrJ,QAAS,CACPqJ,OAGSO,oBCfb,SAAAC,WAMA,SANaA,EACJA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUC,IAHHH,EAAkBG,EAAAnT,EAAA,CAF9B4I,EAAAA,SAAS,KAEGoK","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum EmailMessageFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","\nimport { EmailMessageFormat } from '../enums';\n\nexport const EmailMessageFormats = [\n { name: 'Text', value: EmailMessageFormat.Text },\n { name: 'HTML', value: EmailMessageFormat.HTML },\n { name: 'Rich Text', value: EmailMessageFormat.RichText }\n];\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n\n@Component({\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss']\n})\nexport class PreviewComponent implements OnInit {\n\n public html;\n public styles;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n this.html = _data.html;\n this.styles = _data.styles;\n }\n\n public ngOnInit() {\n\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_MESSAGE_ROOT_CONFIG = new InjectionToken<any[]>('fs-app-message-root-config');\nexport const FS_APP_MESSAGE_CONFIG = new InjectionToken<any[]>('fs-app-message-config');\n","import { Component, OnInit, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { EmailMessageFormats } from '../../consts';\nimport { EmailMessageFormat } from '../../enums';\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { of } from 'rxjs';\n\n\n@Component({\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageComponent implements OnInit {\n\n public message;\n public tab;\n public messageTemplates = [];\n public emailMessageFormats = EmailMessageFormats;\n public emailMessageFormat = EmailMessageFormat;\n\n public constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _prompt: FsPrompt,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this._config.loadMessage(this._data.message)\n .subscribe((response) => {\n this.message = response;\n\n if (this.message.emailMessage && this.message.emailMessage.customize === undefined) {\n this.message.emailMessage.customize = true;\n }\n if (this.message.smsMessage && this.message.smsMessage.customize === undefined) {\n this.message.smsMessage.customize = true;\n }\n\n this._cdRef.markForCheck();\n });\n\n this._config.loadMessageTemplates()\n .subscribe((data) => {\n this.messageTemplates = data.data;\n this._cdRef.markForCheck();\n });\n }\n\n public tabChange(event: MatTabChangeEvent) {\n switch (event.tab.textLabel) {\n case 'SMS Message':\n this.tab = 'sms';\n break;\n case 'Email Message':\n this.tab = 'email';\n break;\n default:\n this.tab = null;\n }\n }\n\n public save = () => {\n return this._config.saveMessage(this.message)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n })\n );\n }\n\n public openPreview(): void {\n let html = this.message.emailMessage.body;\n let styles = this.message.emailMessage.styles;\n\n if (this.message.emailMessage.messageTemplateId) {\n const messageTemplate = this.messageTemplates\n .find((item) => {\n return this.message.emailMessage.messageTemplateId === item.id;\n });\n\n if (messageTemplate) {\n html = messageTemplate.content.replace('{$content}', html);\n styles = messageTemplate.styles.concat(styles);\n }\n }\n\n this._dialog.open(PreviewComponent, {\n data: {\n styles,\n html,\n },\n width: '95%'\n });\n }\n\n public sendTest(type) {\n of(true)\n .pipe(\n switchMap(() => {\n return type === 'email' ? this._config.getTestEmail() : of('');\n }),\n switchMap((default_) => { \n const typeName = type === 'email' ? 'an email' : 'phone number';\n \n return this._prompt.input({\n label: `Please enter ${typeName} to send test to`,\n title: 'Send Test',\n commitLabel: 'Send',\n default: default_,\n required: true\n })\n })\n )\n .subscribe((value: string) => {\n this._config.testMessage(this.message, value, type)\n .subscribe(() => {\n this._message.success('Test Sent');\n });\n });\n }\n}\n","\nexport function indexNameValue(arry) {\n const obj = {};\n arry.forEach(item => {\n obj[item.value] = item.name;\n });\n\n return obj;\n}\n","export enum MessageQueueState {\n Sent = 'S',\n PartiallySent = 'P',\n Sending = 'E',\n Queued = 'Q',\n Canceled = 'C',\n InvalidRecipients = 'I',\n Failed = 'F'\n}","import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { MessageComponent } from '../message';\nimport { EmailMessageFormats } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n@Component({\n selector: 'fs-app-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public emailMessageFormats = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.emailMessageFormats = indexNameValue(EmailMessageFormats);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n }\n ],\n\n fetch: query => {\n return this._config.loadMessages(query)\n .pipe(\n map(response => {\n return ({ data: response.data, paging: response.paging })\n })\n );\n }\n }\n }\n\n public open(message) {\n const dialogRef = this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((response) => {\n if (response) {\n this.list.updateData(\n response,\n (row: any) => {\n return row.id === response.id;\n });\n }\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { PreviewComponent } from './components/preview';\n\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n\n FsDialogModule,\n FsIFrameModule,\n ],\n declarations: [\n PreviewComponent,\n ],\n exports: [\n PreviewComponent,\n ]\n})\nexport class FsAppMessagePreviewModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FormsModule } from '@angular/forms';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\nimport { FsEditorRichTextModule } from '@firestitch/editor';\n\nimport { MessagesComponent } from './components/messages/messages.component';\nimport { MessageComponent } from './components/message/message.component';\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatOptionModule,\n MatSelectModule,\n MatTooltipModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsLabelModule,\n FlexLayoutModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n FsEditorRichTextModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n MessagesComponent,\n MessageComponent,\n ],\n exports: [\n MessagesComponent,\n MessageComponent,\n ],\n})\nexport class FsAppMessagesModule {}\n","import { MessageQueueState } from '../enums/message-queue-state.enum';\n\n\nexport const MessageQueueStates = [\n { name: 'Sent', value: MessageQueueState.Sent },\n { name: 'Partially Sent', value: MessageQueueState.PartiallySent },\n { name: 'Sending', value: MessageQueueState.Sending },\n { name: 'Queued', value: MessageQueueState.Queued },\n { name: 'Canceled', value: MessageQueueState.Canceled },\n { name: 'Invalid Recipients', value: MessageQueueState.InvalidRecipients },\n { name: 'Failed', value: MessageQueueState.Failed }\n];\n","export enum EmailMessageQueueFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","export enum MessageQueueType {\n Sms = 'S',\n Email = 'E'\n}\n","import {\n Component, OnInit, Inject, OnDestroy, ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport anchorme from 'anchorme';\n\nimport { EmailMessageQueueFormat } from '../../enums';\nimport { MessageQueueStates } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageComponent } from '../../../../modules/messages/components';\nimport { MessageQueueType } from '../../enums';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { ResendMessageQueue, ForwardMessageQueue, LoadMessage } from '../../../app-message/types';\n\n\n@Component({\n templateUrl: './queue.component.html',\n styleUrls: ['./queue.component.scss'],\n})\nexport class QueueComponent implements OnInit, OnDestroy {\n\n @ViewChild('logList')\n public logList: FsListComponent;\n\n public messageQueue;\n public loadMessage: LoadMessage;\n public resendMessageQueue: ResendMessageQueue;\n public forwardMessageQueue: ForwardMessageQueue;\n public messageQueueRecipients = {};\n public emailMessageQueueFormat = EmailMessageQueueFormat;\n public messageQueueStates;\n public logConfig: FsListConfig;\n public attachmentConfig: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.resendMessageQueue = this._config.resendMessageQueue;\n this.forwardMessageQueue = this._config.forwardMessageQueue;\n\n this._config.loadMessageQueue(this._data.messageQueueId)\n .subscribe((messageQueue) => {\n this.messageQueue = messageQueue;\n\n if (this.messageQueue.emailMessageQueue) {\n let body = this.messageQueue.emailMessageQueue.body;\n if (this.messageQueue.emailMessageQueue.format === EmailMessageQueueFormat.HTML) {\n try {\n const doc = new DOMParser().parseFromString(body, 'text/html');\n\n doc.querySelectorAll('a').forEach((el) => {\n el.setAttribute('target', '_blank');\n });\n\n body = doc.documentElement.innerHTML;\n\n } catch (e) {\n }\n } else {\n body = this.anchorme(body);\n }\n\n this.messageQueue.emailMessageQueue.body = body;\n }\n\n if (this.messageQueue.smsMessageQueue) {\n this.messageQueue.smsMessageQueue.body = this.anchorme(this.messageQueue.smsMessageQueue.body);\n }\n\n this.messageQueueRecipients = this.messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {});\n\n this._setLogsConfig(messageQueue);\n this._setAttachmentsConfig(messageQueue);\n });\n }\n\n public anchorme(html) {\n return anchorme(html, {\n options: {\n attributes: [\n {\n name: 'target',\n value: '_blank'\n },\n ],\n },\n });\n }\n\n public openMessage(message) {\n this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n }\n\n public resend() {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Are you sure you would like to resend this message?'\n }).subscribe(() => {\n this.resendMessageQueue(this.messageQueue)\n .subscribe(messageQueue => {\n Object.assign(this.messageQueue, messageQueue);\n this._message.success('Successfully resent');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n });\n }\n\n public forward() {\n const typeName = this.messageQueue.type === MessageQueueType.Email ? 'an email' : 'a phone number';\n\n this._prompt.input({\n label: `Please enter ${typeName} to forward to`,\n title: 'Forward Message',\n commitLabel: 'Forward',\n required: true\n }).subscribe((value: string) => {\n if (value) {\n this.forwardMessageQueue(this.messageQueue, value)\n .subscribe(messageQueue => {\n this.messageQueue = {\n ...this.messageQueue,\n messageQueue,\n };\n this._message.success('Successfully forwarded');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n }\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _setLogsConfig(messageQueue) {\n this.logConfig = {\n loadMore: true,\n queryParam: false,\n fetch: query => {\n return this._config.loadLogs(messageQueue, query);\n }\n }\n }\n\n private _setAttachmentsConfig(messageQueue) {\n this.attachmentConfig = {\n queryParam: false,\n fetch: query => {\n return this._config.loadMessageQueueAttachments(messageQueue, query)\n .pipe(\n map(response => ({\n data: response.data.map(value => {\n value.prettyFilesize = this._prettyFilesize(value.filesize);\n return value;\n }), paging: response.paging\n }))\n );\n }\n };\n\n if (this._config.downloadMessageQueueAttachment) {\n this.attachmentConfig.rowActions = [\n {\n click: (messageAttachment) => {\n this._config.downloadMessageQueueAttachment(messageAttachment, this.messageQueue);\n },\n label: 'Download',\n }\n ];\n }\n }\n\n private _prettyFilesize(bytes) {\n if (bytes === 0) { return '0.00 B'; }\n const e = Math.floor(Math.log(bytes) / Math.log(1024));\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + ' KMGTP'.charAt(e) + 'B';\n }\n}\n","import { Injectable, OnDestroy } from \"@angular/core\";\n\nimport { MatDialog } from \"@angular/material/dialog\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { QueueComponent } from \"../components/queue/queue.component\";\n\n\n@Injectable()\nexport class FsMessageQueueService implements OnDestroy {\n\n private _destroy$ = new Subject();\n \n public constructor(\n private _dialog: MatDialog,\n ) {}\n \n public openMessageQueue(messageQueueId: number, options: any = {}) { \n return this._dialog.open(QueueComponent, {\n ...options,\n data: {\n messageQueueId,\n },\n width: options.width || '85%',\n }).afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n );\n }\n \n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n}\n","import { Component, Inject, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map, switchMap, tap } from 'rxjs/operators';\nimport { Subject, of } from 'rxjs';\n\nimport { FsListActionSelected, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { SelectionActionType } from '@firestitch/selection';\n\nimport { MessageQueueStates } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageQueueState } from '../../enums/message-queue-state.enum';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { FsMessageQueueService } from '../../services/message-queue.service';\n\n\n@Component({\n selector: 'fs-app-message-queues',\n styleUrls: ['./queues.component.scss'],\n templateUrl: './queues.component.html'\n})\nexport class QueuesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n @Input() public query = {};\n\n public config: FsListConfig = null;\n public messageQueueStates = {};\n public MessageQueueState = MessageQueueState;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig, \n private _dialog: MatDialog,\n private _messageQueueService: FsMessageQueueService,\n ) { }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n },\n {\n name: 'state',\n type: ItemType.Select,\n label: 'Status',\n values: () => {\n return MessageQueueStates;\n }\n },\n {\n name: 'date',\n type: ItemType.DateRange,\n label: ['From Date', 'To Date'],\n },\n ],\n sort: { value: 'created_date', direction: 'desc' },\n fetch: query => {\n query = {\n ...query,\n ...this.query,\n messageQueueAttachmentCounts: true,\n emailMessageQueues: true,\n emailMessageQueueBodies: false,\n smsMessageQueues: true,\n };\n\n return this._config.loadMessageQueues(query)\n .pipe(\n map(response => ({ data: response.data\n .map((messageQueue) => { \n return {\n ...messageQueue,\n messageQueueRecipients: messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {}),\n };\n }), paging: response.paging }))\n )\n }\n };\n\n // if any bulk actions add the selection object to config.\n if (this._config.cancelMessageQueues) {\n this.config.selection = {\n selectAll: false,\n actions: [\n ],\n actionSelected: (action: FsListActionSelected) => {\n return of(true)\n .pipe(\n switchMap(() => {\n if (action.action.name === 'cancel') {\n return this._config.cancelMessageQueues(action);\n }\n\n return of(true);\n }),\n tap(() => {\n this.list.reload();\n }),\n );\n }\n };\n }\n\n // add each individual bulk action to select actions\n if (this._config.cancelMessageQueues) {\n this.config.selection.actions.push({\n type: SelectionActionType.Action,\n name: 'cancel',\n label: 'Cancel Queued',\n });\n }\n\n this.config.filters.push({\n name: 'message_id',\n type: ItemType.Select,\n label: 'Message Type',\n values: (query) => {\n query = { \n ...query,\n limit: 50,\n };\n\n return this._config.loadMessages(query)\n .pipe(\n map((response) => {\n return [\n { value: null, name: 'All', },\n ...response.data.map((item) => ({ name: item.name, value: item.id })),\n ];\n })\n )\n }\n });\n }\n\n public open(messageQueue) {\n this._messageQueueService.openMessageQueue(messageQueue.id)\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import {\n Component, Input, OnInit,\n} from '@angular/core';\n\n\n\n@Component({\n selector: 'app-recipient',\n templateUrl: './recipient.component.html',\n styleUrls: ['./recipient.component.scss'],\n})\nexport class RecipientComponent implements OnInit {\n \n @Input() name;\n @Input() state;\n \n public icon;\n\n public ngOnInit(): void {\n \n const icons = {\n 'S': { name: 'check_circle', tooltip: 'Sent' },\n 'E': { name: 'offline_bolt', tooltip: 'Sending' },\n 'F': { name: 'info', tooltip: 'Failed' },\n }\n\n this.icon = icons[this.state];\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport anchorme from 'anchorme';\n\n\n@Pipe({name: 'linkify'})\nexport class LinkifyPipe implements PipeTransform {\n transform(value: string): string {\n return anchorme(value, {\n attributes: [\n {\n name: 'target',\n value: '_blank'\n },\n ]\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\ntransform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n\n if (value.length < limit) {\n return `${value.substr(0, limit)}`;\n }\n\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n return `${value.substr(0, limit)}${ellipsis}`;\n}\n}\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsPromptInputModule } from '@firestitch/prompt';\n\nimport { FsAppMessagesModule } from '../messages/messages.module';\nimport { QueuesComponent } from './components/queues/queues.component';\nimport { QueueComponent } from './components/queue/queue.component';\nimport { RecipientComponent } from './components/recipient/recipient.component';\nimport { LinkifyPipe } from './pipes/linkify.pipe';\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { FsMessageQueueService } from './services/message-queue.service';\n\n\n@NgModule({\n imports: [\n RouterModule,\n FormsModule,\n CommonModule,\n\n FlexLayoutModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatTabsModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsDateModule,\n FsSkeletonModule,\n FsAppMessagesModule,\n FsFormModule,\n FsPromptInputModule,\n FsIFrameModule,\n ],\n declarations: [\n QueuesComponent,\n QueueComponent,\n LinkifyPipe,\n TruncatePipe,\n RecipientComponent,\n ],\n exports: [\n QueuesComponent,\n QueueComponent,\n ],\n providers: [\n FsMessageQueueService\n ]\n})\nexport class FsAppMessageQueuesModule {}\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\n\nimport { tap } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\nimport { SubmitEvent } from '@firestitch/form';\n\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n templateUrl: './template.component.html',\n styleUrls: ['./template.component.scss']\n})\nexport class TemplateComponent implements OnInit {\n\n public messageTemplate;\n public htmlEditorconfig: FsTextEditorConfig = {\n language: 'html',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public cssEditorconfig: FsTextEditorConfig = {\n language: 'scss',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialogRef: MatDialogRef<TemplateComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n ) {\n }\n\n public ngOnInit(): void {\n if (this._data.messageTemplate.id) {\n this._config.loadMessageTemplate(this._data.messageTemplate)\n .subscribe(messageTemplate => {\n this.messageTemplate = messageTemplate;\n });\n } else {\n this.messageTemplate = {};\n }\n }\n\n public openPreview() {\n this._dialog.open(PreviewComponent, {\n data: {\n styles: this.messageTemplate.styles,\n html: this.messageTemplate.content,\n },\n width: '95%'\n });\n }\n\n public save = (event: SubmitEvent) => {\n return this._config.saveMessageTemplate(this.messageTemplate)\n .pipe(\n tap(messageTemplate => {\n this._message.success('Saved Changes');\n if (event.submitter === 'save-close') {\n this._dialogRef.close(messageTemplate);\n }\n })\n );\n }\n}\n","import { Component, OnDestroy, OnInit, ViewChild, Inject } from '@angular/core';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { MatDialog } from '@angular/material/dialog';\nimport { TemplateComponent } from '../template';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n selector: 'fs-app-message-templates',\n templateUrl: './templates.component.html'\n})\nexport class TemplatesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n actions: [\n {\n label: 'Create',\n click: () => {\n this.open({});\n }\n }\n ],\n status: false,\n fetch: query => {\n return this._config.loadMessageTemplates(query);\n }\n }\n\n if (this._config.deleteMessageTemplate) {\n this.config.rowActions = [\n {\n click: data => {\n return this._config.deleteMessageTemplate(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n menu: true,\n label: 'Delete'\n }\n ];\n }\n }\n\n public open(messageTemplate) {\n const dialogRef = this._dialog.open(TemplateComponent, {\n data: {\n messageTemplate: messageTemplate,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((response) => {\n if (response) {\n const update = this.list.updateData(\n response,\n (row: any) => {\n return row.id === response.id;\n });\n\n if (!update) {\n this.list.reload();\n }\n }\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { TemplatesComponent } from './components/templates/templates.component';\nimport { TemplateComponent } from './components/template/template.component';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatFormFieldModule,\n MatInputModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FlexLayoutModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n TemplatesComponent,\n TemplateComponent,\n ],\n exports: [\n TemplatesComponent,\n TemplateComponent,\n ],\n})\nexport class FsAppMessageTemplatesModule {\n}\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\r\nimport { FsMessage } from '@firestitch/message';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\r\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'fs-app-message-webhooks',\r\n templateUrl: './webhooks.component.html',\r\n})\r\nexport class WebhooksComponent implements OnInit {\r\n\r\n @ViewChild(FsListComponent)\r\n public list: FsListComponent;\r\n\r\n public listConfig: FsListConfig;\r\n\r\n constructor(\r\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\r\n private _message: FsMessage,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.listConfig = {\r\n paging: false,\r\n actions: [\r\n {\r\n click: () => {\r\n this._config.createWebhook()\r\n .subscribe(() => {\r\n this._message.success('Created webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Create',\r\n },\r\n ],\r\n rowActions: [\r\n {\r\n click: (webhook) => {\r\n this._config.deleteWebhook(webhook)\r\n .subscribe(() => {\r\n this._message.success('Deleted webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Delete',\r\n },\r\n ],\r\n fetch: () => {\r\n return this._config.loadWebhooks()\r\n .pipe(\r\n map((webhooks) => ({ data: webhooks })),\r\n );\r\n },\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { FsDateModule } from '@firestitch/date';\n\nimport { FsListModule } from '@firestitch/list';\n\nimport { WebhooksComponent } from './components/webhooks/webhooks.component';\n\n@NgModule({\n imports: [\n FsListModule,\n\n FsDateModule,\n ],\n declarations: [\n WebhooksComponent,\n ],\n exports: [\n WebhooksComponent,\n ],\n})\nexport class FsAppMessageWebhooksModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\n\n@NgModule({\n})\nexport class FsAppMessageModule {\n static forRoot(): ModuleWithProviders<FsAppMessageModule> {\n return {\n ngModule: FsAppMessageModule,\n };\n }\n}\n"]}
@@ -28,7 +28,7 @@ let QueueComponent = class QueueComponent {
28
28
  this.messageQueueStates = indexNameValue(MessageQueueStates);
29
29
  this.resendMessageQueue = this._config.resendMessageQueue;
30
30
  this.forwardMessageQueue = this._config.forwardMessageQueue;
31
- this._config.loadMessageQueue(this._data.messageQueue.id)
31
+ this._config.loadMessageQueue(this._data.messageQueueId)
32
32
  .subscribe((messageQueue) => {
33
33
  this.messageQueue = messageQueue;
34
34
  if (this.messageQueue.emailMessageQueue) {
@@ -184,4 +184,4 @@ QueueComponent = __decorate([
184
184
  MatDialog, Object])
185
185
  ], QueueComponent);
186
186
  export { QueueComponent };
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvYXBwLW1lc3NhZ2UvIiwic291cmNlcyI6WyJhcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlL3F1ZXVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFBVSxNQUFNLEVBQWEsU0FBUyxHQUNoRCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBU3ZFLElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWM7SUFpQnpCLFlBQ3lDLE9BQTJCLEVBQzFELFFBQW1CLEVBQ25CLE9BQWlCLEVBQ2pCLE9BQWtCLEVBQ08s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RyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNqRixDQUFDO0NBQ0YsQ0FBQTs7NENBdktJLE1BQU0sU0FBQyxxQkFBcUI7WUFDWCxTQUFTO1lBQ1YsUUFBUTtZQUNSLFNBQVM7NENBQ3pCLE1BQU0sU0FBQyxlQUFlOztBQW5CekI7SUFEQyxTQUFTLENBQUMsU0FBUyxDQUFDOzhCQUNMLGVBQWU7K0NBQUM7QUFIckIsY0FBYztJQUoxQixTQUFTLENBQUM7UUFDVCx1cFBBQXFDOztLQUV0QyxDQUFDO0lBbUJHLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFJN0IsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7NkNBSE4sU0FBUztRQUNWLFFBQVE7UUFDUixTQUFTO0dBckJqQixjQUFjLENBeUwxQjtTQXpMWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcblxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgYW5jaG9ybWUgZnJvbSAnYW5jaG9ybWUnO1xuXG5pbXBvcnQgeyBFbWFpbE1lc3NhZ2VRdWV1ZUZvcm1hdCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVN0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBpbmRleE5hbWVWYWx1ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZHVsZXMvbWVzc2FnZXMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgRlNfQVBQX01FU1NBR0VfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQXBwTWVzc2FnZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUmVzZW5kTWVzc2FnZVF1ZXVlLCBGb3J3YXJkTWVzc2FnZVF1ZXVlLCBMb2FkTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL3R5cGVzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVldWUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUXVldWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZCgnbG9nTGlzdCcpXG4gIHB1YmxpYyBsb2dMaXN0OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgcHVibGljIG1lc3NhZ2VRdWV1ZTtcbiAgcHVibGljIGxvYWRNZXNzYWdlOiBMb2FkTWVzc2FnZTtcbiAgcHVibGljIHJlc2VuZE1lc3NhZ2VRdWV1ZTogUmVzZW5kTWVzc2FnZVF1ZXVlO1xuICBwdWJsaWMgZm9yd2FyZE1lc3NhZ2VRdWV1ZTogRm9yd2FyZE1lc3NhZ2VRdWV1ZTtcbiAgcHVibGljIG1lc3NhZ2VRdWV1ZVJlY2lwaWVudHMgPSB7fTtcbiAgcHVibGljIGVtYWlsTWVzc2FnZVF1ZXVlRm9ybWF0ID0gRW1haWxNZXNzYWdlUXVldWVGb3JtYXQ7XG4gIHB1YmxpYyBtZXNzYWdlUXVldWVTdGF0ZXM7XG4gIHB1YmxpYyBsb2dDb25maWc6IEZzTGlzdENvbmZpZztcbiAgcHVibGljIGF0dGFjaG1lbnRDb25maWc6IEZzTGlzdENvbmZpZztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19BUFBfTUVTU0FHRV9DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogRnNBcHBNZXNzYWdlQ29uZmlnLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZVN0YXRlcyA9IGluZGV4TmFtZVZhbHVlKE1lc3NhZ2VRdWV1ZVN0YXRlcyk7XG4gICAgdGhpcy5yZXNlbmRNZXNzYWdlUXVldWUgPSB0aGlzLl9jb25maWcucmVzZW5kTWVzc2FnZVF1ZXVlO1xuICAgIHRoaXMuZm9yd2FyZE1lc3NhZ2VRdWV1ZSA9IHRoaXMuX2NvbmZpZy5mb3J3YXJkTWVzc2FnZVF1ZXVlO1xuXG4gICAgdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlUXVldWUodGhpcy5fZGF0YS5tZXNzYWdlUXVldWUuaWQpXG4gICAgLnN1YnNjcmliZSgobWVzc2FnZVF1ZXVlKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2VRdWV1ZSA9IG1lc3NhZ2VRdWV1ZTtcblxuICAgICAgaWYgKHRoaXMubWVzc2FnZVF1ZXVlLmVtYWlsTWVzc2FnZVF1ZXVlKSB7XG4gICAgICAgIGxldCBib2R5ID0gdGhpcy5tZXNzYWdlUXVldWUuZW1haWxNZXNzYWdlUXVldWUuYm9keTtcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZVF1ZXVlLmVtYWlsTWVzc2FnZVF1ZXVlLmZvcm1hdCA9PT0gRW1haWxNZXNzYWdlUXVldWVGb3JtYXQuSFRNTCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGJvZHksICd0ZXh0L2h0bWwnKTtcblxuICAgICAgICAgICAgZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBib2R5ID0gZG9jLmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw7XG5cbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHkgPSB0aGlzLmFuY2hvcm1lKGJvZHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlUXVldWUuZW1haWxNZXNzYWdlUXVldWUuYm9keSA9IGJvZHk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5zbXNNZXNzYWdlUXVldWUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlUXVldWUuc21zTWVzc2FnZVF1ZXVlLmJvZHkgPSB0aGlzLmFuY2hvcm1lKHRoaXMubWVzc2FnZVF1ZXVlLnNtc01lc3NhZ2VRdWV1ZS5ib2R5KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tZXNzYWdlUXVldWVSZWNpcGllbnRzID0gdGhpcy5tZXNzYWdlUXVldWUubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1xuICAgICAgICAucmVkdWNlKChhY2N1bSwgbWVzc2FnZVF1ZXVlUmVjaXBpZW50KSA9PiB7XG4gICAgICAgICAgYWNjdW1bbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnJlY2lwaWVudF0gPSBtZXNzYWdlUXVldWVSZWNpcGllbnQuc3RhdGU7XG5cbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5fc2V0TG9nc0NvbmZpZyhtZXNzYWdlUXVldWUpO1xuICAgICAgdGhpcy5fc2V0QXR0YWNobWVudHNDb25maWcobWVzc2FnZVF1ZXVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhbmNob3JtZShodG1sKSB7XG4gICAgcmV0dXJuIGFuY2hvcm1lKGh0bWwsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd0YXJnZXQnLFxuICAgICAgICAgICAgdmFsdWU6ICdfYmxhbmsnXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbk1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKE1lc3NhZ2VDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJzg1JSdcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNlbmQoKSB7XG4gICAgdGhpcy5fcHJvbXB0LmNvbmZpcm0oe1xuICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgIHRlbXBsYXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHJlc2VuZCB0aGlzIG1lc3NhZ2U/J1xuICAgIH0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2VuZE1lc3NhZ2VRdWV1ZSh0aGlzLm1lc3NhZ2VRdWV1ZSlcbiAgICAgIC5zdWJzY3JpYmUobWVzc2FnZVF1ZXVlID0+IHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1lc3NhZ2VRdWV1ZSwgbWVzc2FnZVF1ZXVlKTtcbiAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgcmVzZW50Jyk7XG5cbiAgICAgICAgaWYgKHRoaXMubG9nTGlzdCkge1xuICAgICAgICAgIHRoaXMubG9nTGlzdC5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZm9yd2FyZCgpIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMubWVzc2FnZVF1ZXVlLnR5cGUgPT09IE1lc3NhZ2VRdWV1ZVR5cGUuRW1haWwgPyAnYW4gZW1haWwnIDogJ2EgcGhvbmUgbnVtYmVyJztcblxuICAgIHRoaXMuX3Byb21wdC5pbnB1dCh7XG4gICAgICBsYWJlbDogYFBsZWFzZSBlbnRlciAke3R5cGVOYW1lfSB0byBmb3J3YXJkIHRvYCxcbiAgICAgIHRpdGxlOiAnRm9yd2FyZCBNZXNzYWdlJyxcbiAgICAgIGNvbW1pdExhYmVsOiAnRm9yd2FyZCcsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0pLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9yd2FyZE1lc3NhZ2VRdWV1ZSh0aGlzLm1lc3NhZ2VRdWV1ZSwgdmFsdWUpXG4gICAgICAgIC5zdWJzY3JpYmUobWVzc2FnZVF1ZXVlID0+IHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VRdWV1ZSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMubWVzc2FnZVF1ZXVlLFxuICAgICAgICAgICAgbWVzc2FnZVF1ZXVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgZm9yd2FyZGVkJyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5sb2dMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmxvZ0xpc3QucmVsb2FkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldExvZ3NDb25maWcobWVzc2FnZVF1ZXVlKSB7XG4gICAgdGhpcy5sb2dDb25maWcgPSB7XG4gICAgICBsb2FkTW9yZTogdHJ1ZSxcbiAgICAgIHF1ZXJ5UGFyYW06IGZhbHNlLFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTG9ncyhtZXNzYWdlUXVldWUsIHF1ZXJ5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRBdHRhY2htZW50c0NvbmZpZyhtZXNzYWdlUXVldWUpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRDb25maWcgPSB7XG4gICAgICBxdWVyeVBhcmFtOiBmYWxzZSxcbiAgICAgIGZldGNoOiBxdWVyeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcubG9hZE1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRzKG1lc3NhZ2VRdWV1ZSwgcXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHtcbiAgICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YS5tYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHZhbHVlLnByZXR0eUZpbGVzaXplID0gdGhpcy5fcHJldHR5RmlsZXNpemUodmFsdWUuZmlsZXNpemUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgfSksIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLmRvd25sb2FkTWVzc2FnZVF1ZXVlQXR0YWNobWVudCkge1xuICAgICAgdGhpcy5hdHRhY2htZW50Q29uZmlnLnJvd0FjdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjbGljazogKG1lc3NhZ2VBdHRhY2htZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZG93bmxvYWRNZXNzYWdlUXVldWVBdHRhY2htZW50KG1lc3NhZ2VBdHRhY2htZW50LCB0aGlzLm1lc3NhZ2VRdWV1ZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYWJlbDogJ0Rvd25sb2FkJyxcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wcmV0dHlGaWxlc2l6ZShieXRlcykge1xuICAgIGlmIChieXRlcyA9PT0gMCkgeyByZXR1cm4gJzAuMDAgQic7IH1cbiAgICBjb25zdCBlID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG4gICAgcmV0dXJuIChieXRlcyAvIE1hdGgucG93KDEwMjQsIGUpKS50b0ZpeGVkKDIpICsgJyAnICsgJyBLTUdUUCcuY2hhckF0KGUpICsgJ0InO1xuICB9XG59XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvYXBwLW1lc3NhZ2UvIiwic291cmNlcyI6WyJhcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlL3F1ZXVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFBVSxNQUFNLEVBQWEsU0FBUyxHQUNoRCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBU3ZFLElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWM7SUFpQnpCLFlBQ3lDLE9BQTJCLEVBQzFELFFBQW1CLEVBQ25CLE9BQWlCLEVBQ2pCLE9BQWtCLEVBQ08s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QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2pGLENBQUM7Q0FDRixDQUFBOzs0Q0F2S0ksTUFBTSxTQUFDLHFCQUFxQjtZQUNYLFNBQVM7WUFDVixRQUFRO1lBQ1IsU0FBUzs0Q0FDekIsTUFBTSxTQUFDLGVBQWU7O0FBbkJ6QjtJQURDLFNBQVMsQ0FBQyxTQUFTLENBQUM7OEJBQ0wsZUFBZTsrQ0FBQztBQUhyQixjQUFjO0lBSjFCLFNBQVMsQ0FBQztRQUNULHVwUEFBcUM7O0tBRXRDLENBQUM7SUFtQkcsV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUk3QixXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTs2Q0FITixTQUFTO1FBQ1YsUUFBUTtRQUNSLFNBQVM7R0FyQmpCLGNBQWMsQ0F5TDFCO1NBekxZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCBhbmNob3JtZSBmcm9tICdhbmNob3JtZSc7XG5cbmltcG9ydCB7IEVtYWlsTWVzc2FnZVF1ZXVlRm9ybWF0IH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy9tZXNzYWdlcy9jb21wb25lbnRzJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBSZXNlbmRNZXNzYWdlUXVldWUsIEZvcndhcmRNZXNzYWdlUXVldWUsIExvYWRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvdHlwZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vcXVldWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWV1ZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBRdWV1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdsb2dMaXN0JylcbiAgcHVibGljIGxvZ0xpc3Q6IEZzTGlzdENvbXBvbmVudDtcblxuICBwdWJsaWMgbWVzc2FnZVF1ZXVlO1xuICBwdWJsaWMgbG9hZE1lc3NhZ2U6IExvYWRNZXNzYWdlO1xuICBwdWJsaWMgcmVzZW5kTWVzc2FnZVF1ZXVlOiBSZXNlbmRNZXNzYWdlUXVldWU7XG4gIHB1YmxpYyBmb3J3YXJkTWVzc2FnZVF1ZXVlOiBGb3J3YXJkTWVzc2FnZVF1ZXVlO1xuICBwdWJsaWMgbWVzc2FnZVF1ZXVlUmVjaXBpZW50cyA9IHt9O1xuICBwdWJsaWMgZW1haWxNZXNzYWdlUXVldWVGb3JtYXQgPSBFbWFpbE1lc3NhZ2VRdWV1ZUZvcm1hdDtcbiAgcHVibGljIG1lc3NhZ2VRdWV1ZVN0YXRlcztcbiAgcHVibGljIGxvZ0NvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgYXR0YWNobWVudENvbmZpZzogRnNMaXN0Q29uZmlnO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZTX0FQUF9NRVNTQUdFX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBGc0FwcE1lc3NhZ2VDb25maWcsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX3Byb21wdDogRnNQcm9tcHQsXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGEsXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWVzc2FnZVF1ZXVlU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoTWVzc2FnZVF1ZXVlU3RhdGVzKTtcbiAgICB0aGlzLnJlc2VuZE1lc3NhZ2VRdWV1ZSA9IHRoaXMuX2NvbmZpZy5yZXNlbmRNZXNzYWdlUXVldWU7XG4gICAgdGhpcy5mb3J3YXJkTWVzc2FnZVF1ZXVlID0gdGhpcy5fY29uZmlnLmZvcndhcmRNZXNzYWdlUXVldWU7XG5cbiAgICB0aGlzLl9jb25maWcubG9hZE1lc3NhZ2VRdWV1ZSh0aGlzLl9kYXRhLm1lc3NhZ2VRdWV1ZUlkKVxuICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2VRdWV1ZSkgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlUXVldWUgPSBtZXNzYWdlUXVldWU7XG5cbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5lbWFpbE1lc3NhZ2VRdWV1ZSkge1xuICAgICAgICBsZXQgYm9keSA9IHRoaXMubWVzc2FnZVF1ZXVlLmVtYWlsTWVzc2FnZVF1ZXVlLmJvZHk7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VRdWV1ZS5lbWFpbE1lc3NhZ2VRdWV1ZS5mb3JtYXQgPT09IEVtYWlsTWVzc2FnZVF1ZXVlRm9ybWF0LkhUTUwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhib2R5LCAndGV4dC9odG1sJyk7XG5cbiAgICAgICAgICAgIGRvYy5xdWVyeVNlbGVjdG9yQWxsKCdhJykuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYm9keSA9IGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MO1xuXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBib2R5ID0gdGhpcy5hbmNob3JtZShib2R5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWVzc2FnZVF1ZXVlLmVtYWlsTWVzc2FnZVF1ZXVlLmJvZHkgPSBib2R5O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tZXNzYWdlUXVldWUuc21zTWVzc2FnZVF1ZXVlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVF1ZXVlLnNtc01lc3NhZ2VRdWV1ZS5ib2R5ID0gdGhpcy5hbmNob3JtZSh0aGlzLm1lc3NhZ2VRdWV1ZS5zbXNNZXNzYWdlUXVldWUuYm9keSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZVF1ZXVlUmVjaXBpZW50cyA9IHRoaXMubWVzc2FnZVF1ZXVlLm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNcbiAgICAgICAgLnJlZHVjZSgoYWNjdW0sIG1lc3NhZ2VRdWV1ZVJlY2lwaWVudCkgPT4ge1xuICAgICAgICAgIGFjY3VtW21lc3NhZ2VRdWV1ZVJlY2lwaWVudC5yZWNpcGllbnRdID0gbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnN0YXRlO1xuXG4gICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgIHRoaXMuX3NldExvZ3NDb25maWcobWVzc2FnZVF1ZXVlKTtcbiAgICAgIHRoaXMuX3NldEF0dGFjaG1lbnRzQ29uZmlnKG1lc3NhZ2VRdWV1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYW5jaG9ybWUoaHRtbCkge1xuICAgIHJldHVybiBhbmNob3JtZShodG1sLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAndGFyZ2V0JyxcbiAgICAgICAgICAgIHZhbHVlOiAnX2JsYW5rJ1xuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5NZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihNZXNzYWdlQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgd2lkdGg6ICc4NSUnXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZW5kKCkge1xuICAgIHRoaXMuX3Byb21wdC5jb25maXJtKHtcbiAgICAgIHRpdGxlOiAnQ29uZmlybScsXG4gICAgICB0ZW1wbGF0ZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byByZXNlbmQgdGhpcyBtZXNzYWdlPydcbiAgICB9KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNlbmRNZXNzYWdlUXVldWUodGhpcy5tZXNzYWdlUXVldWUpXG4gICAgICAuc3Vic2NyaWJlKG1lc3NhZ2VRdWV1ZSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXNzYWdlUXVldWUsIG1lc3NhZ2VRdWV1ZSk7XG4gICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHJlc2VudCcpO1xuXG4gICAgICAgIGlmICh0aGlzLmxvZ0xpc3QpIHtcbiAgICAgICAgICB0aGlzLmxvZ0xpc3QucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZvcndhcmQoKSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLm1lc3NhZ2VRdWV1ZS50eXBlID09PSBNZXNzYWdlUXVldWVUeXBlLkVtYWlsID8gJ2FuIGVtYWlsJyA6ICdhIHBob25lIG51bWJlcic7XG5cbiAgICB0aGlzLl9wcm9tcHQuaW5wdXQoe1xuICAgICAgbGFiZWw6IGBQbGVhc2UgZW50ZXIgJHt0eXBlTmFtZX0gdG8gZm9yd2FyZCB0b2AsXG4gICAgICB0aXRsZTogJ0ZvcndhcmQgTWVzc2FnZScsXG4gICAgICBjb21taXRMYWJlbDogJ0ZvcndhcmQnLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9KS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLmZvcndhcmRNZXNzYWdlUXVldWUodGhpcy5tZXNzYWdlUXVldWUsIHZhbHVlKVxuICAgICAgICAuc3Vic2NyaWJlKG1lc3NhZ2VRdWV1ZSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlUXVldWUgPSB7XG4gICAgICAgICAgICAuLi50aGlzLm1lc3NhZ2VRdWV1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2VRdWV1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IGZvcndhcmRlZCcpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubG9nTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5sb2dMaXN0LnJlbG9hZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRMb2dzQ29uZmlnKG1lc3NhZ2VRdWV1ZSkge1xuICAgIHRoaXMubG9nQ29uZmlnID0ge1xuICAgICAgbG9hZE1vcmU6IHRydWUsXG4gICAgICBxdWVyeVBhcmFtOiBmYWxzZSxcbiAgICAgIGZldGNoOiBxdWVyeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcubG9hZExvZ3MobWVzc2FnZVF1ZXVlLCBxdWVyeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXR0YWNobWVudHNDb25maWcobWVzc2FnZVF1ZXVlKSB7XG4gICAgdGhpcy5hdHRhY2htZW50Q29uZmlnID0ge1xuICAgICAgcXVlcnlQYXJhbTogZmFsc2UsXG4gICAgICBmZXRjaDogcXVlcnkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlUXVldWVBdHRhY2htZW50cyhtZXNzYWdlUXVldWUsIHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+ICh7XG4gICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGEubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5wcmV0dHlGaWxlc2l6ZSA9IHRoaXMuX3ByZXR0eUZpbGVzaXplKHZhbHVlLmZpbGVzaXplKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgIH0pLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZ1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5kb3dubG9hZE1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnQpIHtcbiAgICAgIHRoaXMuYXR0YWNobWVudENvbmZpZy5yb3dBY3Rpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgY2xpY2s6IChtZXNzYWdlQXR0YWNobWVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmRvd25sb2FkTWVzc2FnZVF1ZXVlQXR0YWNobWVudChtZXNzYWdlQXR0YWNobWVudCwgdGhpcy5tZXNzYWdlUXVldWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFiZWw6ICdEb3dubG9hZCcsXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcHJldHR5RmlsZXNpemUoYnl0ZXMpIHtcbiAgICBpZiAoYnl0ZXMgPT09IDApIHsgcmV0dXJuICcwLjAwIEInOyB9XG4gICAgY29uc3QgZSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgIHJldHVybiAoYnl0ZXMgLyBNYXRoLnBvdygxMDI0LCBlKSkudG9GaXhlZCgyKSArICcgJyArICcgS01HVFAnLmNoYXJBdChlKSArICdCJztcbiAgfVxufVxuIl19
@@ -6,15 +6,16 @@ import { Subject, of } from 'rxjs';
6
6
  import { FsListComponent } from '@firestitch/list';
7
7
  import { ItemType } from '@firestitch/filter';
8
8
  import { SelectionActionType } from '@firestitch/selection';
9
- import { QueueComponent } from '../queue';
10
9
  import { MessageQueueStates } from '../../consts';
11
10
  import { indexNameValue } from '../../../../helpers';
12
11
  import { MessageQueueState } from '../../enums/message-queue-state.enum';
13
12
  import { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';
13
+ import { FsMessageQueueService } from '../../services/message-queue.service';
14
14
  let QueuesComponent = class QueuesComponent {
15
- constructor(_config, _dialog) {
15
+ constructor(_config, _dialog, _messageQueueService) {
16
16
  this._config = _config;
17
17
  this._dialog = _dialog;
18
+ this._messageQueueService = _messageQueueService;
18
19
  this.list = null;
19
20
  this.query = {};
20
21
  this.config = null;
@@ -102,13 +103,7 @@ let QueuesComponent = class QueuesComponent {
102
103
  });
103
104
  }
104
105
  open(messageQueue) {
105
- this._dialog.open(QueueComponent, {
106
- data: {
107
- messageQueue: messageQueue,
108
- },
109
- width: '85%'
110
- })
111
- .afterClosed()
106
+ this._messageQueueService.openMessageQueue(messageQueue.id)
112
107
  .pipe(takeUntil(this._destroy$))
113
108
  .subscribe(() => {
114
109
  this.list.reload();
@@ -121,7 +116,8 @@ let QueuesComponent = class QueuesComponent {
121
116
  };
122
117
  QueuesComponent.ctorParameters = () => [
123
118
  { type: undefined, decorators: [{ type: Inject, args: [FS_APP_MESSAGE_CONFIG,] }] },
124
- { type: MatDialog }
119
+ { type: MatDialog },
120
+ { type: FsMessageQueueService }
125
121
  ];
126
122
  __decorate([
127
123
  ViewChild(FsListComponent, { static: true }),
@@ -138,7 +134,8 @@ QueuesComponent = __decorate([
138
134
  styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}"]
139
135
  }),
140
136
  __param(0, Inject(FS_APP_MESSAGE_CONFIG)),
141
- __metadata("design:paramtypes", [Object, MatDialog])
137
+ __metadata("design:paramtypes", [Object, MatDialog,
138
+ FsMessageQueueService])
142
139
  ], QueuesComponent);
143
140
  export { QueuesComponent };
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2FwcC1tZXNzYWdlLyIsInNvdXJjZXMiOlsiYXBwL21vZHVsZXMvbWVzc2FnZS1xdWV1ZXMvY29tcG9uZW50cy9xdWV1ZXMvcXVldWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuQyxPQUFPLEVBQXdCLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBU3ZFLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFhMUIsWUFDeUMsT0FBMkIsRUFDMUQsT0FBa0I7UUFEYSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxRCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBWnJCLFNBQUksR0FBb0IsSUFBSSxDQUFDO1FBRXBCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRXJDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzlCLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNO29CQUNyQixLQUFLLEVBQUUsUUFBUTtvQkFDZixNQUFNLEVBQUUsR0FBRyxFQUFFO3dCQUNYLE9BQU8sa0JBQWtCLENBQUM7b0JBQzVCLENBQUM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTO29CQUN4QixLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2lCQUNoQzthQUNGO1lBQ0QsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ2xELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixLQUFLLGlEQUNBLEtBQUssR0FDTCxJQUFJLENBQUMsS0FBSyxLQUNiLDRCQUE0QixFQUFFLElBQUksRUFDbEMsa0JBQWtCLEVBQUUsSUFBSSxFQUN4Qix1QkFBdUIsRUFBRSxLQUFLLEVBQzlCLGdCQUFnQixFQUFFLElBQUksR0FDdkIsQ0FBQztnQkFFRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO3FCQUN6QyxJQUFJLENBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTt5QkFDbkMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7d0JBQ3BCLHVDQUNLLFlBQVksS0FDZixzQkFBc0IsRUFBRSxZQUFZLENBQUMsc0JBQXNCO2lDQUMxRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRTtnQ0FDdkMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQztnQ0FFckUsT0FBTyxLQUFLLENBQUM7NEJBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUNOO29CQUNKLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUNsQyxDQUFBO1lBQ0wsQ0FBQztTQUNGLENBQUM7UUFFRiwwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHO2dCQUN0QixTQUFTLEVBQUUsS0FBSztnQkFDaEIsT0FBTyxFQUFFLEVBQ1I7Z0JBQ0QsY0FBYyxFQUFFLENBQUMsTUFBNEIsRUFBRSxFQUFFO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUJBQ1osSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ2IsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7NEJBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDakQ7d0JBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUU7d0JBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztnQkFDTixDQUFDO2FBQ0YsQ0FBQztTQUNIO1FBRUQsb0RBQW9EO1FBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtnQkFDaEMsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLGVBQWU7YUFDdkIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdkIsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3JCLEtBQUssRUFBRSxjQUFjO1lBQ3JCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoQixLQUFLLG1DQUNBLEtBQUssS0FDUixLQUFLLEVBQUUsRUFBRSxHQUNWLENBQUM7Z0JBRUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7cUJBQ3BDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDZixPQUFPO3dCQUNMLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHO3dCQUM3QixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUN0RSxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNILENBQUE7WUFDTCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLElBQUksQ0FBQyxZQUFZO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNoQyxJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLFlBQVk7YUFDM0I7WUFDRCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7YUFDQyxXQUFXLEVBQUU7YUFDYixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YsQ0FBQTs7NENBcklJLE1BQU0sU0FBQyxxQkFBcUI7WUFDWixTQUFTOztBQVo1QjtJQURDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7OEJBQ2hDLGVBQWU7NkNBQVE7QUFFM0I7SUFBUixLQUFLLEVBQUU7OzhDQUFtQjtBQUxoQixlQUFlO0lBTDNCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSx1QkFBdUI7UUFFakMsMjVGQUFzQzs7S0FDdkMsQ0FBQztJQWVHLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7NkNBQ2IsU0FBUztHQWZqQixlQUFlLENBbUozQjtTQW5KWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZzTGlzdEFjdGlvblNlbGVjdGVkLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQWN0aW9uVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5cbmltcG9ydCB7IFF1ZXVlQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVldWUnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVTdGF0ZSB9IGZyb20gJy4uLy4uL2VudW1zL21lc3NhZ2UtcXVldWUtc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXBwLW1lc3NhZ2UtcXVldWVzJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVldWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWV1ZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXVlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudCA9IG51bGw7XG5cbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5ID0ge307XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIG1lc3NhZ2VRdWV1ZVN0YXRlcyA9IHt9O1xuICBwdWJsaWMgTWVzc2FnZVF1ZXVlU3RhdGUgPSBNZXNzYWdlUXVldWVTdGF0ZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19BUFBfTUVTU0FHRV9DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogRnNBcHBNZXNzYWdlQ29uZmlnLCAgICBcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tZXNzYWdlUXVldWVTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShNZXNzYWdlUXVldWVTdGF0ZXMpO1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdzdGF0ZScsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICAgIGxhYmVsOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZXM6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVTdGF0ZXM7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNvcnQ6IHsgdmFsdWU6ICdjcmVhdGVkX2RhdGUnLCBkaXJlY3Rpb246ICdkZXNjJyB9LFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgLi4udGhpcy5xdWVyeSxcbiAgICAgICAgICBtZXNzYWdlUXVldWVBdHRhY2htZW50Q291bnRzOiB0cnVlLFxuICAgICAgICAgIGVtYWlsTWVzc2FnZVF1ZXVlczogdHJ1ZSxcbiAgICAgICAgICBlbWFpbE1lc3NhZ2VRdWV1ZUJvZGllczogZmFsc2UsXG4gICAgICAgICAgc21zTWVzc2FnZVF1ZXVlczogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlUXVldWVzKHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+ICh7IGRhdGE6IHJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgLm1hcCgobWVzc2FnZVF1ZXVlKSA9PiB7ICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgLi4ubWVzc2FnZVF1ZXVlLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZVF1ZXVlUmVjaXBpZW50czogbWVzc2FnZVF1ZXVlLm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNcbiAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBtZXNzYWdlUXVldWVSZWNpcGllbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYWNjdW1bbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnJlY2lwaWVudF0gPSBtZXNzYWdlUXVldWVSZWNpcGllbnQuc3RhdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgICAgfSwge30pLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyB9KSlcbiAgICAgICAgICApXG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIGlmIGFueSBidWxrIGFjdGlvbnMgYWRkIHRoZSBzZWxlY3Rpb24gb2JqZWN0IHRvIGNvbmZpZy5cbiAgICBpZiAodGhpcy5fY29uZmlnLmNhbmNlbE1lc3NhZ2VRdWV1ZXMpIHtcbiAgICAgIHRoaXMuY29uZmlnLnNlbGVjdGlvbiA9IHtcbiAgICAgICAgc2VsZWN0QWxsOiBmYWxzZSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICBdLFxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvbjogRnNMaXN0QWN0aW9uU2VsZWN0ZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uYWN0aW9uLm5hbWUgPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmNhbmNlbE1lc3NhZ2VRdWV1ZXMoYWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGFkZCBlYWNoIGluZGl2aWR1YWwgYnVsayBhY3Rpb24gdG8gc2VsZWN0IGFjdGlvbnNcbiAgICBpZiAodGhpcy5fY29uZmlnLmNhbmNlbE1lc3NhZ2VRdWV1ZXMpIHtcbiAgICAgIHRoaXMuY29uZmlnLnNlbGVjdGlvbi5hY3Rpb25zLnB1c2goe1xuICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgbmFtZTogJ2NhbmNlbCcsXG4gICAgICAgIGxhYmVsOiAnQ2FuY2VsIFF1ZXVlZCcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZy5maWx0ZXJzLnB1c2goe1xuICAgICAgbmFtZTogJ21lc3NhZ2VfaWQnLFxuICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgbGFiZWw6ICdNZXNzYWdlIFR5cGUnLFxuICAgICAgdmFsdWVzOiAocXVlcnkpID0+IHtcbiAgICAgICAgcXVlcnkgPSB7IFxuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiA1MCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBuYW1lOiAnQWxsJywgfSxcbiAgICAgICAgICAgICAgICAuLi5yZXNwb25zZS5kYXRhLm1hcCgoaXRlbSkgPT4gKHsgbmFtZTogaXRlbS5uYW1lLCB2YWx1ZTogaXRlbS5pZCB9KSksXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKG1lc3NhZ2VRdWV1ZSkge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKFF1ZXVlQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lc3NhZ2VRdWV1ZTogbWVzc2FnZVF1ZXVlLFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnODUlJ1xuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2FwcC1tZXNzYWdlLyIsInNvdXJjZXMiOlsiYXBwL21vZHVsZXMvbWVzc2FnZS1xdWV1ZXMvY29tcG9uZW50cy9xdWV1ZXMvcXVldWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuQyxPQUFPLEVBQXdCLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQVE3RSxJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBYTFCLFlBQ3lDLE9BQTJCLEVBQzFELE9BQWtCLEVBQ2xCLG9CQUEyQztRQUZaLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzFELFlBQU8sR0FBUCxP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LENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsWUFBWTtRQUN0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzthQUN4RCxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YsQ0FBQTs7NENBaElJLE1BQU0sU0FBQyxxQkFBcUI7WUFDWixTQUFTO1lBQ0kscUJBQXFCOztBQWJyRDtJQURDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7OEJBQ2hDLGVBQWU7NkNBQVE7QUFFM0I7SUFBUixLQUFLLEVBQUU7OzhDQUFtQjtBQUxoQixlQUFlO0lBTDNCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSx1QkFBdUI7UUFFakMsMjVGQUFzQzs7S0FDdkMsQ0FBQztJQWVHLFdBQUEsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUE7NkNBQ2IsU0FBUztRQUNJLHFCQUFxQjtHQWhCMUMsZUFBZSxDQThJM0I7U0E5SVksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGc0xpc3RBY3Rpb25TZWxlY3RlZCwgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkFjdGlvblR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xuXG5pbXBvcnQgeyBNZXNzYWdlUXVldWVTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVN0YXRlIH0gZnJvbSAnLi4vLi4vZW51bXMvbWVzc2FnZS1xdWV1ZS1zdGF0ZS5lbnVtJztcbmltcG9ydCB7IEZTX0FQUF9NRVNTQUdFX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2luamVjdG9ycyc7XG5pbXBvcnQgeyBGc0FwcE1lc3NhZ2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZzTWVzc2FnZVF1ZXVlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2UtcXVldWUuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXBwLW1lc3NhZ2UtcXVldWVzJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVldWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWV1ZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXVlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudCA9IG51bGw7XG5cbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5ID0ge307XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIG1lc3NhZ2VRdWV1ZVN0YXRlcyA9IHt9O1xuICBwdWJsaWMgTWVzc2FnZVF1ZXVlU3RhdGUgPSBNZXNzYWdlUXVldWVTdGF0ZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19BUFBfTUVTU0FHRV9DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogRnNBcHBNZXNzYWdlQ29uZmlnLCAgICBcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIF9tZXNzYWdlUXVldWVTZXJ2aWNlOiBGc01lc3NhZ2VRdWV1ZVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWVzc2FnZVF1ZXVlU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoTWVzc2FnZVF1ZXVlU3RhdGVzKTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlU3RhdGVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdkYXRlJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5EYXRlUmFuZ2UsXG4gICAgICAgICAgbGFiZWw6IFsnRnJvbSBEYXRlJywgJ1RvIERhdGUnXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzb3J0OiB7IHZhbHVlOiAnY3JlYXRlZF9kYXRlJywgZGlyZWN0aW9uOiAnZGVzYycgfSxcbiAgICAgIGZldGNoOiBxdWVyeSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIC4uLnRoaXMucXVlcnksXG4gICAgICAgICAgbWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50czogdHJ1ZSxcbiAgICAgICAgICBlbWFpbE1lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgICAgZW1haWxNZXNzYWdlUXVldWVCb2RpZXM6IGZhbHNlLFxuICAgICAgICAgIHNtc01lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZVF1ZXVlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAoeyBkYXRhOiByZXNwb25zZS5kYXRhXG4gICAgICAgICAgICAgIC5tYXAoKG1lc3NhZ2VRdWV1ZSkgPT4geyAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLm1lc3NhZ2VRdWV1ZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VRdWV1ZVJlY2lwaWVudHM6IG1lc3NhZ2VRdWV1ZS5tZXNzYWdlUXVldWVSZWNpcGllbnRzXG4gICAgICAgICAgICAgICAgICAucmVkdWNlKChhY2N1bSwgbWVzc2FnZVF1ZXVlUmVjaXBpZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGFjY3VtW21lc3NhZ2VRdWV1ZVJlY2lwaWVudC5yZWNpcGllbnRdID0gbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnN0YXRlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSkpXG4gICAgICAgICAgKVxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBpZiBhbnkgYnVsayBhY3Rpb25zIGFkZCB0aGUgc2VsZWN0aW9uIG9iamVjdCB0byBjb25maWcuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5jYW5jZWxNZXNzYWdlUXVldWVzKSB7XG4gICAgICB0aGlzLmNvbmZpZy5zZWxlY3Rpb24gPSB7XG4gICAgICAgIHNlbGVjdEFsbDogZmFsc2UsXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXSxcbiAgICAgICAgYWN0aW9uU2VsZWN0ZWQ6IChhY3Rpb246IEZzTGlzdEFjdGlvblNlbGVjdGVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKHRydWUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLmFjdGlvbi5uYW1lID09PSAnY2FuY2VsJykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5jYW5jZWxNZXNzYWdlUXVldWVzKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBhZGQgZWFjaCBpbmRpdmlkdWFsIGJ1bGsgYWN0aW9uIHRvIHNlbGVjdCBhY3Rpb25zXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5jYW5jZWxNZXNzYWdlUXVldWVzKSB7XG4gICAgICB0aGlzLmNvbmZpZy5zZWxlY3Rpb24uYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICBsYWJlbDogJ0NhbmNlbCBRdWV1ZWQnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcuZmlsdGVycy5wdXNoKHtcbiAgICAgIG5hbWU6ICdtZXNzYWdlX2lkJyxcbiAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgIGxhYmVsOiAnTWVzc2FnZSBUeXBlJyxcbiAgICAgIHZhbHVlczogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0geyBcbiAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICBsaW1pdDogNTAsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZXMocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogbnVsbCwgbmFtZTogJ0FsbCcsIH0sXG4gICAgICAgICAgICAgICAgLi4ucmVzcG9uc2UuZGF0YS5tYXAoKGl0ZW0pID0+ICh7IG5hbWU6IGl0ZW0ubmFtZSwgdmFsdWU6IGl0ZW0uaWQgfSkpLFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbihtZXNzYWdlUXVldWUpIHtcbiAgICB0aGlzLl9tZXNzYWdlUXVldWVTZXJ2aWNlLm9wZW5NZXNzYWdlUXVldWUobWVzc2FnZVF1ZXVlLmlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19