{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack:///./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack:///./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack:///./node_modules/bootstrap-vue/esm/vue.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack:///./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/id.js","webpack:///./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack:///./node_modules/bootstrap-vue/esm/utils/model.js","webpack:///./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","NO_FADE_PROPS","name","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","FADE_PROPS","props","appear","mode","noFade","transProps","BVTransition","extend","functional","render","h","_ref","children","data","appearClass","appearActiveClass","appearToClass","css","ModalPlugin","components","BModal","directives","VBModal","plugins","BVModalPlugin","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","BvEvent","type","eventInit","undefined","this","concat","constructor","Defaults","cancelable","nativeEvent","relatedTarget","vueTarget","componentId","defaultPrevented","preventDefault","get","protoProps","staticProps","prototype","getScopeId","vm","defaultValue","$options","_scopeId","COMPONENT_UID_KEY","scopedStyleMixin","computed","scopedStyleAttrs","scopeId","$parent","PROP","listenOnDocumentMixin","created","beforeDestroy","_this","event","callback","listenOffDocument","methods","registerDocumentListener","array","unregisterDocumentListener","cb","listenDocument","on","listenOnDocument","document","listenOnWindowMixin","listenOffWindow","registerWindowListener","unregisterWindowListener","listenWindow","listenOnWindow","window","BVTransporterTarget","abstract","nodes","updatedNodes","destroyed","$el","$nodes","identity","text","container","disabled","tag","BVTransporter","mixins","watch","immediate","handler","unmountTarget","$nextTick","mountTarget","$_defaultFn","$_target","beforeMount","updated","updateTarget","getContainer","$container","createElement","appendChild","el","parent","propsData","normalizeSlot","defaultFn","$scopedSlots","default","$slots","$destroy","_typeof","Symbol","iterator","_get","Reflect","property","receiver","base","_superPropBase","desc","call","hasOwnProperty","_getPrototypeOf","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","_BvEvent","subClass","superClass","create","_inherits","BvModalEvent","_super","trigger","modalManager","modals","baseZIndex","scrollbarWidth","isBodyOverflowing","modalCount","modalsAreOpen","newCount","oldCount","getScrollbarWidth","checkScrollbar","setScrollbar","body","resetScrollbar","String","newValue","updateModals","registerModal","modal","indexOf","unregisterModal","index","splice","_isBeingDestroyed","_isDestroyed","resetModal","getBaseZIndex","div","zIndex","removeChild","width","clientWidth","_this2","isTop","_getBCR","left","right","innerWidth","_paddingChangedForModal","_marginChangedForModal","actualPadding","paddingRight","actualMargin","marginRight","_makeModelMixin","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","TRIGGER_FORCE","BUTTON_CANCEL","BUTTON_CLOSE","BUTTON_OK","BUTTONS","OBSERVER_CONFIG","subtree","childList","characterData","attributes","attributeFilter","id","ariaLabel","autoFocusButton","bodyBgVariant","bodyClass","bodyTextVariant","busy","buttonSize","cancelDisabled","cancelTitle","cancelTitleHtml","cancelVariant","centered","contentClass","dialogClass","footerBgVariant","footerBorderVariant","footerClass","footerTag","footerTextVariant","headerBgVariant","headerBorderVariant","headerClass","headerCloseContent","headerCloseLabel","headerCloseVariant","headerTag","headerTextVariant","hideBackdrop","hideFooter","hideHeader","hideHeaderClose","ignoreEnforceFocusSelector","lazy","modalClass","noCloseOnBackdrop","noCloseOnEsc","noEnforceFocus","noStacking","okDisabled","okOnly","okTitle","okTitleHtml","okVariant","returnFocus","scrollable","size","static","title","titleClass","titleHtml","titleSrOnly","titleTag","attrs","inheritAttrs","isHidden","isVisible","isTransitioning","isShow","isBlock","isOpening","isClosing","ignoreBackdropClick","isModalOverflowing","modalId","safeId","modalOuterId","modalHeaderId","modalBodyId","modalTitleId","modalContentId","modalFooterId","modalBackdropId","modalClasses","fade","show","modalStyles","sbWidth","paddingLeft","display","dialogClasses","headerClasses","_ref2","titleClasses","bodyClasses","_ref3","footerClasses","_ref4","modalOuterStyle","position","slotScope","cancel","onCancel","close","onClose","hide","ok","onOk","visible","computeIgnoreEnforceFocusSelector","join","trim","computedAttrs","bvAttrs","computedModalAttrs","role","hasNormalizedSlot","oldValue","$_observer","$_returnFocus","mounted","listenOnRoot","showHandler","hideHandler","toggleHandler","modalListener","setObserver","disconnect","$refs","content","checkModalOverflow","bind","updateModel","$emit","buildEvent","options","$once","getActiveElement","showEvent","emitEvent","doShow","hideEvent","toggle","triggerEl","activeElement","focus","listenOnRootOnce","onBeforeEnter","setResizeEvent","onEnter","onAfterEnter","_this3","setEnforceFocus","focusFirst","onBeforeLeave","onLeave","onAfterLeave","_this4","returnFocusTo","bvEvent","emitOnRoot","onDialogMousedown","_this5","onceModalMouseup","onClickOut","onEsc","keyCode","focusHandler","tabables","bottomTrap","topTrap","preventScroll","_this6","autoFocus","scrollTop","scrollHeight","documentElement","clientHeight","makeModal","$header","$modalHeader","$closeButton","textVariant","click","ref","staticClass","class","domProps","html","$body","$footer","$modalFooter","$cancelButton","variant","$modalContent","tabindex","$tabTrapTop","$tabTrapBottom","$modalDialog","mousedown","$modal","style","keydown","beforeEnter","enter","afterEnter","beforeLeave","leave","afterLeave","$backdrop","idMixin","localId_","suffix","replace","observeDom","obs","mutations","changed","mutation","nodeType","Node","TEXT_NODE","addedNodes","removedNodes","observe","makeModelMixin","_ref$type","_ref$defaultValue","_ref$validator","validator","_ref$event","model","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","_ref$modifiers","modifiers","arg","reverse","getTriggerElement","setRole","tagName","unbind","oldProp","componentUpdated","binding","vnode","currentTarget","context","$root","inserted","noop","_arrayLikeToArray","arr","len","arr2","Array","PROP_NAME","BASE_PROPS","isArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","toString","slice","test","_unsupportedIterableToArray","_nonIterableSpread","defaultResolver","propsToSlots","msgBoxContent","filterOptions","reduce","memo","plugin","Vue","BMsgBox","extends","parentNode","handleDestroy","$router","$route","$watch","asyncMsgBox","resolver","msgBox","Promise","resolve","reject","resolved","Error","$on","bvModalEvent","$mount","makeMsgBox","BvModal","_vm","_root","_this$_root","_len","args","_key","_this$_root2","_len2","_key2","message","beforeCreate"],"mappings":"0FAAA,4FAASA,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eACjDP,EAAKQ,KAAKC,MAAMT,EAAMG,GAG7B,OAAOH,EAGT,SAASU,EAAcC,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,OACjChB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAI/E,OAAON,EAGT,SAASO,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAcT,IAAII,EAAgB,CAClBC,KAAM,GACNC,WAAY,GACZC,iBAAkB,GAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,GAClBC,aAAc,IAGZC,EAAaxB,EAAcA,EAAc,GAAIgB,GAAgB,GAAI,CACnEG,iBAAkB,OAClBG,iBAAkB,SAITG,EAAQ,CAEjBC,OAAQ,YAAS,KAAmB,GAEpCC,KAAM,YAAS,KAGfC,OAAQ,YAAS,KAAmB,GAEpCC,WAAY,YAAS,MAIZC,EAA4B,UAAIC,OAAO,CAChDd,KAAM,KACNe,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIC,EAAWD,EAAKC,SAChBC,EAAOF,EAAKE,KACZZ,EAAQU,EAAKV,MACbI,EAAaJ,EAAMI,WAsBvB,OApBK,YAAcA,KACjBA,EAAaJ,EAAMG,OAASZ,EAAgBQ,EAExCC,EAAMC,SAERG,EAAa7B,EAAcA,EAAc,GAAI6B,GAAa,GAAI,CAC5DH,QAAQ,EACRY,YAAaT,EAAWX,WACxBqB,kBAAmBV,EAAWV,iBAC9BqB,cAAeX,EAAWT,iBAKhCS,EAAa7B,EAAcA,EAAc,CACvC2B,KAAMF,EAAME,MACXE,GAAa,GAAI,CAElBY,KAAK,IAEAP,EAAE,aACT,YAAUG,EAAM,CACdZ,MAAOI,IACLO,O,kCClHR,yEAIIM,EAA2B,YAAc,CAC3CC,WAAY,CACVC,OAAQ,KAEVC,WAAY,CACVC,QAAS,KAGXC,QAAS,CACPC,cAAe,Q,iCCbnB,uDAASC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASC,EAAkBpD,EAAQwB,GACjC,IAAK,IAAIvB,EAAI,EAAGA,EAAIuB,EAAMrB,OAAQF,IAAK,CACrC,IAAIoD,EAAa7B,EAAMvB,GACvBoD,EAAWzD,WAAayD,EAAWzD,aAAc,EACjDyD,EAAWxC,cAAe,EACtB,UAAWwC,IAAYA,EAAWvC,UAAW,GACjDxB,OAAOoB,eAAeV,EAAQqD,EAAW/C,IAAK+C,IAc3C,IAAIC,EAAuB,WAChC,SAASA,EAAQC,GACf,IAAIC,EAAYtD,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAKpF,GAHA8C,EAAgBU,KAAMJ,IAGjBC,EAEH,MAAM,IAAIJ,UAAU,wBAAwBQ,OAAOD,KAAKE,YAAY5C,KAAM,4BAA4B2C,OAAOzD,UAAUC,OAAQ,YAKjI,YAAOuD,KAAMJ,EAAQO,SAAUH,KAAKE,YAAYC,SAAUL,EAAW,CACnED,KAAMA,IAGR,YAAiBG,KAAM,CACrBH,KAAM,cACNO,WAAY,cACZC,YAAa,cACb/D,OAAQ,cACRgE,cAAe,cACfC,UAAW,cACXC,YAAa,gBAGf,IAAIC,GAAmB,EAEvBT,KAAKU,eAAiB,WAChBV,KAAKI,aACPK,GAAmB,IAMvB,YAAeT,KAAM,mBAAoB,CACvC9D,YAAY,EACZyE,IAAK,WACH,OAAOF,KAnDf,IAAsBjB,EAAaoB,EAAYC,EAuE7C,OAvEoBrB,EAwDPI,EAxDgCiB,EAwDjB,CAAC,CAC3BjE,IAAK,WACL+D,IAAK,WACH,MAAO,CACLd,KAAM,GACNO,YAAY,EACZC,YAAa,KACb/D,OAAQ,KACRgE,cAAe,KACfC,UAAW,KACXC,YAAa,UAlEcI,EAwDX,OAvDNlB,EAAkBF,EAAYsB,UAAWF,GACrDC,GAAanB,EAAkBF,EAAaqB,GAChDjF,OAAOoB,eAAewC,EAAa,YAAa,CAC9CpC,UAAU,IAmELwC,EA7DyB,I,iCC1BlC,kCAGO,IAAImB,EAAa,SAAoBC,GAC1C,IAAIC,EAAezE,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,KACvF,OAAOwE,GAAKA,EAAGE,SAASC,UAA2BF,I,gCCLrD,4CAGIG,EAAoB,Q,iCCHxB,uDAkBO,IAAIC,EAAmB,UAAIjD,OAAO,CACvCkD,SAAU,CACRC,iBAAkB,WAChB,IArBmBtE,EAAKL,EAAKM,EAqBzBsE,EAAU,YAAWxB,KAAKyB,SAC9B,OAAOD,GAtBsBtE,EAsBiB,IAtBtBN,EAsBa4E,KAtBlBvE,EAsBc,IApBnCrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,GAUiD,Q,mRCftDyE,EAAO,sBAGAC,EAAwB,UAAIvD,OAAO,CAC5CwD,QAAS,WAIP5B,KAAK0B,GAAQ,IAEfG,cAAe,WACb,IAAIC,EAAQ9B,KAGZ,YAAKA,KAAK0B,IAAS,IAAI/E,SAAQ,SAAUoF,GACvCD,EAAMJ,GAAMK,GAAOpF,SAAQ,SAAUqF,GACnCF,EAAMG,kBAAkBF,EAAOC,SAGnChC,KAAK0B,GAAQ,MAEfQ,QAAS,CACPC,yBAA0B,SAAkCJ,EAAOC,GAC7DhC,KAAK0B,KACP1B,KAAK0B,GAAMK,GAAS/B,KAAK0B,GAAMK,IAAU,GAEpC,OAAAK,EAAA,GAAcpC,KAAK0B,GAAMK,GAAQC,IACpChC,KAAK0B,GAAMK,GAAO5F,KAAK6F,KAI7BK,2BAA4B,SAAoCN,EAAOC,GACjEhC,KAAK0B,IAAS1B,KAAK0B,GAAMK,KAC3B/B,KAAK0B,GAAMK,GAAS/B,KAAK0B,GAAMK,GAAOhG,QAAO,SAAUuG,GACrD,OAAOA,IAAON,OAIpBO,eAAgB,SAAwBC,EAAIT,EAAOC,GACjDQ,EAAKxC,KAAKyC,iBAAiBV,EAAOC,GAAYhC,KAAKiC,kBAAkBF,EAAOC,IAE9ES,iBAAkB,SAA0BV,EAAOC,GAC7C,MACF,YAAQU,SAAUX,EAAOC,EAAU,MACnChC,KAAKmC,yBAAyBJ,EAAOC,KAGzCC,kBAAmB,SAA2BF,EAAOC,GAC/C,KACF,YAASU,SAAUX,EAAOC,EAAU,MAGtChC,KAAKqC,2BAA2BN,EAAOC,O,SCjDlCW,EAAsB,UAAIvE,OAAO,CAC1CwD,QAAS,WAIP5B,KAAS,kBAAI,IAEf6B,cAAe,WACb,IAAIC,EAAQ9B,KAGZ,YAAKA,KAAS,mBAAK,IAAIrD,SAAQ,SAAUoF,GACvCD,EAAU,kBAAEC,GAAOpF,SAAQ,SAAUqF,GACnCF,EAAMc,gBAAgBb,EAAOC,SAGjChC,KAAS,kBAAI,MAEfkC,QAAS,CACPW,uBAAwB,SAAgCd,EAAOC,GACzDhC,KAAS,oBACXA,KAAS,kBAAE+B,GAAS/B,KAAS,kBAAE+B,IAAU,GAEpC,OAAAK,EAAA,GAAcpC,KAAS,kBAAE+B,GAAQC,IACpChC,KAAS,kBAAE+B,GAAO5F,KAAK6F,KAI7Bc,yBAA0B,SAAkCf,EAAOC,GAC7DhC,KAAS,mBAAKA,KAAS,kBAAE+B,KAC3B/B,KAAS,kBAAE+B,GAAS/B,KAAS,kBAAE+B,GAAOhG,QAAO,SAAUuG,GACrD,OAAOA,IAAON,OAIpBe,aAAc,SAAsBP,EAAIT,EAAOC,GAC7CQ,EAAKxC,KAAKgD,eAAejB,EAAOC,GAAYhC,KAAK4C,gBAAgBb,EAAOC,IAE1EgB,eAAgB,SAAwBjB,EAAOC,GACzC,MACF,YAAQiB,OAAQlB,EAAOC,EAAU,MACjChC,KAAK6C,uBAAuBd,EAAOC,KAGvCY,gBAAiB,SAAyBb,EAAOC,GAC3C,KACF,YAASiB,OAAQlB,EAAOC,EAAU,MAGpChC,KAAK8C,yBAAyBf,EAAOC,O,4CClCvCkB,EAAmC,UAAI9E,OAAO,CAIhD+E,UAAU,EACV7F,KAAM,KACNQ,MAAO,CAGLsF,MAAO,YAAS,MAElB1E,KAAM,SAAcsC,GAClB,MAAO,CACLqC,aAAcrC,EAAGoC,QAGrBE,UAAW,WACT,YAAWtD,KAAKuD,MAElBjF,OAAQ,SAAgBC,GACtB,IAAI8E,EAAerD,KAAKqD,aACpBG,EAAS,YAAWH,GAAgBA,EAAa,IAAMA,EAG3D,OAFAG,EAAS,YAAOA,GAAQzH,OAAO0H,EAAA,KAEjBD,EAAO/G,OAAS,IAAM+G,EAAO,GAAGE,KACrCF,EAAO,GAKTjF,OAIA,EAAQ,CAIjBoF,UAAW,YAAS,CAAC,IAAa,KAAmB,QACrDC,SAAU,YAAS,KAAmB,GAEtCC,IAAK,YAAS,IAAkB,QAIvBC,EAA6B,UAAI1F,OAAO,CACjDd,KAAM,KACNyG,OAAQ,CAAC,KACTjG,MAAO,EACPkG,MAAO,CACLJ,SAAU,CACRK,WAAW,EACXC,QAAS,SAAiBN,GACxBA,EAAW5D,KAAKmE,gBAAkBnE,KAAKoE,UAAUpE,KAAKqE,gBAI5DzC,QAAS,WAEP5B,KAAKsE,YAAc,KACnBtE,KAAKuE,SAAW,MAElBC,YAAa,WACXxE,KAAKqE,eAEPI,QAAS,WAOPzE,KAAK0E,gBAEP7C,cAAe,WACb7B,KAAKmE,gBACLnE,KAAKsE,YAAc,MAErBpC,QAAS,CAEPyC,aAAc,WAEZ,GAAI,IAAY,CACd,IAAIhB,EAAY3D,KAAK2D,UACrB,OAAO,YAASA,GAAa,YAAOA,GAAaA,EAEjD,OAAO,MAIXU,YAAa,WACX,IAAKrE,KAAKuE,SAAU,CAClB,IAAIK,EAAa5E,KAAK2E,eAEtB,GAAIC,EAAY,CACd,IAAIrB,EAAMb,SAASmC,cAAc,OACjCD,EAAWE,YAAYvB,GACvBvD,KAAKuE,SAAW,IAAIrB,EAAoB,CACtC6B,GAAIxB,EACJyB,OAAQhF,KACRiF,UAAW,CAET7B,MAAO,YAAOpD,KAAKkF,uBAO7BR,aAAc,WACZ,GAAI,KAAc1E,KAAKuE,SAAU,CAC/B,IAAIY,EAAYnF,KAAKoF,aAAaC,QAE7BrF,KAAK4D,WAEJuB,GAAanF,KAAKsE,cAAgBa,EAIpCnF,KAAKuE,SAASlB,aAAe8B,EACnBA,IAEVnF,KAAKuE,SAASlB,aAAerD,KAAKsF,OAAOD,UAK7CrF,KAAKsE,YAAca,IAIvBhB,cAAe,WACbnE,KAAKuE,UAAYvE,KAAKuE,SAASgB,WAC/BvF,KAAKuE,SAAW,OAGpBjG,OAAQ,SAAgBC,GAEtB,GAAIyB,KAAK4D,SAAU,CACjB,IAAIJ,EAAS,YAAOxD,KAAKkF,iBAAiBnJ,OAAO0H,EAAA,GAEjD,GAAID,EAAO/G,OAAS,IAAM+G,EAAO,GAAGE,KAClC,OAAOF,EAAO,GAIlB,OAAOjF,OC3KX,SAASiH,EAAQvI,GAGf,OAAOuI,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzI,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBwI,QAAUxI,EAAIiD,cAAgBuF,QAAUxI,IAAQwI,OAAO3E,UAAY,gBAAkB7D,GACvHuI,EAAQvI,GAGb,SAASzB,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eACjDP,EAAKQ,KAAKC,MAAMT,EAAMG,GAG7B,OAAOH,EAGT,SAASU,EAAcC,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,OACjChB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAI/E,OAAON,EAGT,SAASO,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAGT,SAASqC,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASC,EAAkBpD,EAAQwB,GACjC,IAAK,IAAIvB,EAAI,EAAGA,EAAIuB,EAAMrB,OAAQF,IAAK,CACrC,IAAIoD,EAAa7B,EAAMvB,GACvBoD,EAAWzD,WAAayD,EAAWzD,aAAc,EACjDyD,EAAWxC,cAAe,EACtB,UAAWwC,IAAYA,EAAWvC,UAAW,GACjDxB,OAAOoB,eAAeV,EAAQqD,EAAW/C,IAAK+C,IAalD,SAASgG,IAkBP,OAhBEA,EADqB,qBAAZC,SAA2BA,QAAQjF,IACrCiF,QAAQjF,IAER,SAAcrE,EAAQuJ,EAAUC,GACrC,IAAIC,EAAOC,EAAe1J,EAAQuJ,GAElC,GAAKE,EAAL,CACA,IAAIE,EAAOrK,OAAOK,yBAAyB8J,EAAMF,GAEjD,OAAII,EAAKtF,IACAsF,EAAKtF,IAAIuF,KAAK1J,UAAUC,OAAS,EAAIH,EAASwJ,GAGhDG,EAAK/I,QAITyI,EAAKvJ,MAAM4D,KAAMxD,WAG1B,SAASwJ,EAAevK,EAAQoK,GAC9B,MAAQjK,OAAOkF,UAAUqF,eAAeD,KAAKzK,EAAQoK,IAEpC,QADfpK,EAAS2K,EAAgB3K,MAI3B,OAAOA,EAqBT,SAAS4K,EAAgBC,EAAGC,GAM1B,OALAF,EAAkBzK,OAAO4K,gBAAkB,SAAyBF,EAAGC,GAErE,OADAD,EAAEG,UAAYF,EACPD,GAGFD,EAAgBC,EAAGC,GAG5B,SAASG,EAAaC,GACpB,IAAIC,EAoCN,WACE,GAAuB,qBAAZhB,UAA4BA,QAAQiB,UAAW,OAAO,EACjE,GAAIjB,QAAQiB,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,QAAQlG,UAAUmG,QAAQf,KAAKN,QAAQiB,UAAUG,QAAS,IAAI,iBACvD,EACP,MAAOE,GACP,OAAO,GA7CuBC,GAEhC,OAAO,WACL,IACIC,EADAC,EAAQjB,EAAgBO,GAG5B,GAAIC,EAA2B,CAC7B,IAAIU,EAAYlB,EAAgBpG,MAAME,YAEtCkH,EAASxB,QAAQiB,UAAUQ,EAAO7K,UAAW8K,QAE7CF,EAASC,EAAMjL,MAAM4D,KAAMxD,WAG7B,OAAO+K,EAA2BvH,KAAMoH,IAI5C,SAASG,EAA2BC,EAAMtB,GACxC,GAAIA,IAA2B,WAAlBV,EAAQU,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIzG,UAAU,4DAGtB,OAAOgI,EAAuBD,GAGhC,SAASC,EAAuBD,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIE,eAAe,6DAG3B,OAAOF,EAgBT,SAASpB,EAAgBE,GAIvB,OAHAF,EAAkBxK,OAAO4K,eAAiB5K,OAAO+L,eAAiB,SAAyBrB,GACzF,OAAOA,EAAEG,WAAa7K,OAAO+L,eAAerB,IAEvCF,EAAgBE,GAMzB,IAAI,EAA4B,SAAUsB,IAvF1C,SAAmBC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrI,UAAU,sDAGtB7D,OAAOoB,eAAe6K,EAAU,YAAa,CAC3C3K,MAAOtB,OAAOmM,OAAOD,GAAcA,EAAWhH,UAAW,CACvDZ,YAAa,CACXhD,MAAO2K,EACPzK,UAAU,EACVD,cAAc,KAGlBC,UAAU,IAER0K,GAAYzB,EAAgBwB,EAAUC,GAyE1CE,CAAUC,EAAcL,GAExB,IAjIoBpI,EAAaoB,EAAYC,EAiIzCqH,EAASxB,EAAauB,GAE1B,SAASA,EAAapI,GACpB,IAAIiC,EAEAhC,EAAYtD,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GASpF,OAPA8C,EAAgBU,KAAMiI,GAEtBnG,EAAQoG,EAAOhC,KAAKlG,KAAMH,EAAMC,GAEhC,YAAiB2H,EAAuB3F,GAAQ,CAC9CqG,QAAS,gBAEJrG,EAYT,OA3JoBtC,EAkJPyI,EAlJgCpH,EAkJZ,CAAC,CAChCjE,IAAK,WACL+D,IAAK,WACH,OAAOtE,EAAcA,EAAc,GAAIsJ,EAAKS,EAAgB6B,GAAe,WAAYjI,OAAQ,GAAI,CACjGmI,QAAS,WAtJkBvH,EAkJN,OAjJXlB,EAAkBF,EAAYsB,UAAWF,GACrDC,GAAanB,EAAkBF,EAAaqB,GAChDjF,OAAOoB,eAAewC,EAAa,YAAa,CAC9CpC,UAAU,IAuJL6K,EA7BuB,C,OA8B9B,G,QCCSG,EAAe,IA9MM,UAAIhK,OAAO,CACzCM,KAAM,WACJ,MAAO,CACL2J,OAAQ,GACRC,WAAY,KACZC,eAAgB,KAChBC,mBAAmB,IAGvBlH,SAAU,CACRmH,WAAY,WACV,OAAOzI,KAAKqI,OAAO5L,QAErBiM,cAAe,WACb,OAAO1I,KAAKyI,WAAa,IAG7BzE,MAAO,CACLyE,WAAY,SAAoBE,EAAUC,GACpC,MACF5I,KAAK6I,oBAEDF,EAAW,GAAkB,IAAbC,GAElB5I,KAAK8I,iBACL9I,KAAK+I,eACL,YAASrG,SAASsG,KAAM,eACF,IAAbL,GAAkBC,EAAW,IAEtC5I,KAAKiJ,iBACL,YAAYvG,SAASsG,KAAM,eAG7B,YAAQtG,SAASsG,KAAM,wBAAyBE,OAAOP,MAG3DN,OAAQ,SAAgBc,GACtB,IAAIrH,EAAQ9B,KAEZA,KAAK8I,iBACL,aAAU,WACRhH,EAAMsH,aAAaD,GAAY,SAIrCjH,QAAS,CAEPmH,cAAe,SAAuBC,GAEhCA,IAAyC,IAAhCtJ,KAAKqI,OAAOkB,QAAQD,IAC/BtJ,KAAKqI,OAAOlM,KAAKmN,IAGrBE,gBAAiB,SAAyBF,GACxC,IAAIG,EAAQzJ,KAAKqI,OAAOkB,QAAQD,GAE5BG,GAAS,IAEXzJ,KAAKqI,OAAOqB,OAAOD,EAAO,GAErBH,EAAMK,mBAAsBL,EAAMM,cACrC5J,KAAK6J,WAAWP,KAItBQ,cAAe,WACb,GAAI,KAAc,YAAO9J,KAAKsI,YAAa,CAEzC,IAAIyB,EAAMrH,SAASmC,cAAc,OACjC,YAASkF,EAAK,kBACd,YAASA,EAAK,UACd,YAASA,EAAK,UAAW,QACzBrH,SAASsG,KAAKlE,YAAYiF,GAC1B/J,KAAKsI,WAAa,YAAU,YAAMyB,GAAKC,OAhF1B,MAiFbtH,SAASsG,KAAKiB,YAAYF,GAG5B,OAAO/J,KAAKsI,YApFG,MAsFjBO,kBAAmB,WACjB,GAAI,KAAc,YAAO7I,KAAKuI,gBAAiB,CAE7C,IAAIwB,EAAMrH,SAASmC,cAAc,OACjC,YAASkF,EAAK,2BACdrH,SAASsG,KAAKlE,YAAYiF,GAC1B/J,KAAKuI,eAAiB,YAAOwB,GAAKG,MAAQH,EAAII,YAC9CzH,SAASsG,KAAKiB,YAAYF,GAG5B,OAAO/J,KAAKuI,gBAAkB,GAGhCa,aAAc,SAAsBf,GAClC,IAAI+B,EAASpK,KAETsI,EAAatI,KAAK8J,gBAClBvB,EAAiBvI,KAAK6I,oBAC1BR,EAAO1L,SAAQ,SAAU2M,EAAOG,GAE9BH,EAAMU,OAAS1B,EAAamB,EAC5BH,EAAMf,eAAiBA,EACvBe,EAAMe,MAAQZ,IAAUW,EAAO/B,OAAO5L,OAAS,EAC/C6M,EAAMd,kBAAoB4B,EAAO5B,sBAGrCqB,WAAY,SAAoBP,GAC1BA,IACFA,EAAMU,OAAShK,KAAK8J,gBACpBR,EAAMe,OAAQ,EACdf,EAAMd,mBAAoB,IAG9BM,eAAgB,WAEd,IAAIwB,EAAU,YAAO5H,SAASsG,MAC1BuB,EAAOD,EAAQC,KACfC,EAAQF,EAAQE,MAEpBxK,KAAKwI,kBAAoB+B,EAAOC,EAAQvH,OAAOwH,YAEjD1B,aAAc,WACZ,IAAIC,EAAOtG,SAASsG,KAOpB,GAHAA,EAAK0B,wBAA0B1B,EAAK0B,yBAA2B,GAC/D1B,EAAK2B,uBAAyB3B,EAAK2B,wBAA0B,GAEzD3K,KAAKwI,kBAAmB,CAC1B,IAAID,EAAiBvI,KAAKuI,eAI1B,YA1IqB,qDA0Ia5L,SAAQ,SAAUoI,GAClD,IAAI6F,EAAgB,YAAS7F,EAAI,iBAAmB,GACpD,YAAQA,EAAI,qBAAsB6F,GAClC,YAAS7F,EAAI,eAAgB,GAAG9E,OAAO,YAAQ,YAAM8E,GAAI8F,aAAc,GAAKtC,EAAgB,OAE5FS,EAAK0B,wBAAwBvO,KAAK4I,MAKpC,YAnJsB,eAmJapI,SAAQ,SAAUoI,GAGnD,IAAI+F,EAAe,YAAS/F,EAAI,gBAAkB,GAClD,YAAQA,EAAI,oBAAqB+F,GACjC,YAAS/F,EAAI,cAAe,GAAG9E,OAAO,YAAQ,YAAM8E,GAAIgG,YAAa,GAAKxC,EAAgB,OAE1FS,EAAK2B,uBAAuBxO,KAAK4I,MAKnC,YA9JsB,mBA8JapI,SAAQ,SAAUoI,GAGnD,IAAI+F,EAAe,YAAS/F,EAAI,gBAAkB,GAClD,YAAQA,EAAI,oBAAqB+F,GACjC,YAAS/F,EAAI,cAAe,GAAG9E,OAAO,YAAQ,YAAM8E,GAAIgG,YAAa,GAAKxC,EAAgB,OAE1FS,EAAK2B,uBAAuBxO,KAAK4I,MAGnC,IAAI6F,EAAgB,YAAS5B,EAAM,iBAAmB,GACtD,YAAQA,EAAM,qBAAsB4B,GACpC,YAAS5B,EAAM,eAAgB,GAAG/I,OAAO,YAAQ,YAAM+I,GAAM6B,aAAc,GAAKtC,EAAgB,SAGpGU,eAAgB,WACd,IAAID,EAAOtG,SAASsG,KAEhBA,EAAK0B,yBAEP1B,EAAK0B,wBAAwB/N,SAAQ,SAAUoI,GAEzC,YAAQA,EAAI,wBACd,YAASA,EAAI,eAAgB,YAAQA,EAAI,uBAAyB,IAClE,YAAWA,EAAI,0BAKjBiE,EAAK2B,wBAEP3B,EAAK2B,uBAAuBhO,SAAQ,SAAUoI,GAExC,YAAQA,EAAI,uBACd,YAASA,EAAI,cAAe,YAAQA,EAAI,sBAAwB,IAChE,YAAWA,EAAI,yBAKrBiE,EAAK0B,wBAA0B,KAC/B1B,EAAK2B,uBAAyB,KAE1B,YAAQ3B,EAAM,wBAChB,YAASA,EAAM,eAAgB,YAAQA,EAAM,uBAAyB,IACtE,YAAWA,EAAM,4BC1NzB,SAAS,EAAQvN,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eACjDP,EAAKQ,KAAKC,MAAMT,EAAMG,GAG7B,OAAOH,EAGT,SAAS,EAAcW,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAI,EAAQX,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpD,GAAgBN,EAAQM,EAAKF,EAAOE,OACjChB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAW,EAAQd,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAI/E,OAAON,EAGT,SAAS,GAAgBW,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAmCT,IAAI+N,GAAkB,YAAe,UAAW,CAC9CnL,KAAM,IACNoB,cAAc,EACdc,MAAO,MAELkJ,GAAaD,GAAgBE,MAC7BC,GAAaH,GAAgBlN,MAC7BsN,GAAkBJ,GAAgBK,KAClCC,GAAmBN,GAAgBjJ,MAInCwJ,GAAgB,QAEhBC,GAAgB,SAEhBC,GAAe,cACfC,GAAY,KACZC,GAAU,CAACH,GAAeC,GAAcC,IAGxCE,GAAkB,CACpBC,SAAS,EACTC,WAAW,EACXC,eAAe,EACfC,YAAY,EACZC,gBAAiB,CAAC,QAAS,UAGlB,GAAQ,YAAsB,YAAS,EAAc,EAAc,EAAc,GAAIC,EAAA,GAAUf,IAAa,GAAI,CACzHgB,UAAW,YAAS,KACpBC,gBAAiB,YAAS,IAAkB,MAE5C,SAAUlP,GACR,OAAO,YAAkBA,IAAU,OAAAkF,EAAA,GAAcuJ,GAASzO,MAE5DmP,cAAe,YAAS,KACxBC,UAAW,YAAS,KACpBC,gBAAiB,YAAS,KAC1BC,KAAM,YAAS,KAAmB,GAClCC,WAAY,YAAS,KACrBC,eAAgB,YAAS,KAAmB,GAC5CC,YAAa,YAAS,IAAkB,UACxCC,gBAAiB,YAAS,KAC1BC,cAAe,YAAS,IAAkB,aAC1CC,SAAU,YAAS,KAAmB,GACtCC,aAAc,YAAS,KACvBC,YAAa,YAAS,KACtBC,gBAAiB,YAAS,KAC1BC,oBAAqB,YAAS,KAC9BC,YAAa,YAAS,KACtBC,UAAW,YAAS,IAAkB,UACtCC,kBAAmB,YAAS,KAC5BC,gBAAiB,YAAS,KAC1BC,oBAAqB,YAAS,KAC9BC,YAAa,YAAS,KACtBC,mBAAoB,YAAS,IAAkB,WAC/CC,iBAAkB,YAAS,IAAkB,SAC7CC,mBAAoB,YAAS,KAC7BC,UAAW,YAAS,IAAkB,UACtCC,kBAAmB,YAAS,KAE5BC,aAAc,YAAS,KAAmB,GAE1CC,WAAY,YAAS,KAAmB,GAExCC,WAAY,YAAS,KAAmB,GAExCC,gBAAiB,YAAS,KAAmB,GAC7CC,2BAA4B,YAAS,KACrCC,KAAM,YAAS,KAAmB,GAClCC,WAAY,YAAS,KACrBC,kBAAmB,YAAS,KAAmB,GAC/CC,aAAc,YAAS,KAAmB,GAC1CC,eAAgB,YAAS,KAAmB,GAC5CtQ,OAAQ,YAAS,KAAmB,GACpCuQ,WAAY,YAAS,KAAmB,GACxCC,WAAY,YAAS,KAAmB,GACxCC,OAAQ,YAAS,KAAmB,GACpCC,QAAS,YAAS,IAAkB,MACpCC,YAAa,YAAS,KACtBC,UAAW,YAAS,IAAkB,WAEtCC,YAAa,YAAS,CAAC,IAAa,IAAkB,MACtDC,WAAY,YAAS,KAAmB,GACxCC,KAAM,YAAS,IAAkB,MACjCC,OAAQ,YAAS,KAAmB,GACpCC,MAAO,YAAS,KAChBC,WAAY,YAAS,KACrBC,UAAW,YAAS,KACpBC,YAAa,YAAS,KAAmB,GACzCC,SAAU,YAAS,IAAkB,SAClC,MAGMrQ,GAAsB,UAAIb,OAAO,CAC1Cd,KAAM,KACNyG,OAAQ,CAACwL,EAAA,EAAYrD,EAAA,EAASjB,GAAYtJ,EAAuB,IAAmBgB,EAAqB,IAAoB,KAC7H6M,cAAc,EACd1R,MAAO,GACPY,KAAM,WACJ,MAAO,CACL+Q,UAAU,EAEVC,WAAW,EAEXC,iBAAiB,EAEjBC,QAAQ,EAERC,SAAS,EAETC,WAAW,EAEXC,WAAW,EAEXC,qBAAqB,EAErBC,oBAAoB,EAEpB1H,eAAgB,EAChByB,OAAQ5B,EAAa0B,gBACrBO,OAAO,EACP7B,mBAAmB,IAGvBlH,SAAU,CACR4O,QAAS,WACP,OAAOlQ,KAAKmQ,UAEdC,aAAc,WACZ,OAAOpQ,KAAKmQ,OAAO,sBAErBE,cAAe,WACb,OAAOrQ,KAAKmQ,OAAO,uBAErBG,YAAa,WACX,OAAOtQ,KAAKmQ,OAAO,qBAErBI,aAAc,WACZ,OAAOvQ,KAAKmQ,OAAO,sBAErBK,eAAgB,WACd,OAAOxQ,KAAKmQ,OAAO,wBAErBM,cAAe,WACb,OAAOzQ,KAAKmQ,OAAO,uBAErBO,gBAAiB,WACf,OAAO1Q,KAAKmQ,OAAO,yBAErBQ,aAAc,WACZ,MAAO,CAAC,CACNC,MAAO5Q,KAAK/B,OACZ4S,KAAM7Q,KAAK4P,QACV5P,KAAKoO,aAEV0C,YAAa,WACX,IAAIC,EAAU,GAAG9Q,OAAOD,KAAKuI,eAAgB,MAC7C,MAAO,CACLyI,aAAchR,KAAKwI,mBAAqBxI,KAAKiQ,mBAAqBc,EAAU,GAC5ElG,aAAc7K,KAAKwI,oBAAsBxI,KAAKiQ,mBAAqBc,EAAU,GAG7EE,QAASjR,KAAK6P,QAAU,QAAU,SAGtCqB,cAAe,WACb,IAAI1S,EAEJ,MAAO,EAAEA,EAAO,GAAI,GAAgBA,EAAM,SAASyB,OAAOD,KAAKgP,MAAOhP,KAAKgP,MAAO,GAAgBxQ,EAAM,wBAAyBwB,KAAK8M,UAAW,GAAgBtO,EAAM,0BAA2BwB,KAAK+O,YAAavQ,GAAOwB,KAAKgN,cAElOmE,cAAe,WACb,IAAIC,EAEJ,MAAO,EAAEA,EAAQ,GAAI,GAAgBA,EAAO,MAAMnR,OAAOD,KAAKsN,iBAAkBtN,KAAKsN,iBAAkB,GAAgB8D,EAAO,QAAQnR,OAAOD,KAAK6N,mBAAoB7N,KAAK6N,mBAAoB,GAAgBuD,EAAO,UAAUnR,OAAOD,KAAKuN,qBAAsBvN,KAAKuN,qBAAsB6D,GAAQpR,KAAKwN,cAE5S6D,aAAc,WACZ,MAAO,CAAC,CACN,UAAWrR,KAAKqP,aACfrP,KAAKmP,aAEVmC,YAAa,WACX,IAAIC,EAEJ,MAAO,EAAEA,EAAQ,GAAI,GAAgBA,EAAO,MAAMtR,OAAOD,KAAKqM,eAAgBrM,KAAKqM,eAAgB,GAAgBkF,EAAO,QAAQtR,OAAOD,KAAKuM,iBAAkBvM,KAAKuM,iBAAkBgF,GAAQvR,KAAKsM,YAEtMkF,cAAe,WACb,IAAIC,EAEJ,MAAO,EAAEA,EAAQ,GAAI,GAAgBA,EAAO,MAAMxR,OAAOD,KAAKiN,iBAAkBjN,KAAKiN,iBAAkB,GAAgBwE,EAAO,QAAQxR,OAAOD,KAAKqN,mBAAoBrN,KAAKqN,mBAAoB,GAAgBoE,EAAO,UAAUxR,OAAOD,KAAKkN,qBAAsBlN,KAAKkN,qBAAsBuE,GAAQzR,KAAKmN,cAE5SuE,gBAAiB,WAEf,MAAO,CACLC,SAAU,WACV3H,OAAQhK,KAAKgK,SAGjB4H,UAAW,WACT,MAAO,CACLC,OAAQ7R,KAAK8R,SACbC,MAAO/R,KAAKgS,QACZC,KAAMjS,KAAKiS,KACXC,GAAIlS,KAAKmS,KACTC,QAASpS,KAAK0P,YAGlB2C,kCAAmC,WAEjC,OAAO,YAAOrS,KAAKkO,4BAA4BnS,OAAO0H,EAAA,GAAU6O,KAAK,KAAKC,QAE5EC,cAAe,WAIb,OAAO,EAAc,EAAc,EAAc,GADzBxS,KAAKiP,OAAiC,GAAxBjP,KAAKuB,kBAC6BvB,KAAKyS,SAAU,GAAI,CACzFvG,GAAIlM,KAAKoQ,gBAGbsC,mBAAoB,WAClB,IAAIhD,EAAY1P,KAAK0P,UACjBvD,EAAYnM,KAAKmM,UACrB,MAAO,CACLD,GAAIlM,KAAKkQ,QACTyC,KAAM,SACN,cAAejD,EAAY,KAAO,OAClC,aAAcA,EAAY,OAAS,KACnC,aAAcvD,EACd,kBAAmBnM,KAAKgO,YAAc7B,KACpCnM,KAAK4S,kBAAkB,MAA0B5S,KAAKoP,WAAapP,KAAKkP,OAAS,KAAOlP,KAAKuQ,aAC/F,mBAAoBvQ,KAAKsQ,eAI/BtM,MAAO,GAAgB,GAAIoH,IAAiB,SAAUjC,EAAU0J,GAC1D1J,IAAa0J,GACf7S,KAAKmJ,EAAW,OAAS,aAG7BvH,QAAS,WAEP5B,KAAK8S,WAAa,KAClB9S,KAAK+S,cAAgB/S,KAAK8O,aAAe,MAE3CkE,QAAS,WAEPhT,KAAKgK,OAAS5B,EAAa0B,gBAG3B9J,KAAKiT,aAAa,YAAuB,KAAY,KAAkBjT,KAAKkT,aAC5ElT,KAAKiT,aAAa,YAAuB,KAAY,KAAkBjT,KAAKmT,aAC5EnT,KAAKiT,aAAa,YAAuB,KAAY,MAAoBjT,KAAKoT,eAG9EpT,KAAKiT,aAAa,YAAiB,KAAY,KAAkBjT,KAAKqT,gBAExC,IAA1BrT,KAAKoL,KACPpL,KAAKoE,UAAUpE,KAAK6Q,OAGxBhP,cAAe,WAEbuG,EAAaoB,gBAAgBxJ,MAC7BA,KAAKsT,aAAY,GAEbtT,KAAK0P,YACP1P,KAAK0P,WAAY,EACjB1P,KAAK4P,QAAS,EACd5P,KAAK2P,iBAAkB,IAG3BzN,QAAS,CACPoR,YAAa,WACX,IAAI9Q,EAAKhG,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,IAAmBA,UAAU,GACxEwD,KAAK8S,YAAc9S,KAAK8S,WAAWS,aACnCvT,KAAK8S,WAAa,KAEdtQ,IACFxC,KAAK8S,WAAa,YAAW9S,KAAKwT,MAAMC,QAASzT,KAAK0T,mBAAmBC,KAAK3T,MAAO4L,MAIzFgI,YAAa,SAAqB1W,GAC5BA,IAAU8C,KAAKoL,KACjBpL,KAAK6T,MAAMvI,GAAkBpO,IAIjC4W,WAAY,SAAoBjU,GAC9B,IAAIkU,EAAUvX,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAI,EAAaqD,EAAM,EAAc,EAAc,CAExDO,YAAY,EACZ9D,OAAQ0D,KAAKwT,MAAMlK,OAAStJ,KAAKuD,KAAO,KACxCjD,cAAe,KACf6H,QAAS,MACR4L,GAAU,GAAI,CAEfxT,UAAWP,KACXQ,YAAaR,KAAKkQ,YAItBW,KAAM,WACJ,IAAI7Q,KAAK0P,YAAa1P,KAAK8P,UAS3B,GAAI9P,KAAK+P,UAIP/P,KAAKgU,MAAM,IAAmBhU,KAAK6Q,UAJrC,CAUA7Q,KAAK8P,WAAY,EAEjB9P,KAAK+S,cAAgB/S,KAAK+S,eAAiB/S,KAAKiU,mBAChD,IAAIC,EAAYlU,KAAK8T,WAAW,IAAiB,CAC/C1T,YAAY,IAId,GAFAJ,KAAKmU,UAAUD,GAEXA,EAAUzT,kBAAoBT,KAAK0P,UAIrC,OAHA1P,KAAK8P,WAAY,OAEjB9P,KAAK4T,aAAY,GAKnB5T,KAAKoU,WAGPnC,KAAM,WACJ,IAAI9J,EAAU3L,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAElF,GAAKwD,KAAK0P,YAAa1P,KAAK+P,UAA5B,CAKA/P,KAAK+P,WAAY,EACjB,IAAIsE,EAAYrU,KAAK8T,WAAW,IAAiB,CAC/C1T,WAAY+H,IAAYoD,GACxBpD,QAASA,GAAW,OAatB,GAVIA,IAAYuD,GACd1L,KAAK6T,MAAM,IAAeQ,GACjBlM,IAAYqD,GACrBxL,KAAK6T,MAAM,IAAmBQ,GACrBlM,IAAYsD,IACrBzL,KAAK6T,MAAM,IAAkBQ,GAG/BrU,KAAKmU,UAAUE,GAEXA,EAAU5T,mBAAqBT,KAAK0P,UAItC,OAHA1P,KAAK+P,WAAY,OAEjB/P,KAAK4T,aAAY,GAKnB5T,KAAKsT,aAAY,GAEjBtT,KAAK0P,WAAY,EAEjB1P,KAAK4T,aAAY,KAGnBU,OAAQ,SAAgBC,GAClBA,IACFvU,KAAK+S,cAAgBwB,GAGnBvU,KAAK0P,UACP1P,KAAKiS,KAvXQ,UAyXbjS,KAAK6Q,QAIToD,iBAAkB,WAGhB,IAAIO,EAAgB,YAAkB,IAAa,CAAC9R,SAASsG,MAAQ,IASrE,OAAOwL,GAAiBA,EAAcC,MAAQD,EAAgB,MAGhEJ,OAAQ,WACN,IAAItS,EAAQ9B,KAIRoI,EAAaM,eAAiB1I,KAAKwO,WAErCxO,KAAK0U,iBAAiB,YAAiB,KAAY,KAAoB1U,KAAKoU,SAI9EhM,EAAaiB,cAAcrJ,MAE3BA,KAAKyP,UAAW,EAChBzP,KAAKoE,WAAU,WAGbtC,EAAM4N,WAAY,EAClB5N,EAAMgO,WAAY,EAElBhO,EAAM8R,aAAY,GAElB9R,EAAMsC,WAAU,WAGdtC,EAAMwR,aAAY,WAKxBqB,cAAe,WACb3U,KAAK2P,iBAAkB,EACvB3P,KAAK4U,gBAAe,IAEtBC,QAAS,WACP,IAAIzK,EAASpK,KAEbA,KAAK6P,SAAU,EAIf,aAAU,WACR,aAAU,WACRzF,EAAOwF,QAAS,SAItBkF,aAAc,WACZ,IAAIC,EAAS/U,KAEbA,KAAK0T,qBACL1T,KAAK2P,iBAAkB,EAKvB,aAAU,WACRoF,EAAOZ,UAAUY,EAAOjB,WAAW,MAEnCiB,EAAOC,iBAAgB,GAEvBD,EAAO3Q,WAAU,WAGf2Q,EAAOE,oBAIbC,cAAe,WACblV,KAAK2P,iBAAkB,EACvB3P,KAAK4U,gBAAe,GACpB5U,KAAKgV,iBAAgB,IAEvBG,QAAS,WAEPnV,KAAK4P,QAAS,GAEhBwF,aAAc,WACZ,IAAIC,EAASrV,KAEbA,KAAK6P,SAAU,EACf7P,KAAK2P,iBAAkB,EACvB3P,KAAKiQ,oBAAqB,EAC1BjQ,KAAKyP,UAAW,EAChBzP,KAAKoE,WAAU,WACbiR,EAAOtF,WAAY,EACnB3H,EAAaoB,gBAAgB6L,GAE7BA,EAAOC,gBAIPD,EAAOlB,UAAUkB,EAAOvB,WAAW,UAGvCK,UAAW,SAAmBoB,GAC5B,IAAI1V,EAAO0V,EAAQ1V,KAGnBG,KAAKwV,WAAW,YAAiB,KAAY3V,GAAO0V,EAASA,EAAQ/U,aACrER,KAAK6T,MAAMhU,EAAM0V,IAGnBE,kBAAmB,WACjB,IAAIC,EAAS1V,KAITsJ,EAAQtJ,KAAKwT,MAAMlK,MAUvB,YAAQA,EAAO,WARQ,SAASqM,EAAiB5T,GAC/C,YAASuH,EAAO,UAAWqM,EAAkB,MAEzC5T,EAAMzF,SAAWgN,IACnBoM,EAAO1F,qBAAsB,KAIW,OAE9C4F,WAAY,SAAoB7T,GAC1B/B,KAAKgQ,oBAGPhQ,KAAKgQ,qBAAsB,EAMxBhQ,KAAK0P,YAAa1P,KAAKqO,mBAAsB,YAAS3L,SAASsG,KAAMjH,EAAMzF,UAK3E,YAAS0D,KAAKwT,MAAMC,QAAS1R,EAAMzF,SACtC0D,KAAKiS,KAvhBU,cA0hBnBE,KAAM,WACJnS,KAAKiS,KAAKvG,KAEZoG,SAAU,WACR9R,KAAKiS,KAAKzG,KAEZwG,QAAS,WACPhS,KAAKiS,KAAKxG,KAEZoK,MAAO,SAAe9T,GAEhBA,EAAM+T,UAAY,KAAY9V,KAAK0P,YAAc1P,KAAKsO,cACxDtO,KAAKiS,KAriBK,QAyiBd8D,aAAc,SAAsBhU,GAElC,IAAI0R,EAAUzT,KAAKwT,MAAMC,QACrBnX,EAASyF,EAAMzF,OAEnB,KAAI0D,KAAKuO,iBAAmBvO,KAAKqK,QAAUrK,KAAK0P,YAAc+D,GAAW/Q,WAAapG,GAAU,YAASmX,EAASnX,IAAW0D,KAAKqS,mCAAqC,YAAQrS,KAAKqS,kCAAmC/V,GAAQ,IAA/N,CAIA,IAAI0Z,EAAW,YAAYhW,KAAKwT,MAAMC,SAClCwC,EAAajW,KAAKwT,MAAM,eACxB0C,EAAUlW,KAAKwT,MAAM,YAEzB,GAAIyC,GAAc3Z,IAAW2Z,GAG3B,GAAI,YAAaD,EAAS,IAExB,YAEG,GAAIE,GAAW5Z,IAAW4Z,GAG3B,YAAaF,EAASA,EAASvZ,OAAS,IAE1C,OAKJ,YAAagX,EAAS,CACpB0C,eAAe,MAInBnB,gBAAiB,SAAyBxS,GACxCxC,KAAKuC,eAAeC,EAAI,UAAWxC,KAAK+V,eAG1CnB,eAAgB,SAAwBpS,GACtCxC,KAAK+C,aAAaP,EAAI,SAAUxC,KAAK0T,oBACrC1T,KAAK+C,aAAaP,EAAI,oBAAqBxC,KAAK0T,qBAGlDR,YAAa,SAAqBhH,EAAIqI,GAChCrI,IAAOlM,KAAKkQ,UACdlQ,KAAK+S,cAAgBwB,GAAavU,KAAKiU,mBACvCjU,KAAK6Q,SAGTsC,YAAa,SAAqBjH,GAC5BA,IAAOlM,KAAKkQ,SACdlQ,KAAKiS,KAAK,UAGdmB,cAAe,SAAuBlH,EAAIqI,GACpCrI,IAAOlM,KAAKkQ,SACdlQ,KAAKsU,OAAOC,IAGhBlB,cAAe,SAAuBkC,GAEhCvV,KAAKwO,YAAc+G,EAAQhV,YAAcP,MAC3CA,KAAKiS,QAITgD,WAAY,WACV,IAAImB,EAASpW,KAGT,KACF,aAAU,WACR,IAAIsJ,EAAQ8M,EAAO5C,MAAMlK,MACrBmK,EAAU2C,EAAO5C,MAAMC,QAEvBe,EAAgB4B,EAAOnC,mBAG3B,GAAI3K,GAASmK,KAAae,IAAiB,YAASf,EAASe,IAAiB,CAC5E,IAAItC,EAAKkE,EAAO5C,MAAM,aAClB3B,EAASuE,EAAO5C,MAAM,iBACtBzB,EAAQqE,EAAO5C,MAAM,gBAErB6C,EAAYD,EAAOhK,gBAGnBrH,EAAKsR,IAAc3K,IAAawG,EAAKA,EAAG3O,KAAO2O,EAAKmE,IAAc7K,IAAiBqG,EAASA,EAAOtO,KAAOsO,EAASwE,IAAc5K,IAAgBsG,EAAQA,EAAMxO,KAAOwO,EAAQ0B,EAElL,YAAa1O,GAETA,IAAO0O,GAET2C,EAAOhS,WAAU,WACfkF,EAAMgN,UAAY,UAO9BhB,cAAe,WAGb,IAAIvQ,EAAK/E,KAAK8O,aAAe9O,KAAK+S,eAAiB,KACnD/S,KAAK+S,cAAgB,KACrB/S,KAAKoE,WAAU,YAEbW,EAAK,YAASA,GAAM,YAAOA,GAAMA,KAI/BA,EAAKA,EAAGxB,KAAOwB,EACf,YAAaA,QAInB2O,mBAAoB,WAClB,GAAI1T,KAAK0P,UAAW,CAClB,IAAIpG,EAAQtJ,KAAKwT,MAAMlK,MACvBtJ,KAAKiQ,mBAAqB3G,EAAMiN,aAAe7T,SAAS8T,gBAAgBC,eAG5EC,UAAW,SAAmBnY,GAE5B,IAAIoY,EAAUpY,IAEd,IAAKyB,KAAKgO,WAAY,CAEpB,IAAI4I,EAAe5W,KAAKkF,cAAc,IAAwBlF,KAAK4R,WAEnE,IAAKgF,EAAc,CACjB,IAAIC,EAAetY,IAEdyB,KAAKiO,kBACR4I,EAAetY,EAAE,IAAc,CAC7BT,MAAO,CACL2V,QAASzT,KAAKyN,mBACd7J,SAAU5D,KAAK2P,gBACfxD,UAAWnM,KAAK0N,iBAChBoJ,YAAa9W,KAAK2N,oBAAsB3N,KAAK6N,mBAE/CrL,GAAI,CACFuU,MAAO/W,KAAKgS,SAEdgF,IAAK,gBAEP,CAAChX,KAAKkF,cAAc,QAGtB0R,EAAe,CAACrY,EAAEyB,KAAKsP,SAAU,CAC/B2H,YAAa,cACbC,MAAOlX,KAAKqR,aACZ9B,MAAO,CACLrD,GAAIlM,KAAKuQ,cAGX4G,SAAUnX,KAAK4S,kBAAkB,KAAyB,GAAK,OAAAwE,EAAA,GAAWpX,KAAKoP,UAAWpP,KAAKkP,QAEjGlP,KAAKkF,cAAc,IAAuBlF,KAAK4R,YAAaiF,GAG9DF,EAAUpY,EAAEyB,KAAK4N,UAAW,CAC1BqJ,YAAa,eACbC,MAAOlX,KAAKmR,cACZ5B,MAAO,CACLrD,GAAIlM,KAAKqQ,eAEX2G,IAAK,UACJ,CAACJ,IAIN,IAAIS,EAAQ9Y,EAAE,MAAO,CACnB0Y,YAAa,aACbC,MAAOlX,KAAKsR,YACZ/B,MAAO,CACLrD,GAAIlM,KAAKsQ,aAEX0G,IAAK,QACJhX,KAAKkF,cAAc,IAAmBlF,KAAK4R,YAE1C0F,EAAU/Y,IAEd,IAAKyB,KAAK+N,WAAY,CAEpB,IAAIwJ,EAAevX,KAAKkF,cAAc,IAAwBlF,KAAK4R,WAEnE,IAAK2F,EAAc,CACjB,IAAIC,EAAgBjZ,IAEfyB,KAAK0O,SACR8I,EAAgBjZ,EAAE,IAAS,CACzBT,MAAO,CACL2Z,QAASzX,KAAK6M,cACdmC,KAAMhP,KAAKyM,WACX7I,SAAU5D,KAAK0M,gBAAkB1M,KAAKwM,MAAQxM,KAAK2P,iBAGrDwH,SAAUnX,KAAK4S,kBAAkB,KAA0B,GAAK,OAAAwE,EAAA,GAAWpX,KAAK4M,gBAAiB5M,KAAK2M,aACtGnK,GAAI,CACFuU,MAAO/W,KAAK8R,UAEdkF,IAAK,iBAEPhX,KAAKkF,cAAc,OAiBrBqS,EAAe,CAACC,EAdAjZ,EAAE,IAAS,CACzBT,MAAO,CACL2Z,QAASzX,KAAK6O,UACdG,KAAMhP,KAAKyM,WACX7I,SAAU5D,KAAKyO,YAAczO,KAAKwM,MAAQxM,KAAK2P,iBAGjDwH,SAAUnX,KAAK4S,kBAAkB,KAAsB,GAAK,OAAAwE,EAAA,GAAWpX,KAAK4O,YAAa5O,KAAK2O,SAC9FnM,GAAI,CACFuU,MAAO/W,KAAKmS,MAEd6E,IAAK,aAEPhX,KAAKkF,cAAc,OAIrBoS,EAAU/Y,EAAEyB,KAAKoN,UAAW,CAC1B6J,YAAa,eACbC,MAAOlX,KAAKwR,cACZjC,MAAO,CACLrD,GAAIlM,KAAKyQ,eAEXuG,IAAK,UACJ,CAACO,IAIN,IAAIG,EAAgBnZ,EAAE,MAAO,CAC3B0Y,YAAa,gBACbC,MAAOlX,KAAK+M,aACZwC,MAAO,CACLrD,GAAIlM,KAAKwQ,eACTmH,SAAU,MAEZX,IAAK,WACJ,CAACL,EAASU,EAAOC,IAGhBM,EAAcrZ,IACdsZ,EAAiBtZ,IAEjByB,KAAK0P,YAAc1P,KAAKuO,iBAC1BqJ,EAAcrZ,EAAE,OAAQ,CACtBgR,MAAO,CACLoI,SAAU,KAEZX,IAAK,aAEPa,EAAiBtZ,EAAE,OAAQ,CACzBgR,MAAO,CACLoI,SAAU,KAEZX,IAAK,iBAKT,IAAIc,EAAevZ,EAAE,MAAO,CAC1B0Y,YAAa,eACbC,MAAOlX,KAAKkR,cACZ1O,GAAI,CACFuV,UAAW/X,KAAKyV,mBAElBuB,IAAK,UACJ,CAACY,EAAaF,EAAeG,IAE5BG,EAASzZ,EAAE,MAAO,CACpB0Y,YAAa,QACbC,MAAOlX,KAAK2Q,aACZsH,MAAOjY,KAAK8Q,YACZvB,MAAOvP,KAAK0S,mBACZlQ,GAAI,CACF0V,QAASlY,KAAK6V,MACdkB,MAAO/W,KAAK4V,YAEd1W,WAAY,CAAC,CACX5B,KAAM,OACNJ,MAAO8C,KAAK0P,YAEdsH,IAAK,SACJ,CAACc,IAKJE,EAASzZ,EAAE,aAAc,CACvBT,MAAO,CACLP,WAAY,GACZE,aAAc,GACdD,iBAAkB,GAClBE,WAAY,GACZC,iBAAkB,GAClBC,aAAc,IAEhB4E,GAAI,CACF2V,YAAanY,KAAK2U,cAClByD,MAAOpY,KAAK6U,QACZwD,WAAYrY,KAAK8U,aACjBwD,YAAatY,KAAKkV,cAClBqD,MAAOvY,KAAKmV,QACZqD,WAAYxY,KAAKoV,eAElB,CAAC4C,IAEJ,IAAIS,EAAYla,IAkBhB,OAhBKyB,KAAK8N,cAAgB9N,KAAK0P,YAC7B+I,EAAYla,EAAE,MAAO,CACnB0Y,YAAa,iBACb1H,MAAO,CACLrD,GAAIlM,KAAK0Q,kBAGb1Q,KAAKkF,cAAc,OAGrBuT,EAAYla,EAAE,IAAc,CAC1BT,MAAO,CACLG,OAAQ+B,KAAK/B,SAEd,CAACwa,IAEGla,EAAE,MAAO,CACd0Z,MAAOjY,KAAK0R,gBACZnC,MAAOvP,KAAKwS,cACZ5V,IAAK,eAAeqD,OAAOD,KAAK,OAC/B,CAACgY,EAAQS,MAGhBna,OAAQ,SAAgBC,GACtB,OAAIyB,KAAKiP,OACAjP,KAAKmO,MAAQnO,KAAKyP,SAAWlR,IAAMyB,KAAK0W,UAAUnY,GAElDyB,KAAKyP,SAAWlR,IAAMA,EAAEuF,EAAe,CAAC9D,KAAK0W,UAAUnY,S,gCCn9BpE,sGAOWT,EAAQ,CACjBoO,GAAI,YAAS,MAIJwM,EAAU,UAAIta,OAAO,CAC9BN,MAAOA,EACPY,KAAM,WACJ,MAAO,CACLia,SAAU,OAGdrX,SAAU,CACR6O,OAAQ,WAGN,IAAIjE,EAAKlM,KAAKkM,IAAMlM,KAAK2Y,SAazB,OATS,SAAYC,GACnB,OAAK1M,GAIL0M,EAAS1P,OAAO0P,GAAU,IAAIC,QAAQ,OAAQ,MAC9B3M,EAAK,IAAM0M,EAAS1M,EAJ3B,QAUf8G,QAAS,WACP,IAAIlR,EAAQ9B,KAGZA,KAAKoE,WAAU,WAGbtC,EAAM6W,SAAW,WAAW1Y,OAAO6B,EAAM,a,iCC9C/C,+DAAStG,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eACjDP,EAAKQ,KAAKC,MAAMT,EAAMG,GAG7B,OAAOH,EAgBT,SAASkB,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAaF,IAAI6b,EAAa,SAAoB/T,EAAI/C,EAAU+R,GAQxD,GAJAhP,EAAKA,EAAKA,EAAGxB,KAAOwB,EAAK,MAIpB,YAAUA,GACb,OAAO,KAIT,GAAI,YAA8B,cAChC,OAAO,KAIT,IAAIgU,EAAM,IAAI,KAAY,SAAUC,GAMlC,IALA,IAAIC,GAAU,EAKL1c,EAAI,EAAGA,EAAIyc,EAAUvc,SAAWwc,EAAS1c,IAAK,CAErD,IAAI2c,EAAWF,EAAUzc,GAErBsD,EAAOqZ,EAASrZ,KAEhBvD,EAAS4c,EAAS5c,QAET,kBAATuD,GAA4BvD,EAAO6c,WAAaC,KAAKC,WAIrC,eAATxZ,GAES,cAATA,IAAyBqZ,EAASI,WAAW7c,OAAS,GAAKyc,EAASK,aAAa9c,OAAS,MAHnGwc,GAAU,GAYVA,GACFjX,OAWJ,OAPA+W,EAAIS,QAAQzU,EA1Fd,SAAuBzI,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,OACjChB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAI/E,OAAON,EAgFSD,CAAc,CAC5ByP,WAAW,EACXD,SAAS,GACRkI,IAIIgF,I,gCC9GT,6EAASlc,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EAOF,IAAIwc,EAAiB,SAAwBpO,GAClD,IAAI7M,EAAOhC,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAC3Ekd,EAAYlb,EAAKqB,KACjBA,OAAqB,IAAd6Z,EAAuB,IAAgBA,EAC9CC,EAAoBnb,EAAKyC,aACzBA,OAAqC,IAAtB0Y,OAA+B5Z,EAAY4Z,EAC1DC,EAAiBpb,EAAKqb,UACtBA,OAA+B,IAAnBD,OAA4B7Z,EAAY6Z,EACpDE,EAAatb,EAAKuD,MAClBA,OAAuB,IAAf+X,EAAwB,IAAmBA,EAEnDhc,EAAQjB,EAAgB,GAAIwO,EAAM,YAASxL,EAAMoB,EAAc4Y,IAG/D3O,EAAQ,UAAI9M,OAAO,CACrB2b,MAAO,CACL1O,KAAMA,EACNtJ,MAAOA,GAETjE,MAAOA,IAET,MAAO,CACLoN,MAAOA,EACPpN,MAAOA,EACPuN,KAAMA,EACNtJ,MAAOA,K,iCC5CX,6FAQIiY,EAA8B,YAAuB,KAAY,KAEjEC,EAAW,yBAEXC,EAAY,SAAmB1b,GACjC,IAAI2b,EAAiB3b,EAAK4b,UACtBA,OAA+B,IAAnBD,EAA4B,GAAKA,EAC7CE,EAAM7b,EAAK6b,IACXnd,EAAQsB,EAAKtB,MAEjB,OAAO,YAASA,GAASA,EAAQ,YAASmd,GAAOA,EAAM,YAAKD,GAAWE,UAAU,IAG/EC,EAAoB,SAA2BxV,GAGjD,OAAOA,GAAM,YAAQA,EAAI,qCAAsC,YAAO,YAAaA,IAAYA,GAG7FyV,EAAU,SAAiBrS,GAEzBA,GAA+B,WAApBA,EAAQsS,UAEhB,YAAQtS,EAAS,SACpB,YAAQA,EAAS,OAAQ,UAIH,MAApBA,EAAQsS,SAAoB,YAAQtS,EAAS,aAC/C,YAAQA,EAAS,WAAY,OA0C/BuS,EAAS,SAAgB3V,GAC3B,IAAI4V,EAAU5V,EAAGkV,IAAa,GAC1B9R,EAAUwS,EAAQxS,QAClBjE,EAAUyW,EAAQzW,QAElBiE,GAAWjE,IACb,YAASiE,EAAS,QAASjE,EAAS,MACpC,YAASiE,EAAS,UAAWjE,EAAS,MACtC,YAASa,EAAI,QAASb,EAAS,MAC/B,YAASa,EAAI,UAAWb,EAAS,cAG5Ba,EAAGkV,IAGRW,EAAmB,SAA0B7V,EAAI8V,EAASC,GAC5D,IAAIH,EAAU5V,EAAGkV,IAAa,GAC1B3d,EAAS4d,EAAUW,GACnB1S,EAAUoS,EAAkBxV,GAE5BzI,IAAWqe,EAAQre,QAAU6L,IAAYwS,EAAQxS,UAEnDuS,EAAO3V,GA3DA,SAAcA,EAAI8V,EAASC,GACpC,IAAIxe,EAAS4d,EAAUW,GACnB1S,EAAUoS,EAAkBxV,GAEhC,GAAIzI,GAAU6L,EAAS,CACrB,IAAIjE,EAAU,SAAiBnC,GAE7B,IAAIgZ,EAAgBhZ,EAAMgZ,cAE1B,IAAK,YAAWA,GAAgB,CAC9B,IAAIlb,EAAOkC,EAAMlC,KACbjD,EAAMmF,EAAM+T,QAEH,UAATjW,IAA6B,YAATA,GAAuBjD,IAAQ,KAAcA,IAAQ,MAC3Eke,EAAME,QAAQC,MAAMpH,MAAMmG,EAA6B1d,EAAQye,KAKrEhW,EAAGkV,GAAY,CACb/V,QAASA,EACT5H,OAAQA,EACR6L,QAASA,GAGXqS,EAAQrS,GAER,YAAQA,EAAS,QAASjE,EAAS,MAEX,WAApBiE,EAAQsS,SAAqD,WAA7B,YAAQtS,EAAS,SAGnD,YAAQA,EAAS,UAAWjE,EAAS,OA4BvCyP,CAAK5O,EAAI8V,EAASC,IAKpBN,EAAQrS,IASChJ,EAAU,CACnB+b,SAAUN,EACVnW,QARY,aASZmW,iBAAkBA,EAClBF,OAAQA,I,iCCxHV,kCAAO,IAAIS,EAAO,c,iCCAlB,8HAMA,SAASzb,EAAkBpD,EAAQwB,GACjC,IAAK,IAAIvB,EAAI,EAAGA,EAAIuB,EAAMrB,OAAQF,IAAK,CACrC,IAAIoD,EAAa7B,EAAMvB,GACvBoD,EAAWzD,WAAayD,EAAWzD,aAAc,EACjDyD,EAAWxC,cAAe,EACtB,UAAWwC,IAAYA,EAAWvC,UAAW,GACjDxB,OAAOoB,eAAeV,EAAQqD,EAAW/C,IAAK+C,IAalD,SAASnE,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eACjDP,EAAKQ,KAAKC,MAAMT,EAAMG,GAG7B,OAAOH,EAGT,SAASU,EAAcC,GACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,OACjChB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAI/E,OAAON,EAGT,SAASO,EAAgBI,EAAKL,EAAKM,GAYjC,OAXIN,KAAOK,EACTrB,OAAOoB,eAAeC,EAAKL,EAAK,CAC9BM,MAAOA,EACPhB,YAAY,EACZiB,cAAc,EACdC,UAAU,IAGZH,EAAIL,GAAOM,EAGND,EA4BT,SAASme,EAAkBC,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAI5e,UAAQ6e,EAAMD,EAAI5e,QAE/C,IAAK,IAAIF,EAAI,EAAGgf,EAAO,IAAIC,MAAMF,GAAM/e,EAAI+e,EAAK/e,IAC9Cgf,EAAKhf,GAAK8e,EAAI9e,GAGhB,OAAOgf,EAgBT,IAhD4BF,EAgDxBI,EAAY,WAMZC,EAAa,CAAC,MAAMzb,OAjCxB,SAA4Bob,GAC1B,GAAIG,MAAMG,QAAQN,GAAM,OAAOD,EAAkBC,GArB1CO,CADmBP,EAsDsB,YAAK,YAAK,IAAY,CAAC,OAAQ,OAAQ,aAAc,SAAU,eArCjH,SAA0BQ,GACxB,GAAsB,qBAAXpW,QAAmD,MAAzBoW,EAAKpW,OAAOC,WAA2C,MAAtBmW,EAAK,cAAuB,OAAOL,MAAMM,KAAKD,GAjBlFE,CAAiBV,IAOrD,SAAqC/U,EAAG0V,GACtC,GAAK1V,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO8U,EAAkB9U,EAAG0V,GACvD,IAAIC,EAAIrgB,OAAOkF,UAAUob,SAAShW,KAAKI,GAAG6V,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkB3V,EAAEpG,cAAa+b,EAAI3V,EAAEpG,YAAY5C,MAC7C,QAAN2e,GAAqB,QAANA,EAAoBT,MAAMM,KAAKxV,GACxC,cAAN2V,GAAqB,2CAA2CG,KAAKH,GAAWb,EAAkB9U,EAAG0V,QAAzG,GAb2DK,CAA4BhB,IAGzF,WACE,MAAM,IAAI5b,UAAU,wIAJ2E6c,IAuD7FC,EAAkB,aAGlBC,EAAe,CACjBC,cAAe,UACfvN,MAAO,cACPP,QAAS,WACThC,YAAa,gBAIX+P,EAAgB,SAAuB3I,GACzC,OAAO2H,EAAWiB,QAAO,SAAUC,EAAMhgB,GAKvC,OAJK,YAAYmX,EAAQnX,MACvBggB,EAAKhgB,GAAOmX,EAAQnX,IAGfggB,IACN,KAqPMvd,EAA6B,YAAc,CACpDD,QAAS,CACPyd,OAnPS,SAAgBC,GAI3B,IAAIC,EAAUD,EAAI1e,OAAO,CACvBd,KAAM,KACN0f,QAAS,IACT1Z,UAAW,WAELtD,KAAKuD,KAAOvD,KAAKuD,IAAI0Z,YACvBjd,KAAKuD,IAAI0Z,WAAWhT,YAAYjK,KAAKuD,MAGzCyP,QAAS,WACP,IAAIlR,EAAQ9B,KAGRkd,EAAgB,WAClBpb,EAAMsC,WAAU,WAEd,aAAU,WACRtC,EAAMyD,kBAMZvF,KAAKyB,QAAQuS,MAAM,KAA2BkJ,GAE9Cld,KAAKgU,MAAM,IAAmBkJ,GAI1Bld,KAAKmd,SAAWnd,KAAKod,QAIvBpd,KAAKgU,MAAM,KAAgChU,KAAKqd,OAAO,UAAWH,IAIpEld,KAAK6Q,UAKLyM,EAAc,SAAqB7b,EAAS3D,GAC9C,IAAIyf,EAAW/gB,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK+f,EAEnF,IAAI,YAAcd,KAAc,YAAqBA,GAArD,CAMA,IAAI+B,EAAS,IAAIT,EAAQ,CAIvB/X,OAAQvD,EAERwD,UAAW5I,EAAcA,EAAcA,EAAc,GAAIqgB,EAAc,YAAmB,QAAe,GAAI,CAE3GzO,iBAAiB,EACjBD,aAAclQ,EAAMoR,OAASpR,EAAMsR,YAClC,YAAKtR,EAAO,YAAK0e,KAAiB,GAAI,CAEvCrO,MAAM,EACN3B,MAAM,EACN4F,SAAS,EACT5D,YAAY,EACZD,gBAAgB,MAYpB,OARA,YAAKiO,GAAc7f,SAAQ,SAAU0O,GAC9B,YAAYvN,EAAMuN,MAGrBmS,EAAOlY,OAAOkX,EAAanR,IAAS,YAAOvN,EAAMuN,QAI9C,IAAIoS,SAAQ,SAAUC,EAASC,GACpC,IAAIC,GAAW,EACfJ,EAAOxJ,MAAM,MAA2B,WACjC4J,GAEHD,EAAO,IAAIE,MAAM,oDAGrBL,EAAOM,IAAI,KAAiB,SAAUC,GACpC,IAAKA,EAAatd,iBAAkB,CAClC,IAAI2G,EAASmW,EAASQ,GAEjBA,EAAatd,mBAChBmd,GAAW,EACXF,EAAQtW,QAKd,IAAI2C,EAAMrH,SAASmC,cAAc,OACjCnC,SAASsG,KAAKlE,YAAYiF,GAC1ByT,EAAOQ,OAAOjU,QAMdkU,EAAa,SAAoBxc,EAASgS,GAC5C,IAAIM,EAAUvX,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAC9E+gB,EAAW/gB,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,KAEnF,GAAKiX,IAAW,YAAqBgI,KAAc,YAAcA,IAAe,YAAW8B,GAK3F,OAAOD,EAAY7b,EAASpF,EAAcA,EAAc,GAAIqgB,EAAc3I,IAAW,GAAI,CACvF0I,cAAehJ,IACb8J,IAIFW,EAAuB,WACzB,SAASA,EAAQld,IA9QrB,SAAyBzB,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCA6QlBH,CAAgBU,KAAMke,GAGtB,YAAOle,KAAM,CACXme,IAAKnd,EACLod,MAAOpd,EAAGia,QAGZ,YAAiBjb,KAAM,CACrBme,IAAK,cACLC,MAAO,gBAzQf,IAAsB5e,EAAaoB,EAAYC,EAsV3C,OAtVkBrB,EA+QL0e,EA/QkBtd,EA+QT,CAAC,CACrBhE,IAAK,OACLM,MAAO,SAAcgP,GACnB,GAAIA,GAAMlM,KAAKoe,MAAO,CAGpB,IAFA,IAAIC,EAEKC,EAAO9hB,UAAUC,OAAQ8hB,EAAO,IAAI/C,MAAM8C,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKhiB,UAAUgiB,IAG5BH,EAAcre,KAAKoe,OAAOvK,MAAMzX,MAAMiiB,EAAa,CAAC,YAAuB,KAAY,QAASnS,GAAIjM,OAAOse,OAI/G,CACD3hB,IAAK,OACLM,MAAO,SAAcgP,GACnB,GAAIA,GAAMlM,KAAKoe,MAAO,CAGpB,IAFA,IAAIK,EAEKC,EAAQliB,UAAUC,OAAQ8hB,EAAO,IAAI/C,MAAMkD,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGJ,EAAKI,EAAQ,GAAKniB,UAAUmiB,IAG7BF,EAAeze,KAAKoe,OAAOvK,MAAMzX,MAAMqiB,EAAc,CAAC,YAAuB,KAAY,QAASvS,GAAIjM,OAAOse,OAOjH,CACD3hB,IAAK,WACLM,MAAO,SAAkB0hB,GACvB,IAAI7K,EAAUvX,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAE9EsB,EAAQzB,EAAcA,EAAc,GAAI0X,GAAU,GAAI,CAExDrF,QAAQ,EACRD,YAAY,EACZV,YAAY,EACZ0O,cAAemC,IAGjB,OAAOX,EAAWje,KAAKme,IAAKS,EAAS9gB,GAAO,WAE1C,OAAO,OAKV,CACDlB,IAAK,gBACLM,MAAO,SAAuB0hB,GAC5B,IAAI7K,EAAUvX,UAAUC,OAAS,QAAsBsD,IAAjBvD,UAAU,GAAmBA,UAAU,GAAK,GAE9EsB,EAAQzB,EAAcA,EAAc,GAAI0X,GAAU,GAAI,CAExDrF,QAAQ,EACRD,YAAY,EACZ/B,gBAAgB,EAChBqB,YAAY,IAGd,OAAOkQ,EAAWje,KAAKme,IAAKS,EAAS9gB,GAAO,SAAUigB,GACpD,IAAI5V,EAAU4V,EAAa5V,QAC3B,MAAmB,OAAZA,GAAsC,WAAZA,GAA+B,WAhVpEvH,GAAYlB,EAAkBF,EAAYsB,UAAWF,GACrDC,GAAanB,EAAkBF,EAAaqB,GAChDjF,OAAOoB,eAAewC,EAAa,YAAa,CAC9CpC,UAAU,IAkVH8gB,EAzFkB,GA6F3BpB,EAAI5R,MAAM,CACR2T,aAAc,WAGZ7e,KAAmB,WAAI,IAAIke,EAAQle,SAKlC,YAAe8c,EAAIhc,UAAW2a,IACjC,YAAeqB,EAAIhc,UAAW2a,EAAW,CACvC9a,IAAK,WAMH,OAJKX,MAASA,KAAmB,YAC/B,YAAK,IAAKC,OAAOwb,EAAW,0DAA8D,MAGrFzb,KAAmB","file":"js/1-58a0b07ef766c1b054a0.chunk.js","sourcesContent":["function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n} // Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\n\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n return h('transition', // Any transition event listeners will get merged here\n mergeData(data, {\n props: transProps\n }), children);\n }\n});","import { BModal } from './modal';\nimport { VBModal } from '../../directives/modal/modal';\nimport { BVModalPlugin } from './helpers/bv-modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar ModalPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BModal: BModal\n },\n directives: {\n VBModal: VBModal\n },\n // $bvModal injection\n plugins: {\n BVModalPlugin: BVModalPlugin\n }\n});\nexport { ModalPlugin, BModal };","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent); // Start by emulating native Event constructor\n\n\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nexport var getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};","import Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nexport { COMPONENT_UID_KEY, Vue, mergeData };","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { Vue } from '../vue';\nimport { getScopeId } from '../utils/get-scope-id'; // @vue/component\n\nexport var scopedStyleMixin = Vue.extend({\n computed: {\n scopedStyleAttrs: function scopedStyleAttrs() {\n var scopeId = getScopeId(this.$parent);\n return scopeId ? _defineProperty({}, scopeId, '') : {};\n }\n }\n});","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_documentListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnDocumentMixin = Vue.extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this; // Unregister all registered listeners\n\n\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffDocument(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerDocumentListener: function registerDocumentListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterDocumentListener: function unregisterDocumentListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenDocument: function listenDocument(on, event, callback) {\n on ? this.listenOnDocument(event, callback) : this.listenOffDocument(event, callback);\n },\n listenOnDocument: function listenOnDocument(event, callback) {\n if (IS_BROWSER) {\n eventOn(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerDocumentListener(event, callback);\n }\n },\n listenOffDocument: function listenOffDocument(event, callback) {\n if (IS_BROWSER) {\n eventOff(document, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterDocumentListener(event, callback);\n }\n }\n});","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_windowListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnWindowMixin = Vue.extend({\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this; // Unregister all registered listeners\n\n\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffWindow(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerWindowListener: function registerWindowListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterWindowListener: function unregisterWindowListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n listenWindow: function listenWindow(on, event, callback) {\n on ? this.listenOnWindow(event, callback) : this.listenOffWindow(event, callback);\n },\n listenOnWindow: function listenOnWindow(event, callback) {\n if (IS_BROWSER) {\n eventOn(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n this.registerWindowListener(event, callback);\n }\n },\n listenOffWindow: function listenOffWindow(event, callback) {\n if (IS_BROWSER) {\n eventOff(window, event, callback, EVENT_OPTIONS_NO_CAPTURE);\n }\n\n this.unregisterWindowListener(event, callback);\n }\n }\n});","import { Vue } from '../../vue';\nimport { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { concat } from '../../utils/array';\nimport { removeNode, select } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isString } from '../../utils/inspect';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp } from '../../utils/props'; // --- Helper components ---\n// BVTransporter/BVTransporterTarget:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of its\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BVTransporter\n// Supports only a single root element\n// @vue/component\n\nvar BVTransporterTarget = /*#__PURE__*/Vue.extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: NAME_TRANSPORTER_TARGET,\n props: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n nodes: makeProp(PROP_TYPE_ARRAY_FUNCTION)\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n removeNode(this.$el);\n },\n render: function render(h) {\n var updatedNodes = this.updatedNodes;\n var $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;\n $nodes = concat($nodes).filter(identity);\n\n if ($nodes && $nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n /* istanbul ignore next */\n\n\n return h();\n }\n}); // --- Props ---\n\nexport var props = {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n container: makeProp([HTMLElement, PROP_TYPE_STRING], 'body'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // This should be set to match the root element type\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransporter = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_defaultFn = null;\n this.$_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n // We need to make sure that all children have completed updating\n // before rendering in the target\n // `vue-simple-portal` has the this in a `$nextTick()`,\n // while `portal-vue` doesn't\n // Just trying to see if the `$nextTick()` delay is required or not\n // Since all slots in Vue 2.6.x are always functions\n this.updateTarget();\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this.$_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this.$_target) {\n var $container = this.getContainer();\n\n if ($container) {\n var $el = document.createElement('div');\n $container.appendChild($el);\n this.$_target = new BVTransporterTarget({\n el: $el,\n parent: this,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot())\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (IS_BROWSER && this.$_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this.$_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this.$_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this.$_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this.$_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n this.$_target && this.$_target.$destroy();\n this.$_target = null;\n }\n },\n render: function render(h) {\n // This component has no root element, so only a single VNode is allowed\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n }\n\n return h();\n }\n});","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n Object.defineProperty(subClass, \"prototype\", {\n value: Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n }),\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object';\n\nvar BvModalEvent = /*#__PURE__*/function (_BvEvent) {\n _inherits(BvModalEvent, _BvEvent);\n\n var _super = _createSuper(BvModalEvent);\n\n function BvModalEvent(type) {\n var _this;\n\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvModalEvent);\n\n _this = _super.call(this, type, eventInit); // Freeze our new props as readonly, but leave them enumerable\n\n defineProperties(_assertThisInitialized(_this), {\n trigger: readonlyDescriptor()\n });\n return _this;\n }\n\n _createClass(BvModalEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(BvModalEvent), \"Defaults\", this)), {}, {\n trigger: null\n });\n }\n }]);\n\n return BvModalEvent;\n}(BvEvent); // Named exports\n\n\nexport { BvModalEvent };","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport { Vue } from '../../../vue';\nimport { IS_BROWSER } from '../../../constants/env';\nimport { addClass, getAttr, getBCR, getCS, getStyle, hasAttr, removeAttr, removeClass, requestAF, selectAll, setAttr, setStyle } from '../../../utils/dom';\nimport { isNull } from '../../../utils/inspect';\nimport { toFloat, toInteger } from '../../../utils/number'; // --- Constants ---\n// Default modal backdrop z-index\n\nvar DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\nvar SELECTOR_NAVBAR_TOGGLER = '.navbar-toggler'; // --- Main component ---\n// @vue/component\n\nvar ModalManager = /*#__PURE__*/Vue.extend({\n data: function data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalCount: function modalCount() {\n return this.modals.length;\n },\n modalsAreOpen: function modalsAreOpen() {\n return this.modalCount > 0;\n }\n },\n watch: {\n modalCount: function modalCount(newCount, oldCount) {\n if (IS_BROWSER) {\n this.getScrollbarWidth();\n\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar();\n this.setScrollbar();\n addClass(document.body, 'modal-open');\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar();\n removeClass(document.body, 'modal-open');\n }\n\n setAttr(document.body, 'data-modal-open-count', String(newCount));\n }\n },\n modals: function modals(newValue) {\n var _this = this;\n\n this.checkScrollbar();\n requestAF(function () {\n _this.updateModals(newValue || []);\n });\n }\n },\n methods: {\n // Public methods\n registerModal: function registerModal(modal) {\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n this.modals.push(modal);\n }\n },\n unregisterModal: function unregisterModal(modal) {\n var index = this.modals.indexOf(modal);\n\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1); // Reset the modal's data\n\n if (!modal._isBeingDestroyed && !modal._isDestroyed) {\n this.resetModal(modal);\n }\n }\n },\n getBaseZIndex: function getBaseZIndex() {\n if (IS_BROWSER && isNull(this.baseZIndex)) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-backdrop');\n addClass(div, 'd-none');\n setStyle(div, 'display', 'none');\n document.body.appendChild(div);\n this.baseZIndex = toInteger(getCS(div).zIndex, DEFAULT_ZINDEX);\n document.body.removeChild(div);\n }\n\n return this.baseZIndex || DEFAULT_ZINDEX;\n },\n getScrollbarWidth: function getScrollbarWidth() {\n if (IS_BROWSER && isNull(this.scrollbarWidth)) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-scrollbar-measure');\n document.body.appendChild(div);\n this.scrollbarWidth = getBCR(div).width - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return this.scrollbarWidth || 0;\n },\n // Private methods\n updateModals: function updateModals(modals) {\n var _this2 = this;\n\n var baseZIndex = this.getBaseZIndex();\n var scrollbarWidth = this.getScrollbarWidth();\n modals.forEach(function (modal, index) {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index;\n modal.scrollbarWidth = scrollbarWidth;\n modal.isTop = index === _this2.modals.length - 1;\n modal.isBodyOverflowing = _this2.isBodyOverflowing;\n });\n },\n resetModal: function resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex();\n modal.isTop = true;\n modal.isBodyOverflowing = false;\n }\n },\n checkScrollbar: function checkScrollbar() {\n // Determine if the body element is overflowing\n var _getBCR = getBCR(document.body),\n left = _getBCR.left,\n right = _getBCR.right;\n\n this.isBodyOverflowing = left + right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n var body = document.body; // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n\n body._paddingChangedForModal = body._paddingChangedForModal || [];\n body._marginChangedForModal = body._marginChangedForModal || [];\n\n if (this.isBodyOverflowing) {\n var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_FIXED_CONTENT).forEach(function (el) {\n var actualPadding = getStyle(el, 'paddingRight') || '';\n setAttr(el, 'data-padding-right', actualPadding);\n setStyle(el, 'paddingRight', \"\".concat(toFloat(getCS(el).paddingRight, 0) + scrollbarWidth, \"px\"));\n\n body._paddingChangedForModal.push(el);\n }); // Adjust sticky content margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_STICKY_CONTENT).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) - scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) + scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust body padding\n\n var actualPadding = getStyle(body, 'paddingRight') || '';\n setAttr(body, 'data-padding-right', actualPadding);\n setStyle(body, 'paddingRight', \"\".concat(toFloat(getCS(body).paddingRight, 0) + scrollbarWidth, \"px\"));\n }\n },\n resetScrollbar: function resetScrollbar() {\n var body = document.body;\n\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n setStyle(el, 'paddingRight', getAttr(el, 'data-padding-right') || '');\n removeAttr(el, 'data-padding-right');\n }\n });\n }\n\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n setStyle(el, 'marginRight', getAttr(el, 'data-margin-right') || '');\n removeAttr(el, 'data-margin-right');\n }\n });\n }\n\n body._paddingChangedForModal = null;\n body._marginChangedForModal = null; // Restore body padding\n\n if (hasAttr(body, 'data-padding-right')) {\n setStyle(body, 'paddingRight', getAttr(body, 'data-padding-right') || '');\n removeAttr(body, 'data-padding-right');\n }\n }\n }\n}); // Create and export our modal manager instance\n\nexport var modalManager = new ModalManager();","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_MODAL } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CANCEL, EVENT_NAME_CHANGE, EVENT_NAME_CLOSE, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OK, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_MODAL_BACKDROP, SLOT_NAME_MODAL_CANCEL, SLOT_NAME_MODAL_FOOTER, SLOT_NAME_MODAL_HEADER, SLOT_NAME_MODAL_HEADER_CLOSE, SLOT_NAME_MODAL_OK, SLOT_NAME_MODAL_TITLE } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptFocus, closest, contains, getActiveElement as _getActiveElement, getTabables, requestAF, select } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnDocumentMixin } from '../../mixins/listen-on-document';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenOnWindowMixin } from '../../mixins/listen-on-window';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButton } from '../button/button';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BVTransporter } from '../transporter/transporter';\nimport { BvModalEvent } from './helpers/bv-modal-event.class';\nimport { modalManager } from './helpers/modal-manager'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar TRIGGER_BACKDROP = 'backdrop';\nvar TRIGGER_ESC = 'esc';\nvar TRIGGER_FORCE = 'FORCE';\nvar TRIGGER_TOGGLE = 'toggle';\nvar BUTTON_CANCEL = 'cancel'; // TODO: This should be renamed to 'close'\n\nvar BUTTON_CLOSE = 'headerclose';\nvar BUTTON_OK = 'ok';\nvar BUTTONS = [BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_OK]; // `ObserveDom` config to detect changes in modal content\n// so that we can adjust the modal padding if needed\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n autoFocusButton: makeProp(PROP_TYPE_STRING, null,\n /* istanbul ignore next */\n function (value) {\n return isUndefinedOrNull(value) || arrayIncludes(BUTTONS, value);\n }),\n bodyBgVariant: makeProp(PROP_TYPE_STRING),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n bodyTextVariant: makeProp(PROP_TYPE_STRING),\n busy: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonSize: makeProp(PROP_TYPE_STRING),\n cancelDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n cancelTitle: makeProp(PROP_TYPE_STRING, 'Cancel'),\n cancelTitleHtml: makeProp(PROP_TYPE_STRING),\n cancelVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n centered: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n dialogClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerBgVariant: makeProp(PROP_TYPE_STRING),\n footerBorderVariant: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerTag: makeProp(PROP_TYPE_STRING, 'footer'),\n footerTextVariant: makeProp(PROP_TYPE_STRING),\n headerBgVariant: makeProp(PROP_TYPE_STRING),\n headerBorderVariant: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerCloseContent: makeProp(PROP_TYPE_STRING, '×'),\n headerCloseLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n headerCloseVariant: makeProp(PROP_TYPE_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerTextVariant: makeProp(PROP_TYPE_STRING),\n // TODO: Rename to `noBackdrop` and deprecate `hideBackdrop`\n hideBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noFooter` and deprecate `hideFooter`\n hideFooter: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeader` and deprecate `hideHeader`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeaderClose` and deprecate `hideHeaderClose`\n hideHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n ignoreEnforceFocusSelector: makeProp(PROP_TYPE_ARRAY_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n modalClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noStacking: makeProp(PROP_TYPE_BOOLEAN, false),\n okDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n okOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n okTitle: makeProp(PROP_TYPE_STRING, 'OK'),\n okTitleHtml: makeProp(PROP_TYPE_STRING),\n okVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // HTML Element, CSS selector string or Vue component instance\n returnFocus: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n scrollable: makeProp(PROP_TYPE_BOOLEAN, false),\n size: makeProp(PROP_TYPE_STRING, 'md'),\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n titleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleHtml: makeProp(PROP_TYPE_STRING),\n titleSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n titleTag: makeProp(PROP_TYPE_STRING, 'h5')\n})), NAME_MODAL); // --- Main component ---\n// @vue/component\n\nexport var BModal = /*#__PURE__*/Vue.extend({\n name: NAME_MODAL,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnDocumentMixin, listenOnRootMixin, listenOnWindowMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isHidden: true,\n // If modal should not be in document\n isVisible: false,\n // Controls modal visible state\n isTransitioning: false,\n // Used for style control\n isShow: false,\n // Used for style control\n isBlock: false,\n // Used for style control\n isOpening: false,\n // To signal that the modal is in the process of opening\n isClosing: false,\n // To signal that the modal is in the process of closing\n ignoreBackdropClick: false,\n // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalId: function modalId() {\n return this.safeId();\n },\n modalOuterId: function modalOuterId() {\n return this.safeId('__BV_modal_outer_');\n },\n modalHeaderId: function modalHeaderId() {\n return this.safeId('__BV_modal_header_');\n },\n modalBodyId: function modalBodyId() {\n return this.safeId('__BV_modal_body_');\n },\n modalTitleId: function modalTitleId() {\n return this.safeId('__BV_modal_title_');\n },\n modalContentId: function modalContentId() {\n return this.safeId('__BV_modal_content_');\n },\n modalFooterId: function modalFooterId() {\n return this.safeId('__BV_modal_footer_');\n },\n modalBackdropId: function modalBackdropId() {\n return this.safeId('__BV_modal_backdrop_');\n },\n modalClasses: function modalClasses() {\n return [{\n fade: !this.noFade,\n show: this.isShow\n }, this.modalClass];\n },\n modalStyles: function modalStyles() {\n var sbWidth = \"\".concat(this.scrollbarWidth, \"px\");\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n };\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"modal-\".concat(this.size), this.size), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _defineProperty(_ref, 'modal-dialog-scrollable', this.scrollable), _ref), this.dialogClass];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return [(_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(this.headerBgVariant), this.headerBgVariant), _defineProperty(_ref2, \"text-\".concat(this.headerTextVariant), this.headerTextVariant), _defineProperty(_ref2, \"border-\".concat(this.headerBorderVariant), this.headerBorderVariant), _ref2), this.headerClass];\n },\n titleClasses: function titleClasses() {\n return [{\n 'sr-only': this.titleSrOnly\n }, this.titleClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return [(_ref3 = {}, _defineProperty(_ref3, \"bg-\".concat(this.bodyBgVariant), this.bodyBgVariant), _defineProperty(_ref3, \"text-\".concat(this.bodyTextVariant), this.bodyTextVariant), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return [(_ref4 = {}, _defineProperty(_ref4, \"bg-\".concat(this.footerBgVariant), this.footerBgVariant), _defineProperty(_ref4, \"text-\".concat(this.footerTextVariant), this.footerTextVariant), _defineProperty(_ref4, \"border-\".concat(this.footerBorderVariant), this.footerBorderVariant), _ref4), this.footerClass];\n },\n modalOuterStyle: function modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n };\n },\n slotScope: function slotScope() {\n return {\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n ok: this.onOk,\n visible: this.isVisible\n };\n },\n computeIgnoreEnforceFocusSelector: function computeIgnoreEnforceFocusSelector() {\n // Normalize to an single selector with selectors separated by `,`\n return concat(this.ignoreEnforceFocusSelector).filter(identity).join(',').trim();\n },\n computedAttrs: function computedAttrs() {\n // If the parent has a scoped style attribute, and the modal\n // is portalled, add the scoped attribute to the modal wrapper\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return _objectSpread(_objectSpread(_objectSpread({}, scopedStyleAttrs), this.bvAttrs), {}, {\n id: this.modalOuterId\n });\n },\n computedModalAttrs: function computedModalAttrs() {\n var isVisible = this.isVisible,\n ariaLabel = this.ariaLabel;\n return {\n id: this.modalId,\n role: 'dialog',\n 'aria-hidden': isVisible ? null : 'true',\n 'aria-modal': isVisible ? 'true' : null,\n 'aria-label': ariaLabel,\n 'aria-labelledby': this.hideHeader || ariaLabel || // TODO: Rename slot to `title` and deprecate `modal-title`\n !(this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) || this.titleHtml || this.title) ? null : this.modalTitleId,\n 'aria-describedby': this.modalBodyId\n };\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this[newValue ? 'show' : 'hide']();\n }\n }),\n created: function created() {\n // Define non-reactive properties\n this.$_observer = null;\n this.$_returnFocus = this.returnFocus || null;\n },\n mounted: function mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex(); // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW), this.showHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_HIDE), this.hideHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_TOGGLE), this.toggleHandler); // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n\n this.listenOnRoot(getRootEventName(NAME_MODAL, EVENT_NAME_SHOW), this.modalListener); // Initially show modal?\n\n if (this[MODEL_PROP_NAME] === true) {\n this.$nextTick(this.show);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n modalManager.unregisterModal(this);\n this.setObserver(false);\n\n if (this.isVisible) {\n this.isVisible = false;\n this.isShow = false;\n this.isTransitioning = false;\n }\n },\n methods: {\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.content, this.checkModalOverflow.bind(this), OBSERVER_CONFIG);\n }\n },\n // Private method to update the v-model\n updateModel: function updateModel(value) {\n if (value !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, value);\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvModalEvent(type, _objectSpread(_objectSpread({\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null\n }, options), {}, {\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.modalId\n }));\n },\n // Public method to show modal\n show: function show() {\n if (this.isVisible || this.isOpening) {\n // If already open, or in the process of opening, do nothing\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n\n /* istanbul ignore next */\n this.$once(EVENT_NAME_HIDDEN, this.show);\n /* istanbul ignore next */\n\n return;\n }\n\n this.isOpening = true; // Set the element to return focus to when closed\n\n this.$_returnFocus = this.$_returnFocus || this.getActiveElement();\n var showEvent = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvent); // Don't show if canceled\n\n if (showEvent.defaultPrevented || this.isVisible) {\n this.isOpening = false; // Ensure the v-model reflects the current state\n\n this.updateModel(false);\n return;\n } // Show the modal\n\n\n this.doShow();\n },\n // Public method to hide modal\n hide: function hide() {\n var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return;\n }\n\n this.isClosing = true;\n var hideEvent = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: trigger !== TRIGGER_FORCE,\n trigger: trigger || null\n }); // We emit specific event for one of the three built-in buttons\n\n if (trigger === BUTTON_OK) {\n this.$emit(EVENT_NAME_OK, hideEvent);\n } else if (trigger === BUTTON_CANCEL) {\n this.$emit(EVENT_NAME_CANCEL, hideEvent);\n } else if (trigger === BUTTON_CLOSE) {\n this.$emit(EVENT_NAME_CLOSE, hideEvent);\n }\n\n this.emitEvent(hideEvent); // Hide if not canceled\n\n if (hideEvent.defaultPrevented || !this.isVisible) {\n this.isClosing = false; // Ensure v-model reflects current state\n\n this.updateModel(true);\n return;\n } // Stop observing for content changes\n\n\n this.setObserver(false); // Trigger the hide transition\n\n this.isVisible = false; // Update the v-model\n\n this.updateModel(false);\n },\n // Public method to toggle modal visibility\n toggle: function toggle(triggerEl) {\n if (triggerEl) {\n this.$_returnFocus = triggerEl;\n }\n\n if (this.isVisible) {\n this.hide(TRIGGER_TOGGLE);\n } else {\n this.show();\n }\n },\n // Private method to get the current document active element\n getActiveElement: function getActiveElement() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n var activeElement = _getActiveElement(IS_BROWSER ? [document.body] : []); // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n // Note: On IE 11, `document.activeElement` may be `null`\n // So we test it for truthiness first\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n\n\n return activeElement && activeElement.focus ? activeElement : null;\n },\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this = this;\n /* istanbul ignore next: commenting out for now until we can test stacking */\n\n\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce(getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN), this.doShow);\n return;\n }\n\n modalManager.registerModal(this); // Place modal in DOM\n\n this.isHidden = false;\n this.$nextTick(function () {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n _this.isVisible = true;\n _this.isOpening = false; // Update the v-model\n\n _this.updateModel(true);\n\n _this.$nextTick(function () {\n // Observe changes in modal content and adjust if necessary\n // In a `$nextTick()` in case modal content is lazy\n _this.setObserver(true);\n });\n });\n },\n // Transition handlers\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n var _this2 = this;\n\n this.isBlock = true; // We add the `show` class 1 frame later\n // `requestAF()` runs the callback before the next repaint, so we need\n // two calls to guarantee the next frame has been rendered\n\n requestAF(function () {\n requestAF(function () {\n _this2.isShow = true;\n });\n });\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.checkModalOverflow();\n this.isTransitioning = false; // We use `requestAF()` to allow transition hooks to complete\n // before passing control over to the other handlers\n // This will allow users to not have to use `$nextTick()` or `requestAF()`\n // when trying to pre-focus an element\n\n requestAF(function () {\n _this3.emitEvent(_this3.buildEvent(EVENT_NAME_SHOWN));\n\n _this3.setEnforceFocus(true);\n\n _this3.$nextTick(function () {\n // Delayed in a `$nextTick()` to allow users time to pre-focus\n // an element if the wish\n _this3.focusFirst();\n });\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n this.setResizeEvent(false);\n this.setEnforceFocus(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.isShow = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.isBlock = false;\n this.isTransitioning = false;\n this.isModalOverflowing = false;\n this.isHidden = true;\n this.$nextTick(function () {\n _this4.isClosing = false;\n modalManager.unregisterModal(_this4);\n\n _this4.returnFocusTo(); // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n\n\n _this4.emitEvent(_this4.buildEvent(EVENT_NAME_HIDDEN));\n });\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type; // We emit on `$root` first in case a global listener wants to cancel\n // the event first before the instance emits its event\n\n this.emitOnRoot(getRootEventName(NAME_MODAL, type), bvEvent, bvEvent.componentId);\n this.$emit(type, bvEvent);\n },\n // UI event handlers\n onDialogMousedown: function onDialogMousedown() {\n var _this5 = this; // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n\n\n var modal = this.$refs.modal;\n\n var onceModalMouseup = function onceModalMouseup(event) {\n eventOff(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n\n if (event.target === modal) {\n _this5.ignoreBackdropClick = true;\n }\n };\n\n eventOn(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n },\n onClickOut: function onClickOut(event) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false;\n return;\n } // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n\n\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, event.target)) {\n return;\n } // If backdrop clicked, hide modal\n\n\n if (!contains(this.$refs.content, event.target)) {\n this.hide(TRIGGER_BACKDROP);\n }\n },\n onOk: function onOk() {\n this.hide(BUTTON_OK);\n },\n onCancel: function onCancel() {\n this.hide(BUTTON_CANCEL);\n },\n onClose: function onClose() {\n this.hide(BUTTON_CLOSE);\n },\n onEsc: function onEsc(event) {\n // If ESC pressed, hide modal\n if (event.keyCode === CODE_ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide(TRIGGER_ESC);\n }\n },\n // Document focusin listener\n focusHandler: function focusHandler(event) {\n // If focus leaves modal content, bring it back\n var content = this.$refs.content;\n var target = event.target;\n\n if (this.noEnforceFocus || !this.isTop || !this.isVisible || !content || document === target || contains(content, target) || this.computeIgnoreEnforceFocusSelector && closest(this.computeIgnoreEnforceFocusSelector, target, true)) {\n return;\n }\n\n var tabables = getTabables(this.$refs.content);\n var bottomTrap = this.$refs['bottom-trap'];\n var topTrap = this.$refs['top-trap'];\n\n if (bottomTrap && target === bottomTrap) {\n // If user pressed TAB out of modal into our bottom trab trap element\n // Find the first tabable element in the modal content and focus it\n if (attemptFocus(tabables[0])) {\n // Focus was successful\n return;\n }\n } else if (topTrap && target === topTrap) {\n // If user pressed CTRL-TAB out of modal and into our top tab trap element\n // Find the last tabable element in the modal content and focus it\n if (attemptFocus(tabables[tabables.length - 1])) {\n // Focus was successful\n return;\n }\n } // Otherwise focus the modal content container\n\n\n attemptFocus(content, {\n preventScroll: true\n });\n },\n // Turn on/off focusin listener\n setEnforceFocus: function setEnforceFocus(on) {\n this.listenDocument(on, 'focusin', this.focusHandler);\n },\n // Resize listener\n setResizeEvent: function setResizeEvent(on) {\n this.listenWindow(on, 'resize', this.checkModalOverflow);\n this.listenWindow(on, 'orientationchange', this.checkModalOverflow);\n },\n // Root listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.$_returnFocus = triggerEl || this.getActiveElement();\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.modalId) {\n this.hide('event');\n }\n },\n toggleHandler: function toggleHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.toggle(triggerEl);\n }\n },\n modalListener: function modalListener(bvEvent) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvent.vueTarget !== this) {\n this.hide();\n }\n },\n // Focus control handlers\n focusFirst: function focusFirst() {\n var _this6 = this; // Don't try and focus if we are SSR\n\n\n if (IS_BROWSER) {\n requestAF(function () {\n var modal = _this6.$refs.modal;\n var content = _this6.$refs.content;\n\n var activeElement = _this6.getActiveElement(); // If the modal contains the activeElement, we don't do anything\n\n\n if (modal && content && !(activeElement && contains(content, activeElement))) {\n var ok = _this6.$refs['ok-button'];\n var cancel = _this6.$refs['cancel-button'];\n var close = _this6.$refs['close-button']; // Focus the appropriate button or modal content wrapper\n\n var autoFocus = _this6.autoFocusButton;\n /* istanbul ignore next */\n\n var el = autoFocus === BUTTON_OK && ok ? ok.$el || ok : autoFocus === BUTTON_CANCEL && cancel ? cancel.$el || cancel : autoFocus === BUTTON_CLOSE && close ? close.$el || close : content; // Focus the element\n\n attemptFocus(el);\n\n if (el === content) {\n // Make sure top of modal is showing (if longer than the viewport)\n _this6.$nextTick(function () {\n modal.scrollTop = 0;\n });\n }\n }\n });\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n var el = this.returnFocus || this.$_returnFocus || null;\n this.$_returnFocus = null;\n this.$nextTick(function () {\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el;\n\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el;\n attemptFocus(el);\n }\n });\n },\n checkModalOverflow: function checkModalOverflow() {\n if (this.isVisible) {\n var modal = this.$refs.modal;\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n }\n },\n makeModal: function makeModal(h) {\n // Modal header\n var $header = h();\n\n if (!this.hideHeader) {\n // TODO: Rename slot to `header` and deprecate `modal-header`\n var $modalHeader = this.normalizeSlot(SLOT_NAME_MODAL_HEADER, this.slotScope);\n\n if (!$modalHeader) {\n var $closeButton = h();\n\n if (!this.hideHeaderClose) {\n $closeButton = h(BButtonClose, {\n props: {\n content: this.headerCloseContent,\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: {\n click: this.onClose\n },\n ref: 'close-button'\n }, // TODO: Rename slot to `header-close` and deprecate `modal-header-close`\n [this.normalizeSlot(SLOT_NAME_MODAL_HEADER_CLOSE)]);\n }\n\n $modalHeader = [h(this.titleTag, {\n staticClass: 'modal-title',\n class: this.titleClasses,\n attrs: {\n id: this.modalTitleId\n },\n // TODO: Rename slot to `title` and deprecate `modal-title`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) ? {} : htmlOrText(this.titleHtml, this.title)\n }, // TODO: Rename slot to `title` and deprecate `modal-title`\n this.normalizeSlot(SLOT_NAME_MODAL_TITLE, this.slotScope)), $closeButton];\n }\n\n $header = h(this.headerTag, {\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: {\n id: this.modalHeaderId\n },\n ref: 'header'\n }, [$modalHeader]);\n } // Modal body\n\n\n var $body = h('div', {\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: {\n id: this.modalBodyId\n },\n ref: 'body'\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope)); // Modal footer\n\n var $footer = h();\n\n if (!this.hideFooter) {\n // TODO: Rename slot to `footer` and deprecate `modal-footer`\n var $modalFooter = this.normalizeSlot(SLOT_NAME_MODAL_FOOTER, this.slotScope);\n\n if (!$modalFooter) {\n var $cancelButton = h();\n\n if (!this.okOnly) {\n $cancelButton = h(BButton, {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_CANCEL) ? {} : htmlOrText(this.cancelTitleHtml, this.cancelTitle),\n on: {\n click: this.onCancel\n },\n ref: 'cancel-button'\n }, // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n this.normalizeSlot(SLOT_NAME_MODAL_CANCEL));\n }\n\n var $okButton = h(BButton, {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_OK) ? {} : htmlOrText(this.okTitleHtml, this.okTitle),\n on: {\n click: this.onOk\n },\n ref: 'ok-button'\n }, // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n this.normalizeSlot(SLOT_NAME_MODAL_OK));\n $modalFooter = [$cancelButton, $okButton];\n }\n\n $footer = h(this.footerTag, {\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: {\n id: this.modalFooterId\n },\n ref: 'footer'\n }, [$modalFooter]);\n } // Assemble modal content\n\n\n var $modalContent = h('div', {\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n id: this.modalContentId,\n tabindex: '-1'\n },\n ref: 'content'\n }, [$header, $body, $footer]); // Tab traps to prevent page from scrolling to next element in\n // tab index during enforce-focus tab cycle\n\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.isVisible && !this.noEnforceFocus) {\n $tabTrapTop = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'top-trap'\n });\n $tabTrapBottom = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'bottom-trap'\n });\n } // Modal dialog wrapper\n\n\n var $modalDialog = h('div', {\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: {\n mousedown: this.onDialogMousedown\n },\n ref: 'dialog'\n }, [$tabTrapTop, $modalContent, $tabTrapBottom]); // Modal\n\n var $modal = h('div', {\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n attrs: this.computedModalAttrs,\n on: {\n keydown: this.onEsc,\n click: this.onClickOut\n },\n directives: [{\n name: 'show',\n value: this.isVisible\n }],\n ref: 'modal'\n }, [$modalDialog]); // Wrap modal in transition\n // Sadly, we can't use `BVTransition` here due to the differences in\n // transition durations for `.modal` and `.modal-dialog`\n // At least until https://github.com/vuejs/vue/issues/9986 is resolved\n\n $modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$modal]); // Modal backdrop\n\n var $backdrop = h();\n\n if (!this.hideBackdrop && this.isVisible) {\n $backdrop = h('div', {\n staticClass: 'modal-backdrop',\n attrs: {\n id: this.modalBackdropId\n }\n }, // TODO: Rename slot to `backdrop` and deprecate `modal-backdrop`\n this.normalizeSlot(SLOT_NAME_MODAL_BACKDROP));\n }\n\n $backdrop = h(BVTransition, {\n props: {\n noFade: this.noFade\n }\n }, [$backdrop]); // Assemble modal and backdrop in an outer
\n\n return h('div', {\n style: this.modalOuterStyle,\n attrs: this.computedAttrs,\n key: \"modal-outer-\".concat(this[COMPONENT_UID_KEY])\n }, [$modal, $backdrop]);\n }\n },\n render: function render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h() : this.makeModal(h);\n } else {\n return this.isHidden ? h() : h(BVTransporter, [this.makeModal(h)]);\n }\n }\n});","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method\n // but benefits from Vue's computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this; // `mounted()` only occurs client-side\n\n\n this.$nextTick(function () {\n // Update DOM with auto-generated ID after mount\n // to prevent SSR hydration errors\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n });\n }\n});","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [options={childList: true, subtree: true}] observe options\n * @see https://stackoverflow.com/questions/3219758\n */\n\nexport var observeDom = function observeDom(el, callback, options)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truly happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n _ref$validator = _ref.validator,\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\n _ref$event = _ref.event,\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n var mixin = Vue.extend({\n model: {\n prop: prop,\n event: event\n },\n props: props\n });\n return {\n mixin: mixin,\n props: props,\n prop: prop,\n event: event\n };\n};","import { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { getAttr, hasAttr, isDisabled, matches, select, setAttr } from '../../utils/dom';\nimport { getRootActionEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object'; // Emitted show event for modal\n\nvar ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW); // Prop name we use to store info on root element\n\nvar PROPERTY = '__bv_modal_directive__';\n\nvar getTarget = function getTarget(_ref) {\n var _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? {} : _ref$modifiers,\n arg = _ref.arg,\n value = _ref.value; // Try value, then arg, otherwise pick last modifier\n\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\n\nvar getTriggerElement = function getTriggerElement(el) {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\n\nvar setRole = function setRole(trigger) {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n } // Add a tabindex is not a button or link, and tabindex is not provided\n\n\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\n\nvar bind = function bind(el, binding, vnode) {\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target && trigger) {\n var handler = function handler(event) {\n // `currentTarget` is the element with the listener on it\n var currentTarget = event.currentTarget;\n\n if (!isDisabled(currentTarget)) {\n var type = event.type;\n var key = event.keyCode; // Open modal only if trigger is not disabled\n\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n\n el[PROPERTY] = {\n handler: handler,\n target: target,\n trigger: trigger\n }; // If element is not a button, we add `role=\"button\"` for accessibility\n\n setRole(trigger); // Listen for click events\n\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar unbind = function unbind(el) {\n var oldProp = el[PROPERTY] || {};\n var trigger = oldProp.trigger;\n var handler = oldProp.handler;\n\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n delete el[PROPERTY];\n};\n\nvar componentUpdated = function componentUpdated(el, binding, vnode) {\n var oldProp = el[PROPERTY] || {};\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el, binding, vnode);\n bind(el, binding, vnode);\n } // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n\n\n setRole(trigger);\n};\n\nvar updated = function updated() {};\n/*\n * Export our directive\n */\n\n\nexport var VBModal = {\n inserted: componentUpdated,\n updated: updated,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","export var noop = function noop() {};","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n} // Plugin for adding `$bvModal` property to all Vue instances\n\n\nimport { NAME_MODAL, NAME_MSG_BOX } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isFunction } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn';\nimport { BModal, props as modalProps } from '../modal'; // --- Constants ---\n\nvar PROP_NAME = '$bvModal';\nvar PROP_NAME_PRIV = '_bv__modal'; // Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(modalProps, ['busy', 'lazy', 'noStacking', 'static', 'visible'])))); // Fallback event resolver (returns undefined)\n\nvar defaultResolver = function defaultResolver() {}; // Map prop names to modal slot names\n\n\nvar propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvModal` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n var BMsgBox = Vue.extend({\n name: NAME_MSG_BOX,\n extends: BModal,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n mounted: function mounted() {\n var _this = this; // Self destruct handler\n\n\n var handleDestroy = function handleDestroy() {\n _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct on route change\n\n /* istanbul ignore if */\n\n if (this.$router && this.$route) {\n // Destroy ourselves if route changes\n\n /* istanbul ignore next */\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, this.$watch('$router', handleDestroy));\n } // Show the `BMsgBox`\n\n\n this.show();\n }\n }); // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n\n var asyncMsgBox = function asyncMsgBox($parent, props) {\n var resolver = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultResolver;\n\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BMsgBox` component\n\n\n var msgBox = new BMsgBox({\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n parent: $parent,\n // Preset the prop values\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_MODAL))), {}, {\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml)\n }, omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n })\n }); // Convert certain props to scoped slots\n\n keys(propsToSlots).forEach(function (prop) {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop]);\n }\n }); // Return a promise that resolves when hidden, or rejects on destroyed\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n msgBox.$once(HOOK_EVENT_NAME_DESTROYED, function () {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'));\n }\n });\n msgBox.$on(EVENT_NAME_HIDE, function (bvModalEvent) {\n if (!bvModalEvent.defaultPrevented) {\n var result = resolver(bvModalEvent); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvent.defaultPrevented) {\n resolved = true;\n resolve(result);\n }\n }\n }); // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n msgBox.$mount(div);\n });\n }; // Private utility method to open a user defined message box and returns a promise.\n // Not to be used directly by consumers, as this method may change calling syntax\n\n\n var makeMsgBox = function makeMsgBox($parent, content) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var resolver = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!content || warnNoPromiseSupport(PROP_NAME) || warnNotClient(PROP_NAME) || !isFunction(resolver)) {\n /* istanbul ignore next */\n return;\n }\n\n return asyncMsgBox($parent, _objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n msgBoxContent: content\n }), resolver);\n }; // BvModal instance class\n\n\n var BvModal = /*#__PURE__*/function () {\n function BvModal(vm) {\n _classCallCheck(this, BvModal); // Assign the new properties to this instance\n\n\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Instance methods ---\n // Show modal with the specified ID args are for future use\n\n\n _createClass(BvModal, [{\n key: \"show\",\n value: function show(id) {\n if (id && this._root) {\n var _this$_root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$_root = this._root).$emit.apply(_this$_root, [getRootActionEventName(NAME_MODAL, 'show'), id].concat(args));\n }\n } // Hide modal with the specified ID args are for future use\n\n }, {\n key: \"hide\",\n value: function hide(id) {\n if (id && this._root) {\n var _this$_root2;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$_root2 = this._root).$emit.apply(_this$_root2, [getRootActionEventName(NAME_MODAL, 'hide'), id].concat(args));\n }\n } // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n // Open a message box with OK button only and returns a promise\n\n }, {\n key: \"msgBoxOk\",\n value: function msgBoxOk(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // Pick the modal props we support from options\n\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n });\n\n return makeMsgBox(this._vm, message, props, function () {\n // Always resolve to true for OK\n return true;\n });\n } // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n\n }, {\n key: \"msgBoxConfirm\",\n value: function msgBoxConfirm(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // Set the modal props we support from options\n\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvent) {\n var trigger = bvModalEvent.trigger;\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null;\n });\n }\n }]);\n\n return BvModal;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this);\n }\n }); // Define our read-only `$bvModal` instance property\n // Placed in an if just in case in HMR mode\n\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"\\\"\".concat(PROP_NAME, \"\\\" must be accessed from a Vue instance \\\"this\\\" context.\"), NAME_MODAL);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVModalPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});"],"sourceRoot":""}