ngx-bootstrap 6.1.0 → 6.2.0

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 (154) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
  3. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
  4. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
  5. package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
  6. package/accordion/package.json +1 -1
  7. package/alert/package.json +1 -1
  8. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
  9. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
  10. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
  11. package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
  12. package/buttons/package.json +1 -1
  13. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
  14. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
  15. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
  16. package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
  17. package/carousel/package.json +1 -1
  18. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  19. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  20. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  21. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  22. package/chronos/package.json +1 -1
  23. package/collapse/package.json +1 -1
  24. package/component-loader/package.json +1 -1
  25. package/datepicker/base/bs-datepicker-container.d.ts +4 -1
  26. package/datepicker/bs-datepicker.config.d.ts +16 -0
  27. package/datepicker/bs-datepicker.css +108 -0
  28. package/datepicker/bs-datepicker.css.map +3 -3
  29. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +59 -9
  30. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  31. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
  32. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  33. package/datepicker/esm2015/base/bs-datepicker-container.js +9 -3
  34. package/datepicker/esm2015/bs-datepicker.config.js +37 -1
  35. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +2 -2
  36. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
  37. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +7 -3
  38. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  39. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +3 -2
  40. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  41. package/datepicker/esm5/base/bs-datepicker-container.js +9 -3
  42. package/datepicker/esm5/bs-datepicker.config.js +37 -1
  43. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +2 -2
  44. package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
  45. package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +7 -3
  46. package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
  47. package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +3 -2
  48. package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
  49. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +59 -9
  50. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  51. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +59 -9
  52. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  53. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  54. package/datepicker/package.json +1 -1
  55. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
  56. package/datepicker/utils/scss/mixins.css.map +2 -2
  57. package/datepicker/utils/scss/mixins.scss +98 -0
  58. package/datepicker/utils/scss/variables.css.map +1 -1
  59. package/datepicker/utils/scss/variables.scss +14 -0
  60. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
  61. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
  62. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
  63. package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
  64. package/dropdown/package.json +1 -1
  65. package/locale/package.json +1 -1
  66. package/mini-ngrx/package.json +1 -1
  67. package/modal/bs-modal-ref.service.d.ts +2 -2
  68. package/modal/bs-modal.service.d.ts +3 -1
  69. package/modal/bundles/ngx-bootstrap-modal.umd.js +19 -8
  70. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
  71. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
  72. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
  73. package/modal/esm2015/bs-modal-ref.service.js +5 -1
  74. package/modal/esm2015/bs-modal.service.js +7 -2
  75. package/modal/esm2015/modal-container.component.js +2 -1
  76. package/modal/esm2015/modal-options.class.js +6 -3
  77. package/modal/esm2015/modal.directive.js +2 -2
  78. package/modal/esm2015/models/index.js +3 -1
  79. package/modal/esm2015/ngx-bootstrap-modal.js +3 -3
  80. package/modal/esm2015/public_api.js +2 -2
  81. package/modal/esm5/bs-modal-ref.service.js +4 -1
  82. package/modal/esm5/bs-modal.service.js +8 -4
  83. package/modal/esm5/modal-container.component.js +2 -1
  84. package/modal/esm5/modal-options.class.js +6 -3
  85. package/modal/esm5/modal.directive.js +2 -2
  86. package/modal/esm5/models/index.js +3 -1
  87. package/modal/esm5/ngx-bootstrap-modal.js +3 -3
  88. package/modal/esm5/public_api.js +2 -2
  89. package/modal/fesm2015/ngx-bootstrap-modal.js +18 -5
  90. package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
  91. package/modal/fesm5/ngx-bootstrap-modal.js +18 -7
  92. package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
  93. package/modal/modal-options.class.d.ts +2 -2
  94. package/modal/models/index.d.ts +1 -0
  95. package/modal/ngx-bootstrap-modal.d.ts +1 -1
  96. package/modal/ngx-bootstrap-modal.metadata.json +1 -1
  97. package/modal/package.json +1 -1
  98. package/modal/public_api.d.ts +1 -1
  99. package/package.json +2 -2
  100. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
  101. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
  102. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
  103. package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
  104. package/pagination/package.json +1 -1
  105. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  106. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  107. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  108. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  109. package/popover/package.json +1 -1
  110. package/positioning/package.json +1 -1
  111. package/progressbar/bar.component.d.ts +4 -7
  112. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +40 -64
  113. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
  114. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
  115. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
  116. package/progressbar/esm2015/bar.component.js +33 -48
  117. package/progressbar/esm2015/progressbar.component.js +5 -8
  118. package/progressbar/esm5/bar.component.js +37 -58
  119. package/progressbar/esm5/progressbar.component.js +5 -8
  120. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +36 -54
  121. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
  122. package/progressbar/fesm5/ngx-bootstrap-progressbar.js +40 -64
  123. package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
  124. package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
  125. package/progressbar/package.json +1 -1
  126. package/progressbar/progressbar.component.d.ts +1 -1
  127. package/rating/package.json +1 -1
  128. package/sortable/package.json +1 -1
  129. package/tabs/package.json +1 -1
  130. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -3
  131. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
  132. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
  133. package/timepicker/esm2015/timepicker.component.js +2 -2
  134. package/timepicker/esm2015/timepicker.config.js +3 -3
  135. package/timepicker/esm5/timepicker.component.js +2 -2
  136. package/timepicker/esm5/timepicker.config.js +3 -3
  137. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -3
  138. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
  139. package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -3
  140. package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
  141. package/timepicker/package.json +1 -1
  142. package/timepicker/timepicker.component.d.ts +1 -1
  143. package/timepicker/timepicker.config.d.ts +1 -1
  144. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  145. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  146. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  147. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  148. package/tooltip/package.json +1 -1
  149. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  150. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  151. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  152. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  153. package/typeahead/package.json +1 -1
  154. package/utils/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/modal/bs-modal-ref.service.ts","ng://ngx-bootstrap/modal/modal-backdrop.options.ts","ng://ngx-bootstrap/modal/modal-options.class.ts","ng://ngx-bootstrap/modal/modal-container.component.ts","ng://ngx-bootstrap/modal/modal-backdrop.component.ts","ng://ngx-bootstrap/modal/modal.directive.ts","ng://ngx-bootstrap/modal/bs-modal.service.ts","ng://ngx-bootstrap/modal/modal.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","BsModalRef","this","hide","Function","setClass","Injectable","ModalBackdropOptions","options","animate","Object","assign","ModalOptions","modalConfigDefaults","id","Date","getUTCMilliseconds","backdrop","keyboard","focus","show","ignoreBackdropClick","class","animated","initialState","MODAL_CONFIG_DEFAULT_OVERRIDE","InjectionToken","CLASS_NAME","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","IN","SHOW","TRANSITION_DURATIONS","DISMISS_REASONS","ModalContainerComponent","_element","_renderer","isShown","isModalHiding","clickStartedInContent","config","prototype","ngOnInit","_this","isAnimated","addClass","nativeElement","setStyle","setTimeout","isBs3","document","body","bsModalService","getModalsCount","checkScrollbar","setScrollbar","onClickStarted","event","target","onClickStop","clickedInBackdrop","setDismissReason","onPopState","onEsc","keyCode","key","preventDefault","level","ngOnDestroy","removeClass","Component","args","selector","template","host","role","tabindex","[attr.aria-modal]","[attr.aria-labelledby]","[attr.aria-describedby]","ElementRef","Renderer2","HostListener","ModalBackdropComponent","element","renderer","_isShown","defineProperty","_isAnimated","Utils","reflow","ModalDirective","_viewContainerRef","clf","modalDefaultOption","onShow","EventEmitter","onShown","onHide","onHidden","isBodyOverflowing","originalBodyPadding","scrollbarWidth","timerHideModal","timerRmBackDrop","isNested","_backdrop","createLoader","_config","conf","getConfig","dismissReason","hideModal","dispose","toggle","emit","clearTimeout","classList","contains","showBackdrop","showElement","window","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","setAttribute","setProperty","transitionComplete","resetScrollbar","resetAdjustments","focusOtherModal","callback","instance","callbackRemove","removeBackdrop","attach","to","_componentRef","parentElement","otherOpenedModals","querySelectorAll","clientWidth","innerWidth","getScrollbarWidth","parseInt","getComputedStyle","getPropertyValue","style","paddingRight","scrollDiv","createElement","offsetWidth","removeChild","Directive","exportAs","ViewContainerRef","ComponentLoaderFactory","decorators","type","Optional","Inject","Input","Output","BsModalService","rendererFactory","modalsCount","lastDismissReason","loaders","_backdropLoader","createRenderer","content","_createLoaders","_showBackdrop","_showModal","_hideBackdrop","_hideModal","removeLoaders","isBackdropEnabled","isBackdropInDOM","backdropRef","duration","modalLoader","providers","_c","_d","provider","provide","bsModalRef","modalContainerRef","useValue","newClass","copyEvent","onBeforeHide","getInnerComponent","_b","indexToRemove","findIndex","loader","forEach","reason","onBeforeShow","push","splice","from","subscribe","data","RendererFactory2","ModalModule","forRoot","ngModule","PositioningService","forChild","NgModule","declarations","exports","entryComponents"],"mappings":";;;;;;;;;;;;;;oFA0GO,SAASA,EAASC,GACrB,IAAIC,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UAAWC,EAAI,EAChE,OAAIH,EAAUA,EAAEI,KAAKL,GACd,CACHM,KAAM,WAEF,OADIN,GAAKI,GAAKJ,EAAEO,SAAQP,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEI,KAAMK,MAAOT,sBC9GhD,SAAAU,IAgBEC,KAAAC,KAAmBC,SAInBF,KAAAG,SAAuCD,SAWzC,2BA/BCE,EAAAA,aA+BDL,KCjCA,IAAAM,EAGE,SAAYC,GAFZN,KAAAO,SAAU,EAGRC,OAAOC,OAAOT,KAAMM,ICJxB,IAAAI,EAAA,WAGA,SAAAA,KAiDA,2BAjDCN,EAAAA,aAiDDM,EApDA,GAsDA,IAAaC,EAAoC,CAC/CC,IAAI,IAAKC,MAAQC,qBACjBC,UAAU,EACVC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,qBAAqB,EACrBC,MAAO,GACPC,UAAU,EACVC,aAAc,IAGHC,EACX,IAAIC,EAAAA,eAA6B,2BAEtBC,EAAwB,CACnCC,mBAAoB,0BACpBC,SAAU,iBACVC,KAAM,aACNC,KAAM,OACNC,GAAI,KACJC,KAAM,QAUKC,EACJ,IADIA,EAED,IAGCC,EACD,iBADCA,EAEN,MC5FPC,EAAA,WA4CE,SAAAA,EAAY5B,EACU6B,EACFC,GADEpC,KAAAmC,SAAAA,EACFnC,KAAAoC,UAAAA,EATpBpC,KAAAqC,SAAU,EAIFrC,KAAAsC,eAAgB,EAChBtC,KAAAuC,uBAAwB,EAK9BvC,KAAKwC,OAAShC,OAAOC,OAAO,GAAIH,GA4GpC,OAzGE4B,EAAAO,UAAAC,SAAA,WAAA,IAAAC,EAAA3C,KACMA,KAAK4C,YACP5C,KAAKoC,UAAUS,SACb7C,KAAKmC,SAASW,cACdrB,EAAWI,MAGf7B,KAAKoC,UAAUW,SACb/C,KAAKmC,SAASW,cACd,UACA,SAEFE,YAAU,WACRL,EAAKN,SAAU,EACfM,EAAKP,UAAUS,SACbF,EAAKR,SAASW,cACdG,EAAAA,QAAUxB,EAAWK,GAAKL,EAAWM,QAEtC/B,KAAK4C,WAAaZ,EAAgC,GACjDkB,UAAYA,SAASC,OACsB,IAAzCnD,KAAKoD,eAAeC,mBACtBrD,KAAKoD,eAAeE,iBACpBtD,KAAKoD,eAAeG,gBAEtBvD,KAAKoC,UAAUS,SAASK,SAASC,KAAM1B,EAAWG,OAEhD5B,KAAKmC,SAASW,eAChB9C,KAAKmC,SAASW,cAAc7B,SAKhCiB,EAAAO,UAAAe,eADA,SACeC,GACbzD,KAAKuC,sBAAwBkB,EAAMC,SAAW1D,KAAKmC,SAASW,eAI9DZ,EAAAO,UAAAkB,YADA,SACYF,OACJG,EAAoBH,EAAMC,SAAW1D,KAAKmC,SAASW,gBAAkB9C,KAAKuC,uBAE9EvC,KAAKwC,OAAOrB,qBACa,WAAzBnB,KAAKwC,OAAOzB,UACX6C,GAMH5D,KAAKoD,eAAeS,iBAAiB5B,GACrCjC,KAAKC,QALHD,KAAKuC,uBAAwB,GASjCL,EAAAO,UAAAqB,WADA,WAEE9D,KAAKC,QAIPiC,EAAAO,UAAAsB,MADA,SACMN,GACCzD,KAAKqC,UAKY,KAAlBoB,EAAMO,SAAgC,WAAdP,EAAMQ,KAChCR,EAAMS,iBAINlE,KAAKwC,OAAOxB,UACZhB,KAAKmE,QAAUnE,KAAKoD,eAAeC,mBAEnCrD,KAAKoD,eAAeS,iBAAiB5B,GACrCjC,KAAKC,UAITiC,EAAAO,UAAA2B,YAAA,WACMpE,KAAKqC,SACPrC,KAAKC,QAITiC,EAAAO,UAAAxC,KAAA,WAAA,IAAA0C,EAAA3C,MACMA,KAAKsC,eAAkBtC,KAAKqC,UAGhCrC,KAAKsC,eAAgB,EACrBtC,KAAKoC,UAAUiC,YACbrE,KAAKmC,SAASW,cACdG,EAAAA,QAAUxB,EAAWK,GAAKL,EAAWM,MAEvCiB,YAAU,WACRL,EAAKN,SAAU,EAEba,UACAA,SAASC,MACgC,IAAzCR,EAAKS,eAAeC,kBAEpBV,EAAKP,UAAUiC,YAAYnB,SAASC,KAAM1B,EAAWG,MAEvDe,EAAKS,eAAenD,KAAK0C,EAAKH,OAAO5B,IACrC+B,EAAKL,eAAgB,IACpBtC,KAAK4C,WAAaZ,EAA6B,yBAxIrDsC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,kBACVC,SAAU,4MAOVC,KAAM,CACJtD,MAAO,QACPuD,KAAM,SACNC,SAAU,KACVC,oBAAqB,OACrBC,yBAA0B,wBAC1BC,0BAA2B,uEArB7BrE,SATAsE,EAAAA,kBAIAC,EAAAA,qDA2ECC,EAAAA,aAAYX,KAAA,CAAC,YAAa,CAAC,gCAK3BW,EAAAA,aAAYX,KAAA,CAAC,UAAW,CAAC,+BAgBzBW,EAAAA,aAAYX,KAAA,CAAC,kCAKbW,EAAAA,aAAYX,KAAA,CAAC,qBAAsB,CAAC,cAgDvCrC,EA3JA,GCOA,IAAAiD,EAAA,WAqDE,SAAAA,EAAYC,EAAqBC,GAFvBrF,KAAAsF,UAAW,EAGnBtF,KAAKoF,QAAUA,EACfpF,KAAKqF,SAAWA,EAapB,OA9DE7E,OAAA+E,eAAIJ,EAAA1C,UAAA,aAAU,KAAd,WACE,OAAOzC,KAAKwF,iBAGd,SAAe3F,GACbG,KAAKwF,YAAc3F,mCAIrBW,OAAA+E,eAAIJ,EAAA1C,UAAA,UAAO,KAAX,WACE,OAAOzC,KAAKsF,cAGd,SAAYzF,GACVG,KAAKsF,SAAWzF,EACZA,EACFG,KAAKqF,SAASxC,SACZ7C,KAAKoF,QAAQtC,cACb,GAAGrB,EAAWK,IAGhB9B,KAAKqF,SAAShB,YACZrE,KAAKoF,QAAQtC,cACb,GAAGrB,EAAWK,IAGbmB,EAAAA,UACCpD,EACFG,KAAKqF,SAASxC,SACZ7C,KAAKoF,QAAQtC,cACb,GAAGrB,EAAWM,MAGhB/B,KAAKqF,SAAShB,YACZrE,KAAKoF,QAAQtC,cACb,GAAGrB,EAAWM,wCAiBtBoD,EAAA1C,UAAAC,SAAA,WACM1C,KAAK4C,aACP5C,KAAKqF,SAASxC,SACZ7C,KAAKoF,QAAQtC,cACb,GAAGrB,EAAWI,MAEhB4D,EAAAA,MAAMC,OAAO1F,KAAKoF,QAAQtC,gBAE5B9C,KAAKqC,SAAU,uBAlElBiC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,oBACVC,SAAU,IACVC,KAAM,CAAEtD,MAAOK,EAAWE,uDAVRqD,EAAAA,kBAAoBC,EAAAA,aA2ExCE,EApEA,OCcAQ,EAAA,WA6DE,SAAAA,EACUxD,EACRyD,EACQxD,EACRyD,EACmDC,GAJ3C9F,KAAAmC,SAAAA,EAEAnC,KAAAoC,UAAAA,EA/CVpC,KAAA+F,OAAuC,IAAIC,EAAAA,aAK3ChG,KAAAiG,QAAwC,IAAID,EAAAA,aAK5ChG,KAAAkG,OAAuC,IAAIF,EAAAA,aAK3ChG,KAAAmG,SAAyC,IAAIH,EAAAA,aAanChG,KAAAsF,UAAW,EAEXtF,KAAAoG,mBAAoB,EACpBpG,KAAAqG,oBAAsB,EACtBrG,KAAAsG,eAAiB,EAEjBtG,KAAAuG,eAAiB,EACjBvG,KAAAwG,gBAAkB,EAMpBxG,KAAAyG,UAAW,EACXzG,KAAAuC,uBAAwB,EAQ9BvC,KAAK0G,UAAYb,EAAIc,aACnBxE,EACAyD,EACAxD,GAEFpC,KAAK4G,QAAUjG,GAAuBA,EA0W1C,OA5aEH,OAAA+E,eACII,EAAAlD,UAAA,SAAM,KAIV,WACE,OAAOzC,KAAK4G,aANd,SACWC,GACT7G,KAAK4G,QAAU5G,KAAK8G,UAAUD,oCAgChCrG,OAAA+E,eAAII,EAAAlD,UAAA,UAAO,KAAX,WACE,OAAOzC,KAAKsF,0CAmCdK,EAAAlD,UAAAe,eADA,SACeC,GACbzD,KAAKuC,sBAAwBkB,EAAMC,SAAW1D,KAAKmC,SAASW,eAI9D6C,EAAAlD,UAAAkB,YADA,SACYF,OACJG,EAAoBH,EAAMC,SAAW1D,KAAKmC,SAASW,gBAAkB9C,KAAKuC,uBAE9EvC,KAAKwC,OAAOrB,qBACa,WAAzBnB,KAAKwC,OAAOzB,UACX6C,GAMH5D,KAAK+G,cAAgB9E,EACrBjC,KAAKC,KAAKwD,IALRzD,KAAKuC,uBAAwB,GAUjCoD,EAAAlD,UAAAsB,MADA,SACMN,GACCzD,KAAKsF,WAIY,KAAlB7B,EAAMO,SAAgC,WAAdP,EAAMQ,KAChCR,EAAMS,iBAGJlE,KAAKwC,OAAOxB,WACdhB,KAAK+G,cAAgB9E,EACrBjC,KAAKC,UAIT0F,EAAAlD,UAAA2B,YAAA,WACEpE,KAAKwC,YAAS,EACVxC,KAAKsF,WACPtF,KAAKsF,UAAW,EAChBtF,KAAKgH,YACLhH,KAAK0G,UAAUO,YAInBtB,EAAAlD,UAAAC,SAAA,WAAA,IAAAC,EAAA3C,KACEA,KAAK4G,QAAU5G,KAAK4G,SAAW5G,KAAK8G,YACpC9D,YAAU,WACJL,EAAKiE,QAAQ1F,MACfyB,EAAKzB,SAEN,IAMLyE,EAAAlD,UAAAyE,OAAA,WACE,OAAOlH,KAAKsF,SAAWtF,KAAKC,OAASD,KAAKkB,QAI5CyE,EAAAlD,UAAAvB,KAAA,WAAA,IAAAyB,EAAA3C,KACEA,KAAK+G,cAAgB,KACrB/G,KAAK+F,OAAOoB,KAAKnH,MACbA,KAAKsF,WAGT8B,aAAapH,KAAKuG,gBAClBa,aAAapH,KAAKwG,iBAElBxG,KAAKsF,UAAW,EAEhBtF,KAAKsD,iBACLtD,KAAKuD,eAEDL,EAAAA,UAAYA,EAAAA,SAASC,OACnBD,EAAAA,SAASC,KAAKkE,UAAUC,SAAS7F,EAAWG,MAC9C5B,KAAKyG,UAAW,EAEhBzG,KAAKoC,UAAUS,SAASK,EAAAA,SAASC,KAAM1B,EAAWG,OAItD5B,KAAKuH,cAAY,WACf5E,EAAK6E,mBAKT7B,EAAAlD,UAAAxC,KAAA,SAAKwD,GAAL,IAAAd,EAAA3C,KACMyD,GACFA,EAAMS,iBAGRlE,KAAKkG,OAAOiB,KAAKnH,MAGZA,KAAKsF,WAIVmC,EAAAA,OAAOL,aAAapH,KAAKuG,gBACzBkB,EAAAA,OAAOL,aAAapH,KAAKwG,iBAEzBxG,KAAKsF,UAAW,EAChBtF,KAAKoC,UAAUiC,YAAYrE,KAAKmC,SAASW,cAAerB,EAAWK,IAC9DmB,EAAAA,SACHjD,KAAKoC,UAAUiC,YAAYrE,KAAKmC,SAASW,cAAerB,EAAWM,MAIjE/B,KAAK4G,QAAQvF,SACfrB,KAAKuG,eAAiBkB,EAAAA,OAAOzE,YAAU,WAC/B,OAAAL,EAAKqE,cAnMS,KAuMtBhH,KAAKgH,cAKCrB,EAAAlD,UAAAqE,UAAV,SAAoBtE,GAClB,OAAOhC,OAAOC,OAAO,GAAIT,KAAK4G,QAASpE,IAO/BmD,EAAAlD,UAAA+E,YAAV,WAAA,IAAA7E,EAAA3C,KAGKA,KAAKmC,SAASW,cAAc4E,YAC7B1H,KAAKmC,SAASW,cAAc4E,WAAWC,WAAaC,KAAKC,cAGrD3E,EAAAA,UAAYA,EAAAA,SAASC,MACvBD,EAAAA,SAASC,KAAK2E,YAAY9H,KAAKmC,SAASW,eAI5C9C,KAAKoC,UAAU2F,aACb/H,KAAKmC,SAASW,cACd,cACA,SAEF9C,KAAKoC,UAAU2F,aACb/H,KAAKmC,SAASW,cACd,aACA,QAEF9C,KAAKoC,UAAUW,SACb/C,KAAKmC,SAASW,cACd,UACA,SAEF9C,KAAKoC,UAAU4F,YACbhI,KAAKmC,SAASW,cACd,YACA,GAGE9C,KAAK4G,QAAQvF,UACfoE,EAAAA,MAAMC,OAAO1F,KAAKmC,SAASW,eAI7B9C,KAAKoC,UAAUS,SAAS7C,KAAKmC,SAASW,cAAerB,EAAWK,IAC3DmB,EAAAA,SACHjD,KAAKoC,UAAUS,SAAS7C,KAAKmC,SAASW,cAAerB,EAAWM,UAG5DkG,EAAkB,WAClBtF,EAAKiE,QAAQ3F,OACf0B,EAAKR,SAASW,cAAc7B,QAE9B0B,EAAKsD,QAAQkB,KAAKxE,IAGhB3C,KAAK4G,QAAQvF,SACf2B,WAAWiF,EAvQW,KAyQtBA,KAKMtC,EAAAlD,UAAAuE,UAAV,WAAA,IAAArE,EAAA3C,KACEA,KAAKoC,UAAU2F,aACb/H,KAAKmC,SAASW,cACd,cACA,QAEF9C,KAAKoC,UAAUW,SACb/C,KAAKmC,SAASW,cACd,UACA,QAEF9C,KAAKuH,cAAY,WACV5E,EAAK8D,WACJvD,EAAAA,UAAYA,EAAAA,SAASC,MACvBR,EAAKP,UAAUiC,YAAYnB,EAAAA,SAASC,KAAM1B,EAAWG,MAEvDe,EAAKuF,kBAEPvF,EAAKwF,mBACLxF,EAAKyF,kBACLzF,EAAKwD,SAASgB,KAAKxE,OAObgD,EAAAlD,UAAA8E,aAAV,SAAuBc,GAAvB,IAAA1F,EAAA3C,KACE,IACEA,KAAKsF,WACLtF,KAAKwC,OAAOzB,UACVf,KAAKe,UAAaf,KAAKe,SAASuH,SAASjG,QAoBtC,IAAKrC,KAAKsF,UAAYtF,KAAKe,SAAU,CAC1Cf,KAAKe,SAASuH,SAASjG,SAAU,MAE3BkG,EAAc,WAClB5F,EAAK6F,iBACDH,GACFA,KAIArI,KAAKe,SAASuH,SAAS1F,WACzB5C,KAAKwG,gBAAkBiB,EAAAA,OAAOzE,WAC5BuF,EA5U2B,KAgV7BA,SAEOF,GACTA,QAtCA,CAQA,GAPArI,KAAKwI,iBACLxI,KAAK0G,UACF+B,OAAOtD,GACPuD,GAAG,QACHxH,KAAK,CAAE0B,WAAY5C,KAAK4G,QAAQvF,WACnCrB,KAAKe,SAAWf,KAAK0G,UAAUiC,eAE1BN,EACH,OAGF,IAAKrI,KAAK4G,QAAQvF,SAGhB,YAFAgH,IAKFrF,WAAWqF,EA/ToB,OAwVzB1C,EAAAlD,UAAA+F,eAAV,WACExI,KAAK0G,UAAUzG,QA4BP0F,EAAAlD,UAAA2F,gBAAV,WACE,GAAiD,MAA7CpI,KAAKmC,SAASW,cAAc8F,cAAhC,KAGMC,EAAoB7I,KAAKmC,SAASW,cAAc8F,cAAcE,iBAAiB,gBAChFD,EAAkBjJ,QAGvBiJ,EAAkBA,EAAkBjJ,OAAS,GAAGqB,UAIxC0E,EAAAlD,UAAA0F,iBAAV,WACEnI,KAAKoC,UAAUW,SACb/C,KAAKmC,SAASW,cACd,cACA,IAEF9C,KAAKoC,UAAUW,SACb/C,KAAKmC,SAASW,cACd,eACA,KAMM6C,EAAAlD,UAAAa,eAAV,WACEtD,KAAKoG,kBAAoBlD,EAAAA,SAASC,KAAK4F,YAActB,EAAAA,OAAOuB,WAC5DhJ,KAAKsG,eAAiBtG,KAAKiJ,qBAGnBtD,EAAAlD,UAAAc,aAAV,WACOL,EAAAA,WAILlD,KAAKqG,oBAAsB6C,SACzBzB,EAAAA,OACG0B,iBAAiBjG,EAAAA,SAASC,MAC1BiG,iBAAiB,kBAAoB,EACxC,IAGEpJ,KAAKoG,oBACPlD,EAAAA,SAASC,KAAKkG,MAAMC,aAAkBtJ,KAAKqG,oBACzCrG,KAAKsG,eAAc,QAIfX,EAAAlD,UAAAyF,eAAV,WACEhF,EAAAA,SAASC,KAAKkG,MAAMC,aAAkBtJ,KAAKqG,oBAAmB,MAItDV,EAAAlD,UAAAwG,kBAAV,eACQM,EAAYvJ,KAAKoC,UAAUoH,cAAc,OAC/CxJ,KAAKoC,UAAUS,SAAS0G,EAAW9H,EAAWC,oBAC9C1B,KAAKoC,UAAU0F,YAAY5E,EAAAA,SAASC,KAAMoG,OACpCjD,EAAiBiD,EAAUE,YAAcF,EAAUR,YAGzD,OAFA/I,KAAKoC,UAAUsH,YAAYxG,EAAAA,SAASC,KAAMoG,GAEnCjD,uBAhbVqD,EAAAA,UAASpF,KAAA,CAAC,CACTC,SAAU,YACVoF,SAAU,wDAjBe5E,EAAAA,kBACa6E,EAAAA,wBAAX5E,EAAAA,iBAQH6E,EAAAA,8BAF0BpJ,EAAYqJ,WAAA,CAAA,CAAAC,KA0E3DC,EAAAA,UAAQ,CAAAD,KAAIE,EAAAA,OAAM3F,KAAA,CAAChD,wCA5DrB4I,EAAAA,sBAUAC,EAAAA,wBAKAA,EAAAA,uBAKAA,EAAAA,yBAKAA,EAAAA,+BA4CAlF,EAAAA,aAAYX,KAAA,CAAC,YAAa,CAAC,gCAK3BW,EAAAA,aAAYX,KAAA,CAAC,UAAW,CAAC,0BAiBzBW,EAAAA,aAAYX,KAAA,CAAC,cAAe,CAAC,cAiVhCoB,EAlbA,oBC8BE,SAAA0E,EACEC,EACQzE,EACmDC,GADnD9F,KAAA6F,IAAAA,EACmD7F,KAAA8F,mBAAAA,EAzB7D9F,KAAA+F,OAA4B,IAAIC,EAAAA,aAEhChG,KAAAiG,QAA6B,IAAID,EAAAA,aAEjChG,KAAAkG,OAA4B,IAAIF,EAAAA,aAEhChG,KAAAmG,SAA8B,IAAIH,EAAAA,aAExBhG,KAAAoG,mBAAoB,EACpBpG,KAAAqG,oBAAsB,EAEtBrG,KAAAsG,eAAiB,EAInBtG,KAAAuK,YAAc,EACdvK,KAAAwK,kBAAyB,KAEzBxK,KAAAyK,QAAsD,GAQ5DzK,KAAK0K,gBAAkB1K,KAAK6F,IAAIc,aAC9B,KACA,KACA,MAEF3G,KAAKoC,UAAYkI,EAAgBK,eAAe,KAAM,MACtD3K,KAAKwC,OAASsD,EACXtF,OAAOC,OAAO,GAAIE,EAAqBmF,GACxCnF,EA4MN,OAvME0J,EAAA5H,UAAAvB,KAAA,SAAK0J,EAA0CpI,GAU7C,OATAxC,KAAKuK,cACLvK,KAAK6K,iBACL7K,KAAKwC,OAASxC,KAAK8F,mBACjBtF,OAAOC,OAAO,GAAIE,EAAqBX,KAAK8F,mBAAoBtD,GAChEhC,OAAOC,OAAO,GAAIE,EAAqB6B,GAEzCxC,KAAK8K,gBACL9K,KAAKwK,kBAAoB,KAElBxK,KAAK+K,WAAWH,IAGzBP,EAAA5H,UAAAxC,KAAA,SAAKW,GAAL,IAAA+B,EAAA3C,KAC2B,IAArBA,KAAKuK,aAA2B,MAAN3J,IAC5BZ,KAAKgL,gBACLhL,KAAKkI,kBAEPlI,KAAKuK,YAAcvK,KAAKuK,aAAe,GAAW,MAAN3J,EAAaZ,KAAKuK,YAAc,EAAI,EAChFvH,YAAU,WACRL,EAAKsI,WAAWrK,GAChB+B,EAAKuI,cAActK,KAClBZ,KAAKwC,OAAOnB,SAAWW,EAAgC,IAG5DqI,EAAA5H,UAAAqI,cAAA,eACQK,EACJnL,KAAKwC,OAAOzB,UAAqC,WAAzBf,KAAKwC,OAAOzB,SAChCqK,GACHpL,KAAKqL,cAAgBrL,KAAKqL,YAAY/C,SAASjG,QAEzB,IAArBrC,KAAKuK,cACPvK,KAAKwI,iBAED2C,GAAqBC,IACvBpL,KAAK0K,gBACFjC,OAAOtD,GACPuD,GAAG,QACHxH,KAAK,CAAE0B,WAAY5C,KAAKwC,OAAOnB,WAClCrB,KAAKqL,YAAcrL,KAAK0K,gBAAgB/B,iBAK9C0B,EAAA5H,UAAAuI,cAAA,WAAA,IAAArI,EAAA3C,KACE,GAAKA,KAAKqL,YAAV,CAGArL,KAAKqL,YAAY/C,SAASjG,SAAU,MAC9BiJ,EAAWtL,KAAKwC,OAAOnB,SAAWW,EAAgC,EACxEgB,YAAU,WAAO,OAAAL,EAAK6F,mBAAkB8C,KAG1CjB,EAAA5H,UAAAsI,WAAA,SAAWH,aACHW,EAAcvL,KAAKyK,QAAQzK,KAAKyK,QAAQ7K,OAAS,GACvD,GAAII,KAAKwC,QAAUxC,KAAKwC,OAAOgJ,cAC7B,IAAuB,IAAAC,EAAArM,EAAAY,KAAKwC,OAAOgJ,WAASE,EAAAD,EAAA9L,QAAA+L,EAAA5L,KAAA4L,EAAAD,EAAA9L,OAAE,CAAzC,IAAMgM,EAAQD,EAAA7L,MACjB0L,EAAYK,QAAQD,yGAIlBE,EAAa,IAAI9L,EACjB+L,EAAoBP,EACvBK,QAAQ,CAAEA,QAASlL,EAAcqL,SAAU/L,KAAKwC,SAChDoJ,QAAQ,CAAEA,QAAS7L,EAAYgM,SAAUF,IACzCpD,OAAOvG,GACPwG,GAAG,QAyBN,OAxBAmD,EAAW5L,KAAI,WAAS,OAAA6L,EAAkBxD,SAASrI,QACnD4L,EAAW1L,SAAQ,SAAI6L,GACrBF,EAAkBxD,SAAS9F,OAAOpB,MAAQ4K,GAG5CH,EAAW1F,SAAW,IAAIH,EAAAA,aAC1B6F,EAAW3F,OAAS,IAAIF,EAAAA,aAExBhG,KAAKiM,UAAUV,EAAYW,aAAcL,EAAW3F,QACpDlG,KAAKiM,UAAUV,EAAYpF,SAAU0F,EAAW1F,UAGhD2F,EAAkB5K,KAAK,CACrB0J,QAAOA,EACPhI,WAAY5C,KAAKwC,OAAOnB,SACxBC,aAActB,KAAKwC,OAAOlB,aAC1B8B,eAAgBpD,KAChBY,GAAIZ,KAAKwC,OAAO5B,KAElBkL,EAAkBxD,SAASnE,MAAQnE,KAAKqD,iBAExCwI,EAAWjB,QAAUW,EAAYY,qBAAuB,KACxDN,EAAWjL,GAAsC,QAApCwL,EAAGN,EAAkBxD,SAAS9F,cAAM,IAAA4J,OAAA,EAAAA,EAAExL,GAE5CiL,GAGTxB,EAAA5H,UAAAwI,WAAA,SAAWrK,GACT,GAAU,MAANA,EAAY,KACRyL,EAAgBrM,KAAKyK,QAAQ6B,WAAS,SAACC,GAAU,OAAAA,EAAOjE,SAAS9F,OAAO5B,KAAOA,KAC/E2K,EAAcvL,KAAKyK,QAAQ4B,GAC7Bd,GACFA,EAAYtL,KAAKW,QAGnBZ,KAAKyK,QAAQ+B,SAAO,SACjBD,GACCA,EAAOtM,KAAKsM,EAAOjE,SAAS9F,OAAO5B,QAM3CyJ,EAAA5H,UAAAY,eAAA,WACE,OAAOrD,KAAKuK,aAGdF,EAAA5H,UAAAoB,iBAAA,SAAiB4I,GACfzM,KAAKwK,kBAAoBiC,GAG3BpC,EAAA5H,UAAA+F,eAAA,WACExI,KAAKoC,UAAUiC,YAAYnB,SAASC,KAAM1B,EAAWG,MACrD5B,KAAK0K,gBAAgBzK,OACrBD,KAAKqL,YAAc,MAKrBhB,EAAA5H,UAAAa,eAAA,WACEtD,KAAKoG,kBAAoBlD,SAASC,KAAK4F,YAActB,OAAOuB,WAC5DhJ,KAAKsG,eAAiBtG,KAAKiJ,qBAG7BoB,EAAA5H,UAAAc,aAAA,WACOL,WAILlD,KAAKqG,oBAAsB6C,SACzBzB,OACG0B,iBAAiBjG,SAASC,MAC1BiG,iBAAiB,kBAAoB,IACxC,IAGEpJ,KAAKoG,oBACPlD,SAASC,KAAKkG,MAAMC,aAAkBtJ,KAAKqG,oBACzCrG,KAAKsG,eAAc,QAIjB+D,EAAA5H,UAAAyF,eAAR,WACEhF,SAASC,KAAKkG,MAAMC,aAAkBtJ,KAAKqG,oBAAmB,MAIxDgE,EAAA5H,UAAAwG,kBAAR,eACQM,EAAYvJ,KAAKoC,UAAUoH,cAAc,OAC/CxJ,KAAKoC,UAAUS,SAAS0G,EAAW9H,EAAWC,oBAC9C1B,KAAKoC,UAAU0F,YAAY5E,SAASC,KAAMoG,OACpCjD,EAAiBiD,EAAUE,YAAcF,EAAUR,YAGzD,OAFA/I,KAAKoC,UAAUsH,YAAYxG,SAASC,KAAMoG,GAEnCjD,GAGD+D,EAAA5H,UAAAoI,eAAR,eACQ0B,EAASvM,KAAK6F,IAAIc,aACtB,KACA,KACA,MAEF3G,KAAKiM,UAAUM,EAAOG,aAAc1M,KAAK+F,QACzC/F,KAAKiM,UAAUM,EAAOtG,QAASjG,KAAKiG,SACpCjG,KAAKiM,UAAUM,EAAOL,aAAclM,KAAKkG,QACzClG,KAAKiM,UAAUM,EAAOpG,SAAUnG,KAAKmG,UACrCnG,KAAKyK,QAAQkC,KAAKJ,IAGZlC,EAAA5H,UAAAyI,cAAR,SAAsBtK,GACpB,GAAU,MAANA,EAAY,KACRyL,EAAgBrM,KAAKyK,QAAQ6B,WAAS,SAACC,GAAU,OAAAA,EAAOjE,SAAS9F,OAAO5B,KAAOA,KACjFyL,GAAiB,IACnBrM,KAAKyK,QAAQmC,OAAOP,EAAe,GACnCrM,KAAKyK,QAAQ+B,SAAO,SACjBD,EAAkD9M,GACjD8M,EAAOjE,SAASnE,MAAQ1E,EAAI,WAKlCO,KAAKyK,QAAQmC,OAAO,EAAG5M,KAAKyK,QAAQ7K,SAKhCyK,EAAA5H,UAAAwJ,UAAR,SAAkBY,EAAyBnE,GAA3C,IAAA/F,EAAA3C,KACE6M,EAAKC,WAAS,SAAEC,GACdrE,EAAGvB,KAAKxE,EAAK6H,mBAAqBuC,2BAjPvC3M,EAAAA,sDAjBC4M,EAAAA,wBAKwBlD,EAAAA,8BAMxBpJ,EAAYqJ,WAAA,CAAA,CAAAC,KAqCTC,EAAAA,UAAQ,CAAAD,KAAIE,EAAAA,OAAM3F,KAAA,CAAChD,QAqNxB8I,KC3QA,IAAA4C,EAAA,WASA,SAAAA,KAsBA,OAZSA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUF,EACVzB,UAAW,CAACnB,EAAgBP,EAAAA,uBAAwBsD,EAAAA,sBAGjDH,EAAAI,SAAP,WACE,MAAO,CACLF,SAAUF,EACVzB,UAAW,CAACnB,EAAgBP,EAAAA,uBAAwBsD,EAAAA,0CAnBzDE,EAAAA,SAAQ/I,KAAA,CAAC,CACRgJ,aAAc,CACZpI,EACAQ,EACAzD,GAEFsL,QAAS,CAACrI,EAAwBQ,GAClC8H,gBAAiB,CAACtI,EAAwBjD,OAe5C+K,EA/BA","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class BsModalRef {\n /**\n * Allow user to ID for the modal. Otherwise, a unique number will be given\n */\n id: number;\n\n /**\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef\n */\n // tslint:disable-next-line:no-any\n content?: any | null;\n\n /**\n * Hides the modal\n */\n hide: () => void = Function;\n /**\n * Sets new class to modal window\n */\n setClass: (newClass: string) => void = Function;\n /**\n * Event that is fired when the modal behind the ref starts hiding\n */\n // tslint:disable-next-line:no-any\n onHide: EventEmitter<any>;\n /**\n * Event that is fired when the modal behind the ref finishes hiding\n */\n // tslint:disable-next-line:no-any\n onHidden: EventEmitter<any>;\n}\n","export class ModalBackdropOptions {\n animate = true;\n\n constructor(options: ModalBackdropOptions) {\n Object.assign(this, options);\n }\n}\n","import { Injectable, StaticProvider, InjectionToken } from '@angular/core';\nimport { ClassName, DismissReasons, Selector, TransitionDurations } from './models';\n\n@Injectable()\nexport class ModalOptions {\n /**\n * Allow user to ID for the modal. Otherwise, a unique number will be given\n */\n id?: number;\n /**\n * Includes a modal-backdrop element. Alternatively,\n * specify static for a backdrop which doesn't close the modal on click.\n */\n backdrop?: boolean | 'static';\n /**\n * Closes the modal when escape key is pressed.\n */\n keyboard?: boolean;\n\n focus?: boolean;\n /**\n * Shows the modal when initialized.\n */\n show?: boolean;\n /**\n * Ignore the backdrop click\n */\n ignoreBackdropClick?: boolean;\n /**\n * Css class for opened modal\n */\n class?: string;\n /**\n * Toggle animation\n */\n animated?: boolean;\n /**\n * Modal data\n */\n initialState?: Object;\n /**\n * Modal providers\n */\n providers?: StaticProvider[];\n /**\n * aria-labelledby attribute value to set on the modal window\n */\n ariaLabelledBy?: string;\n /**\n * aria-describedby attribute value to set on the modal window\n */\n ariaDescribedby?: string;\n}\n\nexport const modalConfigDefaults: ModalOptions = {\n id: (new Date()).getUTCMilliseconds(),\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {}\n};\n\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> =\n new InjectionToken<ModalOptions>('override-default-config');\n\nexport const CLASS_NAME: ClassName = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in', // bs3\n SHOW: 'show' // bs4\n};\n\nexport const SELECTOR: Selector = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\n\nexport const TRANSITION_DURATIONS: TransitionDurations = {\n MODAL: 300,\n BACKDROP: 150\n};\n\nexport const DISMISS_REASONS: DismissReasons = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc'\n};\n","import {\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport {\n CLASS_NAME,\n DISMISS_REASONS,\n ModalOptions,\n TRANSITION_DURATIONS\n} from './modal-options.class';\nimport { BsModalService } from './bs-modal.service';\nimport { isBs3 } from 'ngx-bootstrap/utils';\n\n@Component({\n selector: 'modal-container',\n template: `\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n '[attr.aria-describedby]': 'config.ariaDescribedby'\n }\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n config: ModalOptions;\n isShown = false;\n level: number;\n isAnimated: boolean;\n bsModalService: BsModalService;\n private isModalHiding = false;\n private clickStartedInContent = false;\n\n constructor(options: ModalOptions,\n protected _element: ElementRef,\n private _renderer: Renderer2) {\n this.config = Object.assign({}, options);\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this._renderer.addClass(\n this._element.nativeElement,\n CLASS_NAME.FADE\n );\n }\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onClickStarted(event: MouseEvent): void {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n onClickStop(event: MouseEvent): void {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop\n ) {\n this.clickStartedInContent = false;\n\n return;\n }\n this.bsModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n\n @HostListener('window:popstate')\n onPopState(): void {\n this.hide();\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEsc(event: KeyboardEvent): void {\n if (!this.isShown) {\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n\n if (\n this.config.keyboard &&\n this.level === this.bsModalService.getModalsCount()\n ) {\n this.bsModalService.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n\n ngOnDestroy(): void {\n if (this.isShown) {\n this.hide();\n }\n }\n\n hide(): void {\n if (this.isModalHiding || !this.isShown) {\n return;\n }\n this.isModalHiding = true;\n this._renderer.removeClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n setTimeout(() => {\n this.isShown = false;\n if (\n document &&\n document.body &&\n this.bsModalService.getModalsCount() === 1\n ) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.bsModalService.hide(this.config.id);\n this.isModalHiding = false;\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n}\n","import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\nimport { CLASS_NAME } from './modal-options.class';\nimport { isBs3, Utils } from 'ngx-bootstrap/utils';\n\n\n/** This component will be added as background layout for modals if enabled */\n@Component({\n selector: 'bs-modal-backdrop',\n template: ' ',\n host: { class: CLASS_NAME.BACKDROP }\n})\nexport class ModalBackdropComponent implements OnInit {\n get isAnimated(): boolean {\n return this._isAnimated;\n }\n\n set isAnimated(value: boolean) {\n this._isAnimated = value;\n // this.renderer.setElementClass(this.element.nativeElement, `${ClassName.FADE}`, value);\n }\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n set isShown(value: boolean) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n }\n if (!isBs3()) {\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n }\n }\n }\n\n element: ElementRef;\n renderer: Renderer2;\n\n protected _isAnimated: boolean;\n protected _isShown = false;\n\n constructor(element: ElementRef, renderer: Renderer2) {\n this.element = element;\n this.renderer = renderer;\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.FADE}`\n );\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n}\n","/* tslint:disable:max-file-line-count */\n// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\n\nimport {\n ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input,\n OnDestroy, OnInit, Output, Renderer2, ViewContainerRef, Optional, Inject\n} from '@angular/core';\n\nimport { document, window, isBs3, Utils } from 'ngx-bootstrap/utils';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport {\n CLASS_NAME, DISMISS_REASONS, modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n\n/** Mark any code with directive to show it's content in modal */\n@Directive({\n selector: '[bsModal]',\n exportAs: 'bs-modal'\n})\nexport class ModalDirective implements OnDestroy, OnInit {\n /** allows to set modal configuration via element property */\n @Input()\n set config(conf: ModalOptions) {\n this._config = this.getConfig(conf);\n }\n\n get config(): ModalOptions {\n return this._config;\n }\n\n /** This event fires immediately when the `show` instance method is called. */\n @Output()\n onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n @Output()\n onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n @Output()\n onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n @Output()\n onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n\n /** This field contains last dismiss reason.\n * Possible values: `backdrop-click`, `esc` and `id: number`\n * (if modal was closed by direct call of `.hide()`).\n */\n dismissReason: string;\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n protected _config: ModalOptions;\n protected _isShown = false;\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n protected scrollbarWidth = 0;\n\n protected timerHideModal = 0;\n protected timerRmBackDrop = 0;\n\n // reference to backdrop component\n protected backdrop: ComponentRef<ModalBackdropComponent>;\n private _backdrop: ComponentLoader<ModalBackdropComponent>;\n\n private isNested = false;\n private clickStartedInContent = false;\n\n constructor(\n private _element: ElementRef,\n _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n clf: ComponentLoaderFactory,\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions) {\n this._backdrop = clf.createLoader<ModalBackdropComponent>(\n _element,\n _viewContainerRef,\n _renderer\n );\n this._config = modalConfigDefaults || modalConfigDefaults;\n }\n\n @HostListener('mousedown', ['$event'])\n onClickStarted(event: MouseEvent): void {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n onClickStop(event: MouseEvent): void {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop\n ) {\n this.clickStartedInContent = false;\n\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n\n // todo: consider preventing default and stopping propagation\n @HostListener('keydown.esc', ['$event'])\n onEsc(event: KeyboardEvent): void {\n if (!this._isShown) {\n return;\n }\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n\n ngOnDestroy() {\n this.config = void 0;\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n\n ngOnInit(): void {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n\n /* Public methods */\n\n /** Allows to manually toggle modal visibility */\n toggle(): void {\n return this._isShown ? this.hide() : this.show();\n }\n\n /** Allows to manually open modal */\n show(): void {\n this.dismissReason = null;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n\n this._isShown = true;\n\n this.checkScrollbar();\n this.setScrollbar();\n\n if (document && document.body) {\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n } else {\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n }\n\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n\n /** Allows to manually close modal */\n hide(event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n this.onHide.emit(this);\n\n // todo: add an option to prevent hiding\n if (!this._isShown) {\n return;\n }\n\n window.clearTimeout(this.timerHideModal);\n window.clearTimeout(this.timerRmBackDrop);\n\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n // this._addClassIn = false;\n\n if (this._config.animated) {\n this.timerHideModal = window.setTimeout(\n () => this.hideModal(),\n TRANSITION_DURATION\n );\n } else {\n this.hideModal();\n }\n }\n\n /** Private methods @internal */\n protected getConfig(config?: ModalOptions): ModalOptions {\n return Object.assign({}, this._config, config);\n }\n\n /**\n * Show dialog\n * @internal\n */\n protected showElement(): void {\n // todo: replace this with component loader usage\n if (\n !this._element.nativeElement.parentNode ||\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE\n ) {\n // don't move modals dom position\n if (document && document.body) {\n document.body.appendChild(this._element.nativeElement);\n }\n }\n\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'false'\n );\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-modal',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n this._renderer.setProperty(\n this._element.nativeElement,\n 'scrollTop',\n 0\n );\n\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n\n // this._addClassIn = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n } else {\n transitionComplete();\n }\n }\n\n /** @internal */\n protected hideModal(): void {\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'none'\n );\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document && document.body) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n protected showBackdrop(callback?: Function): void {\n if (\n this._isShown &&\n this.config.backdrop &&\n (!this.backdrop || !this.backdrop.instance.isShown)\n ) {\n this.removeBackdrop();\n this._backdrop\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this._config.animated });\n this.backdrop = this._backdrop._componentRef;\n\n if (!callback) {\n return;\n }\n\n if (!this._config.animated) {\n callback();\n\n return;\n }\n\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n } else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = window.setTimeout(\n callbackRemove,\n BACKDROP_TRANSITION_DURATION\n );\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n /** @internal */\n protected removeBackdrop(): void {\n this._backdrop.hide();\n }\n\n /** Events tricks */\n\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n\n protected focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) {\n return;\n }\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n\n /** @internal */\n protected resetAdjustments(): void {\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingLeft',\n ''\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingRight',\n ''\n );\n }\n\n /** Scroll bar tricks */\n /** @internal */\n protected checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n protected setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || 0,\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n protected resetScrollbar(): void {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n\n // thx d.walsh\n protected getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n}\n","import {\n ComponentRef,\n Injectable,\n TemplateRef,\n EventEmitter,\n Renderer2,\n RendererFactory2,\n Inject,\n Optional\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalContainerComponent } from './modal-container.component';\nimport {\n CLASS_NAME,\n modalConfigDefaults,\n ModalOptions,\n TRANSITION_DURATIONS,\n MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { BsModalRef } from './bs-modal-ref.service';\n\n@Injectable()\nexport class BsModalService {\n // constructor props\n config: ModalOptions;\n\n // tslint:disable-next-line:no-any\n onShow: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onShown: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onHide: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onHidden: EventEmitter<any> = new EventEmitter();\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n\n protected scrollbarWidth = 0;\n\n protected backdropRef: ComponentRef<ModalBackdropComponent>;\n private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\n private modalsCount = 0;\n private lastDismissReason: any = null;\n\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n\n private _renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2,\n private clf: ComponentLoaderFactory,\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) private modalDefaultOption: ModalOptions) {\n this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>(\n null,\n null,\n null\n );\n this._renderer = rendererFactory.createRenderer(null, null);\n this.config = modalDefaultOption ?\n (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\n modalConfigDefaults;\n }\n\n /** Shows a modal */\n // tslint:disable-next-line:no-any\n show(content: string | TemplateRef<any> | any, config?: ModalOptions): BsModalRef {\n this.modalsCount++;\n this._createLoaders();\n this.config = this.modalDefaultOption ?\n Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\n Object.assign({}, modalConfigDefaults, config);\n\n this._showBackdrop();\n this.lastDismissReason = null;\n\n return this._showModal(content);\n }\n\n hide(id?: number) {\n if (this.modalsCount === 1 || id == null) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(id);\n this.removeLoaders(id);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n }\n\n _showBackdrop(): void {\n const isBackdropEnabled =\n this.config.backdrop || this.config.backdrop === 'static';\n const isBackdropInDOM =\n !this.backdropRef || !this.backdropRef.instance.isShown;\n\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this.config.animated });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n\n _hideBackdrop(): void {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n // tslint:disable-next-line:no-any\n _showModal(content: any): BsModalRef {\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (this.config && this.config.providers) {\n for (const provider of this.config.providers) {\n modalLoader.provide(provider);\n }\n }\n\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: this.config })\n .provide({ provide: BsModalRef, useValue: bsModalRef })\n .attach(ModalContainerComponent)\n .to('body');\n bsModalRef.hide = () => modalContainerRef.instance.hide();\n bsModalRef.setClass = (newClass: string) => {\n modalContainerRef.instance.config.class = newClass;\n };\n\n bsModalRef.onHidden = new EventEmitter<any>();\n bsModalRef.onHide = new EventEmitter<any>();\n\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n // call 'show' method after assign setClass in bsModalRef.\n // it makes modal component's bsModalRef available to call setClass method\n modalContainerRef.show({\n content,\n isAnimated: this.config.animated,\n initialState: this.config.initialState,\n bsModalService: this,\n id: this.config.id\n });\n modalContainerRef.instance.level = this.getModalsCount();\n\n bsModalRef.content = modalLoader.getInnerComponent() || null;\n bsModalRef.id = modalContainerRef.instance.config?.id;\n\n return bsModalRef;\n }\n\n _hideModal(id?: number): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance.config.id === id);\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id);\n }\n } else {\n this.loaders.forEach(\n (loader: ComponentLoader<ModalContainerComponent>) => {\n loader.hide(loader.instance.config.id);\n }\n );\n }\n }\n\n getModalsCount(): number {\n return this.modalsCount;\n }\n\n setDismissReason(reason: string) {\n this.lastDismissReason = reason;\n }\n\n removeBackdrop(): void {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._backdropLoader.hide();\n this.backdropRef = null;\n }\n\n /** Checks if the body is overflowing and sets scrollbar width */\n /** @internal */\n checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || '0',\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n private resetScrollbar(): void {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n\n // thx d.walsh\n private getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n\n private _createLoaders(): void {\n const loader = this.clf.createLoader<ModalContainerComponent>(\n null,\n null,\n null\n );\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n\n private removeLoaders(id?: number): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance.config.id === id);\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach(\n (loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n loader.instance.level = i + 1;\n }\n );\n }\n } else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n\n // tslint:disable-next-line:no-any\n private copyEvent(from: EventEmitter<any>, to: EventEmitter<any>) {\n from.subscribe((data: any) => {\n to.emit(this.lastDismissReason || data);\n });\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalDirective } from './modal.directive';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { BsModalService } from './bs-modal.service';\n\n@NgModule({\n declarations: [\n ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent\n ],\n exports: [ModalBackdropComponent, ModalDirective],\n entryComponents: [ModalBackdropComponent, ModalContainerComponent]\n})\nexport class ModalModule {\n static forRoot(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static forChild(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://ngx-bootstrap/modal/bs-modal-ref.service.ts","ng://ngx-bootstrap/modal/modal-backdrop.options.ts","ng://ngx-bootstrap/modal/modal-options.class.ts","ng://ngx-bootstrap/modal/modal-container.component.ts","ng://ngx-bootstrap/modal/modal-backdrop.component.ts","ng://ngx-bootstrap/modal/modal.directive.ts","ng://ngx-bootstrap/modal/bs-modal.service.ts","ng://ngx-bootstrap/modal/modal.module.ts"],"names":["__values","o","m","Symbol","iterator","i","call","next","length","value","done","BsModalRef","this","hide","Function","setClass","Injectable","ModalBackdropOptions","options","animate","Object","assign","ModalOptions","modalConfigDefaults","backdrop","keyboard","focus","show","ignoreBackdropClick","class","animated","initialState","MODAL_CONFIG_DEFAULT_OVERRIDE","InjectionToken","CLASS_NAME","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","IN","SHOW","TRANSITION_DURATIONS","DISMISS_REASONS","ModalContainerComponent","_element","_renderer","isShown","isModalHiding","clickStartedInContent","config","prototype","ngOnInit","_this","isAnimated","addClass","nativeElement","setStyle","setTimeout","isBs3","document","body","bsModalService","getModalsCount","checkScrollbar","setScrollbar","onClickStarted","event","target","onClickStop","clickedInBackdrop","setDismissReason","onPopState","onEsc","keyCode","key","preventDefault","level","ngOnDestroy","removeClass","id","Component","args","selector","template","host","role","tabindex","[attr.aria-modal]","[attr.aria-labelledby]","[attr.aria-describedby]","ElementRef","Renderer2","HostListener","ModalBackdropComponent","element","renderer","_isShown","defineProperty","_isAnimated","Utils","reflow","ModalDirective","_viewContainerRef","clf","modalDefaultOption","onShow","EventEmitter","onShown","onHide","onHidden","isBodyOverflowing","originalBodyPadding","scrollbarWidth","timerHideModal","timerRmBackDrop","isNested","_backdrop","createLoader","_config","conf","getConfig","dismissReason","hideModal","dispose","toggle","emit","clearTimeout","classList","contains","showBackdrop","showElement","window","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","setAttribute","setProperty","transitionComplete","resetScrollbar","resetAdjustments","focusOtherModal","callback","instance","callbackRemove","removeBackdrop","attach","to","_componentRef","parentElement","otherOpenedModals","querySelectorAll","clientWidth","innerWidth","getScrollbarWidth","parseInt","getComputedStyle","getPropertyValue","style","paddingRight","scrollDiv","createElement","offsetWidth","removeChild","Directive","exportAs","ViewContainerRef","ComponentLoaderFactory","decorators","type","Optional","Inject","Input","Output","BsModalService","rendererFactory","modalsCount","lastDismissReason","loaders","_backdropLoader","createRenderer","content","_createLoaders","Date","getUTCMilliseconds","_showBackdrop","_showModal","_hideBackdrop","_hideModal","removeLoaders","isBackdropEnabled","isBackdropInDOM","backdropRef","duration","modalLoader","providers","_c","_d","provider","provide","bsModalRef","modalContainerRef","useValue","newClass","copyEvent","onBeforeHide","getInnerComponent","_b","indexToRemove","findIndex","loader","forEach","reason","onBeforeShow","push","splice","from","subscribe","data","RendererFactory2","ModalModule","forRoot","ngModule","PositioningService","forChild","NgModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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 __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","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\n// tslint:disable-next-line:no-any\nexport class BsModalRef<T = any> {\n /**\n * Allow user to ID for the modal. Otherwise, a unique number will be given\n */\n id: number;\n\n /**\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef\n */\n content?: T | null;\n\n /**\n * Hides the modal\n */\n hide: () => void = Function;\n /**\n * Sets new class to modal window\n */\n setClass: (newClass: string) => void = Function;\n /**\n * Event that is fired when the modal behind the ref starts hiding\n */\n // tslint:disable-next-line:no-any\n onHide: EventEmitter<any>;\n /**\n * Event that is fired when the modal behind the ref finishes hiding\n */\n // tslint:disable-next-line:no-any\n onHidden: EventEmitter<any>;\n}\n","export class ModalBackdropOptions {\n animate = true;\n\n constructor(options: ModalBackdropOptions) {\n Object.assign(this, options);\n }\n}\n","import { Injectable, StaticProvider, InjectionToken } from '@angular/core';\nimport { ClassName, DismissReasons, Selector, TransitionDurations } from './models';\n\n@Injectable()\nexport class ModalOptions<T = Object> {\n /**\n * Allow user to ID for the modal. Otherwise, a unique number will be given\n */\n id?: number;\n /**\n * Includes a modal-backdrop element. Alternatively,\n * specify static for a backdrop which doesn't close the modal on click.\n */\n backdrop?: boolean | 'static';\n /**\n * Closes the modal when escape key is pressed.\n */\n keyboard?: boolean;\n\n focus?: boolean;\n /**\n * Shows the modal when initialized.\n */\n show?: boolean;\n /**\n * Ignore the backdrop click\n */\n ignoreBackdropClick?: boolean;\n /**\n * Css class for opened modal\n */\n class?: string;\n /**\n * Toggle animation\n */\n animated?: boolean;\n /**\n * Modal data\n */\n initialState?: Partial<T>;\n /**\n * Modal providers\n */\n providers?: StaticProvider[];\n /**\n * aria-labelledby attribute value to set on the modal window\n */\n ariaLabelledBy?: string;\n /**\n * aria-describedby attribute value to set on the modal window\n */\n ariaDescribedby?: string;\n}\n\nexport const modalConfigDefaults: ModalOptions = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {}\n};\n\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> =\n new InjectionToken<ModalOptions>('override-default-config');\n\nexport const CLASS_NAME: ClassName = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in', // bs3\n SHOW: 'show' // bs4\n};\n\nexport const SELECTOR: Selector = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\n\nexport const TRANSITION_DURATIONS: TransitionDurations = {\n MODAL: 300,\n BACKDROP: 150\n};\n\nexport const DISMISS_REASONS: DismissReasons = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc',\n BACK: 'browser-back-navigation-clicked'\n};\n","import {\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport {\n CLASS_NAME,\n DISMISS_REASONS,\n ModalOptions,\n TRANSITION_DURATIONS\n} from './modal-options.class';\nimport { BsModalService } from './bs-modal.service';\nimport { isBs3 } from 'ngx-bootstrap/utils';\n\n@Component({\n selector: 'modal-container',\n template: `\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n '[attr.aria-describedby]': 'config.ariaDescribedby'\n }\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n config: ModalOptions;\n isShown = false;\n level: number;\n isAnimated: boolean;\n bsModalService: BsModalService;\n private isModalHiding = false;\n private clickStartedInContent = false;\n\n constructor(options: ModalOptions,\n protected _element: ElementRef,\n private _renderer: Renderer2) {\n this.config = Object.assign({}, options);\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this._renderer.addClass(\n this._element.nativeElement,\n CLASS_NAME.FADE\n );\n }\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onClickStarted(event: MouseEvent): void {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n onClickStop(event: MouseEvent): void {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop\n ) {\n this.clickStartedInContent = false;\n\n return;\n }\n this.bsModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n\n @HostListener('window:popstate')\n onPopState(): void {\n this.bsModalService.setDismissReason(DISMISS_REASONS.BACK);\n this.hide();\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEsc(event: KeyboardEvent): void {\n if (!this.isShown) {\n return;\n }\n\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n\n if (\n this.config.keyboard &&\n this.level === this.bsModalService.getModalsCount()\n ) {\n this.bsModalService.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n\n ngOnDestroy(): void {\n if (this.isShown) {\n this.hide();\n }\n }\n\n hide(): void {\n if (this.isModalHiding || !this.isShown) {\n return;\n }\n this.isModalHiding = true;\n this._renderer.removeClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n setTimeout(() => {\n this.isShown = false;\n if (\n document &&\n document.body &&\n this.bsModalService.getModalsCount() === 1\n ) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.bsModalService.hide(this.config.id);\n this.isModalHiding = false;\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n}\n","import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\nimport { CLASS_NAME } from './modal-options.class';\nimport { isBs3, Utils } from 'ngx-bootstrap/utils';\n\n\n/** This component will be added as background layout for modals if enabled */\n@Component({\n selector: 'bs-modal-backdrop',\n template: ' ',\n host: { class: CLASS_NAME.BACKDROP }\n})\nexport class ModalBackdropComponent implements OnInit {\n get isAnimated(): boolean {\n return this._isAnimated;\n }\n\n set isAnimated(value: boolean) {\n this._isAnimated = value;\n // this.renderer.setElementClass(this.element.nativeElement, `${ClassName.FADE}`, value);\n }\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n set isShown(value: boolean) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n }\n if (!isBs3()) {\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n }\n }\n }\n\n element: ElementRef;\n renderer: Renderer2;\n\n protected _isAnimated: boolean;\n protected _isShown = false;\n\n constructor(element: ElementRef, renderer: Renderer2) {\n this.element = element;\n this.renderer = renderer;\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.FADE}`\n );\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n}\n","/* tslint:disable:max-file-line-count */\n// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\n\nimport {\n ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input,\n OnDestroy, OnInit, Output, Renderer2, ViewContainerRef, Optional, Inject\n} from '@angular/core';\n\nimport { document, window, isBs3, Utils } from 'ngx-bootstrap/utils';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport {\n CLASS_NAME, DISMISS_REASONS, modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n\n/** Mark any code with directive to show it's content in modal */\n@Directive({\n selector: '[bsModal]',\n exportAs: 'bs-modal'\n})\nexport class ModalDirective implements OnDestroy, OnInit {\n /** allows to set modal configuration via element property */\n @Input()\n set config(conf: ModalOptions) {\n this._config = this.getConfig(conf);\n }\n\n get config(): ModalOptions {\n return this._config;\n }\n\n /** This event fires immediately when the `show` instance method is called. */\n @Output()\n onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n @Output()\n onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n @Output()\n onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n @Output()\n onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n\n /** This field contains last dismiss reason.\n * Possible values: `backdrop-click`, `esc` and `id: number`\n * (if modal was closed by direct call of `.hide()`).\n */\n dismissReason: string;\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n protected _config: ModalOptions;\n protected _isShown = false;\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n protected scrollbarWidth = 0;\n\n protected timerHideModal = 0;\n protected timerRmBackDrop = 0;\n\n // reference to backdrop component\n protected backdrop: ComponentRef<ModalBackdropComponent>;\n private _backdrop: ComponentLoader<ModalBackdropComponent>;\n\n private isNested = false;\n private clickStartedInContent = false;\n\n constructor(\n private _element: ElementRef,\n _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n clf: ComponentLoaderFactory,\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions) {\n this._backdrop = clf.createLoader<ModalBackdropComponent>(\n _element,\n _viewContainerRef,\n _renderer\n );\n this._config = modalDefaultOption || modalConfigDefaults;\n }\n\n @HostListener('mousedown', ['$event'])\n onClickStarted(event: MouseEvent): void {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n onClickStop(event: MouseEvent): void {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop\n ) {\n this.clickStartedInContent = false;\n\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n\n // todo: consider preventing default and stopping propagation\n @HostListener('keydown.esc', ['$event'])\n onEsc(event: KeyboardEvent): void {\n if (!this._isShown) {\n return;\n }\n // tslint:disable-next-line:deprecation\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n\n ngOnDestroy() {\n this.config = void 0;\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n\n ngOnInit(): void {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n\n /* Public methods */\n\n /** Allows to manually toggle modal visibility */\n toggle(): void {\n return this._isShown ? this.hide() : this.show();\n }\n\n /** Allows to manually open modal */\n show(): void {\n this.dismissReason = null;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n\n this._isShown = true;\n\n this.checkScrollbar();\n this.setScrollbar();\n\n if (document && document.body) {\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n } else {\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n }\n\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n\n /** Allows to manually close modal */\n hide(event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n this.onHide.emit(this);\n\n // todo: add an option to prevent hiding\n if (!this._isShown) {\n return;\n }\n\n window.clearTimeout(this.timerHideModal);\n window.clearTimeout(this.timerRmBackDrop);\n\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n // this._addClassIn = false;\n\n if (this._config.animated) {\n this.timerHideModal = window.setTimeout(\n () => this.hideModal(),\n TRANSITION_DURATION\n );\n } else {\n this.hideModal();\n }\n }\n\n /** Private methods @internal */\n protected getConfig(config?: ModalOptions): ModalOptions {\n return Object.assign({}, this._config, config);\n }\n\n /**\n * Show dialog\n * @internal\n */\n protected showElement(): void {\n // todo: replace this with component loader usage\n if (\n !this._element.nativeElement.parentNode ||\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE\n ) {\n // don't move modals dom position\n if (document && document.body) {\n document.body.appendChild(this._element.nativeElement);\n }\n }\n\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'false'\n );\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-modal',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n this._renderer.setProperty(\n this._element.nativeElement,\n 'scrollTop',\n 0\n );\n\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n\n // this._addClassIn = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n } else {\n transitionComplete();\n }\n }\n\n /** @internal */\n protected hideModal(): void {\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'none'\n );\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document && document.body) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n protected showBackdrop(callback?: Function): void {\n if (\n this._isShown &&\n this.config.backdrop &&\n (!this.backdrop || !this.backdrop.instance.isShown)\n ) {\n this.removeBackdrop();\n this._backdrop\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this._config.animated });\n this.backdrop = this._backdrop._componentRef;\n\n if (!callback) {\n return;\n }\n\n if (!this._config.animated) {\n callback();\n\n return;\n }\n\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n } else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = window.setTimeout(\n callbackRemove,\n BACKDROP_TRANSITION_DURATION\n );\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n /** @internal */\n protected removeBackdrop(): void {\n this._backdrop.hide();\n }\n\n /** Events tricks */\n\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n\n protected focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) {\n return;\n }\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n\n /** @internal */\n protected resetAdjustments(): void {\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingLeft',\n ''\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingRight',\n ''\n );\n }\n\n /** Scroll bar tricks */\n /** @internal */\n protected checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n protected setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || 0,\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n protected resetScrollbar(): void {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n\n // thx d.walsh\n protected getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n}\n","import {\n ComponentRef,\n Injectable,\n TemplateRef,\n EventEmitter,\n Renderer2,\n RendererFactory2,\n Inject,\n Optional\n} from '@angular/core';\n\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalContainerComponent } from './modal-container.component';\nimport {\n CLASS_NAME,\n modalConfigDefaults,\n ModalOptions,\n TRANSITION_DURATIONS,\n MODAL_CONFIG_DEFAULT_OVERRIDE\n} from './modal-options.class';\nimport { BsModalRef } from './bs-modal-ref.service';\n\n@Injectable()\nexport class BsModalService {\n // constructor props\n config: ModalOptions;\n\n // tslint:disable-next-line:no-any\n onShow: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onShown: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onHide: EventEmitter<any> = new EventEmitter();\n // tslint:disable-next-line:no-any\n onHidden: EventEmitter<any> = new EventEmitter();\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n\n protected scrollbarWidth = 0;\n\n protected backdropRef: ComponentRef<ModalBackdropComponent>;\n private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\n private modalsCount = 0;\n private lastDismissReason: any = null;\n\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n\n private _renderer: Renderer2;\n\n constructor(\n rendererFactory: RendererFactory2,\n private clf: ComponentLoaderFactory,\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) private modalDefaultOption: ModalOptions) {\n this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>(\n null,\n null,\n null\n );\n this._renderer = rendererFactory.createRenderer(null, null);\n this.config = modalDefaultOption ?\n (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\n modalConfigDefaults;\n }\n\n /** Shows a modal */\n show<T = Object>(\n // tslint:disable-next-line:no-any\n content: string | TemplateRef<any> | { new(...args: any[]): T },\n config?: ModalOptions<T>\n ): BsModalRef<T> {\n this.modalsCount++;\n this._createLoaders();\n\n const id = config?.id || (new Date()).getUTCMilliseconds(); // must be different per every show() call\n this.config = this.modalDefaultOption ?\n Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\n Object.assign({}, modalConfigDefaults, config);\n this.config.id = id;\n\n this._showBackdrop();\n this.lastDismissReason = null;\n\n return this._showModal(content);\n }\n\n hide(id?: number) {\n if (this.modalsCount === 1 || id == null) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(id);\n this.removeLoaders(id);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n }\n\n _showBackdrop(): void {\n const isBackdropEnabled =\n this.config.backdrop || this.config.backdrop === 'static';\n const isBackdropInDOM =\n !this.backdropRef || !this.backdropRef.instance.isShown;\n\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this.config.animated });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n\n _hideBackdrop(): void {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n // tslint:disable-next-line:no-any\n _showModal(content: any): BsModalRef {\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (this.config && this.config.providers) {\n for (const provider of this.config.providers) {\n modalLoader.provide(provider);\n }\n }\n\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: this.config })\n .provide({ provide: BsModalRef, useValue: bsModalRef })\n .attach(ModalContainerComponent)\n .to('body');\n bsModalRef.hide = () => modalContainerRef.instance.hide();\n bsModalRef.setClass = (newClass: string) => {\n modalContainerRef.instance.config.class = newClass;\n };\n\n bsModalRef.onHidden = new EventEmitter<any>();\n bsModalRef.onHide = new EventEmitter<any>();\n\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n // call 'show' method after assign setClass in bsModalRef.\n // it makes modal component's bsModalRef available to call setClass method\n modalContainerRef.show({\n content,\n isAnimated: this.config.animated,\n initialState: this.config.initialState,\n bsModalService: this,\n id: this.config.id\n });\n modalContainerRef.instance.level = this.getModalsCount();\n\n bsModalRef.content = modalLoader.getInnerComponent() || null;\n bsModalRef.id = modalContainerRef.instance.config?.id;\n\n return bsModalRef;\n }\n\n _hideModal(id?: number): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance.config.id === id);\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id);\n }\n } else {\n this.loaders.forEach(\n (loader: ComponentLoader<ModalContainerComponent>) => {\n loader.hide(loader.instance.config.id);\n }\n );\n }\n }\n\n getModalsCount(): number {\n return this.modalsCount;\n }\n\n setDismissReason(reason: string) {\n this.lastDismissReason = reason;\n }\n\n removeBackdrop(): void {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._backdropLoader.hide();\n this.backdropRef = null;\n }\n\n /** Checks if the body is overflowing and sets scrollbar width */\n /** @internal */\n checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || '0',\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n private resetScrollbar(): void {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n\n // thx d.walsh\n private getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n\n private _createLoaders(): void {\n const loader = this.clf.createLoader<ModalContainerComponent>(\n null,\n null,\n null\n );\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n\n private removeLoaders(id?: number): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance.config.id === id);\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach(\n (loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n loader.instance.level = i + 1;\n }\n );\n }\n } else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n\n // tslint:disable-next-line:no-any\n private copyEvent(from: EventEmitter<any>, to: EventEmitter<any>) {\n from.subscribe((data: any) => {\n to.emit(this.lastDismissReason || data);\n });\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalDirective } from './modal.directive';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { BsModalService } from './bs-modal.service';\n\n@NgModule({\n declarations: [\n ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent\n ],\n exports: [ModalBackdropComponent, ModalDirective],\n entryComponents: [ModalBackdropComponent, ModalContainerComponent]\n})\nexport class ModalModule {\n static forRoot(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static forChild(): ModuleWithProviders<ModalModule> {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n}\n"]}
@@ -3,6 +3,10 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable } from '@angular/core';
6
+ /**
7
+ * @template T
8
+ */
9
+ // tslint:disable-next-line:no-any
6
10
  export class BsModalRef {
7
11
  constructor() {
8
12
  /**
@@ -50,4 +54,4 @@ if (false) {
50
54
  */
51
55
  BsModalRef.prototype.onHidden;
52
56
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbW9kYWwtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL21vZGFsLyIsInNvdXJjZXMiOlsiYnMtbW9kYWwtcmVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBR3pELE1BQU0sT0FBTyxVQUFVO0lBRHZCOzs7O1FBZ0JFLFNBQUksR0FBZSxRQUFRLENBQUM7Ozs7UUFJNUIsYUFBUSxHQUErQixRQUFRLENBQUM7SUFXbEQsQ0FBQzs7O1lBL0JBLFVBQVU7Ozs7Ozs7SUFLVCx3QkFBVzs7Ozs7SUFNWCw2QkFBcUI7Ozs7O0lBS3JCLDBCQUE0Qjs7Ozs7SUFJNUIsOEJBQWdEOzs7OztJQUtoRCw0QkFBMEI7Ozs7O0lBSzFCLDhCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnNNb2RhbFJlZiB7XG4gIC8qKlxuICAgKiAgQWxsb3cgdXNlciB0byBJRCBmb3IgdGhlIG1vZGFsLiBPdGhlcndpc2UsIGEgdW5pcXVlIG51bWJlciB3aWxsIGJlIGdpdmVuXG4gICAqL1xuICBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gYSBjb21wb25lbnQgaW5zaWRlIHRoZSBtb2RhbC4gTnVsbCBpZiBtb2RhbCdzIGJlZW4gY3JlYXRlZCB3aXRoIFRlbXBsYXRlUmVmXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIGNvbnRlbnQ/OiBhbnkgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgbW9kYWxcbiAgICovXG4gIGhpZGU6ICgpID0+IHZvaWQgPSBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFNldHMgbmV3IGNsYXNzIHRvIG1vZGFsIHdpbmRvd1xuICAgKi9cbiAgc2V0Q2xhc3M6IChuZXdDbGFzczogc3RyaW5nKSA9PiB2b2lkID0gRnVuY3Rpb247XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIHN0YXJ0cyBoaWRpbmdcbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiB0aGUgbW9kYWwgYmVoaW5kIHRoZSByZWYgZmluaXNoZXMgaGlkaW5nXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8YW55Pjtcbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbW9kYWwtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL21vZGFsLyIsInNvdXJjZXMiOlsiYnMtbW9kYWwtcmVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7O0FBR3pELGtDQUFrQztBQUNsQyxNQUFNLE9BQU8sVUFBVTtJQUZ2Qjs7OztRQWdCRSxTQUFJLEdBQWUsUUFBUSxDQUFDOzs7O1FBSTVCLGFBQVEsR0FBK0IsUUFBUSxDQUFDO0lBV2xELENBQUM7OztZQS9CQSxVQUFVOzs7Ozs7O0lBTVQsd0JBQVc7Ozs7O0lBS1gsNkJBQW1COzs7OztJQUtuQiwwQkFBNEI7Ozs7O0lBSTVCLDhCQUFnRDs7Ozs7SUFLaEQsNEJBQTBCOzs7OztJQUsxQiw4QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuZXhwb3J0IGNsYXNzIEJzTW9kYWxSZWY8VCA9IGFueT4ge1xuICAvKipcbiAgICogIEFsbG93IHVzZXIgdG8gSUQgZm9yIHRoZSBtb2RhbC4gT3RoZXJ3aXNlLCBhIHVuaXF1ZSBudW1iZXIgd2lsbCBiZSBnaXZlblxuICAgKi9cbiAgaWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIGEgY29tcG9uZW50IGluc2lkZSB0aGUgbW9kYWwuIE51bGwgaWYgbW9kYWwncyBiZWVuIGNyZWF0ZWQgd2l0aCBUZW1wbGF0ZVJlZlxuICAgKi9cbiAgY29udGVudD86IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgbW9kYWxcbiAgICovXG4gIGhpZGU6ICgpID0+IHZvaWQgPSBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFNldHMgbmV3IGNsYXNzIHRvIG1vZGFsIHdpbmRvd1xuICAgKi9cbiAgc2V0Q2xhc3M6IChuZXdDbGFzczogc3RyaW5nKSA9PiB2b2lkID0gRnVuY3Rpb247XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIHN0YXJ0cyBoaWRpbmdcbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiB0aGUgbW9kYWwgYmVoaW5kIHRoZSByZWYgZmluaXNoZXMgaGlkaW5nXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8YW55Pjtcbn1cbiJdfQ==
@@ -39,17 +39,22 @@ export class BsModalService {
39
39
  }
40
40
  /**
41
41
  * Shows a modal
42
+ * @template T
42
43
  * @param {?} content
43
44
  * @param {?=} config
44
45
  * @return {?}
45
46
  */
47
+ show(
46
48
  // tslint:disable-next-line:no-any
47
- show(content, config) {
49
+ content, config) {
48
50
  this.modalsCount++;
49
51
  this._createLoaders();
52
+ /** @type {?} */
53
+ const id = (config === null || config === void 0 ? void 0 : config.id) || (new Date()).getUTCMilliseconds();
50
54
  this.config = this.modalDefaultOption ?
51
55
  Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :
52
56
  Object.assign({}, modalConfigDefaults, config);
57
+ this.config.id = id;
53
58
  this._showBackdrop();
54
59
  this.lastDismissReason = null;
55
60
  return this._showModal(content);
@@ -387,4 +392,4 @@ if (false) {
387
392
  */
388
393
  BsModalService.prototype.modalDefaultOption;
389
394
  }
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJicy1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsVUFBVSxFQUVWLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQiw2QkFBNkIsRUFDOUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQTJCekIsWUFDRSxlQUFpQyxFQUN6QixHQUEyQixFQUN3QixrQkFBZ0M7UUFEbkYsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDd0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFjOztRQXpCN0YsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUvQyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRWhELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFFL0MsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFJckIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsc0JBQWlCLEdBQVEsSUFBSSxDQUFDO1FBRTlCLFlBQU8sR0FBK0MsRUFBRSxDQUFDO1FBUS9ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQzFDLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUNMLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztZQUNoQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELG1CQUFtQixDQUFDO0lBQ3hCLENBQUM7Ozs7Ozs7O0lBSUQsSUFBSSxDQUFDLE9BQXdDLEVBQUUsTUFBcUI7UUFDbEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7OztJQUVELElBQUksQ0FBQyxFQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsR0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7O0lBRUQsYUFBYTs7Y0FDTCxpQkFBaUIsR0FDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUTs7Y0FDckQsZUFBZSxHQUNuQixDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1FBRXpELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXRCLElBQUksaUJBQWlCLElBQUksZUFBZSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsZUFBZTtxQkFDakIsTUFBTSxDQUFDLHNCQUFzQixDQUFDO3FCQUM5QixFQUFFLENBQUMsTUFBTSxDQUFDO3FCQUNWLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7YUFDdkQ7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzs7Y0FDcEMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsVUFBVTs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Ozs7OztJQUVELFVBQVUsQ0FBQyxPQUFZOzs7Y0FDZixXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3hDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQzVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0I7U0FDRjs7Y0FFSyxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUU7O2NBQzdCLGlCQUFpQixHQUFHLFdBQVc7YUFDbEMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3pELE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQ3RELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQzthQUMvQixFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2IsVUFBVSxDQUFDLElBQUk7OztRQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDO1FBQzFELFVBQVUsQ0FBQyxRQUFROzs7O1FBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7WUFDekMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3JELENBQUMsQ0FBQSxDQUFDO1FBRUYsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsMERBQTBEO1FBQzFELDBFQUEwRTtRQUMxRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDckIsT0FBTztZQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUN0QyxjQUFjLEVBQUUsSUFBSTtZQUNwQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpELFVBQVUsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksSUFBSSxDQUFDO1FBQzdELFVBQVUsQ0FBQyxFQUFFLFNBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDO1FBRXRELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEVBQVc7UUFDcEIsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFOztrQkFDUixhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTOzs7O1lBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFDOztrQkFDbEYsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQy9DLElBQUksV0FBVyxFQUFFO2dCQUNmLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O1lBQ2xCLENBQUMsTUFBZ0QsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsRUFDRixDQUFDO1NBQ0g7SUFDSCxDQUFDOzs7O0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOzs7OztJQUVELGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUNsQyxDQUFDOzs7O0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQzs7Ozs7O0lBSUQsY0FBYztRQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDakQsQ0FBQzs7OztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FDakMsTUFBTTthQUNILGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDL0IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxFQUMzQyxFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUI7Z0JBQzVELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7Ozs7O0lBRU8sY0FBYztRQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQztJQUNyRSxDQUFDOzs7Ozs7SUFHTyxpQkFBaUI7O2NBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7O2NBQy9DLGNBQWMsR0FBRyxTQUFTLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXO1FBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFckQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQzs7Ozs7SUFFTyxjQUFjOztjQUNkLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FDbEMsSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQ0w7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7OztJQUVPLGFBQWEsQ0FBQyxFQUFXO1FBQy9CLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTs7a0JBQ1IsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUzs7OztZQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBQztZQUN4RixJQUFJLGFBQWEsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7OztnQkFDbEIsQ0FBQyxNQUFnRCxFQUFFLENBQVMsRUFBRSxFQUFFO29CQUM5RCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDLEVBQ0YsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFHTyxTQUFTLENBQUMsSUFBdUIsRUFBRSxFQUFxQjtRQUM5RCxJQUFJLENBQUMsU0FBUzs7OztRQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDM0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFuUEYsVUFBVTs7OztZQWpCVCxnQkFBZ0I7WUFLUSxzQkFBc0I7WUFNOUMsWUFBWSx1QkFxQ1QsUUFBUSxZQUFJLE1BQU0sU0FBQyw2QkFBNkI7Ozs7SUE1Qm5ELGdDQUFxQjs7SUFHckIsZ0NBQStDOztJQUUvQyxpQ0FBZ0Q7O0lBRWhELGdDQUErQzs7SUFFL0Msa0NBQWlEOzs7OztJQUVqRCwyQ0FBb0M7Ozs7O0lBQ3BDLDZDQUFrQzs7Ozs7SUFFbEMsd0NBQTZCOzs7OztJQUU3QixxQ0FBNEQ7Ozs7O0lBQzVELHlDQUFpRTs7Ozs7SUFDakUscUNBQXdCOzs7OztJQUN4QiwyQ0FBc0M7Ozs7O0lBRXRDLGlDQUFpRTs7Ozs7SUFFakUsbUNBQTZCOzs7OztJQUkzQiw2QkFBbUM7Ozs7O0lBQ25DLDRDQUEyRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgVGVtcGxhdGVSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgTW9kYWxCYWNrZHJvcENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYmFja2Ryb3AuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENMQVNTX05BTUUsXG4gIG1vZGFsQ29uZmlnRGVmYXVsdHMsXG4gIE1vZGFsT3B0aW9ucyxcbiAgVFJBTlNJVElPTl9EVVJBVElPTlMsXG4gIE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFXG59IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnLi9icy1tb2RhbC1yZWYuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCc01vZGFsU2VydmljZSB7XG4gIC8vIGNvbnN0cnVjdG9yIHByb3BzXG4gIGNvbmZpZzogTW9kYWxPcHRpb25zO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvblNob3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgaXNCb2R5T3ZlcmZsb3dpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9yaWdpbmFsQm9keVBhZGRpbmcgPSAwO1xuXG4gIHByb3RlY3RlZCBzY3JvbGxiYXJXaWR0aCA9IDA7XG5cbiAgcHJvdGVjdGVkIGJhY2tkcm9wUmVmOiBDb21wb25lbnRSZWY8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgX2JhY2tkcm9wTG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgbW9kYWxzQ291bnQgPSAwO1xuICBwcml2YXRlIGxhc3REaXNtaXNzUmVhc29uOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgbG9hZGVyczogQ29tcG9uZW50TG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PltdID0gW107XG5cbiAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgcHJpdmF0ZSBjbGY6IENvbXBvbmVudExvYWRlckZhY3RvcnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSkgcHJpdmF0ZSBtb2RhbERlZmF1bHRPcHRpb246IE1vZGFsT3B0aW9ucykge1xuICAgIHRoaXMuX2JhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsXG4gICAgKTtcbiAgICB0aGlzLl9yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmNvbmZpZyA9IG1vZGFsRGVmYXVsdE9wdGlvbiA/XG4gICAgICAoT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgbW9kYWxEZWZhdWx0T3B0aW9uKSkgOlxuICAgICAgbW9kYWxDb25maWdEZWZhdWx0cztcbiAgfVxuXG4gIC8qKiBTaG93cyBhIG1vZGFsICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgc2hvdyhjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgYW55LCBjb25maWc/OiBNb2RhbE9wdGlvbnMpOiBCc01vZGFsUmVmIHtcbiAgICB0aGlzLm1vZGFsc0NvdW50Kys7XG4gICAgdGhpcy5fY3JlYXRlTG9hZGVycygpO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5tb2RhbERlZmF1bHRPcHRpb24gP1xuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgdGhpcy5tb2RhbERlZmF1bHRPcHRpb24sIGNvbmZpZykgOlxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgY29uZmlnKTtcblxuICAgIHRoaXMuX3Nob3dCYWNrZHJvcCgpO1xuICAgIHRoaXMubGFzdERpc21pc3NSZWFzb24gPSBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuX3Nob3dNb2RhbChjb250ZW50KTtcbiAgfVxuXG4gIGhpZGUoaWQ/OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5tb2RhbHNDb3VudCA9PT0gMSB8fCBpZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9oaWRlQmFja2Ryb3AoKTtcbiAgICAgIHRoaXMucmVzZXRTY3JvbGxiYXIoKTtcbiAgICB9XG4gICAgdGhpcy5tb2RhbHNDb3VudCA9IHRoaXMubW9kYWxzQ291bnQgPj0gMSAmJiBpZCAhPSBudWxsID8gdGhpcy5tb2RhbHNDb3VudCAtIDEgOiAwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5faGlkZU1vZGFsKGlkKTtcbiAgICAgIHRoaXMucmVtb3ZlTG9hZGVycyhpZCk7XG4gICAgfSwgdGhpcy5jb25maWcuYW5pbWF0ZWQgPyBUUkFOU0lUSU9OX0RVUkFUSU9OUy5CQUNLRFJPUCA6IDApO1xuICB9XG5cbiAgX3Nob3dCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBpc0JhY2tkcm9wRW5hYmxlZCA9XG4gICAgICB0aGlzLmNvbmZpZy5iYWNrZHJvcCB8fCB0aGlzLmNvbmZpZy5iYWNrZHJvcCA9PT0gJ3N0YXRpYyc7XG4gICAgY29uc3QgaXNCYWNrZHJvcEluRE9NID1cbiAgICAgICF0aGlzLmJhY2tkcm9wUmVmIHx8ICF0aGlzLmJhY2tkcm9wUmVmLmluc3RhbmNlLmlzU2hvd247XG5cbiAgICBpZiAodGhpcy5tb2RhbHNDb3VudCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuXG4gICAgICBpZiAoaXNCYWNrZHJvcEVuYWJsZWQgJiYgaXNCYWNrZHJvcEluRE9NKSB7XG4gICAgICAgIHRoaXMuX2JhY2tkcm9wTG9hZGVyXG4gICAgICAgICAgLmF0dGFjaChNb2RhbEJhY2tkcm9wQ29tcG9uZW50KVxuICAgICAgICAgIC50bygnYm9keScpXG4gICAgICAgICAgLnNob3coeyBpc0FuaW1hdGVkOiB0aGlzLmNvbmZpZy5hbmltYXRlZCB9KTtcbiAgICAgICAgdGhpcy5iYWNrZHJvcFJlZiA9IHRoaXMuX2JhY2tkcm9wTG9hZGVyLl9jb21wb25lbnRSZWY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2hpZGVCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5iYWNrZHJvcFJlZi5pbnN0YW5jZS5pc1Nob3duID0gZmFsc2U7XG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmNvbmZpZy5hbmltYXRlZCA/IFRSQU5TSVRJT05fRFVSQVRJT05TLkJBQ0tEUk9QIDogMDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVtb3ZlQmFja2Ryb3AoKSwgZHVyYXRpb24pO1xuICB9XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgX3Nob3dNb2RhbChjb250ZW50OiBhbnkpOiBCc01vZGFsUmVmIHtcbiAgICBjb25zdCBtb2RhbExvYWRlciA9IHRoaXMubG9hZGVyc1t0aGlzLmxvYWRlcnMubGVuZ3RoIC0gMV07XG4gICAgaWYgKHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLnByb3ZpZGVycykge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLmNvbmZpZy5wcm92aWRlcnMpIHtcbiAgICAgICAgbW9kYWxMb2FkZXIucHJvdmlkZShwcm92aWRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYnNNb2RhbFJlZiA9IG5ldyBCc01vZGFsUmVmKCk7XG4gICAgY29uc3QgbW9kYWxDb250YWluZXJSZWYgPSBtb2RhbExvYWRlclxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBNb2RhbE9wdGlvbnMsIHVzZVZhbHVlOiB0aGlzLmNvbmZpZyB9KVxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBCc01vZGFsUmVmLCB1c2VWYWx1ZTogYnNNb2RhbFJlZiB9KVxuICAgICAgLmF0dGFjaChNb2RhbENvbnRhaW5lckNvbXBvbmVudClcbiAgICAgIC50bygnYm9keScpO1xuICAgIGJzTW9kYWxSZWYuaGlkZSA9ICgpID0+IG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmhpZGUoKTtcbiAgICBic01vZGFsUmVmLnNldENsYXNzID0gKG5ld0NsYXNzOiBzdHJpbmcpID0+IHtcbiAgICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZy5jbGFzcyA9IG5ld0NsYXNzO1xuICAgIH07XG5cbiAgICBic01vZGFsUmVmLm9uSGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgYnNNb2RhbFJlZi5vbkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHRoaXMuY29weUV2ZW50KG1vZGFsTG9hZGVyLm9uQmVmb3JlSGlkZSwgYnNNb2RhbFJlZi5vbkhpZGUpO1xuICAgIHRoaXMuY29weUV2ZW50KG1vZGFsTG9hZGVyLm9uSGlkZGVuLCBic01vZGFsUmVmLm9uSGlkZGVuKTtcbiAgICAvLyBjYWxsICdzaG93JyBtZXRob2QgYWZ0ZXIgYXNzaWduIHNldENsYXNzIGluIGJzTW9kYWxSZWYuXG4gICAgLy8gaXQgbWFrZXMgbW9kYWwgY29tcG9uZW50J3MgYnNNb2RhbFJlZiBhdmFpbGFibGUgdG8gY2FsbCBzZXRDbGFzcyBtZXRob2RcbiAgICBtb2RhbENvbnRhaW5lclJlZi5zaG93KHtcbiAgICAgIGNvbnRlbnQsXG4gICAgICBpc0FuaW1hdGVkOiB0aGlzLmNvbmZpZy5hbmltYXRlZCxcbiAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5jb25maWcuaW5pdGlhbFN0YXRlLFxuICAgICAgYnNNb2RhbFNlcnZpY2U6IHRoaXMsXG4gICAgICBpZDogdGhpcy5jb25maWcuaWRcbiAgICB9KTtcbiAgICBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5sZXZlbCA9IHRoaXMuZ2V0TW9kYWxzQ291bnQoKTtcblxuICAgIGJzTW9kYWxSZWYuY29udGVudCA9IG1vZGFsTG9hZGVyLmdldElubmVyQ29tcG9uZW50KCkgfHwgbnVsbDtcbiAgICBic01vZGFsUmVmLmlkID0gbW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UuY29uZmlnPy5pZDtcblxuICAgIHJldHVybiBic01vZGFsUmVmO1xuICB9XG5cbiAgX2hpZGVNb2RhbChpZD86IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpbmRleFRvUmVtb3ZlID0gdGhpcy5sb2FkZXJzLmZpbmRJbmRleChsb2FkZXIgPT4gbG9hZGVyLmluc3RhbmNlLmNvbmZpZy5pZCA9PT0gaWQpO1xuICAgICAgY29uc3QgbW9kYWxMb2FkZXIgPSB0aGlzLmxvYWRlcnNbaW5kZXhUb1JlbW92ZV07XG4gICAgICBpZiAobW9kYWxMb2FkZXIpIHtcbiAgICAgICAgbW9kYWxMb2FkZXIuaGlkZShpZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKFxuICAgICAgICAobG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KSA9PiB7XG4gICAgICAgICAgbG9hZGVyLmhpZGUobG9hZGVyLmluc3RhbmNlLmNvbmZpZy5pZCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TW9kYWxzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbHNDb3VudDtcbiAgfVxuXG4gIHNldERpc21pc3NSZWFzb24ocmVhc29uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxhc3REaXNtaXNzUmVhc29uID0gcmVhc29uO1xuICB9XG5cbiAgcmVtb3ZlQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgQ0xBU1NfTkFNRS5PUEVOKTtcbiAgICB0aGlzLl9iYWNrZHJvcExvYWRlci5oaWRlKCk7XG4gICAgdGhpcy5iYWNrZHJvcFJlZiA9IG51bGw7XG4gIH1cblxuICAvKiogQ2hlY2tzIGlmIHRoZSBib2R5IGlzIG92ZXJmbG93aW5nIGFuZCBzZXRzIHNjcm9sbGJhciB3aWR0aCAqL1xuICAvKiogQGludGVybmFsICovXG4gIGNoZWNrU2Nyb2xsYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNCb2R5T3ZlcmZsb3dpbmcgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDwgd2luZG93LmlubmVyV2lkdGg7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMuZ2V0U2Nyb2xsYmFyV2lkdGgoKTtcbiAgfVxuXG4gIHNldFNjcm9sbGJhcigpOiB2b2lkIHtcbiAgICBpZiAoIWRvY3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWRkaW5nID0gcGFyc2VJbnQoXG4gICAgICB3aW5kb3dcbiAgICAgICAgLmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSlcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctcmlnaHQnKSB8fCAnMCcsXG4gICAgICAxMFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5pc0JvZHlPdmVyZmxvd2luZykge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBgJHt0aGlzLm9yaWdpbmFsQm9keVBhZGRpbmcgK1xuICAgICAgICB0aGlzLnNjcm9sbGJhcldpZHRofXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0U2Nyb2xsYmFyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7dGhpcy5vcmlnaW5hbEJvZHlQYWRkaW5nfXB4YDtcbiAgfVxuXG4gIC8vIHRoeCBkLndhbHNoXG4gIHByaXZhdGUgZ2V0U2Nyb2xsYmFyV2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBzY3JvbGxEaXYgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhzY3JvbGxEaXYsIENMQVNTX05BTUUuU0NST0xMQkFSX01FQVNVUkVSKTtcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBzY3JvbGxEaXYpO1xuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHNjcm9sbERpdik7XG5cbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVMb2FkZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxvYWRlciA9IHRoaXMuY2xmLmNyZWF0ZUxvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4oXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGxcbiAgICApO1xuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkJlZm9yZVNob3csIHRoaXMub25TaG93KTtcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25TaG93biwgdGhpcy5vblNob3duKTtcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVIaWRlLCB0aGlzLm9uSGlkZSk7XG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uSGlkZGVuLCB0aGlzLm9uSGlkZGVuKTtcbiAgICB0aGlzLmxvYWRlcnMucHVzaChsb2FkZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMb2FkZXJzKGlkPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KGxvYWRlciA9PiBsb2FkZXIuaW5zdGFuY2UuY29uZmlnLmlkID09PSBpZCk7XG4gICAgICBpZiAoaW5kZXhUb1JlbW92ZSA+PSAwKSB7XG4gICAgICAgIHRoaXMubG9hZGVycy5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG4gICAgICAgIHRoaXMubG9hZGVycy5mb3JFYWNoKFxuICAgICAgICAgIChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgbG9hZGVyLmluc3RhbmNlLmxldmVsID0gaSArIDE7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRlcnMuc3BsaWNlKDAsIHRoaXMubG9hZGVycy5sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgcHJpdmF0ZSBjb3B5RXZlbnQoZnJvbTogRXZlbnRFbWl0dGVyPGFueT4sIHRvOiBFdmVudEVtaXR0ZXI8YW55Pikge1xuICAgIGZyb20uc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIHRvLmVtaXQodGhpcy5sYXN0RGlzbWlzc1JlYXNvbiB8fCBkYXRhKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
395
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtbW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJicy1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsVUFBVSxFQUVWLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLG9CQUFvQixFQUNwQiw2QkFBNkIsRUFDOUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsTUFBTSxPQUFPLGNBQWM7Ozs7OztJQTJCekIsWUFDRSxlQUFpQyxFQUN6QixHQUEyQixFQUN3QixrQkFBZ0M7UUFEbkYsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDd0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFjOztRQXpCN0YsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUvQyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRWhELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFFL0MsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFJckIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsc0JBQWlC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QzthQUNIO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFHTyxTQUFTLENBQUMsSUFBdUIsRUFBRSxFQUFxQjtRQUM5RCxJQUFJLENBQUMsU0FBUzs7OztRQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDM0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF6UEYsVUFBVTs7OztZQWpCVCxnQkFBZ0I7WUFLUSxzQkFBc0I7WUFNOUMsWUFBWSx1QkFxQ1QsUUFBUSxZQUFJLE1BQU0sU0FBQyw2QkFBNkI7Ozs7SUE1Qm5ELGdDQUFxQjs7SUFHckIsZ0NBQStDOztJQUUvQyxpQ0FBZ0Q7O0lBRWhELGdDQUErQzs7SUFFL0Msa0NBQWlEOzs7OztJQUVqRCwyQ0FBb0M7Ozs7O0lBQ3BDLDZDQUFrQzs7Ozs7SUFFbEMsd0NBQTZCOzs7OztJQUU3QixxQ0FBNEQ7Ozs7O0lBQzVELHlDQUFpRTs7Ozs7SUFDakUscUNBQXdCOzs7OztJQUN4QiwyQ0FBc0M7Ozs7O0lBRXRDLGlDQUFpRTs7Ozs7SUFFakUsbUNBQTZCOzs7OztJQUkzQiw2QkFBbUM7Ozs7O0lBQ25DLDRDQUEyRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgVGVtcGxhdGVSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxuICBJbmplY3QsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXIsIENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgTW9kYWxCYWNrZHJvcENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYmFja2Ryb3AuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENMQVNTX05BTUUsXG4gIG1vZGFsQ29uZmlnRGVmYXVsdHMsXG4gIE1vZGFsT3B0aW9ucyxcbiAgVFJBTlNJVElPTl9EVVJBVElPTlMsXG4gIE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFXG59IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnLi9icy1tb2RhbC1yZWYuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCc01vZGFsU2VydmljZSB7XG4gIC8vIGNvbnN0cnVjdG9yIHByb3BzXG4gIGNvbmZpZzogTW9kYWxPcHRpb25zO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvblNob3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gIG9uSGlkZGVuOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgaXNCb2R5T3ZlcmZsb3dpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9yaWdpbmFsQm9keVBhZGRpbmcgPSAwO1xuXG4gIHByb3RlY3RlZCBzY3JvbGxiYXJXaWR0aCA9IDA7XG5cbiAgcHJvdGVjdGVkIGJhY2tkcm9wUmVmOiBDb21wb25lbnRSZWY8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgX2JhY2tkcm9wTG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxCYWNrZHJvcENvbXBvbmVudD47XG4gIHByaXZhdGUgbW9kYWxzQ291bnQgPSAwO1xuICBwcml2YXRlIGxhc3REaXNtaXNzUmVhc29uOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgbG9hZGVyczogQ29tcG9uZW50TG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PltdID0gW107XG5cbiAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgcHJpdmF0ZSBjbGY6IENvbXBvbmVudExvYWRlckZhY3RvcnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSkgcHJpdmF0ZSBtb2RhbERlZmF1bHRPcHRpb246IE1vZGFsT3B0aW9ucykge1xuICAgIHRoaXMuX2JhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsXG4gICAgKTtcbiAgICB0aGlzLl9yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmNvbmZpZyA9IG1vZGFsRGVmYXVsdE9wdGlvbiA/XG4gICAgICAoT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgbW9kYWxEZWZhdWx0T3B0aW9uKSkgOlxuICAgICAgbW9kYWxDb25maWdEZWZhdWx0cztcbiAgfVxuXG4gIC8qKiBTaG93cyBhIG1vZGFsICovXG4gIHNob3c8VCA9IE9iamVjdD4oXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB7IG5ldyguLi5hcmdzOiBhbnlbXSk6IFQgfSxcbiAgICBjb25maWc/OiBNb2RhbE9wdGlvbnM8VD5cbiAgKTogQnNNb2RhbFJlZjxUPiB7XG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xuICAgIHRoaXMuX2NyZWF0ZUxvYWRlcnMoKTtcblxuICAgIGNvbnN0IGlkID0gY29uZmlnPy5pZCB8fCAobmV3IERhdGUoKSkuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7IC8vIG11c3QgYmUgZGlmZmVyZW50IHBlciBldmVyeSBzaG93KCkgY2FsbFxuICAgIHRoaXMuY29uZmlnID0gdGhpcy5tb2RhbERlZmF1bHRPcHRpb24gP1xuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgdGhpcy5tb2RhbERlZmF1bHRPcHRpb24sIGNvbmZpZykgOlxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgbW9kYWxDb25maWdEZWZhdWx0cywgY29uZmlnKTtcbiAgICB0aGlzLmNvbmZpZy5pZCA9IGlkO1xuXG4gICAgdGhpcy5fc2hvd0JhY2tkcm9wKCk7XG4gICAgdGhpcy5sYXN0RGlzbWlzc1JlYXNvbiA9IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5fc2hvd01vZGFsKGNvbnRlbnQpO1xuICB9XG5cbiAgaGlkZShpZD86IG51bWJlcikge1xuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxIHx8IGlkID09IG51bGwpIHtcbiAgICAgIHRoaXMuX2hpZGVCYWNrZHJvcCgpO1xuICAgICAgdGhpcy5yZXNldFNjcm9sbGJhcigpO1xuICAgIH1cbiAgICB0aGlzLm1vZGFsc0NvdW50ID0gdGhpcy5tb2RhbHNDb3VudCA+PSAxICYmIGlkICE9IG51bGwgPyB0aGlzLm1vZGFsc0NvdW50IC0gMSA6IDA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9oaWRlTW9kYWwoaWQpO1xuICAgICAgdGhpcy5yZW1vdmVMb2FkZXJzKGlkKTtcbiAgICB9LCB0aGlzLmNvbmZpZy5hbmltYXRlZCA/IFRSQU5TSVRJT05fRFVSQVRJT05TLkJBQ0tEUk9QIDogMCk7XG4gIH1cblxuICBfc2hvd0JhY2tkcm9wKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQmFja2Ryb3BFbmFibGVkID1cbiAgICAgIHRoaXMuY29uZmlnLmJhY2tkcm9wIHx8IHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJztcbiAgICBjb25zdCBpc0JhY2tkcm9wSW5ET00gPVxuICAgICAgIXRoaXMuYmFja2Ryb3BSZWYgfHwgIXRoaXMuYmFja2Ryb3BSZWYuaW5zdGFuY2UuaXNTaG93bjtcblxuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG5cbiAgICAgIGlmIChpc0JhY2tkcm9wRW5hYmxlZCAmJiBpc0JhY2tkcm9wSW5ET00pIHtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3BMb2FkZXJcbiAgICAgICAgICAuYXR0YWNoKE1vZGFsQmFja2Ryb3BDb21wb25lbnQpXG4gICAgICAgICAgLnRvKCdib2R5JylcbiAgICAgICAgICAuc2hvdyh7IGlzQW5pbWF0ZWQ6IHRoaXMuY29uZmlnLmFuaW1hdGVkIH0pO1xuICAgICAgICB0aGlzLmJhY2tkcm9wUmVmID0gdGhpcy5fYmFja2Ryb3BMb2FkZXIuX2NvbXBvbmVudFJlZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfaGlkZUJhY2tkcm9wKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5iYWNrZHJvcFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJhY2tkcm9wUmVmLmluc3RhbmNlLmlzU2hvd24gPSBmYWxzZTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuY29uZmlnLmFuaW1hdGVkID8gVFJBTlNJVElPTl9EVVJBVElPTlMuQkFDS0RST1AgOiAwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZW1vdmVCYWNrZHJvcCgpLCBkdXJhdGlvbik7XG4gIH1cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBfc2hvd01vZGFsKGNvbnRlbnQ6IGFueSk6IEJzTW9kYWxSZWYge1xuICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW3RoaXMubG9hZGVycy5sZW5ndGggLSAxXTtcbiAgICBpZiAodGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcucHJvdmlkZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMuY29uZmlnLnByb3ZpZGVycykge1xuICAgICAgICBtb2RhbExvYWRlci5wcm92aWRlKHByb3ZpZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBic01vZGFsUmVmID0gbmV3IEJzTW9kYWxSZWYoKTtcbiAgICBjb25zdCBtb2RhbENvbnRhaW5lclJlZiA9IG1vZGFsTG9hZGVyXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IE1vZGFsT3B0aW9ucywgdXNlVmFsdWU6IHRoaXMuY29uZmlnIH0pXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IEJzTW9kYWxSZWYsIHVzZVZhbHVlOiBic01vZGFsUmVmIH0pXG4gICAgICAuYXR0YWNoKE1vZGFsQ29udGFpbmVyQ29tcG9uZW50KVxuICAgICAgLnRvKCdib2R5Jyk7XG4gICAgYnNNb2RhbFJlZi5oaWRlID0gKCkgPT4gbW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UuaGlkZSgpO1xuICAgIGJzTW9kYWxSZWYuc2V0Q2xhc3MgPSAobmV3Q2xhc3M6IHN0cmluZykgPT4ge1xuICAgICAgbW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UuY29uZmlnLmNsYXNzID0gbmV3Q2xhc3M7XG4gICAgfTtcblxuICAgIGJzTW9kYWxSZWYub25IaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBic01vZGFsUmVmLm9uSGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25CZWZvcmVIaWRlLCBic01vZGFsUmVmLm9uSGlkZSk7XG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25IaWRkZW4sIGJzTW9kYWxSZWYub25IaWRkZW4pO1xuICAgIC8vIGNhbGwgJ3Nob3cnIG1ldGhvZCBhZnRlciBhc3NpZ24gc2V0Q2xhc3MgaW4gYnNNb2RhbFJlZi5cbiAgICAvLyBpdCBtYWtlcyBtb2RhbCBjb21wb25lbnQncyBic01vZGFsUmVmIGF2YWlsYWJsZSB0byBjYWxsIHNldENsYXNzIG1ldGhvZFxuICAgIG1vZGFsQ29udGFpbmVyUmVmLnNob3coe1xuICAgICAgY29udGVudCxcbiAgICAgIGlzQW5pbWF0ZWQ6IHRoaXMuY29uZmlnLmFuaW1hdGVkLFxuICAgICAgaW5pdGlhbFN0YXRlOiB0aGlzLmNvbmZpZy5pbml0aWFsU3RhdGUsXG4gICAgICBic01vZGFsU2VydmljZTogdGhpcyxcbiAgICAgIGlkOiB0aGlzLmNvbmZpZy5pZFxuICAgIH0pO1xuICAgIG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmxldmVsID0gdGhpcy5nZXRNb2RhbHNDb3VudCgpO1xuXG4gICAgYnNNb2RhbFJlZi5jb250ZW50ID0gbW9kYWxMb2FkZXIuZ2V0SW5uZXJDb21wb25lbnQoKSB8fCBudWxsO1xuICAgIGJzTW9kYWxSZWYuaWQgPSBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5jb25maWc/LmlkO1xuXG4gICAgcmV0dXJuIGJzTW9kYWxSZWY7XG4gIH1cblxuICBfaGlkZU1vZGFsKGlkPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KGxvYWRlciA9PiBsb2FkZXIuaW5zdGFuY2UuY29uZmlnLmlkID09PSBpZCk7XG4gICAgICBjb25zdCBtb2RhbExvYWRlciA9IHRoaXMubG9hZGVyc1tpbmRleFRvUmVtb3ZlXTtcbiAgICAgIGlmIChtb2RhbExvYWRlcikge1xuICAgICAgICBtb2RhbExvYWRlci5oaWRlKGlkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkZXJzLmZvckVhY2goXG4gICAgICAgIChsb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD4pID0+IHtcbiAgICAgICAgICBsb2FkZXIuaGlkZShsb2FkZXIuaW5zdGFuY2UuY29uZmlnLmlkKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRNb2RhbHNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1vZGFsc0NvdW50O1xuICB9XG5cbiAgc2V0RGlzbWlzc1JlYXNvbihyZWFzb246IHN0cmluZykge1xuICAgIHRoaXMubGFzdERpc21pc3NSZWFzb24gPSByZWFzb247XG4gIH1cblxuICByZW1vdmVCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCBDTEFTU19OQU1FLk9QRU4pO1xuICAgIHRoaXMuX2JhY2tkcm9wTG9hZGVyLmhpZGUoKTtcbiAgICB0aGlzLmJhY2tkcm9wUmVmID0gbnVsbDtcbiAgfVxuXG4gIC8qKiBDaGVja3MgaWYgdGhlIGJvZHkgaXMgb3ZlcmZsb3dpbmcgYW5kIHNldHMgc2Nyb2xsYmFyIHdpZHRoICovXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY2hlY2tTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0JvZHlPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gdGhpcy5nZXRTY3JvbGxiYXJXaWR0aCgpO1xuICB9XG5cbiAgc2V0U2Nyb2xsYmFyKCk6IHZvaWQge1xuICAgIGlmICghZG9jdW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZGRpbmcgPSBwYXJzZUludChcbiAgICAgIHdpbmRvd1xuICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KVxuICAgICAgICAuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1yaWdodCcpIHx8ICcwJyxcbiAgICAgIDEwXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmlzQm9keU92ZXJmbG93aW5nKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke3RoaXMub3JpZ2luYWxCb2R5UGFkZGluZyArXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGh9cHhgO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBgJHt0aGlzLm9yaWdpbmFsQm9keVBhZGRpbmd9cHhgO1xuICB9XG5cbiAgLy8gdGh4IGQud2Fsc2hcbiAgcHJpdmF0ZSBnZXRTY3JvbGxiYXJXaWR0aCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjcm9sbERpdiA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHNjcm9sbERpdiwgQ0xBU1NfTkFNRS5TQ1JPTExCQVJfTUVBU1VSRVIpO1xuICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHNjcm9sbERpdik7XG4gICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBzY3JvbGxEaXYub2Zmc2V0V2lkdGggLSBzY3JvbGxEaXYuY2xpZW50V2lkdGg7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgc2Nyb2xsRGl2KTtcblxuICAgIHJldHVybiBzY3JvbGxiYXJXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUxvYWRlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgbG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PihcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uQmVmb3JlU2hvdywgdGhpcy5vblNob3cpO1xuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vblNob3duLCB0aGlzLm9uU2hvd24pO1xuICAgIHRoaXMuY29weUV2ZW50KGxvYWRlci5vbkJlZm9yZUhpZGUsIHRoaXMub25IaWRlKTtcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25IaWRkZW4sIHRoaXMub25IaWRkZW4pO1xuICAgIHRoaXMubG9hZGVycy5wdXNoKGxvYWRlcik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxvYWRlcnMoaWQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMubG9hZGVycy5maW5kSW5kZXgobG9hZGVyID0+IGxvYWRlci5pbnN0YW5jZS5jb25maWcuaWQgPT09IGlkKTtcbiAgICAgIGlmIChpbmRleFRvUmVtb3ZlID49IDApIHtcbiAgICAgICAgdGhpcy5sb2FkZXJzLnNwbGljZShpbmRleFRvUmVtb3ZlLCAxKTtcbiAgICAgICAgdGhpcy5sb2FkZXJzLmZvckVhY2goXG4gICAgICAgICAgKGxvYWRlcjogQ29tcG9uZW50TG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PiwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBsb2FkZXIuaW5zdGFuY2UubGV2ZWwgPSBpICsgMTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGVycy5zcGxpY2UoMCwgdGhpcy5sb2FkZXJzLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBwcml2YXRlIGNvcHlFdmVudChmcm9tOiBFdmVudEVtaXR0ZXI8YW55PiwgdG86IEV2ZW50RW1pdHRlcjxhbnk+KSB7XG4gICAgZnJvbS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgdG8uZW1pdCh0aGlzLmxhc3REaXNtaXNzUmVhc29uIHx8IGRhdGEpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -72,6 +72,7 @@ export class ModalContainerComponent {
72
72
  * @return {?}
73
73
  */
74
74
  onPopState() {
75
+ this.bsModalService.setDismissReason(DISMISS_REASONS.BACK);
75
76
  this.hide();
76
77
  }
77
78
  /**
@@ -188,4 +189,4 @@ if (false) {
188
189
  */
189
190
  ModalContainerComponent.prototype._renderer;
190
191
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJtb2RhbC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBR1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFvQjVDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQVNsQyxZQUFZLE9BQXFCLEVBQ1gsUUFBb0IsRUFDdEIsU0FBb0I7UUFEbEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBVHhDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJUixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFLcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDM0IsU0FBUyxFQUNULE9BQU8sQ0FDUixDQUFDO1FBQ0YsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2Qs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QyxRQUFRLENBQUM7MEJBS3BDLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBZ0JsQyxZQUFZLFNBQUMsaUJBQWlCO29CQUs5QixZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF2RTlDLHlDQUFxQjs7SUFDckIsMENBQWdCOztJQUNoQix3Q0FBYzs7SUFDZCw2Q0FBb0I7O0lBQ3BCLGlEQUErQjs7Ozs7SUFDL0IsZ0RBQThCOzs7OztJQUM5Qix3REFBc0M7Ozs7O0lBRzFCLDJDQUE4Qjs7Ozs7SUFDOUIsNENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDTEFTU19OQU1FLFxuICBESVNNSVNTX1JFQVNPTlMsXG4gIE1vZGFsT3B0aW9ucyxcbiAgVFJBTlNJVElPTl9EVVJBVElPTlNcbn0gZnJvbSAnLi9tb2RhbC1vcHRpb25zLmNsYXNzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9icy1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IGlzQnMzIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZGFsLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbW9kYWwnLFxuICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdjb25maWcuYXJpYUxhYmVsbGVkQnknLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdjb25maWcuYXJpYURlc2NyaWJlZGJ5J1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25maWc6IE1vZGFsT3B0aW9ucztcbiAgaXNTaG93biA9IGZhbHNlO1xuICBsZXZlbDogbnVtYmVyO1xuICBpc0FuaW1hdGVkOiBib29sZWFuO1xuICBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2U7XG4gIHByaXZhdGUgaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIGNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vZGFsT3B0aW9ucyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQW5pbWF0ZWQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIENMQVNTX05BTUUuRkFERVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnZGlzcGxheScsXG4gICAgICAnYmxvY2snXG4gICAgKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpc0JzMygpID8gQ0xBU1NfTkFNRS5JTiA6IENMQVNTX05BTUUuU0hPV1xuICAgICAgKTtcbiAgICB9LCB0aGlzLmlzQW5pbWF0ZWQgPyBUUkFOU0lUSU9OX0RVUkFUSU9OUy5CQUNLRFJPUCA6IDApO1xuICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBpZiAodGhpcy5ic01vZGFsU2VydmljZS5nZXRNb2RhbHNDb3VudCgpID09PSAxKSB7XG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2UuY2hlY2tTY3JvbGxiYXIoKTtcbiAgICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5zZXRTY3JvbGxiYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIENMQVNTX05BTUUuT1BFTik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBldmVudC50YXJnZXQgIT09IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnLCBbJyRldmVudCddKVxuICBvbkNsaWNrU3RvcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNsaWNrZWRJbkJhY2tkcm9wID0gZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50O1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmlnbm9yZUJhY2tkcm9wQ2xpY2sgfHxcbiAgICAgIHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fFxuICAgICAgIWNsaWNrZWRJbkJhY2tkcm9wXG4gICAgKSB7XG4gICAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0RGlzbWlzc1JlYXNvbihESVNNSVNTX1JFQVNPTlMuQkFDS1JET1ApO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnBvcHN0YXRlJylcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmVzYycsIFsnJGV2ZW50J10pXG4gIG9uRXNjKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcgfHwgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbmZpZy5rZXlib2FyZCAmJlxuICAgICAgdGhpcy5sZXZlbCA9PT0gdGhpcy5ic01vZGFsU2VydmljZS5nZXRNb2RhbHNDb3VudCgpXG4gICAgKSB7XG4gICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNldERpc21pc3NSZWFzb24oRElTTUlTU19SRUFTT05TLkVTQyk7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1Nob3duKSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTW9kYWxIaWRpbmcgfHwgIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTW9kYWxIaWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgaXNCczMoKSA/IENMQVNTX05BTUUuSU4gOiBDTEFTU19OQU1FLlNIT1dcbiAgICApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc1Nob3duID0gZmFsc2U7XG4gICAgICBpZiAoXG4gICAgICAgIGRvY3VtZW50ICYmXG4gICAgICAgIGRvY3VtZW50LmJvZHkgJiZcbiAgICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5nZXRNb2RhbHNDb3VudCgpID09PSAxXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgQ0xBU1NfTkFNRS5PUEVOKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2UuaGlkZSh0aGlzLmNvbmZpZy5pZCk7XG4gICAgICB0aGlzLmlzTW9kYWxIaWRpbmcgPSBmYWxzZTtcbiAgICB9LCB0aGlzLmlzQW5pbWF0ZWQgPyBUUkFOU0lUSU9OX0RVUkFUSU9OUy5NT0RBTCA6IDApO1xuICB9XG59XG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJtb2RhbC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBR1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFvQjVDLE1BQU0sT0FBTyx1QkFBdUI7Ozs7OztJQVNsQyxZQUFZLE9BQXFCLEVBQ1gsUUFBb0IsRUFDdEIsU0FBb0I7UUFEbEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBVHhDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJUixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFLcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDM0IsU0FBUyxFQUNULE9BQU8sQ0FDUixDQUFDO1FBQ0YsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2Qs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WUF2QkMsWUFBWTtZQVRaLFVBQVU7WUFJVixTQUFTOzs7NkJBMkVSLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBS3BDLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBZ0JsQyxZQUFZLFNBQUMsaUJBQWlCO29CQU05QixZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF4RTlDLHlDQUFxQjs7SUFDckIsMENBQWdCOztJQUNoQix3Q0FBYzs7SUFDZCw2Q0FBb0I7O0lBQ3BCLGlEQUErQjs7Ozs7SUFDL0IsZ0RBQThCOzs7OztJQUM5Qix3REFBc0M7Ozs7O0lBRzFCLDJDQUE4Qjs7Ozs7SUFDOUIsNENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDTEFTU19OQU1FLFxuICBESVNNSVNTX1JFQVNPTlMsXG4gIE1vZGFsT3B0aW9ucyxcbiAgVFJBTlNJVElPTl9EVVJBVElPTlNcbn0gZnJvbSAnLi9tb2RhbC1vcHRpb25zLmNsYXNzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9icy1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IGlzQnMzIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZGFsLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiJ21vZGFsLWRpYWxvZycgKyAoY29uZmlnLmNsYXNzID8gJyAnICsgY29uZmlnLmNsYXNzIDogJycpXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbW9kYWwnLFxuICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgIHRhYmluZGV4OiAnLTEnLFxuICAgICdbYXR0ci5hcmlhLW1vZGFsXSc6ICd0cnVlJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdjb25maWcuYXJpYUxhYmVsbGVkQnknLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdjb25maWcuYXJpYURlc2NyaWJlZGJ5J1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25maWc6IE1vZGFsT3B0aW9ucztcbiAgaXNTaG93biA9IGZhbHNlO1xuICBsZXZlbDogbnVtYmVyO1xuICBpc0FuaW1hdGVkOiBib29sZWFuO1xuICBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2U7XG4gIHByaXZhdGUgaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIGNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vZGFsT3B0aW9ucyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQW5pbWF0ZWQpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIENMQVNTX05BTUUuRkFERVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnZGlzcGxheScsXG4gICAgICAnYmxvY2snXG4gICAgKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpc0JzMygpID8gQ0xBU1NfTkFNRS5JTiA6IENMQVNTX05BTUUuU0hPV1xuICAgICAgKTtcbiAgICB9LCB0aGlzLmlzQW5pbWF0ZWQgPyBUUkFOU0lUSU9OX0RVUkFUSU9OUy5CQUNLRFJPUCA6IDApO1xuICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBpZiAodGhpcy5ic01vZGFsU2VydmljZS5nZXRNb2RhbHNDb3VudCgpID09PSAxKSB7XG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2UuY2hlY2tTY3JvbGxiYXIoKTtcbiAgICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5zZXRTY3JvbGxiYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIENMQVNTX05BTUUuT1BFTik7XG4gICAgfVxuICAgIGlmICh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2tTdGFydGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja1N0YXJ0ZWRJbkNvbnRlbnQgPSBldmVudC50YXJnZXQgIT09IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnLCBbJyRldmVudCddKVxuICBvbkNsaWNrU3RvcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNsaWNrZWRJbkJhY2tkcm9wID0gZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50O1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmlnbm9yZUJhY2tkcm9wQ2xpY2sgfHxcbiAgICAgIHRoaXMuY29uZmlnLmJhY2tkcm9wID09PSAnc3RhdGljJyB8fFxuICAgICAgIWNsaWNrZWRJbkJhY2tkcm9wXG4gICAgKSB7XG4gICAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0RGlzbWlzc1JlYXNvbihESVNNSVNTX1JFQVNPTlMuQkFDS1JET1ApO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnBvcHN0YXRlJylcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNldERpc21pc3NSZWFzb24oRElTTUlTU19SRUFTT05TLkJBQ0spO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZXNjJywgWyckZXZlbnQnXSlcbiAgb25Fc2MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNyB8fCBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmtleWJvYXJkICYmXG4gICAgICB0aGlzLmxldmVsID09PSB0aGlzLmJzTW9kYWxTZXJ2aWNlLmdldE1vZGFsc0NvdW50KClcbiAgICApIHtcbiAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2V0RGlzbWlzc1JlYXNvbihESVNNSVNTX1JFQVNPTlMuRVNDKTtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNNb2RhbEhpZGluZyB8fCAhdGhpcy5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IHRydWU7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICBpc0JzMygpID8gQ0xBU1NfTkFNRS5JTiA6IENMQVNTX05BTUUuU0hPV1xuICAgICk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzU2hvd24gPSBmYWxzZTtcbiAgICAgIGlmIChcbiAgICAgICAgZG9jdW1lbnQgJiZcbiAgICAgICAgZG9jdW1lbnQuYm9keSAmJlxuICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLmdldE1vZGFsc0NvdW50KCkgPT09IDFcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCBDTEFTU19OQU1FLk9QRU4pO1xuICAgICAgfVxuICAgICAgdGhpcy5ic01vZGFsU2VydmljZS5oaWRlKHRoaXMuY29uZmlnLmlkKTtcbiAgICAgIHRoaXMuaXNNb2RhbEhpZGluZyA9IGZhbHNlO1xuICAgIH0sIHRoaXMuaXNBbmltYXRlZCA/IFRSQU5TSVRJT05fRFVSQVRJT05TLk1PREFMIDogMCk7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,9 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable, InjectionToken } from '@angular/core';
6
+ /**
7
+ * @template T
8
+ */
6
9
  export class ModalOptions {
7
10
  }
8
11
  ModalOptions.decorators = [
@@ -70,7 +73,6 @@ if (false) {
70
73
  }
71
74
  /** @type {?} */
72
75
  export const modalConfigDefaults = {
73
- id: (new Date()).getUTCMilliseconds(),
74
76
  backdrop: true,
75
77
  keyboard: true,
76
78
  focus: true,
@@ -107,6 +109,7 @@ export const TRANSITION_DURATIONS = {
107
109
  /** @type {?} */
108
110
  export const DISMISS_REASONS = {
109
111
  BACKRDOP: 'backdrop-click',
110
- ESC: 'esc'
112
+ ESC: 'esc',
113
+ BACK: 'browser-back-navigation-clicked'
111
114
  };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJtb2RhbC1vcHRpb25zLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0UsTUFBTSxPQUFPLFlBQVk7OztZQUR4QixVQUFVOzs7Ozs7O0lBS1QsMEJBQVk7Ozs7OztJQUtaLGdDQUE4Qjs7Ozs7SUFJOUIsZ0NBQW1COztJQUVuQiw2QkFBZ0I7Ozs7O0lBSWhCLDRCQUFlOzs7OztJQUlmLDJDQUE4Qjs7Ozs7SUFJOUIsNkJBQWU7Ozs7O0lBSWYsZ0NBQW1COzs7OztJQUluQixvQ0FBc0I7Ozs7O0lBSXRCLGlDQUE2Qjs7Ozs7SUFJN0Isc0NBQXdCOzs7OztJQUl4Qix1Q0FBeUI7OztBQUczQixNQUFNLE9BQU8sbUJBQW1CLEdBQWlCO0lBQy9DLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtJQUNyQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsS0FBSyxFQUFFLEVBQUU7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLFlBQVksRUFBRSxFQUFFO0NBQ2pCOztBQUVELE1BQU0sT0FBTyw2QkFBNkIsR0FDeEMsSUFBSSxjQUFjLENBQWUseUJBQXlCLENBQUM7O0FBRTdELE1BQU0sT0FBTyxVQUFVLEdBQWM7SUFDbkMsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLE1BQU07SUFDWixFQUFFLEVBQUUsSUFBSTs7SUFDUixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU07Q0FDcEI7O0FBRUQsTUFBTSxPQUFPLFFBQVEsR0FBYTtJQUNoQyxNQUFNLEVBQUUsZUFBZTtJQUN2QixXQUFXLEVBQUUsdUJBQXVCO0lBQ3BDLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsYUFBYSxFQUFFLG9EQUFvRDtDQUNwRTs7QUFFRCxNQUFNLE9BQU8sb0JBQW9CLEdBQXdCO0lBQ3ZELEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLEdBQUc7Q0FDZDs7QUFFRCxNQUFNLE9BQU8sZUFBZSxHQUFtQjtJQUM3QyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLEdBQUcsRUFBRSxLQUFLO0NBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTdGF0aWNQcm92aWRlciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsYXNzTmFtZSwgRGlzbWlzc1JlYXNvbnMsIFNlbGVjdG9yLCBUcmFuc2l0aW9uRHVyYXRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqICBBbGxvdyB1c2VyIHRvIElEIGZvciB0aGUgbW9kYWwuIE90aGVyd2lzZSwgYSB1bmlxdWUgbnVtYmVyIHdpbGwgYmUgZ2l2ZW5cbiAgICovXG4gIGlkPzogbnVtYmVyO1xuICAvKipcbiAgICogIEluY2x1ZGVzIGEgbW9kYWwtYmFja2Ryb3AgZWxlbWVudC4gQWx0ZXJuYXRpdmVseSxcbiAgICogIHNwZWNpZnkgc3RhdGljIGZvciBhIGJhY2tkcm9wIHdoaWNoIGRvZXNuJ3QgY2xvc2UgdGhlIG1vZGFsIG9uIGNsaWNrLlxuICAgKi9cbiAgYmFja2Ryb3A/OiBib29sZWFuIHwgJ3N0YXRpYyc7XG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkLlxuICAgKi9cbiAga2V5Ym9hcmQ/OiBib29sZWFuO1xuXG4gIGZvY3VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBtb2RhbCB3aGVuIGluaXRpYWxpemVkLlxuICAgKi9cbiAgc2hvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZ25vcmUgdGhlIGJhY2tkcm9wIGNsaWNrXG4gICAqL1xuICBpZ25vcmVCYWNrZHJvcENsaWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENzcyBjbGFzcyBmb3Igb3BlbmVkIG1vZGFsXG4gICAqL1xuICBjbGFzcz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRvZ2dsZSBhbmltYXRpb25cbiAgICovXG4gIGFuaW1hdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1vZGFsIGRhdGFcbiAgICovXG4gIGluaXRpYWxTdGF0ZT86IE9iamVjdDtcbiAgLyoqXG4gICAqIE1vZGFsIHByb3ZpZGVyc1xuICAgKi9cbiAgcHJvdmlkZXJzPzogU3RhdGljUHJvdmlkZXJbXTtcbiAgLyoqXG4gICAqIGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBtb2RhbCB3aW5kb3dcbiAgICovXG4gIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuICAvKipcbiAgICogYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgdmFsdWUgdG8gc2V0IG9uIHRoZSBtb2RhbCB3aW5kb3dcbiAgICovXG4gIGFyaWFEZXNjcmliZWRieT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IG1vZGFsQ29uZmlnRGVmYXVsdHM6IE1vZGFsT3B0aW9ucyA9IHtcbiAgaWQ6IChuZXcgRGF0ZSgpKS5nZXRVVENNaWxsaXNlY29uZHMoKSxcbiAgYmFja2Ryb3A6IHRydWUsXG4gIGtleWJvYXJkOiB0cnVlLFxuICBmb2N1czogdHJ1ZSxcbiAgc2hvdzogZmFsc2UsXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxuICBjbGFzczogJycsXG4gIGFuaW1hdGVkOiB0cnVlLFxuICBpbml0aWFsU3RhdGU6IHt9XG59O1xuXG5leHBvcnQgY29uc3QgTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREU6IEluamVjdGlvblRva2VuPE1vZGFsT3B0aW9ucz4gPVxuICBuZXcgSW5qZWN0aW9uVG9rZW48TW9kYWxPcHRpb25zPignb3ZlcnJpZGUtZGVmYXVsdC1jb25maWcnKTtcblxuZXhwb3J0IGNvbnN0IENMQVNTX05BTUU6IENsYXNzTmFtZSA9IHtcbiAgU0NST0xMQkFSX01FQVNVUkVSOiAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnLFxuICBCQUNLRFJPUDogJ21vZGFsLWJhY2tkcm9wJyxcbiAgT1BFTjogJ21vZGFsLW9wZW4nLFxuICBGQURFOiAnZmFkZScsXG4gIElOOiAnaW4nLCAvLyBiczNcbiAgU0hPVzogJ3Nob3cnIC8vIGJzNFxufTtcblxuZXhwb3J0IGNvbnN0IFNFTEVDVE9SOiBTZWxlY3RvciA9IHtcbiAgRElBTE9HOiAnLm1vZGFsLWRpYWxvZycsXG4gIERBVEFfVE9HR0xFOiAnW2RhdGEtdG9nZ2xlPVwibW9kYWxcIl0nLFxuICBEQVRBX0RJU01JU1M6ICdbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLFxuICBGSVhFRF9DT05URU5UOiAnLm5hdmJhci1maXhlZC10b3AsIC5uYXZiYXItZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQnXG59O1xuXG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTlM6IFRyYW5zaXRpb25EdXJhdGlvbnMgPSB7XG4gIE1PREFMOiAzMDAsXG4gIEJBQ0tEUk9QOiAxNTBcbn07XG5cbmV4cG9ydCBjb25zdCBESVNNSVNTX1JFQVNPTlM6IERpc21pc3NSZWFzb25zID0ge1xuICBCQUNLUkRPUDogJ2JhY2tkcm9wLWNsaWNrJyxcbiAgRVNDOiAnZXNjJ1xufTtcbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvbW9kYWwvIiwic291cmNlcyI6WyJtb2RhbC1vcHRpb25zLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFrQixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJM0UsTUFBTSxPQUFPLFlBQVk7OztZQUR4QixVQUFVOzs7Ozs7O0lBS1QsMEJBQVk7Ozs7OztJQUtaLGdDQUE4Qjs7Ozs7SUFJOUIsZ0NBQW1COztJQUVuQiw2QkFBZ0I7Ozs7O0lBSWhCLDRCQUFlOzs7OztJQUlmLDJDQUE4Qjs7Ozs7SUFJOUIsNkJBQWU7Ozs7O0lBSWYsZ0NBQW1COzs7OztJQUluQixvQ0FBMEI7Ozs7O0lBSTFCLGlDQUE2Qjs7Ozs7SUFJN0Isc0NBQXdCOzs7OztJQUl4Qix1Q0FBeUI7OztBQUczQixNQUFNLE9BQU8sbUJBQW1CLEdBQWlCO0lBQy9DLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLElBQUksRUFBRSxLQUFLO0lBQ1gsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixLQUFLLEVBQUUsRUFBRTtJQUNULFFBQVEsRUFBRSxJQUFJO0lBQ2QsWUFBWSxFQUFFLEVBQUU7Q0FDakI7O0FBRUQsTUFBTSxPQUFPLDZCQUE2QixHQUN4QyxJQUFJLGNBQWMsQ0FBZSx5QkFBeUIsQ0FBQzs7QUFFN0QsTUFBTSxPQUFPLFVBQVUsR0FBYztJQUNuQyxrQkFBa0IsRUFBRSx5QkFBeUI7SUFDN0MsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxJQUFJOztJQUNSLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTTtDQUNwQjs7QUFFRCxNQUFNLE9BQU8sUUFBUSxHQUFhO0lBQ2hDLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFdBQVcsRUFBRSx1QkFBdUI7SUFDcEMsWUFBWSxFQUFFLHdCQUF3QjtJQUN0QyxhQUFhLEVBQUUsb0RBQW9EO0NBQ3BFOztBQUVELE1BQU0sT0FBTyxvQkFBb0IsR0FBd0I7SUFDdkQsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsR0FBRztDQUNkOztBQUVELE1BQU0sT0FBTyxlQUFlLEdBQW1CO0lBQzdDLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsaUNBQWlDO0NBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU3RhdGljUHJvdmlkZXIsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc05hbWUsIERpc21pc3NSZWFzb25zLCBTZWxlY3RvciwgVHJhbnNpdGlvbkR1cmF0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vZGFsT3B0aW9uczxUID0gT2JqZWN0PiB7XG4gIC8qKlxuICAgKiAgQWxsb3cgdXNlciB0byBJRCBmb3IgdGhlIG1vZGFsLiBPdGhlcndpc2UsIGEgdW5pcXVlIG51bWJlciB3aWxsIGJlIGdpdmVuXG4gICAqL1xuICBpZD86IG51bWJlcjtcbiAgLyoqXG4gICAqICBJbmNsdWRlcyBhIG1vZGFsLWJhY2tkcm9wIGVsZW1lbnQuIEFsdGVybmF0aXZlbHksXG4gICAqICBzcGVjaWZ5IHN0YXRpYyBmb3IgYSBiYWNrZHJvcCB3aGljaCBkb2Vzbid0IGNsb3NlIHRoZSBtb2RhbCBvbiBjbGljay5cbiAgICovXG4gIGJhY2tkcm9wPzogYm9vbGVhbiB8ICdzdGF0aWMnO1xuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCB3aGVuIGVzY2FwZSBrZXkgaXMgcHJlc3NlZC5cbiAgICovXG4gIGtleWJvYXJkPzogYm9vbGVhbjtcblxuICBmb2N1cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTaG93cyB0aGUgbW9kYWwgd2hlbiBpbml0aWFsaXplZC5cbiAgICovXG4gIHNob3c/OiBib29sZWFuO1xuICAvKipcbiAgICogSWdub3JlIHRoZSBiYWNrZHJvcCBjbGlja1xuICAgKi9cbiAgaWdub3JlQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDc3MgY2xhc3MgZm9yIG9wZW5lZCBtb2RhbFxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUb2dnbGUgYW5pbWF0aW9uXG4gICAqL1xuICBhbmltYXRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNb2RhbCBkYXRhXG4gICAqL1xuICBpbml0aWFsU3RhdGU/OiBQYXJ0aWFsPFQ+O1xuICAvKipcbiAgICogTW9kYWwgcHJvdmlkZXJzXG4gICAqL1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuICAvKipcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvd1xuICAgKi9cbiAgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvd1xuICAgKi9cbiAgYXJpYURlc2NyaWJlZGJ5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgbW9kYWxDb25maWdEZWZhdWx0czogTW9kYWxPcHRpb25zID0ge1xuICBiYWNrZHJvcDogdHJ1ZSxcbiAga2V5Ym9hcmQ6IHRydWUsXG4gIGZvY3VzOiB0cnVlLFxuICBzaG93OiBmYWxzZSxcbiAgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsXG4gIGNsYXNzOiAnJyxcbiAgYW5pbWF0ZWQ6IHRydWUsXG4gIGluaXRpYWxTdGF0ZToge31cbn07XG5cbmV4cG9ydCBjb25zdCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERTogSW5qZWN0aW9uVG9rZW48TW9kYWxPcHRpb25zPiA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxNb2RhbE9wdGlvbnM+KCdvdmVycmlkZS1kZWZhdWx0LWNvbmZpZycpO1xuXG5leHBvcnQgY29uc3QgQ0xBU1NfTkFNRTogQ2xhc3NOYW1lID0ge1xuICBTQ1JPTExCQVJfTUVBU1VSRVI6ICdtb2RhbC1zY3JvbGxiYXItbWVhc3VyZScsXG4gIEJBQ0tEUk9QOiAnbW9kYWwtYmFja2Ryb3AnLFxuICBPUEVOOiAnbW9kYWwtb3BlbicsXG4gIEZBREU6ICdmYWRlJyxcbiAgSU46ICdpbicsIC8vIGJzM1xuICBTSE9XOiAnc2hvdycgLy8gYnM0XG59O1xuXG5leHBvcnQgY29uc3QgU0VMRUNUT1I6IFNlbGVjdG9yID0ge1xuICBESUFMT0c6ICcubW9kYWwtZGlhbG9nJyxcbiAgREFUQV9UT0dHTEU6ICdbZGF0YS10b2dnbGU9XCJtb2RhbFwiXScsXG4gIERBVEFfRElTTUlTUzogJ1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsXG4gIEZJWEVEX0NPTlRFTlQ6ICcubmF2YmFyLWZpeGVkLXRvcCwgLm5hdmJhci1maXhlZC1ib3R0b20sIC5pcy1maXhlZCdcbn07XG5cbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0RVUkFUSU9OUzogVHJhbnNpdGlvbkR1cmF0aW9ucyA9IHtcbiAgTU9EQUw6IDMwMCxcbiAgQkFDS0RST1A6IDE1MFxufTtcblxuZXhwb3J0IGNvbnN0IERJU01JU1NfUkVBU09OUzogRGlzbWlzc1JlYXNvbnMgPSB7XG4gIEJBQ0tSRE9QOiAnYmFja2Ryb3AtY2xpY2snLFxuICBFU0M6ICdlc2MnLFxuICBCQUNLOiAnYnJvd3Nlci1iYWNrLW5hdmlnYXRpb24tY2xpY2tlZCdcbn07XG4iXX0=